@vtxmacro/cli 2026.10.32 → 2026.10.34
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 +1 -0
- package/bin/vtx-mcp.js +71 -4
- package/bin/vtx-service-bootstrap.js +59 -2
- package/bin/vtx-service-launcher.js +1 -0
- package/bin/vtx.js +951 -369
- package/package.json +2 -2
package/bin/exo-harness.ts
CHANGED
|
@@ -1147,6 +1147,7 @@ var runtime_policy_generated_default = {
|
|
|
1147
1147
|
runtime: {
|
|
1148
1148
|
assignment_page_default_limit: 20,
|
|
1149
1149
|
client_candidate_owner_lease_grace_ms: 6e4,
|
|
1150
|
+
bot_switch_max_retries: 2,
|
|
1150
1151
|
client_server_heartbeats_per_owner_lease: 2,
|
|
1151
1152
|
client_server_heartbeat_min_ms: 5e3,
|
|
1152
1153
|
client_server_heartbeat_max_ms: 3e4
|
package/bin/vtx-mcp.js
CHANGED
|
@@ -37,7 +37,7 @@ 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.34", 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
|
|
|
@@ -2384,6 +2384,7 @@ var runtime_policy_generated_default = {
|
|
|
2384
2384
|
runtime: {
|
|
2385
2385
|
assignment_page_default_limit: 20,
|
|
2386
2386
|
client_candidate_owner_lease_grace_ms: 6e4,
|
|
2387
|
+
bot_switch_max_retries: 2,
|
|
2387
2388
|
client_server_heartbeats_per_owner_lease: 2,
|
|
2388
2389
|
client_server_heartbeat_min_ms: 5e3,
|
|
2389
2390
|
client_server_heartbeat_max_ms: 3e4
|
|
@@ -3805,6 +3806,72 @@ var isInferenceHostCliInvocation = (argv) => {
|
|
|
3805
3806
|
return false;
|
|
3806
3807
|
};
|
|
3807
3808
|
|
|
3809
|
+
// lib/runtime/runtime-redaction.ts
|
|
3810
|
+
init_define_VTX_EXO_POLICY();
|
|
3811
|
+
init_define_VTX_GROK_POLICY();
|
|
3812
|
+
init_define_VTX_PI_MODEL_POLICY();
|
|
3813
|
+
|
|
3814
|
+
// lib/runtime/abort.ts
|
|
3815
|
+
init_define_VTX_EXO_POLICY();
|
|
3816
|
+
init_define_VTX_GROK_POLICY();
|
|
3817
|
+
init_define_VTX_PI_MODEL_POLICY();
|
|
3818
|
+
|
|
3819
|
+
// lib/runtime/runtime-redaction.ts
|
|
3820
|
+
var REDACTED_VALUE = "[REDACTED]";
|
|
3821
|
+
var WHITESPACE_CLASS = String.raw`[\t\n\v\f\r \x1c-\x1f\x85\xa0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]`;
|
|
3822
|
+
var SEPARATOR = WHITESPACE_CLASS;
|
|
3823
|
+
var VALUE_RUN = String.raw`[^,\t\n\v\f\r ]+`;
|
|
3824
|
+
var NAME_LETTER_VARIANTS = {
|
|
3825
|
+
s: String.raw`[s\u017f]`,
|
|
3826
|
+
k: String.raw`[k\u212a]`,
|
|
3827
|
+
i: String.raw`[i\u0131\u0130]`
|
|
3828
|
+
};
|
|
3829
|
+
var NAME_START = "(?:^|[^A-Za-z0-9_.-])";
|
|
3830
|
+
var NAME_PREFIX = "[A-Za-z0-9_.-]*";
|
|
3831
|
+
var secretName = (word) => Array.from(word, (letter) => NAME_LETTER_VARIANTS[letter] ?? letter).join("");
|
|
3832
|
+
var SECRET_NAME_WORDS = `(?:${[
|
|
3833
|
+
"key",
|
|
3834
|
+
"token",
|
|
3835
|
+
"secret",
|
|
3836
|
+
"password",
|
|
3837
|
+
"passphrase",
|
|
3838
|
+
"credentials",
|
|
3839
|
+
"credential",
|
|
3840
|
+
"authorization"
|
|
3841
|
+
].map(secretName).join("|")})`;
|
|
3842
|
+
var NAMED_VALUE = String.raw`("[^"]*"|'[^']*'` + String.raw`|(?:[^,\t\n\v\f\r ]*${SECRET_NAME_WORDS}(?:[:=]${SEPARATOR}+|${SEPARATOR}+[:=]${SEPARATOR}*))*${VALUE_RUN})`;
|
|
3843
|
+
var SECRET_QUERY_PARAM_PATTERN = new RegExp(
|
|
3844
|
+
`([?&](?:${NAME_PREFIX}${SECRET_NAME_WORDS}|${secretName("auth")}|${secretName("sig")}|${secretName("signature")})=)${NAMED_VALUE}`,
|
|
3845
|
+
"gi"
|
|
3846
|
+
);
|
|
3847
|
+
var BEARER_TOKEN_PATTERN = new RegExp(
|
|
3848
|
+
String.raw`(\bBearer${SEPARATOR}+)(?:[^,;\t\n\v\f\r ]*${SECRET_NAME_WORDS}(?:[:=]${SEPARATOR}+|${SEPARATOR}+[:=]${SEPARATOR}*))*[^,;\t\n\v\f\r ]+`,
|
|
3849
|
+
"gi"
|
|
3850
|
+
);
|
|
3851
|
+
var ASSIGNMENT_SEPARATOR = `['"]?${SEPARATOR}*[:=]${SEPARATOR}*`;
|
|
3852
|
+
var AUTHORIZATION_SCHEMES = "(?:Bearer|Basic|Digest|Token|Bot|Negotiate|NTLM|ApiKey)";
|
|
3853
|
+
var assignmentPattern = (nameStart) => new RegExp(
|
|
3854
|
+
`(${nameStart}(?:${secretName("authorization")}${ASSIGNMENT_SEPARATOR}['"]?${AUTHORIZATION_SCHEMES}${SEPARATOR}+|${SECRET_NAME_WORDS}${ASSIGNMENT_SEPARATOR}))${NAMED_VALUE}`,
|
|
3855
|
+
"gi"
|
|
3856
|
+
);
|
|
3857
|
+
var SECRET_ASSIGNMENT_PATTERN = assignmentPattern(`${NAME_START}${NAME_PREFIX}`);
|
|
3858
|
+
var SECRET_WORD_ASSIGNMENT_PATTERN = assignmentPattern(
|
|
3859
|
+
`(?:^|[^A-Za-z0-9_])(?:(?:${["api", "access", "private"].map(secretName).join("|")})[_ -]?)?`
|
|
3860
|
+
);
|
|
3861
|
+
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;
|
|
3862
|
+
var redactAssignedValue = (_match, prefix, value) => {
|
|
3863
|
+
const quote = value[0] === '"' || value[0] === "'" ? value[0] : "";
|
|
3864
|
+
const closing = quote && value.length > 1 && value[value.length - 1] === quote ? quote : "";
|
|
3865
|
+
return `${prefix}${quote}${REDACTED_VALUE}${closing}`;
|
|
3866
|
+
};
|
|
3867
|
+
var sanitizeRuntimeDiagnosticValue = (value) => {
|
|
3868
|
+
const normalized = String(value || "");
|
|
3869
|
+
if (!normalized) {
|
|
3870
|
+
return normalized;
|
|
3871
|
+
}
|
|
3872
|
+
return normalized.replace(BEARER_TOKEN_PATTERN, `$1${REDACTED_VALUE}`).replace(SECRET_WORD_ASSIGNMENT_PATTERN, redactAssignedValue).replace(SECRET_TOKEN_PATTERN, REDACTED_VALUE).replace(SECRET_QUERY_PARAM_PATTERN, redactAssignedValue).replace(SECRET_ASSIGNMENT_PATTERN, redactAssignedValue);
|
|
3873
|
+
};
|
|
3874
|
+
|
|
3808
3875
|
// lib/cli-release/updater.ts
|
|
3809
3876
|
var CLI_PACKAGE_NAME = "@vtxmacro/cli";
|
|
3810
3877
|
var OFFICIAL_NPM_REGISTRY = "https://registry.npmjs.org";
|
|
@@ -4261,7 +4328,7 @@ var stageAndSelect = async (paths, target, input) => {
|
|
|
4261
4328
|
try {
|
|
4262
4329
|
await ensureUpdaterPrivateDirectory(paths.root, paths.root, { platform: input.platform });
|
|
4263
4330
|
} catch (error) {
|
|
4264
|
-
const reason = `update_directory_unsafe: ${error instanceof Error ? error.message.slice(0, runtime_policy_generated_default.agent_cli.update_failure_reason_max_chars) : "unknown"}`;
|
|
4331
|
+
const reason = `update_directory_unsafe: ${error instanceof Error ? sanitizeRuntimeDiagnosticValue(error.message).slice(0, runtime_policy_generated_default.agent_cli.update_failure_reason_max_chars) : "unknown"}`;
|
|
4265
4332
|
await appendCliUpdateLog(paths, "cli_update_failed", { package_version: target.version, reason });
|
|
4266
4333
|
return { kind: "failed", reason };
|
|
4267
4334
|
}
|
|
@@ -4294,7 +4361,7 @@ var stageAndSelect = async (paths, target, input) => {
|
|
|
4294
4361
|
await appendCliUpdateLog(paths, "cli_release_staged", { package_version: selection.package_version });
|
|
4295
4362
|
return { kind: "staged", selection };
|
|
4296
4363
|
} catch (error) {
|
|
4297
|
-
const reason = error instanceof Error ? error.message.slice(0, runtime_policy_generated_default.agent_cli.update_failure_reason_max_chars) : "unknown";
|
|
4364
|
+
const reason = error instanceof Error ? sanitizeRuntimeDiagnosticValue(error.message).slice(0, runtime_policy_generated_default.agent_cli.update_failure_reason_max_chars) : "unknown";
|
|
4298
4365
|
await appendCliUpdateLog(paths, "cli_update_failed", { package_version: target.version, reason });
|
|
4299
4366
|
return { kind: "failed", reason };
|
|
4300
4367
|
} finally {
|
|
@@ -4382,7 +4449,7 @@ var planCliEntryUpdate = async (entry, argv, env, script, dependencies = {}) =>
|
|
|
4382
4449
|
return runSelected();
|
|
4383
4450
|
} catch (error) {
|
|
4384
4451
|
await appendCliUpdateLog(paths, "cli_update_check_failed", {
|
|
4385
|
-
reason: error instanceof Error ? error.message.slice(0, runtime_policy_generated_default.agent_cli.update_failure_reason_max_chars) : "unknown"
|
|
4452
|
+
reason: error instanceof Error ? sanitizeRuntimeDiagnosticValue(error.message).slice(0, runtime_policy_generated_default.agent_cli.update_failure_reason_max_chars) : "unknown"
|
|
4386
4453
|
});
|
|
4387
4454
|
return { kind: "run" };
|
|
4388
4455
|
}
|
|
@@ -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.34", 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 = {
|
|
@@ -1091,6 +1091,7 @@ var runtime_policy_generated_default = {
|
|
|
1091
1091
|
runtime: {
|
|
1092
1092
|
assignment_page_default_limit: 20,
|
|
1093
1093
|
client_candidate_owner_lease_grace_ms: 6e4,
|
|
1094
|
+
bot_switch_max_retries: 2,
|
|
1094
1095
|
client_server_heartbeats_per_owner_lease: 2,
|
|
1095
1096
|
client_server_heartbeat_min_ms: 5e3,
|
|
1096
1097
|
client_server_heartbeat_max_ms: 3e4
|
|
@@ -2465,6 +2466,62 @@ async function acquireInferenceHostProcessLock(path, dependencies = {}) {
|
|
|
2465
2466
|
};
|
|
2466
2467
|
}
|
|
2467
2468
|
|
|
2469
|
+
// lib/runtime/runtime-redaction.ts
|
|
2470
|
+
var REDACTED_VALUE = "[REDACTED]";
|
|
2471
|
+
var WHITESPACE_CLASS = String.raw`[\t\n\v\f\r \x1c-\x1f\x85\xa0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]`;
|
|
2472
|
+
var SEPARATOR = WHITESPACE_CLASS;
|
|
2473
|
+
var VALUE_RUN = String.raw`[^,\t\n\v\f\r ]+`;
|
|
2474
|
+
var NAME_LETTER_VARIANTS = {
|
|
2475
|
+
s: String.raw`[s\u017f]`,
|
|
2476
|
+
k: String.raw`[k\u212a]`,
|
|
2477
|
+
i: String.raw`[i\u0131\u0130]`
|
|
2478
|
+
};
|
|
2479
|
+
var NAME_START = "(?:^|[^A-Za-z0-9_.-])";
|
|
2480
|
+
var NAME_PREFIX = "[A-Za-z0-9_.-]*";
|
|
2481
|
+
var secretName = (word) => Array.from(word, (letter) => NAME_LETTER_VARIANTS[letter] ?? letter).join("");
|
|
2482
|
+
var SECRET_NAME_WORDS = `(?:${[
|
|
2483
|
+
"key",
|
|
2484
|
+
"token",
|
|
2485
|
+
"secret",
|
|
2486
|
+
"password",
|
|
2487
|
+
"passphrase",
|
|
2488
|
+
"credentials",
|
|
2489
|
+
"credential",
|
|
2490
|
+
"authorization"
|
|
2491
|
+
].map(secretName).join("|")})`;
|
|
2492
|
+
var NAMED_VALUE = String.raw`("[^"]*"|'[^']*'` + String.raw`|(?:[^,\t\n\v\f\r ]*${SECRET_NAME_WORDS}(?:[:=]${SEPARATOR}+|${SEPARATOR}+[:=]${SEPARATOR}*))*${VALUE_RUN})`;
|
|
2493
|
+
var SECRET_QUERY_PARAM_PATTERN = new RegExp(
|
|
2494
|
+
`([?&](?:${NAME_PREFIX}${SECRET_NAME_WORDS}|${secretName("auth")}|${secretName("sig")}|${secretName("signature")})=)${NAMED_VALUE}`,
|
|
2495
|
+
"gi"
|
|
2496
|
+
);
|
|
2497
|
+
var BEARER_TOKEN_PATTERN = new RegExp(
|
|
2498
|
+
String.raw`(\bBearer${SEPARATOR}+)(?:[^,;\t\n\v\f\r ]*${SECRET_NAME_WORDS}(?:[:=]${SEPARATOR}+|${SEPARATOR}+[:=]${SEPARATOR}*))*[^,;\t\n\v\f\r ]+`,
|
|
2499
|
+
"gi"
|
|
2500
|
+
);
|
|
2501
|
+
var ASSIGNMENT_SEPARATOR = `['"]?${SEPARATOR}*[:=]${SEPARATOR}*`;
|
|
2502
|
+
var AUTHORIZATION_SCHEMES = "(?:Bearer|Basic|Digest|Token|Bot|Negotiate|NTLM|ApiKey)";
|
|
2503
|
+
var assignmentPattern = (nameStart) => new RegExp(
|
|
2504
|
+
`(${nameStart}(?:${secretName("authorization")}${ASSIGNMENT_SEPARATOR}['"]?${AUTHORIZATION_SCHEMES}${SEPARATOR}+|${SECRET_NAME_WORDS}${ASSIGNMENT_SEPARATOR}))${NAMED_VALUE}`,
|
|
2505
|
+
"gi"
|
|
2506
|
+
);
|
|
2507
|
+
var SECRET_ASSIGNMENT_PATTERN = assignmentPattern(`${NAME_START}${NAME_PREFIX}`);
|
|
2508
|
+
var SECRET_WORD_ASSIGNMENT_PATTERN = assignmentPattern(
|
|
2509
|
+
`(?:^|[^A-Za-z0-9_])(?:(?:${["api", "access", "private"].map(secretName).join("|")})[_ -]?)?`
|
|
2510
|
+
);
|
|
2511
|
+
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;
|
|
2512
|
+
var redactAssignedValue = (_match, prefix, value) => {
|
|
2513
|
+
const quote = value[0] === '"' || value[0] === "'" ? value[0] : "";
|
|
2514
|
+
const closing = quote && value.length > 1 && value[value.length - 1] === quote ? quote : "";
|
|
2515
|
+
return `${prefix}${quote}${REDACTED_VALUE}${closing}`;
|
|
2516
|
+
};
|
|
2517
|
+
var sanitizeRuntimeDiagnosticValue = (value) => {
|
|
2518
|
+
const normalized = String(value || "");
|
|
2519
|
+
if (!normalized) {
|
|
2520
|
+
return normalized;
|
|
2521
|
+
}
|
|
2522
|
+
return normalized.replace(BEARER_TOKEN_PATTERN, `$1${REDACTED_VALUE}`).replace(SECRET_WORD_ASSIGNMENT_PATTERN, redactAssignedValue).replace(SECRET_TOKEN_PATTERN, REDACTED_VALUE).replace(SECRET_QUERY_PARAM_PATTERN, redactAssignedValue).replace(SECRET_ASSIGNMENT_PATTERN, redactAssignedValue);
|
|
2523
|
+
};
|
|
2524
|
+
|
|
2468
2525
|
// lib/cli-release/updater.ts
|
|
2469
2526
|
var CLI_PACKAGE_NAME = "@vtxmacro/cli";
|
|
2470
2527
|
var OFFICIAL_NPM_REGISTRY = "https://registry.npmjs.org";
|
|
@@ -3087,7 +3144,7 @@ var runInferenceHostServiceBootstrap = async (manifestPathValue, dependencies =
|
|
|
3087
3144
|
return await updateSelection(manifestPath, manifest, updateDependencies);
|
|
3088
3145
|
} catch (error) {
|
|
3089
3146
|
await appendBootstrapLog(manifest.log_path, "service_update_deferred", {
|
|
3090
|
-
reason: error instanceof Error ? error.message.slice(0, runtime_policy_generated_default.external_inference.service.update_failure_reason_max_chars) : "unknown"
|
|
3147
|
+
reason: error instanceof Error ? sanitizeRuntimeDiagnosticValue(error.message).slice(0, runtime_policy_generated_default.external_inference.service.update_failure_reason_max_chars) : "unknown"
|
|
3091
3148
|
});
|
|
3092
3149
|
return { active, candidate: null };
|
|
3093
3150
|
}
|
|
@@ -1075,6 +1075,7 @@ var runtime_policy_generated_default = {
|
|
|
1075
1075
|
runtime: {
|
|
1076
1076
|
assignment_page_default_limit: 20,
|
|
1077
1077
|
client_candidate_owner_lease_grace_ms: 6e4,
|
|
1078
|
+
bot_switch_max_retries: 2,
|
|
1078
1079
|
client_server_heartbeats_per_owner_lease: 2,
|
|
1079
1080
|
client_server_heartbeat_min_ms: 5e3,
|
|
1080
1081
|
client_server_heartbeat_max_ms: 3e4
|