@vtxmacro/cli 2026.10.15 → 2026.10.16
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 +20 -8
- package/bin/vtx-mcp.js +23 -11
- package/bin/vtx-service-bootstrap.js +21 -9
- package/bin/vtx-service-launcher.js +20 -8
- package/bin/vtx.js +142 -109
- package/package.json +1 -1
package/bin/exo-harness.ts
CHANGED
|
@@ -21,6 +21,23 @@ var BYTES_PER_KIB = 1024;
|
|
|
21
21
|
var BYTES_PER_MIB = BYTES_PER_KIB * BYTES_PER_KIB;
|
|
22
22
|
var INT32_MIN = -(2 ** 31);
|
|
23
23
|
var INT32_MAX = 2 ** 31 - 1;
|
|
24
|
+
var CANDLE_TIMEFRAME_SECONDS = {
|
|
25
|
+
"1m": SECONDS_PER_MINUTE,
|
|
26
|
+
"3m": 3 * SECONDS_PER_MINUTE,
|
|
27
|
+
"5m": 5 * SECONDS_PER_MINUTE,
|
|
28
|
+
"15m": 15 * SECONDS_PER_MINUTE,
|
|
29
|
+
"30m": 30 * SECONDS_PER_MINUTE,
|
|
30
|
+
"1h": SECONDS_PER_HOUR,
|
|
31
|
+
"2h": 2 * SECONDS_PER_HOUR,
|
|
32
|
+
"4h": 4 * SECONDS_PER_HOUR,
|
|
33
|
+
"6h": 6 * SECONDS_PER_HOUR,
|
|
34
|
+
"8h": 8 * SECONDS_PER_HOUR,
|
|
35
|
+
"12h": 12 * SECONDS_PER_HOUR,
|
|
36
|
+
"1d": SECONDS_PER_DAY,
|
|
37
|
+
"3d": 3 * SECONDS_PER_DAY,
|
|
38
|
+
"1w": SECONDS_PER_WEEK,
|
|
39
|
+
"1M": 30 * SECONDS_PER_DAY
|
|
40
|
+
};
|
|
24
41
|
var HTTP_STATUS = {
|
|
25
42
|
OK: 200,
|
|
26
43
|
ACCEPTED: 202,
|
|
@@ -450,7 +467,6 @@ var runtime_policy_generated_default = {
|
|
|
450
467
|
client_close_fill_sync_retry_step_ms: 300,
|
|
451
468
|
leverage_update_debounce_ms: 250,
|
|
452
469
|
post_leverage_update_order_delay_ms: 250,
|
|
453
|
-
ai_control_lookback_fallback_candles: 25,
|
|
454
470
|
takeover_telemetry_error_chars: 500,
|
|
455
471
|
takeover_telemetry_error_name_chars: 120,
|
|
456
472
|
takeover_telemetry_failure_chars: 300,
|
|
@@ -844,7 +860,6 @@ var runtime_policy_generated_default = {
|
|
|
844
860
|
market_data_failure_debug_max_entries: 20,
|
|
845
861
|
request_string_compact_above_chars: 500,
|
|
846
862
|
prompt_preview_chars: 220,
|
|
847
|
-
provider_failure_snapshot_max_age_seconds: 300,
|
|
848
863
|
local_provider_probe_timeout_ms: 2e3,
|
|
849
864
|
preflight_failure_reason_chars: 200,
|
|
850
865
|
host_error_note_chars: 160,
|
|
@@ -894,6 +909,9 @@ var runtime_policy_generated_default = {
|
|
|
894
909
|
tradability: {
|
|
895
910
|
score_min: 1,
|
|
896
911
|
score_max: 10
|
|
912
|
+
},
|
|
913
|
+
defaults: {
|
|
914
|
+
server_ai_max_slippage: 5
|
|
897
915
|
}
|
|
898
916
|
},
|
|
899
917
|
agent_cli: {
|
|
@@ -917,7 +935,6 @@ var runtime_policy_generated_default = {
|
|
|
917
935
|
],
|
|
918
936
|
browser_login_verifier_bytes: 32,
|
|
919
937
|
update_failure_reason_max_chars: 160,
|
|
920
|
-
update_directory_failure_reason_max_chars: 120,
|
|
921
938
|
update_plan_max_attempts: 3,
|
|
922
939
|
supervisor_max_failed_release_starts: 2
|
|
923
940
|
},
|
|
@@ -1380,11 +1397,6 @@ var runtime_policy_generated_default = {
|
|
|
1380
1397
|
code_max_length: 24,
|
|
1381
1398
|
dashboard_default_limit: 20
|
|
1382
1399
|
},
|
|
1383
|
-
insights: {
|
|
1384
|
-
client_host: {
|
|
1385
|
-
device_read_default_result_bytes: 2e5
|
|
1386
|
-
}
|
|
1387
|
-
},
|
|
1388
1400
|
agent_tokens: {
|
|
1389
1401
|
browser_login_ttl_seconds: 600,
|
|
1390
1402
|
browser_login_poll_interval_seconds: 2
|
package/bin/vtx-mcp.js
CHANGED
|
@@ -37,12 +37,12 @@ var init_define_VTX_PI_MODEL_POLICY = __esm({
|
|
|
37
37
|
var agent_cli_release_default;
|
|
38
38
|
var init_agent_cli_release = __esm({
|
|
39
39
|
"agent-cli-release.json"() {
|
|
40
|
-
agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.
|
|
40
|
+
agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.16", codex_package_name: "@openai/codex", codex_version: "0.155.0", copilot_sdk_package_name: "@github/copilot-sdk", copilot_sdk_version: "1.0.0-beta.8", copilot_cli_package_name: "@github/copilot", copilot_cli_version: "1.0.80", deepseek_harness_version: "0.1.1-rc.2", deepseek_harness_packages: ["@deepseek-ai/dsh-agent", "@deepseek-ai/dsh-agent-instructions", "@deepseek-ai/dsh-agent-loop", "@deepseek-ai/dsh-agent-spine-demo", "@deepseek-ai/dsh-anonymous-user-id", "@deepseek-ai/dsh-atomic-write", "@deepseek-ai/dsh-attachment", "@deepseek-ai/dsh-brand", "@deepseek-ai/dsh-code-runtime", "@deepseek-ai/dsh-credentials", "@deepseek-ai/dsh-fs", "@deepseek-ai/dsh-goal", "@deepseek-ai/dsh-goal-round-driver", "@deepseek-ai/dsh-home-paths", "@deepseek-ai/dsh-invariants", "@deepseek-ai/dsh-jobs", "@deepseek-ai/dsh-jobs-local", "@deepseek-ai/dsh-launch-environment", "@deepseek-ai/dsh-llm", "@deepseek-ai/dsh-llm-deepseek", "@deepseek-ai/dsh-llm-retry", "@deepseek-ai/dsh-output-retention", "@deepseek-ai/dsh-sandbox", "@deepseek-ai/dsh-sandbox-policy", "@deepseek-ai/dsh-scope", "@deepseek-ai/dsh-session", "@deepseek-ai/dsh-session-checkpoint-policy", "@deepseek-ai/dsh-session-persistence", "@deepseek-ai/dsh-session-persistence-jsonl", "@deepseek-ai/dsh-session-projection", "@deepseek-ai/dsh-session-title", "@deepseek-ai/dsh-settings", "@deepseek-ai/dsh-shell", "@deepseek-ai/dsh-shell-env", "@deepseek-ai/dsh-skill", "@deepseek-ai/dsh-skill-filesystem", "@deepseek-ai/dsh-subprocess", "@deepseek-ai/dsh-system-prompt", "@deepseek-ai/dsh-timeout", "@deepseek-ai/dsh-tool-bash", "@deepseek-ai/dsh-tool-goal", "@deepseek-ai/dsh-tool-jobs", "@deepseek-ai/dsh-tool-skill", "@deepseek-ai/dsh-tools", "@deepseek-ai/dsh-typert-protocol", "@deepseek-ai/dsh-user-approval"], deepseek_cordis_package_name: "@deepseek-ai/cordis", deepseek_cordis_version: "4.0.1", deepseek_support_packages: { "@deepseek-ai/cordis-plugin-timer": "1.1.3" }, platforms: { "linux-x64": { package_name: "@openai/codex-linux-x64", target: "x86_64-unknown-linux-musl", binary_name: "codex", sha256: "660e159a49e823ac8e5986cb238f73158ce4b957d40d9292f8de90862644b501" }, "win32-x64": { package_name: "@openai/codex-win32-x64", target: "x86_64-pc-windows-msvc", binary_name: "codex.exe", sha256: "e4c11374bd9de8ad5c3b7617fd4654bb7839901edb0863f9930666863c7a021b" } }, pi_coding_agent_package_name: "@earendil-works/pi-coding-agent", pi_ai_package_name: "@earendil-works/pi-ai", pi_version: "0.85.1", pi_support_packages: ["@earendil-works/pi-agent-core", "@earendil-works/pi-telemetry", "@earendil-works/pi-tui", "@earendil-works/chord"], grok_version: "1.0.30", grok_platforms: { "linux-x64": { package_name: "@xai-official/grok-linux-x64", binary_name: "grok", sha256: "504dd6546ab991b75d36698242875ce461489cd1f8cd84285873cb55bd5c7d54" }, "win32-x64": { package_name: "@xai-official/grok-win32-x64", binary_name: "grok.exe", sha256: "48736d1a4342a801ea26d0ecde4c516b653f791399065adaa55973f83abd8867" } } };
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
// lib/constants.ts
|
|
45
|
-
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, EXIT_CODE_INTERRUPTED, EXIT_CODE_SIGNAL_BASE;
|
|
45
|
+
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;
|
|
46
46
|
var init_constants = __esm({
|
|
47
47
|
"lib/constants.ts"() {
|
|
48
48
|
"use strict";
|
|
@@ -72,6 +72,23 @@ var init_constants = __esm({
|
|
|
72
72
|
JSON_INDENT_SPACES = 2;
|
|
73
73
|
INT32_MIN = -(2 ** 31);
|
|
74
74
|
INT32_MAX = 2 ** 31 - 1;
|
|
75
|
+
CANDLE_TIMEFRAME_SECONDS = {
|
|
76
|
+
"1m": SECONDS_PER_MINUTE,
|
|
77
|
+
"3m": 3 * SECONDS_PER_MINUTE,
|
|
78
|
+
"5m": 5 * SECONDS_PER_MINUTE,
|
|
79
|
+
"15m": 15 * SECONDS_PER_MINUTE,
|
|
80
|
+
"30m": 30 * SECONDS_PER_MINUTE,
|
|
81
|
+
"1h": SECONDS_PER_HOUR,
|
|
82
|
+
"2h": 2 * SECONDS_PER_HOUR,
|
|
83
|
+
"4h": 4 * SECONDS_PER_HOUR,
|
|
84
|
+
"6h": 6 * SECONDS_PER_HOUR,
|
|
85
|
+
"8h": 8 * SECONDS_PER_HOUR,
|
|
86
|
+
"12h": 12 * SECONDS_PER_HOUR,
|
|
87
|
+
"1d": SECONDS_PER_DAY,
|
|
88
|
+
"3d": 3 * SECONDS_PER_DAY,
|
|
89
|
+
"1w": SECONDS_PER_WEEK,
|
|
90
|
+
"1M": 30 * SECONDS_PER_DAY
|
|
91
|
+
};
|
|
75
92
|
HTTP_STATUS = {
|
|
76
93
|
OK: 200,
|
|
77
94
|
ACCEPTED: 202,
|
|
@@ -1687,7 +1704,6 @@ var runtime_policy_generated_default = {
|
|
|
1687
1704
|
client_close_fill_sync_retry_step_ms: 300,
|
|
1688
1705
|
leverage_update_debounce_ms: 250,
|
|
1689
1706
|
post_leverage_update_order_delay_ms: 250,
|
|
1690
|
-
ai_control_lookback_fallback_candles: 25,
|
|
1691
1707
|
takeover_telemetry_error_chars: 500,
|
|
1692
1708
|
takeover_telemetry_error_name_chars: 120,
|
|
1693
1709
|
takeover_telemetry_failure_chars: 300,
|
|
@@ -2081,7 +2097,6 @@ var runtime_policy_generated_default = {
|
|
|
2081
2097
|
market_data_failure_debug_max_entries: 20,
|
|
2082
2098
|
request_string_compact_above_chars: 500,
|
|
2083
2099
|
prompt_preview_chars: 220,
|
|
2084
|
-
provider_failure_snapshot_max_age_seconds: 300,
|
|
2085
2100
|
local_provider_probe_timeout_ms: 2e3,
|
|
2086
2101
|
preflight_failure_reason_chars: 200,
|
|
2087
2102
|
host_error_note_chars: 160,
|
|
@@ -2131,6 +2146,9 @@ var runtime_policy_generated_default = {
|
|
|
2131
2146
|
tradability: {
|
|
2132
2147
|
score_min: 1,
|
|
2133
2148
|
score_max: 10
|
|
2149
|
+
},
|
|
2150
|
+
defaults: {
|
|
2151
|
+
server_ai_max_slippage: 5
|
|
2134
2152
|
}
|
|
2135
2153
|
},
|
|
2136
2154
|
agent_cli: {
|
|
@@ -2154,7 +2172,6 @@ var runtime_policy_generated_default = {
|
|
|
2154
2172
|
],
|
|
2155
2173
|
browser_login_verifier_bytes: 32,
|
|
2156
2174
|
update_failure_reason_max_chars: 160,
|
|
2157
|
-
update_directory_failure_reason_max_chars: 120,
|
|
2158
2175
|
update_plan_max_attempts: 3,
|
|
2159
2176
|
supervisor_max_failed_release_starts: 2
|
|
2160
2177
|
},
|
|
@@ -2617,11 +2634,6 @@ var runtime_policy_generated_default = {
|
|
|
2617
2634
|
code_max_length: 24,
|
|
2618
2635
|
dashboard_default_limit: 20
|
|
2619
2636
|
},
|
|
2620
|
-
insights: {
|
|
2621
|
-
client_host: {
|
|
2622
|
-
device_read_default_result_bytes: 2e5
|
|
2623
|
-
}
|
|
2624
|
-
},
|
|
2625
2637
|
agent_tokens: {
|
|
2626
2638
|
browser_login_ttl_seconds: 600,
|
|
2627
2639
|
browser_login_poll_interval_seconds: 2
|
|
@@ -4231,7 +4243,7 @@ var stageAndSelect = async (paths, target, input) => {
|
|
|
4231
4243
|
try {
|
|
4232
4244
|
await ensureUpdaterPrivateDirectory(paths.root, paths.root, { platform: input.platform });
|
|
4233
4245
|
} catch (error) {
|
|
4234
|
-
const reason = `update_directory_unsafe: ${error instanceof Error ? error.message.slice(0, runtime_policy_generated_default.agent_cli.
|
|
4246
|
+
const reason = `update_directory_unsafe: ${error instanceof Error ? error.message.slice(0, runtime_policy_generated_default.agent_cli.update_failure_reason_max_chars) : "unknown"}`;
|
|
4235
4247
|
await appendCliUpdateLog(paths, "cli_update_failed", { package_version: target.version, reason });
|
|
4236
4248
|
return { kind: "failed", reason };
|
|
4237
4249
|
}
|
|
@@ -14,7 +14,7 @@ import { dirname as dirname4, relative as relative4, resolve as resolve4 } from
|
|
|
14
14
|
import { fileURLToPath } from "node:url";
|
|
15
15
|
|
|
16
16
|
// agent-cli-release.json
|
|
17
|
-
var agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.
|
|
17
|
+
var agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.16", codex_package_name: "@openai/codex", codex_version: "0.155.0", copilot_sdk_package_name: "@github/copilot-sdk", copilot_sdk_version: "1.0.0-beta.8", copilot_cli_package_name: "@github/copilot", copilot_cli_version: "1.0.80", deepseek_harness_version: "0.1.1-rc.2", deepseek_harness_packages: ["@deepseek-ai/dsh-agent", "@deepseek-ai/dsh-agent-instructions", "@deepseek-ai/dsh-agent-loop", "@deepseek-ai/dsh-agent-spine-demo", "@deepseek-ai/dsh-anonymous-user-id", "@deepseek-ai/dsh-atomic-write", "@deepseek-ai/dsh-attachment", "@deepseek-ai/dsh-brand", "@deepseek-ai/dsh-code-runtime", "@deepseek-ai/dsh-credentials", "@deepseek-ai/dsh-fs", "@deepseek-ai/dsh-goal", "@deepseek-ai/dsh-goal-round-driver", "@deepseek-ai/dsh-home-paths", "@deepseek-ai/dsh-invariants", "@deepseek-ai/dsh-jobs", "@deepseek-ai/dsh-jobs-local", "@deepseek-ai/dsh-launch-environment", "@deepseek-ai/dsh-llm", "@deepseek-ai/dsh-llm-deepseek", "@deepseek-ai/dsh-llm-retry", "@deepseek-ai/dsh-output-retention", "@deepseek-ai/dsh-sandbox", "@deepseek-ai/dsh-sandbox-policy", "@deepseek-ai/dsh-scope", "@deepseek-ai/dsh-session", "@deepseek-ai/dsh-session-checkpoint-policy", "@deepseek-ai/dsh-session-persistence", "@deepseek-ai/dsh-session-persistence-jsonl", "@deepseek-ai/dsh-session-projection", "@deepseek-ai/dsh-session-title", "@deepseek-ai/dsh-settings", "@deepseek-ai/dsh-shell", "@deepseek-ai/dsh-shell-env", "@deepseek-ai/dsh-skill", "@deepseek-ai/dsh-skill-filesystem", "@deepseek-ai/dsh-subprocess", "@deepseek-ai/dsh-system-prompt", "@deepseek-ai/dsh-timeout", "@deepseek-ai/dsh-tool-bash", "@deepseek-ai/dsh-tool-goal", "@deepseek-ai/dsh-tool-jobs", "@deepseek-ai/dsh-tool-skill", "@deepseek-ai/dsh-tools", "@deepseek-ai/dsh-typert-protocol", "@deepseek-ai/dsh-user-approval"], deepseek_cordis_package_name: "@deepseek-ai/cordis", deepseek_cordis_version: "4.0.1", deepseek_support_packages: { "@deepseek-ai/cordis-plugin-timer": "1.1.3" }, platforms: { "linux-x64": { package_name: "@openai/codex-linux-x64", target: "x86_64-unknown-linux-musl", binary_name: "codex", sha256: "660e159a49e823ac8e5986cb238f73158ce4b957d40d9292f8de90862644b501" }, "win32-x64": { package_name: "@openai/codex-win32-x64", target: "x86_64-pc-windows-msvc", binary_name: "codex.exe", sha256: "e4c11374bd9de8ad5c3b7617fd4654bb7839901edb0863f9930666863c7a021b" } }, pi_coding_agent_package_name: "@earendil-works/pi-coding-agent", pi_ai_package_name: "@earendil-works/pi-ai", pi_version: "0.85.1", pi_support_packages: ["@earendil-works/pi-agent-core", "@earendil-works/pi-telemetry", "@earendil-works/pi-tui", "@earendil-works/chord"], grok_version: "1.0.30", grok_platforms: { "linux-x64": { package_name: "@xai-official/grok-linux-x64", binary_name: "grok", sha256: "504dd6546ab991b75d36698242875ce461489cd1f8cd84285873cb55bd5c7d54" }, "win32-x64": { package_name: "@xai-official/grok-win32-x64", binary_name: "grok.exe", sha256: "48736d1a4342a801ea26d0ecde4c516b653f791399065adaa55973f83abd8867" } } };
|
|
18
18
|
|
|
19
19
|
// lib/runtime-policy.generated.json
|
|
20
20
|
var runtime_policy_generated_default = {
|
|
@@ -412,7 +412,6 @@ var runtime_policy_generated_default = {
|
|
|
412
412
|
client_close_fill_sync_retry_step_ms: 300,
|
|
413
413
|
leverage_update_debounce_ms: 250,
|
|
414
414
|
post_leverage_update_order_delay_ms: 250,
|
|
415
|
-
ai_control_lookback_fallback_candles: 25,
|
|
416
415
|
takeover_telemetry_error_chars: 500,
|
|
417
416
|
takeover_telemetry_error_name_chars: 120,
|
|
418
417
|
takeover_telemetry_failure_chars: 300,
|
|
@@ -806,7 +805,6 @@ var runtime_policy_generated_default = {
|
|
|
806
805
|
market_data_failure_debug_max_entries: 20,
|
|
807
806
|
request_string_compact_above_chars: 500,
|
|
808
807
|
prompt_preview_chars: 220,
|
|
809
|
-
provider_failure_snapshot_max_age_seconds: 300,
|
|
810
808
|
local_provider_probe_timeout_ms: 2e3,
|
|
811
809
|
preflight_failure_reason_chars: 200,
|
|
812
810
|
host_error_note_chars: 160,
|
|
@@ -856,6 +854,9 @@ var runtime_policy_generated_default = {
|
|
|
856
854
|
tradability: {
|
|
857
855
|
score_min: 1,
|
|
858
856
|
score_max: 10
|
|
857
|
+
},
|
|
858
|
+
defaults: {
|
|
859
|
+
server_ai_max_slippage: 5
|
|
859
860
|
}
|
|
860
861
|
},
|
|
861
862
|
agent_cli: {
|
|
@@ -879,7 +880,6 @@ var runtime_policy_generated_default = {
|
|
|
879
880
|
],
|
|
880
881
|
browser_login_verifier_bytes: 32,
|
|
881
882
|
update_failure_reason_max_chars: 160,
|
|
882
|
-
update_directory_failure_reason_max_chars: 120,
|
|
883
883
|
update_plan_max_attempts: 3,
|
|
884
884
|
supervisor_max_failed_release_starts: 2
|
|
885
885
|
},
|
|
@@ -1342,11 +1342,6 @@ var runtime_policy_generated_default = {
|
|
|
1342
1342
|
code_max_length: 24,
|
|
1343
1343
|
dashboard_default_limit: 20
|
|
1344
1344
|
},
|
|
1345
|
-
insights: {
|
|
1346
|
-
client_host: {
|
|
1347
|
-
device_read_default_result_bytes: 2e5
|
|
1348
|
-
}
|
|
1349
|
-
},
|
|
1350
1345
|
agent_tokens: {
|
|
1351
1346
|
browser_login_ttl_seconds: 600,
|
|
1352
1347
|
browser_login_poll_interval_seconds: 2
|
|
@@ -1377,6 +1372,23 @@ var GROUP_OTHER_PERMISSION_BITS = 63;
|
|
|
1377
1372
|
var JSON_INDENT_SPACES = 2;
|
|
1378
1373
|
var INT32_MIN = -(2 ** 31);
|
|
1379
1374
|
var INT32_MAX = 2 ** 31 - 1;
|
|
1375
|
+
var CANDLE_TIMEFRAME_SECONDS = {
|
|
1376
|
+
"1m": SECONDS_PER_MINUTE,
|
|
1377
|
+
"3m": 3 * SECONDS_PER_MINUTE,
|
|
1378
|
+
"5m": 5 * SECONDS_PER_MINUTE,
|
|
1379
|
+
"15m": 15 * SECONDS_PER_MINUTE,
|
|
1380
|
+
"30m": 30 * SECONDS_PER_MINUTE,
|
|
1381
|
+
"1h": SECONDS_PER_HOUR,
|
|
1382
|
+
"2h": 2 * SECONDS_PER_HOUR,
|
|
1383
|
+
"4h": 4 * SECONDS_PER_HOUR,
|
|
1384
|
+
"6h": 6 * SECONDS_PER_HOUR,
|
|
1385
|
+
"8h": 8 * SECONDS_PER_HOUR,
|
|
1386
|
+
"12h": 12 * SECONDS_PER_HOUR,
|
|
1387
|
+
"1d": SECONDS_PER_DAY,
|
|
1388
|
+
"3d": 3 * SECONDS_PER_DAY,
|
|
1389
|
+
"1w": SECONDS_PER_WEEK,
|
|
1390
|
+
"1M": 30 * SECONDS_PER_DAY
|
|
1391
|
+
};
|
|
1380
1392
|
var AI_COST_ESTIMATE_PERIOD_DAYS = 30;
|
|
1381
1393
|
var SECONDS_PER_AI_COST_ESTIMATE_PERIOD = SECONDS_PER_DAY * AI_COST_ESTIMATE_PERIOD_DAYS;
|
|
1382
1394
|
var INFERENCE_HOST_PROCESS_LOCK_RECORD_SCHEMA_VERSION = 2;
|
|
@@ -396,7 +396,6 @@ var runtime_policy_generated_default = {
|
|
|
396
396
|
client_close_fill_sync_retry_step_ms: 300,
|
|
397
397
|
leverage_update_debounce_ms: 250,
|
|
398
398
|
post_leverage_update_order_delay_ms: 250,
|
|
399
|
-
ai_control_lookback_fallback_candles: 25,
|
|
400
399
|
takeover_telemetry_error_chars: 500,
|
|
401
400
|
takeover_telemetry_error_name_chars: 120,
|
|
402
401
|
takeover_telemetry_failure_chars: 300,
|
|
@@ -790,7 +789,6 @@ var runtime_policy_generated_default = {
|
|
|
790
789
|
market_data_failure_debug_max_entries: 20,
|
|
791
790
|
request_string_compact_above_chars: 500,
|
|
792
791
|
prompt_preview_chars: 220,
|
|
793
|
-
provider_failure_snapshot_max_age_seconds: 300,
|
|
794
792
|
local_provider_probe_timeout_ms: 2e3,
|
|
795
793
|
preflight_failure_reason_chars: 200,
|
|
796
794
|
host_error_note_chars: 160,
|
|
@@ -840,6 +838,9 @@ var runtime_policy_generated_default = {
|
|
|
840
838
|
tradability: {
|
|
841
839
|
score_min: 1,
|
|
842
840
|
score_max: 10
|
|
841
|
+
},
|
|
842
|
+
defaults: {
|
|
843
|
+
server_ai_max_slippage: 5
|
|
843
844
|
}
|
|
844
845
|
},
|
|
845
846
|
agent_cli: {
|
|
@@ -863,7 +864,6 @@ var runtime_policy_generated_default = {
|
|
|
863
864
|
],
|
|
864
865
|
browser_login_verifier_bytes: 32,
|
|
865
866
|
update_failure_reason_max_chars: 160,
|
|
866
|
-
update_directory_failure_reason_max_chars: 120,
|
|
867
867
|
update_plan_max_attempts: 3,
|
|
868
868
|
supervisor_max_failed_release_starts: 2
|
|
869
869
|
},
|
|
@@ -1326,11 +1326,6 @@ var runtime_policy_generated_default = {
|
|
|
1326
1326
|
code_max_length: 24,
|
|
1327
1327
|
dashboard_default_limit: 20
|
|
1328
1328
|
},
|
|
1329
|
-
insights: {
|
|
1330
|
-
client_host: {
|
|
1331
|
-
device_read_default_result_bytes: 2e5
|
|
1332
|
-
}
|
|
1333
|
-
},
|
|
1334
1329
|
agent_tokens: {
|
|
1335
1330
|
browser_login_ttl_seconds: 600,
|
|
1336
1331
|
browser_login_poll_interval_seconds: 2
|
|
@@ -1360,6 +1355,23 @@ var OWNER_ONLY_DIRECTORY_MODE = 448;
|
|
|
1360
1355
|
var GROUP_OTHER_PERMISSION_BITS = 63;
|
|
1361
1356
|
var INT32_MIN = -(2 ** 31);
|
|
1362
1357
|
var INT32_MAX = 2 ** 31 - 1;
|
|
1358
|
+
var CANDLE_TIMEFRAME_SECONDS = {
|
|
1359
|
+
"1m": SECONDS_PER_MINUTE,
|
|
1360
|
+
"3m": 3 * SECONDS_PER_MINUTE,
|
|
1361
|
+
"5m": 5 * SECONDS_PER_MINUTE,
|
|
1362
|
+
"15m": 15 * SECONDS_PER_MINUTE,
|
|
1363
|
+
"30m": 30 * SECONDS_PER_MINUTE,
|
|
1364
|
+
"1h": SECONDS_PER_HOUR,
|
|
1365
|
+
"2h": 2 * SECONDS_PER_HOUR,
|
|
1366
|
+
"4h": 4 * SECONDS_PER_HOUR,
|
|
1367
|
+
"6h": 6 * SECONDS_PER_HOUR,
|
|
1368
|
+
"8h": 8 * SECONDS_PER_HOUR,
|
|
1369
|
+
"12h": 12 * SECONDS_PER_HOUR,
|
|
1370
|
+
"1d": SECONDS_PER_DAY,
|
|
1371
|
+
"3d": 3 * SECONDS_PER_DAY,
|
|
1372
|
+
"1w": SECONDS_PER_WEEK,
|
|
1373
|
+
"1M": 30 * SECONDS_PER_DAY
|
|
1374
|
+
};
|
|
1363
1375
|
var AI_COST_ESTIMATE_PERIOD_DAYS = 30;
|
|
1364
1376
|
var SECONDS_PER_AI_COST_ESTIMATE_PERIOD = SECONDS_PER_DAY * AI_COST_ESTIMATE_PERIOD_DAYS;
|
|
1365
1377
|
var EXIT_CODE_TEMPFAIL = 75;
|
package/bin/vtx.js
CHANGED
|
@@ -113,7 +113,7 @@ var init_routing = __esm({
|
|
|
113
113
|
var agent_cli_release_default;
|
|
114
114
|
var init_agent_cli_release = __esm({
|
|
115
115
|
"agent-cli-release.json"() {
|
|
116
|
-
agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.
|
|
116
|
+
agent_cli_release_default = { package_name: "@vtxmacro/cli", package_version: "2026.10.16", codex_package_name: "@openai/codex", codex_version: "0.155.0", copilot_sdk_package_name: "@github/copilot-sdk", copilot_sdk_version: "1.0.0-beta.8", copilot_cli_package_name: "@github/copilot", copilot_cli_version: "1.0.80", deepseek_harness_version: "0.1.1-rc.2", deepseek_harness_packages: ["@deepseek-ai/dsh-agent", "@deepseek-ai/dsh-agent-instructions", "@deepseek-ai/dsh-agent-loop", "@deepseek-ai/dsh-agent-spine-demo", "@deepseek-ai/dsh-anonymous-user-id", "@deepseek-ai/dsh-atomic-write", "@deepseek-ai/dsh-attachment", "@deepseek-ai/dsh-brand", "@deepseek-ai/dsh-code-runtime", "@deepseek-ai/dsh-credentials", "@deepseek-ai/dsh-fs", "@deepseek-ai/dsh-goal", "@deepseek-ai/dsh-goal-round-driver", "@deepseek-ai/dsh-home-paths", "@deepseek-ai/dsh-invariants", "@deepseek-ai/dsh-jobs", "@deepseek-ai/dsh-jobs-local", "@deepseek-ai/dsh-launch-environment", "@deepseek-ai/dsh-llm", "@deepseek-ai/dsh-llm-deepseek", "@deepseek-ai/dsh-llm-retry", "@deepseek-ai/dsh-output-retention", "@deepseek-ai/dsh-sandbox", "@deepseek-ai/dsh-sandbox-policy", "@deepseek-ai/dsh-scope", "@deepseek-ai/dsh-session", "@deepseek-ai/dsh-session-checkpoint-policy", "@deepseek-ai/dsh-session-persistence", "@deepseek-ai/dsh-session-persistence-jsonl", "@deepseek-ai/dsh-session-projection", "@deepseek-ai/dsh-session-title", "@deepseek-ai/dsh-settings", "@deepseek-ai/dsh-shell", "@deepseek-ai/dsh-shell-env", "@deepseek-ai/dsh-skill", "@deepseek-ai/dsh-skill-filesystem", "@deepseek-ai/dsh-subprocess", "@deepseek-ai/dsh-system-prompt", "@deepseek-ai/dsh-timeout", "@deepseek-ai/dsh-tool-bash", "@deepseek-ai/dsh-tool-goal", "@deepseek-ai/dsh-tool-jobs", "@deepseek-ai/dsh-tool-skill", "@deepseek-ai/dsh-tools", "@deepseek-ai/dsh-typert-protocol", "@deepseek-ai/dsh-user-approval"], deepseek_cordis_package_name: "@deepseek-ai/cordis", deepseek_cordis_version: "4.0.1", deepseek_support_packages: { "@deepseek-ai/cordis-plugin-timer": "1.1.3" }, platforms: { "linux-x64": { package_name: "@openai/codex-linux-x64", target: "x86_64-unknown-linux-musl", binary_name: "codex", sha256: "660e159a49e823ac8e5986cb238f73158ce4b957d40d9292f8de90862644b501" }, "win32-x64": { package_name: "@openai/codex-win32-x64", target: "x86_64-pc-windows-msvc", binary_name: "codex.exe", sha256: "e4c11374bd9de8ad5c3b7617fd4654bb7839901edb0863f9930666863c7a021b" } }, pi_coding_agent_package_name: "@earendil-works/pi-coding-agent", pi_ai_package_name: "@earendil-works/pi-ai", pi_version: "0.85.1", pi_support_packages: ["@earendil-works/pi-agent-core", "@earendil-works/pi-telemetry", "@earendil-works/pi-tui", "@earendil-works/chord"], grok_version: "1.0.30", grok_platforms: { "linux-x64": { package_name: "@xai-official/grok-linux-x64", binary_name: "grok", sha256: "504dd6546ab991b75d36698242875ce461489cd1f8cd84285873cb55bd5c7d54" }, "win32-x64": { package_name: "@xai-official/grok-win32-x64", binary_name: "grok.exe", sha256: "48736d1a4342a801ea26d0ecde4c516b653f791399065adaa55973f83abd8867" } } };
|
|
117
117
|
}
|
|
118
118
|
});
|
|
119
119
|
|
|
@@ -516,7 +516,6 @@ var init_runtime_policy_generated = __esm({
|
|
|
516
516
|
client_close_fill_sync_retry_step_ms: 300,
|
|
517
517
|
leverage_update_debounce_ms: 250,
|
|
518
518
|
post_leverage_update_order_delay_ms: 250,
|
|
519
|
-
ai_control_lookback_fallback_candles: 25,
|
|
520
519
|
takeover_telemetry_error_chars: 500,
|
|
521
520
|
takeover_telemetry_error_name_chars: 120,
|
|
522
521
|
takeover_telemetry_failure_chars: 300,
|
|
@@ -910,7 +909,6 @@ var init_runtime_policy_generated = __esm({
|
|
|
910
909
|
market_data_failure_debug_max_entries: 20,
|
|
911
910
|
request_string_compact_above_chars: 500,
|
|
912
911
|
prompt_preview_chars: 220,
|
|
913
|
-
provider_failure_snapshot_max_age_seconds: 300,
|
|
914
912
|
local_provider_probe_timeout_ms: 2e3,
|
|
915
913
|
preflight_failure_reason_chars: 200,
|
|
916
914
|
host_error_note_chars: 160,
|
|
@@ -960,6 +958,9 @@ var init_runtime_policy_generated = __esm({
|
|
|
960
958
|
tradability: {
|
|
961
959
|
score_min: 1,
|
|
962
960
|
score_max: 10
|
|
961
|
+
},
|
|
962
|
+
defaults: {
|
|
963
|
+
server_ai_max_slippage: 5
|
|
963
964
|
}
|
|
964
965
|
},
|
|
965
966
|
agent_cli: {
|
|
@@ -983,7 +984,6 @@ var init_runtime_policy_generated = __esm({
|
|
|
983
984
|
],
|
|
984
985
|
browser_login_verifier_bytes: 32,
|
|
985
986
|
update_failure_reason_max_chars: 160,
|
|
986
|
-
update_directory_failure_reason_max_chars: 120,
|
|
987
987
|
update_plan_max_attempts: 3,
|
|
988
988
|
supervisor_max_failed_release_starts: 2
|
|
989
989
|
},
|
|
@@ -1446,11 +1446,6 @@ var init_runtime_policy_generated = __esm({
|
|
|
1446
1446
|
code_max_length: 24,
|
|
1447
1447
|
dashboard_default_limit: 20
|
|
1448
1448
|
},
|
|
1449
|
-
insights: {
|
|
1450
|
-
client_host: {
|
|
1451
|
-
device_read_default_result_bytes: 2e5
|
|
1452
|
-
}
|
|
1453
|
-
},
|
|
1454
1449
|
agent_tokens: {
|
|
1455
1450
|
browser_login_ttl_seconds: 600,
|
|
1456
1451
|
browser_login_poll_interval_seconds: 2
|
|
@@ -1460,7 +1455,7 @@ var init_runtime_policy_generated = __esm({
|
|
|
1460
1455
|
});
|
|
1461
1456
|
|
|
1462
1457
|
// lib/constants.ts
|
|
1463
|
-
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, READ_STAMP_STEP_BACK_MS, CLOCK_FIELD_DIGITS, BACKOFF_GROWTH_FACTOR, BYTES_PER_KIB, BYTES_PER_MIB, BITS_PER_BYTE, BYTE_MASK, OWNER_ONLY_FILE_MODE, OWNER_ONLY_DIRECTORY_MODE, GROUP_OTHER_PERMISSION_BITS, DECIMAL_RADIX, HEX_RADIX, BASE36_RADIX, BYTE_HEX_DIGITS, UINT32_HEX_DIGITS, RANDOM_FRACTION_PREFIX_LENGTH, PERCENT_SCALE, MIDPOINT_DIVISOR, SQUARE_EXPONENT, FNV1A_32_OFFSET_BASIS, FNV1A_32_PRIME, JSON_INDENT_SPACES, INT32_MIN, INT32_MAX, SET_TIMEOUT_MAX_DELAY_MS, HTTP_STATUS, HTTP_STATUS_MIN, HTTP_STATUS_MAX, HTTP_CLIENT_ERROR_MIN, HTTP_SERVER_ERROR_MIN, AI_COST_ESTIMATE_PERIOD_DAYS, SECONDS_PER_AI_COST_ESTIMATE_PERIOD, DATE_FIELD_DIGITS, EXTERNAL_INFERENCE_LIMITS, NODE_ARGV_COMMAND_ARGS_START, EXIT_CODE_TEMPFAIL, SHA256_INITIAL_STATE, SHA256_ROUND_CONSTANTS, SHA256, UINT64_HIGH_WORD_DIVISOR, CANONICAL_BASE64URL, INFERENCE_ENVELOPE_CRYPTO, EXTERNAL_INFERENCE_SCHEMA_BOUNDS, JSON_RPC_ERROR_CODES, INFERENCE_MCP_SCHEMA_PROBE_MAX_DEPTH, INFERENCE_HOST_PROCESS_LOCK_RECORD_SCHEMA_VERSION, INFERENCE_HOST_RECLAIM_GUARD_CREATE_PASSES, LINUX_PROC_STAT_COMM_TERMINATOR_CHARS, INFERENCE_HOST_RANDOM_BYTES, INFERENCE_OAUTH_TOKEN_MAX_LENGTH, INFERENCE_CREDENTIAL_WINDOWS_NOT_FOUND_EXIT_CODE, MACOS_SECURITY_ITEM_NOT_FOUND_EXIT_CODE, INFERENCE_CREDENTIAL_LABEL_ACCOUNT_KEY_CHARS, INFERENCE_HOST_STABLE_OPERATION_ID_HASH_CHARS, INFERENCE_HOST_DRAIN_PRIORITY, INFERENCE_JOB_CLAIM_SCHEMA_VERSION, INFERENCE_HOST_WINDOWS_TASK_IDENTITY_MAX_CHARS, INFERENCE_HOST_OWNER_ONLY_EXECUTABLE_MODE, WINDOWS_TASKKILL_PROCESS_NOT_FOUND_EXIT_CODE, INFERENCE_HOST_CLI_MAX_SERVICE_POSITIONALS, INFERENCE_HOST_CLI_MAX_COMMAND_POSITIONALS, INFERENCE_HOST_DISPLAY_NAME_MAX_CHARS, INFERENCE_HOST_REVOCATION_CHECKPOINT_MAX_CHARS,
|
|
1458
|
+
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, READ_STAMP_STEP_BACK_MS, CLOCK_FIELD_DIGITS, BACKOFF_GROWTH_FACTOR, BYTES_PER_KIB, BYTES_PER_MIB, BITS_PER_BYTE, BYTE_MASK, OWNER_ONLY_FILE_MODE, OWNER_ONLY_DIRECTORY_MODE, GROUP_OTHER_PERMISSION_BITS, DECIMAL_RADIX, HEX_RADIX, BASE36_RADIX, BYTE_HEX_DIGITS, UINT32_HEX_DIGITS, RANDOM_FRACTION_PREFIX_LENGTH, PERCENT_SCALE, MIDPOINT_DIVISOR, SQUARE_EXPONENT, FNV1A_32_OFFSET_BASIS, FNV1A_32_PRIME, JSON_INDENT_SPACES, INT32_MIN, INT32_MAX, SET_TIMEOUT_MAX_DELAY_MS, POSITION_SIZE_EPSILON, CANDLE_TIMEFRAME_SECONDS, HTTP_STATUS, HTTP_STATUS_MIN, HTTP_STATUS_MAX, HTTP_CLIENT_ERROR_MIN, HTTP_SERVER_ERROR_MIN, AI_COST_ESTIMATE_PERIOD_DAYS, SECONDS_PER_AI_COST_ESTIMATE_PERIOD, DATE_FIELD_DIGITS, EXTERNAL_INFERENCE_LIMITS, NODE_ARGV_COMMAND_ARGS_START, EXIT_CODE_TEMPFAIL, SHA256_INITIAL_STATE, SHA256_ROUND_CONSTANTS, SHA256, UINT64_HIGH_WORD_DIVISOR, CANONICAL_BASE64URL, INFERENCE_ENVELOPE_CRYPTO, EXTERNAL_INFERENCE_SCHEMA_BOUNDS, JSON_RPC_ERROR_CODES, INFERENCE_MCP_SCHEMA_PROBE_MAX_DEPTH, INFERENCE_HOST_PROCESS_LOCK_RECORD_SCHEMA_VERSION, INFERENCE_HOST_RECLAIM_GUARD_CREATE_PASSES, LINUX_PROC_STAT_COMM_TERMINATOR_CHARS, INFERENCE_HOST_RANDOM_BYTES, INFERENCE_OAUTH_TOKEN_MAX_LENGTH, INFERENCE_CREDENTIAL_WINDOWS_NOT_FOUND_EXIT_CODE, MACOS_SECURITY_ITEM_NOT_FOUND_EXIT_CODE, INFERENCE_CREDENTIAL_LABEL_ACCOUNT_KEY_CHARS, INFERENCE_HOST_STABLE_OPERATION_ID_HASH_CHARS, INFERENCE_HOST_DRAIN_PRIORITY, INFERENCE_JOB_CLAIM_SCHEMA_VERSION, INFERENCE_HOST_WINDOWS_TASK_IDENTITY_MAX_CHARS, INFERENCE_HOST_OWNER_ONLY_EXECUTABLE_MODE, WINDOWS_TASKKILL_PROCESS_NOT_FOUND_EXIT_CODE, INFERENCE_HOST_CLI_MAX_SERVICE_POSITIONALS, INFERENCE_HOST_CLI_MAX_COMMAND_POSITIONALS, INFERENCE_HOST_DISPLAY_NAME_MAX_CHARS, INFERENCE_HOST_REVOCATION_CHECKPOINT_MAX_CHARS, INFERENCE_HOST_MODEL_ID_MAX_CHARS, CODEX_RECOVERY_RECEIPT_MAX_CHARS, CODEX_HOSTED_ATTEMPT_PATH_SEGMENTS, CODEX_GUARDIAN_PROCESS_TOKEN_BYTES, CODEX_RATE_LIMIT_EXHAUSTED_PERCENT, INFERENCE_HOST_PROXY_TOKEN_BYTES, GROK_TOOL_SERVER_TOKEN_BYTES, GROK_NATIVE_SESSION_GROUP_NAME_MAX_CHARS, GROK_POLICY_TRANSPORT_MAX_BYTES, EXO_POLICY_MAX_TOOL_ROUNDS, EXO_POLICY_MAX_MODELS, EXO_POLICY_MODEL_NAME_MAX_CHARS, EXO_RUNTIME_VERSION_COMMIT_CHARS, PI_QUALIFIED_MODEL_ID_MAX_CHARS, PI_STRUCTURED_OUTPUT_MAX_DEPTH, PI_STRUCTURED_OUTPUT_MAX_PROPERTIES, INFERENCE_HOST_API_KEY_MIN_CHARS, INFERENCE_HOST_API_KEY_MAX_BYTES, INFERENCE_HOST_API_KEY_IDENTITY_HEX_CHARS, DEEPSEEK_HARNESS_NODE_LTS_MAJOR, DEEPSEEK_HARNESS_NODE_LTS_MIN_MINOR, DEEPSEEK_HARNESS_NODE_CURRENT_MAJOR, PROMPT_FIXED_DIGITS, PROMPT_SIGNIFICANT_DIGITS, PROMPT_NUMBER_MAX_DIGITS, PROMPT_PRICE_INTEGER_THRESHOLD, PROMPT_MARGIN_UTILIZATION_DECIMALS, PROMPT_SYMBOL_MAX_CHARS, PROMPT_PARTIAL_UNIT_ROUND_UP_FRACTION, HALF_UP_ROUNDING_OFFSET, PROMPT_ENTRY_PRICE_MATCH_ABS_TOLERANCE, PROMPT_ENTRY_PRICE_MATCH_REL_TOLERANCE, DECISION_OUTPUT_EXAMPLE_TRADABILITY, INDICATOR_RSI_PERIOD, INDICATOR_ATR_PERIOD, INDICATOR_MACD_FAST_PERIOD, INDICATOR_MACD_SLOW_PERIOD, INDICATOR_MACD_SIGNAL_PERIOD, INDICATOR_BOLLINGER_PERIOD, INDICATOR_BOLLINGER_STD_DEV, INDICATOR_OSCILLATOR_MAX, EMA_SMOOTHING_NUMERATOR, PROMPT_EMA_PERIODS, JSON_UNICODE_ESCAPE_PREFIX_LENGTH, JSON_UNICODE_ESCAPE_HEX_DIGITS, JSON_CONTROL_CHARACTER_MAX, RUNTIME_DEBUG_SNIPPET_CHARS, RUNTIME_DEBUG_PROMPT_SNIPPET_CHARS, RUNTIME_DEBUG_TOKEN_PREFIX_CHARS, RUNTIME_DEBUG_USD_DECIMALS, REVIEW_FAILURE_DETAIL_MAX_CHARS, RUNTIME_LATENCY_SECONDS_DECIMALS, AI_SCHEDULE_CLOCK_PARTS, ESTIMATED_CHARS_PER_TOKEN, PROVIDER_ERROR_RAW_TEXT_MAX_CHARS, AI_CALL_COST_DECIMALS, PROVIDER_DIAGNOSTIC_LIMITS, AI_INVOCATION_CONTRACT_VERSION, AI_INVOCATION_TELEMETRY_LIMITS, PROVIDER_USAGE_DETAIL_LIMITS, HYPERLIQUID_EXCHANGE_SPECIFICATION, HYPERLIQUID_TPSL_BATCH_MIN_ORDERS, HYPERLIQUID_USER_FILLS_PROVIDER_PAGE_CAP, HYPERLIQUID_META_AND_ASSET_CTXS_PARTS, HYPERLIQUID_SIDE_PAIR_LENGTH, HYPERLIQUID_SIGNED_SIZE_MATCH_EXTRA_DECIMALS, HYPERLIQUID_OPEN_ORDERS_MAX_NESTING_DEPTH, ACCOUNT_PAYLOAD_MODE_SEARCH_MAX_DEPTH, HYPERLIQUID_ACCOUNT_ROUNDING_DECIMALS, HYPERLIQUID_UNREALIZED_PNL_ZERO_TOLERANCE, HYPERLIQUID_MAX_DEPLOYER_FEE_SCALE, HYPERLIQUID_DEPLOYER_FEE_SCALE_MULTIPLIER, HYPERLIQUID_GROWTH_MODE_FEE_FACTOR, HYPERLIQUID_ALIGNED_QUOTE_NON_DEPLOYER_FEE_FACTOR, HYPERLIQUID_CLOSE_SIZE_RELATIVE_TOLERANCE, HYPERLIQUID_POSITION_SIZE_MATCH_ABS_TOLERANCE, HYPERLIQUID_POSITION_SIZE_MATCH_RELATIVE_TOLERANCE, HYPERLIQUID_LOT_FLOOR_NOISE_DECIMALS, HYPERLIQUID_RECOVERY_BACKOFF_MAX_EXPONENT, HYPERLIQUID_RECOVERY_JITTER_MIN_FACTOR, HYPERLIQUID_RECOVERY_CONCURRENCY_GROWTH_FACTOR, UUID_BYTES, UUID_HEX_GROUP_ENDS, MSGPACK, CLIENT_RUNTIME_DEFAULT_RETRY_SECONDS, CLIENT_RUNTIME_PROVIDER_ATTEMPT_SUMMARY_MAX_CHARS, CLIENT_RUNTIME_HL_REQUEST_TYPE_MAX_CHARS, CLIENT_RUNTIME_DRAWDOWN_DEBUG_DECIMALS, CLIENT_PROTECTIVE_GROUP_VERSION, CLIENT_PROTECTIVE_TPSL_PAIR_LEGS, CLIENT_PROTECTIVE_FILL_MATCH_ABS_TOLERANCE, CLIENT_PROTECTIVE_FILL_MATCH_REL_TOLERANCE, CLIENT_CLOSE_FILL_EPSILON_ULPS, COPY_TRADING_SIZE_EPSILON, COPY_TRADING_RELATIVE_SIZE_TOLERANCE, COPY_TRADING_NOTIONAL_CAP_TOLERANCE_USD, CLIENT_ACCOUNT_PNL_NONZERO_MIN_USD, RUNTIME_PORTFOLIO_PERIOD_ENTRY_LENGTH, CLIENT_EXCHANGE_RECONCILIATION_MAX_DELAY_MS, RFC1918_172_BLOCK_SECOND_OCTET, AGENT_CLI_TAKEOVER_REQUIRED_EXIT_CODE, EXIT_CODE_INTERRUPTED, EXIT_CODE_SIGNAL_BASE, BYOK_PROVIDER_DISPLAY_ORDER_STEP, TOKENS_PER_MILLION, RENDER_DEBUG_ID_RANDOM_CHARS;
|
|
1464
1459
|
var init_constants = __esm({
|
|
1465
1460
|
"lib/constants.ts"() {
|
|
1466
1461
|
"use strict";
|
|
@@ -1506,6 +1501,24 @@ var init_constants = __esm({
|
|
|
1506
1501
|
INT32_MIN = -(2 ** 31);
|
|
1507
1502
|
INT32_MAX = 2 ** 31 - 1;
|
|
1508
1503
|
SET_TIMEOUT_MAX_DELAY_MS = INT32_MAX;
|
|
1504
|
+
POSITION_SIZE_EPSILON = 1e-5;
|
|
1505
|
+
CANDLE_TIMEFRAME_SECONDS = {
|
|
1506
|
+
"1m": SECONDS_PER_MINUTE,
|
|
1507
|
+
"3m": 3 * SECONDS_PER_MINUTE,
|
|
1508
|
+
"5m": 5 * SECONDS_PER_MINUTE,
|
|
1509
|
+
"15m": 15 * SECONDS_PER_MINUTE,
|
|
1510
|
+
"30m": 30 * SECONDS_PER_MINUTE,
|
|
1511
|
+
"1h": SECONDS_PER_HOUR,
|
|
1512
|
+
"2h": 2 * SECONDS_PER_HOUR,
|
|
1513
|
+
"4h": 4 * SECONDS_PER_HOUR,
|
|
1514
|
+
"6h": 6 * SECONDS_PER_HOUR,
|
|
1515
|
+
"8h": 8 * SECONDS_PER_HOUR,
|
|
1516
|
+
"12h": 12 * SECONDS_PER_HOUR,
|
|
1517
|
+
"1d": SECONDS_PER_DAY,
|
|
1518
|
+
"3d": 3 * SECONDS_PER_DAY,
|
|
1519
|
+
"1w": SECONDS_PER_WEEK,
|
|
1520
|
+
"1M": 30 * SECONDS_PER_DAY
|
|
1521
|
+
};
|
|
1509
1522
|
HTTP_STATUS = {
|
|
1510
1523
|
OK: 200,
|
|
1511
1524
|
ACCEPTED: 202,
|
|
@@ -1773,7 +1786,6 @@ var init_constants = __esm({
|
|
|
1773
1786
|
CLIENT_ID: 512,
|
|
1774
1787
|
HOST_ID: 512
|
|
1775
1788
|
};
|
|
1776
|
-
INFERENCE_HOST_RECOVERY_ATTEMPT_ID_MAX_CHARS = 256;
|
|
1777
1789
|
INFERENCE_HOST_MODEL_ID_MAX_CHARS = 256;
|
|
1778
1790
|
CODEX_RECOVERY_RECEIPT_MAX_CHARS = {
|
|
1779
1791
|
// Adapter request and response IDs.
|
|
@@ -1804,37 +1816,16 @@ var init_constants = __esm({
|
|
|
1804
1816
|
DEEPSEEK_HARNESS_NODE_LTS_MAJOR = 22;
|
|
1805
1817
|
DEEPSEEK_HARNESS_NODE_LTS_MIN_MINOR = 19;
|
|
1806
1818
|
DEEPSEEK_HARNESS_NODE_CURRENT_MAJOR = 24;
|
|
1807
|
-
PROMPT_TIMEFRAME_MINUTES = {
|
|
1808
|
-
"1m": 1,
|
|
1809
|
-
"3m": 3,
|
|
1810
|
-
"5m": 5,
|
|
1811
|
-
"15m": 15,
|
|
1812
|
-
"30m": 30,
|
|
1813
|
-
"1h": 60,
|
|
1814
|
-
"2h": 120,
|
|
1815
|
-
"4h": 240,
|
|
1816
|
-
"6h": 360,
|
|
1817
|
-
"8h": 480,
|
|
1818
|
-
"12h": 720,
|
|
1819
|
-
"1d": 1440,
|
|
1820
|
-
"3d": 4320,
|
|
1821
|
-
"1w": 10080,
|
|
1822
|
-
"1M": 43200
|
|
1823
|
-
};
|
|
1824
1819
|
PROMPT_FIXED_DIGITS = 2;
|
|
1825
1820
|
PROMPT_SIGNIFICANT_DIGITS = 5;
|
|
1826
1821
|
PROMPT_NUMBER_MAX_DIGITS = 100;
|
|
1827
1822
|
PROMPT_PRICE_INTEGER_THRESHOLD = 1e5;
|
|
1828
1823
|
PROMPT_MARGIN_UTILIZATION_DECIMALS = 1;
|
|
1829
1824
|
PROMPT_SYMBOL_MAX_CHARS = 100;
|
|
1830
|
-
PROMPT_POSITION_SIZE_EPSILON = 1e-5;
|
|
1831
|
-
PROMPT_UNIT_SIZE_FALLBACK_USDC = 10;
|
|
1832
1825
|
PROMPT_PARTIAL_UNIT_ROUND_UP_FRACTION = 0.5;
|
|
1833
1826
|
HALF_UP_ROUNDING_OFFSET = 0.5;
|
|
1834
1827
|
PROMPT_ENTRY_PRICE_MATCH_ABS_TOLERANCE = 1e-8;
|
|
1835
1828
|
PROMPT_ENTRY_PRICE_MATCH_REL_TOLERANCE = 1e-6;
|
|
1836
|
-
PROMPT_LOOKBACK_LAST_RESORT_CANDLES = 50;
|
|
1837
|
-
PROMPT_INDICATOR_CANDLE_COUNT_FALLBACK = 250;
|
|
1838
1829
|
DECISION_OUTPUT_EXAMPLE_TRADABILITY = 5;
|
|
1839
1830
|
INDICATOR_RSI_PERIOD = 14;
|
|
1840
1831
|
INDICATOR_ATR_PERIOD = 14;
|
|
@@ -1913,8 +1904,6 @@ var init_constants = __esm({
|
|
|
1913
1904
|
HYPERLIQUID_USER_FILLS_PROVIDER_PAGE_CAP = 2e3;
|
|
1914
1905
|
HYPERLIQUID_META_AND_ASSET_CTXS_PARTS = 2;
|
|
1915
1906
|
HYPERLIQUID_SIDE_PAIR_LENGTH = 2;
|
|
1916
|
-
HYPERLIQUID_MISSING_MAX_LEVERAGE_FALLBACK = 40;
|
|
1917
|
-
HYPERLIQUID_DEFAULT_MARKET_SLIPPAGE_FRACTION = 0.05;
|
|
1918
1907
|
HYPERLIQUID_SIGNED_SIZE_MATCH_EXTRA_DECIMALS = 4;
|
|
1919
1908
|
HYPERLIQUID_OPEN_ORDERS_MAX_NESTING_DEPTH = 32;
|
|
1920
1909
|
ACCOUNT_PAYLOAD_MODE_SEARCH_MAX_DEPTH = 6;
|
|
@@ -4818,7 +4807,7 @@ var init_updater = __esm({
|
|
|
4818
4807
|
try {
|
|
4819
4808
|
await ensureUpdaterPrivateDirectory(paths.root, paths.root, { platform: input.platform });
|
|
4820
4809
|
} catch (error48) {
|
|
4821
|
-
const reason = `update_directory_unsafe: ${error48 instanceof Error ? error48.message.slice(0, runtime_policy_generated_default.agent_cli.
|
|
4810
|
+
const reason = `update_directory_unsafe: ${error48 instanceof Error ? error48.message.slice(0, runtime_policy_generated_default.agent_cli.update_failure_reason_max_chars) : "unknown"}`;
|
|
4822
4811
|
await appendCliUpdateLog(paths, "cli_update_failed", { package_version: target.version, reason });
|
|
4823
4812
|
return { kind: "failed", reason };
|
|
4824
4813
|
}
|
|
@@ -20321,7 +20310,6 @@ var init_runtime_policy_generated2 = __esm({
|
|
|
20321
20310
|
client_close_fill_sync_retry_step_ms: 300,
|
|
20322
20311
|
leverage_update_debounce_ms: 250,
|
|
20323
20312
|
post_leverage_update_order_delay_ms: 250,
|
|
20324
|
-
ai_control_lookback_fallback_candles: 25,
|
|
20325
20313
|
takeover_telemetry_error_chars: 500,
|
|
20326
20314
|
takeover_telemetry_error_name_chars: 120,
|
|
20327
20315
|
takeover_telemetry_failure_chars: 300,
|
|
@@ -20715,7 +20703,6 @@ var init_runtime_policy_generated2 = __esm({
|
|
|
20715
20703
|
market_data_failure_debug_max_entries: 20,
|
|
20716
20704
|
request_string_compact_above_chars: 500,
|
|
20717
20705
|
prompt_preview_chars: 220,
|
|
20718
|
-
provider_failure_snapshot_max_age_seconds: 300,
|
|
20719
20706
|
local_provider_probe_timeout_ms: 2e3,
|
|
20720
20707
|
preflight_failure_reason_chars: 200,
|
|
20721
20708
|
host_error_note_chars: 160,
|
|
@@ -20765,6 +20752,9 @@ var init_runtime_policy_generated2 = __esm({
|
|
|
20765
20752
|
tradability: {
|
|
20766
20753
|
score_min: 1,
|
|
20767
20754
|
score_max: 10
|
|
20755
|
+
},
|
|
20756
|
+
defaults: {
|
|
20757
|
+
server_ai_max_slippage: 5
|
|
20768
20758
|
}
|
|
20769
20759
|
},
|
|
20770
20760
|
agent_cli: {
|
|
@@ -20788,7 +20778,6 @@ var init_runtime_policy_generated2 = __esm({
|
|
|
20788
20778
|
],
|
|
20789
20779
|
browser_login_verifier_bytes: 32,
|
|
20790
20780
|
update_failure_reason_max_chars: 160,
|
|
20791
|
-
update_directory_failure_reason_max_chars: 120,
|
|
20792
20781
|
update_plan_max_attempts: 3,
|
|
20793
20782
|
supervisor_max_failed_release_starts: 2
|
|
20794
20783
|
},
|
|
@@ -21251,11 +21240,6 @@ var init_runtime_policy_generated2 = __esm({
|
|
|
21251
21240
|
code_max_length: 24,
|
|
21252
21241
|
dashboard_default_limit: 20
|
|
21253
21242
|
},
|
|
21254
|
-
insights: {
|
|
21255
|
-
client_host: {
|
|
21256
|
-
device_read_default_result_bytes: 2e5
|
|
21257
|
-
}
|
|
21258
|
-
},
|
|
21259
21243
|
agent_tokens: {
|
|
21260
21244
|
browser_login_ttl_seconds: 600,
|
|
21261
21245
|
browser_login_poll_interval_seconds: 2
|
|
@@ -32670,7 +32654,7 @@ async function logoutCodexSubscription(options) {
|
|
|
32670
32654
|
await session.close();
|
|
32671
32655
|
}
|
|
32672
32656
|
}
|
|
32673
|
-
var CODEX_INFERENCE_PERMISSION_PROFILE, CODEX_AGENT_PERMISSION_PROFILE, CODEX_REASONING_CONTENT_MAX_UTF8_BYTES, CODEX_REASONING_SUMMARY_MAX_UTF8_BYTES, HOST_RUNTIME_POLICY, CODEX_ACCOUNT_PLAN_TYPES, CODEX_AGENT_DYNAMIC_TOOLS, CodexAppServerError, objectOrNull, finiteToken, tokenUsageFromBreakdown, usageFromNotification, validPlanType, nonnegativeSafeIntegerOrNull, nonnegativeFiniteNumberOrNull, parseRateLimitWindow, RATE_LIMIT_REACHED_TYPES, DEFAULT_CODEX_QUOTA_COOLDOWN_MS, MAX_CODEX_QUOTA_COOLDOWN_MS, CODEX_TRANSIENT_RATE_LIMIT_COOLDOWN_MS, parseCreditsSnapshot, codexCreditsAvailable, parseRateLimitSnapshot, codexRateLimitRetryAtMs, codexAccountRateLimitReached, forbiddenMethod, forbiddenTerminalItem, forbiddenAgentMethod, forbiddenAgentTerminalItem, createCodexAgentToolSpecs, classifyCodexTurnFailure, scrubbedCodexEnvironment, killWindowsProcessTree, appServerArgs, GUARDIAN_SCRIPT, WINDOWS_RECEIPT_REPLACE_ERROR_CODES, MAX_RETIRED_RESPONSE_IDS, LATE_RESPONSE_SAFE_METHODS, replaceCodexGuardianReceiptFile, writeCodexGuardianSpawnIntent, parseGuardianReceipt, readCodexGuardianReceipt, waitForCodexGuardianState, defaultSpawn, CodexAppServerSession;
|
|
32657
|
+
var CODEX_INFERENCE_PERMISSION_PROFILE, CODEX_AGENT_PERMISSION_PROFILE, CODEX_REASONING_CONTENT_MAX_UTF8_BYTES, CODEX_REASONING_SUMMARY_MAX_UTF8_BYTES, utf8Prefix, reasoningContentPrefix, HOST_RUNTIME_POLICY, CODEX_ACCOUNT_PLAN_TYPES, CODEX_AGENT_DYNAMIC_TOOLS, CodexAppServerError, objectOrNull, finiteToken, tokenUsageFromBreakdown, usageFromNotification, validPlanType, nonnegativeSafeIntegerOrNull, nonnegativeFiniteNumberOrNull, parseRateLimitWindow, RATE_LIMIT_REACHED_TYPES, DEFAULT_CODEX_QUOTA_COOLDOWN_MS, MAX_CODEX_QUOTA_COOLDOWN_MS, CODEX_TRANSIENT_RATE_LIMIT_COOLDOWN_MS, parseCreditsSnapshot, codexCreditsAvailable, parseRateLimitSnapshot, codexRateLimitRetryAtMs, codexAccountRateLimitReached, forbiddenMethod, forbiddenTerminalItem, forbiddenAgentMethod, forbiddenAgentTerminalItem, createCodexAgentToolSpecs, classifyCodexTurnFailure, scrubbedCodexEnvironment, killWindowsProcessTree, appServerArgs, GUARDIAN_SCRIPT, WINDOWS_RECEIPT_REPLACE_ERROR_CODES, MAX_RETIRED_RESPONSE_IDS, LATE_RESPONSE_SAFE_METHODS, replaceCodexGuardianReceiptFile, writeCodexGuardianSpawnIntent, parseGuardianReceipt, readCodexGuardianReceipt, waitForCodexGuardianState, defaultSpawn, CodexAppServerSession;
|
|
32674
32658
|
var init_codex_app_server = __esm({
|
|
32675
32659
|
"lib/inference-host/codex-app-server.ts"() {
|
|
32676
32660
|
"use strict";
|
|
@@ -32684,6 +32668,18 @@ var init_codex_app_server = __esm({
|
|
|
32684
32668
|
CODEX_AGENT_PERMISSION_PROFILE = "vtx_inference_agent";
|
|
32685
32669
|
CODEX_REASONING_CONTENT_MAX_UTF8_BYTES = EXTERNAL_INFERENCE_LIMITS.max_reasoning_content_utf8_bytes;
|
|
32686
32670
|
CODEX_REASONING_SUMMARY_MAX_UTF8_BYTES = EXTERNAL_INFERENCE_LIMITS.max_reasoning_summary_utf8_bytes;
|
|
32671
|
+
utf8Prefix = (text, maxBytes) => {
|
|
32672
|
+
if (Buffer.byteLength(text) <= maxBytes) return text;
|
|
32673
|
+
let prefix = "";
|
|
32674
|
+
let bytes3 = 0;
|
|
32675
|
+
for (const character of text) {
|
|
32676
|
+
bytes3 += Buffer.byteLength(character);
|
|
32677
|
+
if (bytes3 > maxBytes) break;
|
|
32678
|
+
prefix += character;
|
|
32679
|
+
}
|
|
32680
|
+
return prefix;
|
|
32681
|
+
};
|
|
32682
|
+
reasoningContentPrefix = (text) => utf8Prefix(text, CODEX_REASONING_CONTENT_MAX_UTF8_BYTES);
|
|
32687
32683
|
HOST_RUNTIME_POLICY = runtime_policy_generated_default.external_inference.host_runtime;
|
|
32688
32684
|
CODEX_ACCOUNT_PLAN_TYPES = [
|
|
32689
32685
|
"free",
|
|
@@ -38607,25 +38603,23 @@ var init_runner = __esm({
|
|
|
38607
38603
|
`${adapterId} response text exceeds the immutable provider-response UTF-8 byte limit.`
|
|
38608
38604
|
);
|
|
38609
38605
|
}
|
|
38610
|
-
|
|
38611
|
-
|
|
38612
|
-
|
|
38613
|
-
|
|
38614
|
-
);
|
|
38615
|
-
}
|
|
38616
|
-
if (outputContract.providerReasoningSummarySupported && outputContract.providerReasoningSummaryMaxUtf8Bytes !== null && adapterResult.reasoningSummary !== null && Buffer.byteLength(adapterResult.reasoningSummary, "utf8") > outputContract.providerReasoningSummaryMaxUtf8Bytes) {
|
|
38617
|
-
throw new InferenceHostRunnerError(
|
|
38618
|
-
"output_schema_reasoning_summary_too_large",
|
|
38619
|
-
"Codex reasoning summary exceeds the immutable provider-response UTF-8 byte limit."
|
|
38620
|
-
);
|
|
38621
|
-
}
|
|
38606
|
+
const reasoningWithin = (text, maxBytes) => {
|
|
38607
|
+
const prefix = text === null || maxBytes === null ? text : utf8Prefix(text, maxBytes);
|
|
38608
|
+
return prefix?.trim() ? prefix : null;
|
|
38609
|
+
};
|
|
38622
38610
|
const providerResponse = {
|
|
38623
38611
|
schema_version: outputContract.providerResponseSchemaVersion,
|
|
38624
38612
|
response_text: adapterResult.text,
|
|
38625
38613
|
finish_reason: finishReason,
|
|
38626
38614
|
refusal_status: refusalStatus,
|
|
38627
|
-
...outputContract.providerReasoningContentSupported ? { reasoning_content:
|
|
38628
|
-
|
|
38615
|
+
...outputContract.providerReasoningContentSupported ? { reasoning_content: reasoningWithin(
|
|
38616
|
+
adapterResult.reasoningContent,
|
|
38617
|
+
outputContract.providerReasoningContentMaxUtf8Bytes
|
|
38618
|
+
) } : {},
|
|
38619
|
+
...outputContract.providerReasoningSummarySupported ? { reasoning_summary: reasoningWithin(
|
|
38620
|
+
adapterResult.reasoningSummary,
|
|
38621
|
+
outputContract.providerReasoningSummaryMaxUtf8Bytes
|
|
38622
|
+
) } : {}
|
|
38629
38623
|
};
|
|
38630
38624
|
validateOutput(outputContract.providerResponseSchema, providerResponse);
|
|
38631
38625
|
sealedPlaintext = JSON.stringify(providerResponse);
|
|
@@ -40395,7 +40389,7 @@ var init_codex_adapter = __esm({
|
|
|
40395
40389
|
]);
|
|
40396
40390
|
recoveryCheckpointSchema = external_exports.strictObject({
|
|
40397
40391
|
schemaVersion: external_exports.literal("vtx_codex_attempt_recovery_v1"),
|
|
40398
|
-
attemptId:
|
|
40392
|
+
attemptId: identifierSchema,
|
|
40399
40393
|
inputSha256: external_exports.string().regex(/^[0-9a-f]{64}$/u),
|
|
40400
40394
|
codexHome: external_exports.string().min(1).max(CODEX_RECOVERY_RECEIPT_MAX_CHARS.PATH),
|
|
40401
40395
|
resourceRoot: external_exports.string().min(1).max(CODEX_RECOVERY_RECEIPT_MAX_CHARS.PATH),
|
|
@@ -40583,7 +40577,7 @@ var init_codex_adapter = __esm({
|
|
|
40583
40577
|
};
|
|
40584
40578
|
};
|
|
40585
40579
|
validateAttemptInput = (input) => {
|
|
40586
|
-
if (
|
|
40580
|
+
if (!identifierSchema.safeParse(input.attemptId).success || !/^[0-9a-f]{64}$/u.test(input.inputSha256)) {
|
|
40587
40581
|
throw new CodexAppServerError({
|
|
40588
40582
|
message: "Codex attempt identity is invalid.",
|
|
40589
40583
|
category: "adapter",
|
|
@@ -41242,7 +41236,7 @@ var init_codex_adapter = __esm({
|
|
|
41242
41236
|
return promise2;
|
|
41243
41237
|
}
|
|
41244
41238
|
async acknowledgeAttempt(attemptId) {
|
|
41245
|
-
if (
|
|
41239
|
+
if (!identifierSchema.safeParse(attemptId).success) {
|
|
41246
41240
|
throw new CodexAppServerError({
|
|
41247
41241
|
message: "Codex attempt identity is invalid.",
|
|
41248
41242
|
category: "adapter",
|
|
@@ -44207,7 +44201,7 @@ var init_pi_adapter = __esm({
|
|
|
44207
44201
|
if (!agent) input.onTerminalDispatchOutcome?.("confirmed_dispatched");
|
|
44208
44202
|
return { thread, tools, turn: {
|
|
44209
44203
|
text,
|
|
44210
|
-
reasoningContent: reasoning ?
|
|
44204
|
+
reasoningContent: reasoning ? reasoningContentPrefix(reasoning) : null,
|
|
44211
44205
|
reasoningSummary: null,
|
|
44212
44206
|
requestedModel: input.requestedModel,
|
|
44213
44207
|
effectiveModel,
|
|
@@ -45549,7 +45543,7 @@ var init_grok_state = __esm({
|
|
|
45549
45543
|
// lib/inference-host/grok-adapter.ts
|
|
45550
45544
|
import { randomUUID as randomUUID9 } from "node:crypto";
|
|
45551
45545
|
import { join as join13 } from "node:path";
|
|
45552
|
-
var HOST_RUNTIME_POLICY10, unwrap, list, nonempty, integer2, grokModelCapabilities, grokPromptUsage, agentProfile, modelState, assertSelection, GrokBuildAdapter;
|
|
45546
|
+
var HOST_RUNTIME_POLICY10, unwrap, list, nonempty, integer2, grokModelCapabilities, appendGrokThought, grokPromptUsage, agentProfile, modelState, assertSelection, GrokBuildAdapter;
|
|
45553
45547
|
var init_grok_adapter = __esm({
|
|
45554
45548
|
"lib/inference-host/grok-adapter.ts"() {
|
|
45555
45549
|
"use strict";
|
|
@@ -45593,6 +45587,11 @@ var init_grok_adapter = __esm({
|
|
|
45593
45587
|
isDefault: state2.currentModelId === model.modelId
|
|
45594
45588
|
}];
|
|
45595
45589
|
});
|
|
45590
|
+
appendGrokThought = (thought, chunk) => {
|
|
45591
|
+
if (!thought.open) return thought;
|
|
45592
|
+
const text = reasoningContentPrefix(thought.text + chunk);
|
|
45593
|
+
return { text, open: text.length === thought.text.length + chunk.length };
|
|
45594
|
+
};
|
|
45596
45595
|
grokPromptUsage = (value, expectedModel) => {
|
|
45597
45596
|
const usage = grokObject(value);
|
|
45598
45597
|
if (usage.usageIsIncomplete === true) throw new Error("grok_usage_incomplete");
|
|
@@ -45786,7 +45785,7 @@ var init_grok_adapter = __esm({
|
|
|
45786
45785
|
let session = null;
|
|
45787
45786
|
let sessionId = agent?.durableThread?.threadId ?? null;
|
|
45788
45787
|
let retained = Boolean(agent?.durableThread);
|
|
45789
|
-
let thought = "";
|
|
45788
|
+
let thought = { text: "", open: true };
|
|
45790
45789
|
let firstToken = null;
|
|
45791
45790
|
let activeThread = null;
|
|
45792
45791
|
try {
|
|
@@ -45925,7 +45924,7 @@ var init_grok_adapter = __esm({
|
|
|
45925
45924
|
const text2 = grokObject(update.content).text;
|
|
45926
45925
|
if (typeof text2 !== "string") return;
|
|
45927
45926
|
if (update.sessionUpdate === "agent_message_chunk" && firstToken === null) firstToken = Date.now() - startedAt;
|
|
45928
|
-
if (update.sessionUpdate === "agent_thought_chunk"
|
|
45927
|
+
if (update.sessionUpdate === "agent_thought_chunk") thought = appendGrokThought(thought, text2);
|
|
45929
45928
|
};
|
|
45930
45929
|
const promptId = randomUUID9();
|
|
45931
45930
|
const result = await session.request("session/prompt", {
|
|
@@ -45952,7 +45951,7 @@ var init_grok_adapter = __esm({
|
|
|
45952
45951
|
provider?.onTerminalDispatchOutcome?.("confirmed_dispatched");
|
|
45953
45952
|
return { thread: effectiveThread, turn: {
|
|
45954
45953
|
text,
|
|
45955
|
-
reasoningContent: thought || null,
|
|
45954
|
+
reasoningContent: thought.text || null,
|
|
45956
45955
|
reasoningSummary: null,
|
|
45957
45956
|
requestedModel: input.requestedModel,
|
|
45958
45957
|
effectiveModel: actualModel,
|
|
@@ -51759,7 +51758,7 @@ Waiting for approval...
|
|
|
51759
51758
|
"started_at"
|
|
51760
51759
|
];
|
|
51761
51760
|
if (Object.keys(record5).sort().join("\0") !== exactKeys2.sort().join("\0") || record5.schema_version !== "vtx_inference_service_recovery_v1" || record5.phase !== "prepared" && record5.phase !== "reconciled" || typeof record5.transaction_id !== "string" || !/^[0-9a-f-]{36}$/u.test(record5.transaction_id) || typeof record5.instance_name !== "string" || typeof record5.manifest_generation !== "string" || typeof record5.restore_desired_running !== "boolean" || typeof record5.recovery_backup_path !== "string" || typeof record5.recovery_backup_sha256 !== "string" || !/^[0-9a-f]{64}$/u.test(record5.recovery_backup_sha256) || !Array.isArray(record5.cleanup_confirmed_attempt_ids) || record5.cleanup_confirmed_attempt_ids.some(
|
|
51762
|
-
(attemptId) =>
|
|
51761
|
+
(attemptId) => !identifierSchema.safeParse(attemptId).success
|
|
51763
51762
|
) || new Set(record5.cleanup_confirmed_attempt_ids).size !== record5.cleanup_confirmed_attempt_ids.length || [...record5.cleanup_confirmed_attempt_ids].sort().join("\0") !== record5.cleanup_confirmed_attempt_ids.join("\0") || typeof record5.started_at !== "string" || !Number.isFinite(Date.parse(record5.started_at)) || new Date(record5.started_at).toISOString() !== record5.started_at) {
|
|
51764
51763
|
throw new Error("Inference-host service recovery transaction is invalid.");
|
|
51765
51764
|
}
|
|
@@ -53996,7 +53995,7 @@ var init_network_debug = __esm({
|
|
|
53996
53995
|
return runtimeProviderFailureDebugEntries.slice();
|
|
53997
53996
|
};
|
|
53998
53997
|
getLatestRuntimeProviderFailureTelemetrySnapshot = (options = {}) => {
|
|
53999
|
-
const maxAgeMs =
|
|
53998
|
+
const maxAgeMs = runtime_policy_generated_default2.trading.engine.client_runtime.provider_failure_diagnostics_max_age_milliseconds;
|
|
54000
53999
|
const label2 = typeof options.label === "string" && options.label.trim() ? options.label.trim().toLowerCase() : null;
|
|
54001
54000
|
const traceId = typeof options.traceId === "string" && options.traceId.trim() ? options.traceId.trim() : null;
|
|
54002
54001
|
const now = Date.now();
|
|
@@ -87283,7 +87282,7 @@ var init_hyperliquid_signer = __esm({
|
|
|
87283
87282
|
});
|
|
87284
87283
|
|
|
87285
87284
|
// lib/runtime/hyperliquid-client.ts
|
|
87286
|
-
var HyperliquidExchangeRejectionError, durableMutationAuthorityArgs, assertFreshPreparedExecutionContext, normalizeSymbol, HYPERLIQUID_NONCE_STORAGE_KEY, HYPERLIQUID_NONCE_LOCK_NAME, lastGeneratedNonce, readBrowserStoredHyperliquidNonce, writeBrowserStoredHyperliquidNonce, browserNonceCoordinator, allocateHyperliquidNonce, hostNonceAllocator, allocateActionNonce, generateHyperliquidNonce, normalizeDecimalString, HYPERLIQUID_PRICE_SIGNIFICANT_FIGURES, HYPERLIQUID_INTEGER_PRICE_MINIMUM, shortestDecimalParts, formatHyperliquidPerpPriceGrid, formatHyperliquidTriggerPriceWire, hyperliquidOrderPriceRounding, formatHyperliquidOrderPriceWire, countSignificantDigits, countDecimalPlaces, validateHyperliquidPerpPriceWire, validateHyperliquidSizeWire, formatSizeWire, inferApiUrl, inferIsTestnet, postHyperliquidInfoRead, postHyperliquidInfo, fetchBrowserHyperliquidInfoPayload, fetchBrowserHyperliquidInfoRead, fetchBrowserHyperliquidInfoText, toFiniteNumber, OPEN_ORDER_NUMERIC_STRING, OPEN_ORDER_ID_STRING, parseCanonicalOpenOrderId, parseOpenOrderFiniteNumber, parseOpenOrderPositiveNumber, parseOpenOrderPresentationNumber, readOpenOrderField, firstFiniteNumber, parseFundingUsdcFromInfoPosition, isExchangeIsolatedOnly, computeHip3AssetId, getPerpDexIndexMap, buildAssetInfosFromMetaResponse, requireWalletAddress, assertPositiveInteger, assertPositiveNumber, normalizeOrderSide, normalizeHyperliquidClientOrderId, resolveAssets, findResolvedAsset, normalizeExecutionAssetMetadata, resolveHyperliquidAsset, resolveHyperliquidAssetIndex, decimalUnits, quantizeHyperliquidOrderSizeValue, hyperliquidSignedSizeMatchesRequestedSize, finitePositive, readDevicePrivateExecutionContext, quantizeHyperliquidOrderSize, fetchBrowserAvailableAssets, fetchBrowserAllMids, fetchBrowserSymbolMidPrice, fetchBrowserOpenOrders, parseCanonicalHyperliquidOrderStatusEvidence, fetchBrowserOrderStatusEvidence, fetchBrowserUserRole, fetchBrowserAccountState, fetchBrowserPosition, buildHyperliquidOrderWire, buildHyperliquidTriggerOrderWire, signHyperliquidPayload, signHyperliquidPreparedAction, buildHyperliquidCancelPayload, buildHyperliquidUpdateLeveragePayload, buildHyperliquidMarketOrderPayload, buildHyperliquidLimitOrderPayload, buildHyperliquidTriggerOrderPayload, buildHyperliquidOrderBatchPayload, buildHyperliquidModifyOrderPayload, extractHyperliquidExchangeError, resolveHyperliquidTriggerAcknowledgements, isDefinitiveHyperliquidExchangeResponse, extractDefinitiveHyperliquidOrderId, CANONICAL_POSITIVE_DECIMAL_PATTERN, extractCanonicalHyperliquidOrderStateAcknowledgement, extractCanonicalHyperliquidOrderStateAcknowledgements, extractCanonicalHyperliquidFilledOrderAcknowledgement, extractDefinitiveHyperliquidOrderMemberResults, buildHyperliquidOrderDiagnostics, loadClientExecutionReferenceEvidence, sha256Hex, extractSignedPayloadClientOrderId, extractSignedPayloadMutationCorrelation, assertDurableMutationMatchesSignedAction, exchangeRejectionReason, exchangeActionPriority, submitHyperliquidExchangePayload;
|
|
87285
|
+
var HyperliquidExchangeRejectionError, durableMutationAuthorityArgs, assertFreshPreparedExecutionContext, normalizeSymbol, HYPERLIQUID_NONCE_STORAGE_KEY, HYPERLIQUID_NONCE_LOCK_NAME, lastGeneratedNonce, readBrowserStoredHyperliquidNonce, writeBrowserStoredHyperliquidNonce, browserNonceCoordinator, allocateHyperliquidNonce, hostNonceAllocator, allocateActionNonce, generateHyperliquidNonce, normalizeDecimalString, HYPERLIQUID_PRICE_SIGNIFICANT_FIGURES, HYPERLIQUID_INTEGER_PRICE_MINIMUM, shortestDecimalParts, formatHyperliquidPerpPriceGrid, formatHyperliquidTriggerPriceWire, hyperliquidOrderPriceRounding, formatHyperliquidOrderPriceWire, countSignificantDigits, countDecimalPlaces, validateHyperliquidPerpPriceWire, validateHyperliquidSizeWire, formatSizeWire, inferApiUrl, inferIsTestnet, postHyperliquidInfoRead, postHyperliquidInfo, fetchBrowserHyperliquidInfoPayload, fetchBrowserHyperliquidInfoRead, fetchBrowserHyperliquidInfoText, coerceMarketMaxLeverage, toFiniteNumber, OPEN_ORDER_NUMERIC_STRING, OPEN_ORDER_ID_STRING, parseCanonicalOpenOrderId, parseOpenOrderFiniteNumber, parseOpenOrderPositiveNumber, parseOpenOrderPresentationNumber, readOpenOrderField, firstFiniteNumber, parseFundingUsdcFromInfoPosition, isExchangeIsolatedOnly, computeHip3AssetId, getPerpDexIndexMap, buildAssetInfosFromMetaResponse, requireWalletAddress, assertPositiveInteger, assertPositiveNumber, normalizeOrderSide, normalizeHyperliquidClientOrderId, resolveAssets, findResolvedAsset, normalizeExecutionAssetMetadata, resolveHyperliquidAsset, resolveHyperliquidAssetIndex, decimalUnits, quantizeHyperliquidOrderSizeValue, hyperliquidSignedSizeMatchesRequestedSize, finitePositive, readDevicePrivateExecutionContext, quantizeHyperliquidOrderSize, fetchBrowserAvailableAssets, fetchBrowserAllMids, fetchBrowserSymbolMidPrice, fetchBrowserOpenOrders, parseCanonicalHyperliquidOrderStatusEvidence, fetchBrowserOrderStatusEvidence, fetchBrowserUserRole, fetchBrowserAccountState, fetchBrowserPosition, buildHyperliquidOrderWire, buildHyperliquidTriggerOrderWire, signHyperliquidPayload, signHyperliquidPreparedAction, buildHyperliquidCancelPayload, buildHyperliquidUpdateLeveragePayload, buildHyperliquidMarketOrderPayload, buildHyperliquidLimitOrderPayload, buildHyperliquidTriggerOrderPayload, buildHyperliquidOrderBatchPayload, buildHyperliquidModifyOrderPayload, extractHyperliquidExchangeError, resolveHyperliquidTriggerAcknowledgements, isDefinitiveHyperliquidExchangeResponse, extractDefinitiveHyperliquidOrderId, CANONICAL_POSITIVE_DECIMAL_PATTERN, extractCanonicalHyperliquidOrderStateAcknowledgement, extractCanonicalHyperliquidOrderStateAcknowledgements, extractCanonicalHyperliquidFilledOrderAcknowledgement, extractDefinitiveHyperliquidOrderMemberResults, buildHyperliquidOrderDiagnostics, loadClientExecutionReferenceEvidence, sha256Hex, extractSignedPayloadClientOrderId, extractSignedPayloadMutationCorrelation, assertDurableMutationMatchesSignedAction, exchangeRejectionReason, exchangeActionPriority, submitHyperliquidExchangePayload;
|
|
87287
87286
|
var init_hyperliquid_client = __esm({
|
|
87288
87287
|
"lib/runtime/hyperliquid-client.ts"() {
|
|
87289
87288
|
"use strict";
|
|
@@ -87561,6 +87560,16 @@ var init_hyperliquid_client = __esm({
|
|
|
87561
87560
|
if (typeof bodyText !== "string") throw new Error("Hyperliquid returned no response text.");
|
|
87562
87561
|
return bodyText;
|
|
87563
87562
|
};
|
|
87563
|
+
coerceMarketMaxLeverage = (value, symbol2) => {
|
|
87564
|
+
if (value === null || value === void 0 || value === "" || value === 0 || typeof value === "boolean") {
|
|
87565
|
+
return 1;
|
|
87566
|
+
}
|
|
87567
|
+
const parsed = typeof value === "number" ? value : typeof value === "string" && /^\s*[+-]?\d+\s*$/.test(value) ? Number(value) : Number.NaN;
|
|
87568
|
+
if (!Number.isFinite(parsed)) {
|
|
87569
|
+
throw new Error(`Hyperliquid metadata for ${symbol2} has invalid maxLeverage.`);
|
|
87570
|
+
}
|
|
87571
|
+
return Math.max(1, Math.trunc(parsed));
|
|
87572
|
+
};
|
|
87564
87573
|
toFiniteNumber = (value, fallback = 0) => {
|
|
87565
87574
|
const parsed = typeof value === "number" ? value : Number(value);
|
|
87566
87575
|
return Number.isFinite(parsed) ? parsed : fallback;
|
|
@@ -87704,7 +87713,7 @@ var init_hyperliquid_client = __esm({
|
|
|
87704
87713
|
index_in_meta: indexInMeta,
|
|
87705
87714
|
perp_dex_index: options.perpDexIndex,
|
|
87706
87715
|
market_type: "perp",
|
|
87707
|
-
max_leverage:
|
|
87716
|
+
max_leverage: coerceMarketMaxLeverage(asset.maxLeverage, symbol2),
|
|
87708
87717
|
sz_decimals: szDecimals,
|
|
87709
87718
|
margin_mode: typeof asset.marginMode === "string" && asset.marginMode.trim() ? asset.marginMode.trim() : null,
|
|
87710
87719
|
only_isolated: asset.onlyIsolated === true,
|
|
@@ -87774,7 +87783,7 @@ var init_hyperliquid_client = __esm({
|
|
|
87774
87783
|
}
|
|
87775
87784
|
return {
|
|
87776
87785
|
asset_index: resolvedAssetId,
|
|
87777
|
-
max_leverage:
|
|
87786
|
+
max_leverage: coerceMarketMaxLeverage(asset.max_leverage, symbol2),
|
|
87778
87787
|
sz_decimals: Number(asset.sz_decimals),
|
|
87779
87788
|
margin_mode: asset.margin_mode ?? null,
|
|
87780
87789
|
only_isolated: asset.only_isolated === true
|
|
@@ -87792,7 +87801,7 @@ var init_hyperliquid_client = __esm({
|
|
|
87792
87801
|
}
|
|
87793
87802
|
return {
|
|
87794
87803
|
asset_index: resolvedAssetId,
|
|
87795
|
-
max_leverage:
|
|
87804
|
+
max_leverage: coerceMarketMaxLeverage(metadata.max_leverage, symbol2),
|
|
87796
87805
|
sz_decimals: Number(metadata.sz_decimals),
|
|
87797
87806
|
margin_mode: metadata.margin_mode ?? null,
|
|
87798
87807
|
only_isolated: metadata.only_isolated === true
|
|
@@ -88590,7 +88599,7 @@ var init_hyperliquid_client = __esm({
|
|
|
88590
88599
|
input = { ...input, publicRequestPriority: input.reduceOnly === true ? "trading_reduce" : "trading_execute" };
|
|
88591
88600
|
assertPositiveNumber(input.size, "Hyperliquid order size");
|
|
88592
88601
|
assertPositiveNumber(input.estimatedPrice, "Hyperliquid estimated price");
|
|
88593
|
-
const slippage = input.slippage == null ?
|
|
88602
|
+
const slippage = input.slippage == null ? runtime_policy_generated_default2.trading.defaults.server_ai_max_slippage / PERCENT_SCALE : Number(input.slippage);
|
|
88594
88603
|
if (!Number.isFinite(slippage) || slippage < 0) {
|
|
88595
88604
|
throw new Error("Hyperliquid slippage must be a non-negative number.");
|
|
88596
88605
|
}
|
|
@@ -108163,21 +108172,33 @@ var init_ai_settings_helpers = __esm({
|
|
|
108163
108172
|
}
|
|
108164
108173
|
});
|
|
108165
108174
|
|
|
108175
|
+
// lib/candle-timeframes.ts
|
|
108176
|
+
var candleTimeframeSeconds, compareCandleTimeframes, sortCandleTimeframes;
|
|
108177
|
+
var init_candle_timeframes = __esm({
|
|
108178
|
+
"lib/candle-timeframes.ts"() {
|
|
108179
|
+
"use strict";
|
|
108180
|
+
init_define_VTX_EXO_POLICY();
|
|
108181
|
+
init_define_VTX_GROK_POLICY();
|
|
108182
|
+
init_define_VTX_PI_MODEL_POLICY();
|
|
108183
|
+
init_constants();
|
|
108184
|
+
candleTimeframeSeconds = (timeframe) => Object.prototype.hasOwnProperty.call(CANDLE_TIMEFRAME_SECONDS, timeframe) ? CANDLE_TIMEFRAME_SECONDS[timeframe] : void 0;
|
|
108185
|
+
compareCandleTimeframes = (left, right) => (candleTimeframeSeconds(left) ?? Number.MAX_SAFE_INTEGER) - (candleTimeframeSeconds(right) ?? Number.MAX_SAFE_INTEGER);
|
|
108186
|
+
sortCandleTimeframes = (timeframes) => [...timeframes].sort(compareCandleTimeframes);
|
|
108187
|
+
}
|
|
108188
|
+
});
|
|
108189
|
+
|
|
108166
108190
|
// lib/runtime/candle-prompt-contract.ts
|
|
108167
|
-
var
|
|
108191
|
+
var projectCandlePromptComponent;
|
|
108168
108192
|
var init_candle_prompt_contract = __esm({
|
|
108169
108193
|
"lib/runtime/candle-prompt-contract.ts"() {
|
|
108170
108194
|
"use strict";
|
|
108171
108195
|
init_define_VTX_EXO_POLICY();
|
|
108172
108196
|
init_define_VTX_GROK_POLICY();
|
|
108173
108197
|
init_define_VTX_PI_MODEL_POLICY();
|
|
108174
|
-
|
|
108175
|
-
TIMEFRAME_SECONDS = Object.fromEntries(
|
|
108176
|
-
Object.entries(PROMPT_TIMEFRAME_MINUTES).map(([timeframe, minutes]) => [timeframe, minutes * SECONDS_PER_MINUTE])
|
|
108177
|
-
);
|
|
108198
|
+
init_candle_timeframes();
|
|
108178
108199
|
projectCandlePromptComponent = (input) => {
|
|
108179
|
-
const intervalSeconds =
|
|
108180
|
-
if (
|
|
108200
|
+
const intervalSeconds = candleTimeframeSeconds(input.timeframe);
|
|
108201
|
+
if (intervalSeconds === void 0) {
|
|
108181
108202
|
throw new Error(`Unsupported candle timeframe: ${input.timeframe}`);
|
|
108182
108203
|
}
|
|
108183
108204
|
const asOfTimestamp = Math.trunc(Number(input.asOfTimestamp));
|
|
@@ -113389,6 +113410,7 @@ __export(local_analysis_exports, {
|
|
|
113389
113410
|
buildLocalRuntimePromptArtifacts: () => buildLocalRuntimePromptArtifacts,
|
|
113390
113411
|
buildPromptBehaviorStateArtifacts: () => buildPromptBehaviorStateArtifacts,
|
|
113391
113412
|
buildPromptBehaviorStateValue: () => buildPromptBehaviorStateValue,
|
|
113413
|
+
capacityUnitSize: () => capacityUnitSize,
|
|
113392
113414
|
derivePromptVisibleSections: () => derivePromptVisibleSections,
|
|
113393
113415
|
isClientRuntimeAgentInstructionEmpty: () => isClientRuntimeAgentInstructionEmpty,
|
|
113394
113416
|
isClientRuntimeAiSchedulePaused: () => isClientRuntimeAiSchedulePaused,
|
|
@@ -113403,7 +113425,7 @@ __export(local_analysis_exports, {
|
|
|
113403
113425
|
serverPerpDexScope: () => serverPerpDexScope,
|
|
113404
113426
|
summarizeReviewFailureExplanation: () => summarizeReviewFailureExplanation
|
|
113405
113427
|
});
|
|
113406
|
-
var CYCLE_TIMEOUT_FLOOR_MS, DECISION_SETTLEMENT_RESERVE_MAX_BUDGET_DIVISOR, MIN_AGENT_INSTRUCTION_RETRY_AFTER_MS, PROMPT_PARITY_ERROR_DETAIL_MAX_CHARS, EXTERNAL_INFERENCE_RUNTIME_POLL_INTERVAL_MS, REVIEW_PROVIDER_SERVER_ERROR_STATUSES, TRUNCATION_ELLIPSIS2, normalizeNativeValues, assertPromptModelController, resolveRuntimeReasoningControlsForModel, modelScopedKey, resolveNativeValuesForModel, observeRuntimeCycle, observeAccountState, aiOrderSlippageFraction, serverPerpDexScope, serverBehaviorStateArtifacts, ClientRuntimeAgentInstructionEmpty, isClientRuntimeAgentInstructionEmpty, ClientRuntimeAiSchedulePaused, ClientRuntimeAiScheduleStillActive, isClientRuntimeAiScheduleStillActive, ServerDispatchAccountStateStale, isServerDispatchAccountStateStale, isClientRuntimeAiSchedulePaused, buildClaimedAgentRuntimeCycleResult, resolveRuntimeMarginModePreference, resolveRuntimeLeveragePreference, resolveBooleanSetting2, CLIENT_RUNTIME_LIVE_CONTEXT_UNAVAILABLE_ERRORS, BEHAVIOR_STATE_UNAVAILABLE_ERROR, CriticalBehaviorStateError, clampNumber, resolveExternalInferenceRuntimeTimeoutSeconds, toPositiveFinite3, compactSnippet, hashRuntimeDebugText, EFFECTIVE_INPUT_MANIFEST_SCHEMA_VERSION, PROMPT_ASSEMBLY_DEFINITION_VERSION, RUNTIME_SOURCE_DEFINITION_VERSION, DECISION_INPUT_DEFINITION_VERSION, CONTEXT_ENVELOPE_DEFINITION_VERSION, CLIENT_RUNTIME_SOURCE_VERSION, CLIENT_MAIN_PROMPT_RENDERER, SERVER_MAIN_PROMPT_RENDERER, CLIENT_REVIEW_PROMPT_RENDERER, SERVER_REVIEW_PROMPT_RENDERER, resolveEffectivePromptRuntimeProvenance, canonicalManifestValue, canonicalManifestJson, sha256ManifestHex, effectiveInputComponent, buildEffectiveInputManifest, derivePromptVisibleSections, decodeDecisionTracePayload, extractDecisionSymbolTrace, formatDecisionSymbolTrace, formatActionableDecisionSymbols, normalizePromptSymbols, JSON_MODEL_OUTPUT_FENCE_PATTERN, STRICT_MODEL_OUTPUT_KEYS, currentModelOutputValidationErrors, currentModelOutputMatchesContract, projectCurrentModelDecisionContent, modelOutputValidationError, buildMissingDecisionHold, buildDecisionPlansFromResponse, buildReviewCandidatePlansFromResponse, forceUnavailableSymbolsToHold, extractTemplatePlaceholders, requireReviewPrimaryUserPromptTemplate, containsCompetingBehaviorStateMarkup, containsCompetingMainBehaviorStateMarkup, requireStrategyReviewTemplates, preflightStrategyReviewPromptContract, extractRuntimeReasoningSelection, isAbortError, isRuntimeTimeoutAbortReason, REVIEW_FAILURE_SENSITIVE_DB_TOKENS, REVIEW_FAILURE_SCHEMA_DISCLOSURE_TOKENS, REVIEW_FAILURE_SQL_STATEMENT_PATTERN, REVIEW_FAILURE_TRACEBACK_PATTERN, isSensitiveReviewFailureDetail, summarizeReviewFailureExplanation, buildReviewFailureHoldReason, createAbortError2, settleRuntimeCyclePromise, unwrapRuntimeCycleSettledResult, normalizeDecisionLabel, normalizeRuntimeSymbol, PromptContractFetchError, isLivePromptContextUnavailableError, buildFailClosedHoldResult, buildPromptConstructionFailureResult, buildLivePromptContextUnavailableFailureResult, pickFirstString, normalizeRuntimeStringList, requirePositiveRuntimeLimit, resolveRuntimeTradingScope, normalizeRuntimeProviderAlias, resolveCatalogModelEntry, createClientRuntimeProviderSetupError, createProviderSetupRejectionError, evaluateModelEligibility, extractReviewRuntimeReasoningSelection, isUsableRuntimeSettingsFallback, resolveRuntimeSettings, formatRuntimeDurationMs, normalizeRuntimeTimingNote, appendRuntimeTimingEvent, reportPromptParityTelemetry, resolveLocalRuntimeSecretRequirements, resolveLocalRuntimeSecretProvider, toEpochSeconds, REQUIRED_AI_INDICATOR_KEYS,
|
|
113428
|
+
var CYCLE_TIMEOUT_FLOOR_MS, DECISION_SETTLEMENT_RESERVE_MAX_BUDGET_DIVISOR, MIN_AGENT_INSTRUCTION_RETRY_AFTER_MS, PROMPT_PARITY_ERROR_DETAIL_MAX_CHARS, EXTERNAL_INFERENCE_RUNTIME_POLL_INTERVAL_MS, REVIEW_PROVIDER_SERVER_ERROR_STATUSES, TRUNCATION_ELLIPSIS2, normalizeNativeValues, assertPromptModelController, resolveRuntimeReasoningControlsForModel, modelScopedKey, resolveNativeValuesForModel, observeRuntimeCycle, observeAccountState, aiOrderSlippageFraction, serverPerpDexScope, serverBehaviorStateArtifacts, ClientRuntimeAgentInstructionEmpty, isClientRuntimeAgentInstructionEmpty, ClientRuntimeAiSchedulePaused, ClientRuntimeAiScheduleStillActive, isClientRuntimeAiScheduleStillActive, ServerDispatchAccountStateStale, isServerDispatchAccountStateStale, isClientRuntimeAiSchedulePaused, buildClaimedAgentRuntimeCycleResult, resolveRuntimeMarginModePreference, resolveRuntimeLeveragePreference, resolveBooleanSetting2, CLIENT_RUNTIME_LIVE_CONTEXT_UNAVAILABLE_ERRORS, BEHAVIOR_STATE_UNAVAILABLE_ERROR, CriticalBehaviorStateError, clampNumber, resolveExternalInferenceRuntimeTimeoutSeconds, toPositiveFinite3, compactSnippet, hashRuntimeDebugText, EFFECTIVE_INPUT_MANIFEST_SCHEMA_VERSION, PROMPT_ASSEMBLY_DEFINITION_VERSION, RUNTIME_SOURCE_DEFINITION_VERSION, DECISION_INPUT_DEFINITION_VERSION, CONTEXT_ENVELOPE_DEFINITION_VERSION, CLIENT_RUNTIME_SOURCE_VERSION, CLIENT_MAIN_PROMPT_RENDERER, SERVER_MAIN_PROMPT_RENDERER, CLIENT_REVIEW_PROMPT_RENDERER, SERVER_REVIEW_PROMPT_RENDERER, resolveEffectivePromptRuntimeProvenance, canonicalManifestValue, canonicalManifestJson, sha256ManifestHex, effectiveInputComponent, buildEffectiveInputManifest, derivePromptVisibleSections, decodeDecisionTracePayload, extractDecisionSymbolTrace, formatDecisionSymbolTrace, formatActionableDecisionSymbols, normalizePromptSymbols, JSON_MODEL_OUTPUT_FENCE_PATTERN, STRICT_MODEL_OUTPUT_KEYS, currentModelOutputValidationErrors, currentModelOutputMatchesContract, projectCurrentModelDecisionContent, modelOutputValidationError, buildMissingDecisionHold, buildDecisionPlansFromResponse, buildReviewCandidatePlansFromResponse, forceUnavailableSymbolsToHold, extractTemplatePlaceholders, requireReviewPrimaryUserPromptTemplate, containsCompetingBehaviorStateMarkup, containsCompetingMainBehaviorStateMarkup, requireStrategyReviewTemplates, preflightStrategyReviewPromptContract, extractRuntimeReasoningSelection, isAbortError, isRuntimeTimeoutAbortReason, REVIEW_FAILURE_SENSITIVE_DB_TOKENS, REVIEW_FAILURE_SCHEMA_DISCLOSURE_TOKENS, REVIEW_FAILURE_SQL_STATEMENT_PATTERN, REVIEW_FAILURE_TRACEBACK_PATTERN, isSensitiveReviewFailureDetail, summarizeReviewFailureExplanation, buildReviewFailureHoldReason, createAbortError2, settleRuntimeCyclePromise, unwrapRuntimeCycleSettledResult, normalizeDecisionLabel, normalizeRuntimeSymbol, PromptContractFetchError, isLivePromptContextUnavailableError, buildFailClosedHoldResult, buildPromptConstructionFailureResult, buildLivePromptContextUnavailableFailureResult, pickFirstString, normalizeRuntimeStringList, requirePositiveRuntimeLimit, resolveRuntimeTradingScope, normalizeRuntimeProviderAlias, resolveCatalogModelEntry, createClientRuntimeProviderSetupError, createProviderSetupRejectionError, evaluateModelEligibility, extractReviewRuntimeReasoningSelection, isUsableRuntimeSettingsFallback, resolveRuntimeSettings, formatRuntimeDurationMs, normalizeRuntimeTimingNote, appendRuntimeTimingEvent, reportPromptParityTelemetry, resolveLocalRuntimeSecretRequirements, resolveLocalRuntimeSecretProvider, toEpochSeconds, REQUIRED_AI_INDICATOR_KEYS, sortTradingTimeframes, normalizePromptIdentityTimestamp, resolveCompletedCandleBoundary, normalizeAiIndicatorFlags, getPromptLookback, computeSma, computeEma, computeRsi, computeAtr, computeMacd, computeBollingerBands, getIndicatorValue, buildPromptCandlesComponent, buildPromptCandlesPayload, formatUtcTimestampWithWeekday, formatUtcNowWithWeekday, formatPromptPrice, capacityUnitSize, computePromptUnitsUsedForPosition, buildPromptAccountStatusValue, buildPromptPositionsValue, sanitizePromptSymbol, fillTimeMs, fillSize, normalizeFillSide, normalizeFillOrderId, normalizeFillRiskOrderIdentity, fillStartPosition, fillSortValue, sortFillsAscending, sortFillsDescending, inferEntryFromStartPositionChain, inferEntryFromCurrentPositionSize, calculateCurrentPositionState, calculatePositionEntryTimes, countPositionAdds, latestPositionRiskIncreaseTimeMs, latestPositionRiskIncreaseEvidence, compactPromptRiskIncrease, roundPositiveDecimalHalfUp, compactPromptLastTrade, ENTRY_TRADE_FIELDS, PREVIOUS_DECISION_FIELDS, PREVIOUS_CAMPAIGN_FIELDS, hasExactKeys2, isNonnegativeInteger, isFiniteNumber, isExactEnumString, isNonemptyPromptText, isCampaignReasoningText, projectBackendDecisionMemoryItem, requireRenderedStrategyBehaviorState, canonicalFillSideForRiskEvidence, isValidRiskEvidenceFill, isValidCampaignBoundaryFill, normalizeFillHistoryCoverage, resolveFillHistoryCoverageForSymbol, buildPromptBehaviorStateArtifacts, buildPromptBehaviorStateValue, shouldCompareServerPromptParity, buildLocalRuntimePromptArtifacts, createRuntimeId2, asRecord, buildRuntimeConstraintRejectionMessage, hasDeviceProviderSecret, requireNonEmptyStringField, requirePositiveIntegerField, compareContractVersion, parsePromptContractTimestamp, assertPromptContractCompatibility, assertPromptContractTemporalBounds, sleepWithAbort, requireAgentPollRetryAfterMs, materializeClaimedClientRuntimeAgentInstruction, attachClientRuntimeErrorProvenance, isExternalRuntimeProviderResult, invokeClientExternalInference, assertPromptContractBindingTupleEqual, assertPromptContractScopeMatch, fetchBoundPromptContracts, formatTemplateWithNamedVariables, carryReturnedModelCalls, runLocalRuntimeCycle;
|
|
113407
113429
|
var init_local_analysis = __esm({
|
|
113408
113430
|
"lib/runtime/local-analysis.ts"() {
|
|
113409
113431
|
"use strict";
|
|
@@ -113416,6 +113438,7 @@ var init_local_analysis = __esm({
|
|
|
113416
113438
|
init_profile_model_fallbacks();
|
|
113417
113439
|
init_api2();
|
|
113418
113440
|
init_ai_settings_helpers();
|
|
113441
|
+
init_candle_timeframes();
|
|
113419
113442
|
init_candle_prompt_contract();
|
|
113420
113443
|
init_vault();
|
|
113421
113444
|
init_decision_contract();
|
|
@@ -115142,12 +115165,11 @@ ${reviewOutputContract}`;
|
|
|
115142
115165
|
"ema_50",
|
|
115143
115166
|
"ema_200"
|
|
115144
115167
|
];
|
|
115145
|
-
|
|
115146
|
-
sortTradingTimeframes = (timeframes) => Array.from(
|
|
115168
|
+
sortTradingTimeframes = (timeframes) => sortCandleTimeframes(Array.from(
|
|
115147
115169
|
new Set(
|
|
115148
115170
|
timeframes.map((value) => String(value || "").trim()).filter(Boolean)
|
|
115149
115171
|
)
|
|
115150
|
-
)
|
|
115172
|
+
));
|
|
115151
115173
|
normalizePromptIdentityTimestamp = (value) => {
|
|
115152
115174
|
const timestamp = String(value ?? "").trim();
|
|
115153
115175
|
const timestampMs = Date.parse(timestamp);
|
|
@@ -115157,13 +115179,13 @@ ${reviewOutputContract}`;
|
|
|
115157
115179
|
if (!input.cycleCutoff || !Array.isArray(input.component?.c)) {
|
|
115158
115180
|
return null;
|
|
115159
115181
|
}
|
|
115160
|
-
const
|
|
115182
|
+
const durationSeconds = candleTimeframeSeconds(input.timeframe);
|
|
115161
115183
|
const lastCompletedRow = input.component.c.at(-1);
|
|
115162
115184
|
const openedAtSeconds = Number(lastCompletedRow?.[0]);
|
|
115163
|
-
if (
|
|
115185
|
+
if (durationSeconds === void 0 || !Number.isFinite(openedAtSeconds) || openedAtSeconds <= 0) {
|
|
115164
115186
|
return null;
|
|
115165
115187
|
}
|
|
115166
|
-
const boundaryMs = (openedAtSeconds +
|
|
115188
|
+
const boundaryMs = (openedAtSeconds + durationSeconds) * MS_PER_SECOND;
|
|
115167
115189
|
const cutoffMs = Date.parse(input.cycleCutoff);
|
|
115168
115190
|
if (!Number.isFinite(boundaryMs) || !Number.isFinite(cutoffMs) || boundaryMs > cutoffMs) {
|
|
115169
115191
|
return null;
|
|
@@ -115213,11 +115235,11 @@ ${reviewOutputContract}`;
|
|
|
115213
115235
|
return clampLookback(parsed);
|
|
115214
115236
|
}
|
|
115215
115237
|
}
|
|
115216
|
-
const fallback = Number(defaultLookbacks[timeframe]);
|
|
115217
|
-
if (Number.isFinite(fallback)
|
|
115218
|
-
|
|
115238
|
+
const fallback = Number(defaultLookbacks?.[timeframe]);
|
|
115239
|
+
if (!Number.isFinite(fallback) || fallback <= 0) {
|
|
115240
|
+
throw new Error(`Missing required config key: ai_dashboard.defaults.analysis_lookback_fallbacks.${timeframe}`);
|
|
115219
115241
|
}
|
|
115220
|
-
return clampLookback(
|
|
115242
|
+
return clampLookback(fallback);
|
|
115221
115243
|
};
|
|
115222
115244
|
computeSma = (values, period) => {
|
|
115223
115245
|
if (period <= 0 || period > values.length) {
|
|
@@ -115521,16 +115543,23 @@ ${reviewOutputContract}`;
|
|
|
115521
115543
|
}
|
|
115522
115544
|
return roundPromptSignificant(numeric2, PROMPT_SIGNIFICANT_DIGITS);
|
|
115523
115545
|
};
|
|
115546
|
+
capacityUnitSize = (tradeSize, configuredTradeAmount) => {
|
|
115547
|
+
if (Number.isFinite(tradeSize) && tradeSize > 0) return tradeSize;
|
|
115548
|
+
const configured2 = Number(configuredTradeAmount);
|
|
115549
|
+
if (!Number.isFinite(configured2) || configured2 <= 0) {
|
|
115550
|
+
throw new Error("Missing required client runtime config: default_ai_trade_amount");
|
|
115551
|
+
}
|
|
115552
|
+
return configured2;
|
|
115553
|
+
};
|
|
115524
115554
|
computePromptUnitsUsedForPosition = (size, entryPrice, unitSize) => {
|
|
115525
115555
|
const sizeFloat = Number(size);
|
|
115526
115556
|
const entryPriceFloat = Number(entryPrice);
|
|
115527
115557
|
if (!Number.isFinite(sizeFloat) || sizeFloat === 0) {
|
|
115528
115558
|
return 0;
|
|
115529
115559
|
}
|
|
115530
|
-
const normalizedUnitSize = Number.isFinite(unitSize) && unitSize > 0 ? unitSize : PROMPT_UNIT_SIZE_FALLBACK_USDC;
|
|
115531
115560
|
const notional = Math.abs(sizeFloat * (Number.isFinite(entryPriceFloat) ? entryPriceFloat : 0));
|
|
115532
|
-
let unitsUsed = roundPromptNonnegativeUnits(notional /
|
|
115533
|
-
if (unitsUsed < 1 && notional >
|
|
115561
|
+
let unitsUsed = roundPromptNonnegativeUnits(notional / unitSize);
|
|
115562
|
+
if (unitsUsed < 1 && notional > unitSize * PROMPT_PARTIAL_UNIT_ROUND_UP_FRACTION) {
|
|
115534
115563
|
unitsUsed = 1;
|
|
115535
115564
|
}
|
|
115536
115565
|
if (unitsUsed < 1) {
|
|
@@ -115716,7 +115745,7 @@ ${reviewOutputContract}`;
|
|
|
115716
115745
|
sortFillsAscending = (fills) => [...fills].sort((left, right) => fillTimeMs(left) - fillTimeMs(right) || Number(left.tid ?? 0) - Number(right.tid ?? 0) || fillSortValue(left) - fillSortValue(right));
|
|
115717
115746
|
sortFillsDescending = (fills) => [...fills].sort((left, right) => fillTimeMs(right) - fillTimeMs(left) || Number(right.tid ?? 0) - Number(left.tid ?? 0) || fillSortValue(right) - fillSortValue(left));
|
|
115718
115747
|
inferEntryFromStartPositionChain = (fillsForSymbol, currentPositionSize) => {
|
|
115719
|
-
const epsilon =
|
|
115748
|
+
const epsilon = POSITION_SIZE_EPSILON;
|
|
115720
115749
|
if (!fillsForSymbol.length || !Number.isFinite(currentPositionSize) || Math.abs(currentPositionSize) < epsilon) {
|
|
115721
115750
|
return { entryTimestampMs: null, entryOrderId: null };
|
|
115722
115751
|
}
|
|
@@ -115764,7 +115793,7 @@ ${reviewOutputContract}`;
|
|
|
115764
115793
|
return { entryTimestampMs: null, entryOrderId: null };
|
|
115765
115794
|
};
|
|
115766
115795
|
inferEntryFromCurrentPositionSize = (fillsForSymbol, currentPositionSize) => {
|
|
115767
|
-
const epsilon =
|
|
115796
|
+
const epsilon = POSITION_SIZE_EPSILON;
|
|
115768
115797
|
if (!fillsForSymbol.length || Math.abs(currentPositionSize) < epsilon) {
|
|
115769
115798
|
return { entryTimestampMs: null, entryOrderId: null };
|
|
115770
115799
|
}
|
|
@@ -115786,7 +115815,7 @@ ${reviewOutputContract}`;
|
|
|
115786
115815
|
return { entryTimestampMs: null, entryOrderId: null };
|
|
115787
115816
|
};
|
|
115788
115817
|
calculateCurrentPositionState = (fillsForSymbol) => {
|
|
115789
|
-
const epsilon =
|
|
115818
|
+
const epsilon = POSITION_SIZE_EPSILON;
|
|
115790
115819
|
if (!fillsForSymbol.length) {
|
|
115791
115820
|
return { entryTimestampMs: null, entryOrderId: null, currentPos: 0 };
|
|
115792
115821
|
}
|
|
@@ -115825,7 +115854,7 @@ ${reviewOutputContract}`;
|
|
|
115825
115854
|
return { entryTimestampMs, entryOrderId, currentPos };
|
|
115826
115855
|
};
|
|
115827
115856
|
calculatePositionEntryTimes = (fills) => {
|
|
115828
|
-
const epsilon =
|
|
115857
|
+
const epsilon = POSITION_SIZE_EPSILON;
|
|
115829
115858
|
const fillsBySymbol = /* @__PURE__ */ new Map();
|
|
115830
115859
|
for (const fill of fills) {
|
|
115831
115860
|
const symbol2 = String(fill.coin ?? fill.symbol ?? "").trim();
|
|
@@ -115994,7 +116023,7 @@ ${reviewOutputContract}`;
|
|
|
115994
116023
|
}
|
|
115995
116024
|
priorPosition += normalizeFillSide(fill) === "B" ? size : -size;
|
|
115996
116025
|
}
|
|
115997
|
-
const oppositeExposure = isLong && priorPosition < -
|
|
116026
|
+
const oppositeExposure = isLong && priorPosition < -POSITION_SIZE_EPSILON || !isLong && priorPosition > POSITION_SIZE_EPSILON;
|
|
115998
116027
|
return {
|
|
115999
116028
|
timestampMs: latestTimestampMs,
|
|
116000
116029
|
actionKind: oppositeExposure ? "flip" : "entry"
|
|
@@ -116006,8 +116035,8 @@ ${reviewOutputContract}`;
|
|
|
116006
116035
|
}
|
|
116007
116036
|
const timeframeCandidates = timeframes.map((rawTimeframe) => {
|
|
116008
116037
|
const timeframe = String(rawTimeframe || "").trim();
|
|
116009
|
-
const
|
|
116010
|
-
return timeframe &&
|
|
116038
|
+
const durationSeconds = candleTimeframeSeconds(timeframe);
|
|
116039
|
+
return timeframe && durationSeconds !== void 0 ? { timeframe, durationSeconds } : null;
|
|
116011
116040
|
}).filter((item) => item != null).sort((left, right) => left.durationSeconds - right.durationSeconds);
|
|
116012
116041
|
const shortest = timeframeCandidates[0];
|
|
116013
116042
|
if (!shortest) {
|
|
@@ -117433,10 +117462,11 @@ ${behaviorJson}
|
|
|
117433
117462
|
const sortedTimeframes = sortTradingTimeframes(timeframes);
|
|
117434
117463
|
const activeIndicators = normalizeAiIndicatorFlags(config2.default_ai_indicators, settings.ai_indicators);
|
|
117435
117464
|
const lookbackSettings = settings.analysis_lookback;
|
|
117436
|
-
const effectiveDefaultLookbacks =
|
|
117437
|
-
|
|
117438
|
-
|
|
117439
|
-
|
|
117465
|
+
const effectiveDefaultLookbacks = config2.default_analysis_lookback_fallbacks;
|
|
117466
|
+
const indicatorCandleCount = Number(config2.indicator_candle_count);
|
|
117467
|
+
if (!Number.isSafeInteger(indicatorCandleCount) || indicatorCandleCount < 1) {
|
|
117468
|
+
throw new Error("Missing required client runtime config: indicator_candle_count");
|
|
117469
|
+
}
|
|
117440
117470
|
let initialPromptMetadata = null;
|
|
117441
117471
|
if (input.mode === "trader" && settings.main_model_enabled === false) {
|
|
117442
117472
|
const promptMetadataStartedAtMs = Date.now();
|
|
@@ -117654,7 +117684,7 @@ ${behaviorJson}
|
|
|
117654
117684
|
marketTimeframe,
|
|
117655
117685
|
effectiveDefaultLookbacks,
|
|
117656
117686
|
config2.max_analysis_lookback
|
|
117657
|
-
),
|
|
117687
|
+
), indicatorCandleCount),
|
|
117658
117688
|
"hyperliquid",
|
|
117659
117689
|
marketSymbol,
|
|
117660
117690
|
marketTimeframe,
|
|
@@ -118125,7 +118155,7 @@ ${stringifyPromptJson(candlesPayload)}
|
|
|
118125
118155
|
cutoffMs: behaviorMemoryCutoffMs,
|
|
118126
118156
|
symbols: promptSymbols,
|
|
118127
118157
|
perpDexAccounts: accountSummary.perp_dex_accounts,
|
|
118128
|
-
unitSize: metadataTradeSize,
|
|
118158
|
+
unitSize: capacityUnitSize(metadataTradeSize, config2.default_ai_trade_amount),
|
|
118129
118159
|
effectiveTakerRates,
|
|
118130
118160
|
maxTradesGlobal,
|
|
118131
118161
|
maxTradesPerExchange,
|
|
@@ -119635,7 +119665,6 @@ var init_engine = __esm({
|
|
|
119635
119665
|
return null;
|
|
119636
119666
|
}
|
|
119637
119667
|
const snapshot = getLatestRuntimeProviderFailureTelemetrySnapshot({
|
|
119638
|
-
maxAgeMs: CLIENT_RUNTIME_POLICY.provider_failure_diagnostics_max_age_milliseconds,
|
|
119639
119668
|
label: providerLabel,
|
|
119640
119669
|
traceId
|
|
119641
119670
|
});
|
|
@@ -126772,7 +126801,11 @@ async function runVtxCli(argv2, env = process.env) {
|
|
|
126772
126801
|
}
|
|
126773
126802
|
throw new Error(`Unsupported command: ${[group, command].filter(Boolean).join(" ") || "(none)"}`);
|
|
126774
126803
|
} catch (error48) {
|
|
126775
|
-
|
|
126804
|
+
if (error48 instanceof HeadlessRuntimeTakeoverRequiredError) {
|
|
126805
|
+
return { exitCode: AGENT_CLI_TAKEOVER_REQUIRED_EXIT_CODE, stdout: "", stderr: `${error48.message}
|
|
126806
|
+
` };
|
|
126807
|
+
}
|
|
126808
|
+
const message = error48 instanceof AgentClientError ? error48.message : error48 instanceof Error ? error48.message : "Unknown CLI error";
|
|
126776
126809
|
return { exitCode: 1, stdout: "", stderr: `${message}
|
|
126777
126810
|
` };
|
|
126778
126811
|
}
|