@pushpalsdev/cli 1.1.4 → 1.1.6
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/dist/pushpals-cli.js +302 -117
- package/package.json +1 -1
- package/runtime/configs/default.toml +3 -1
- package/runtime/configs/local.example.toml +3 -1
- package/runtime/sandbox/.pushpals-remotebuddy-fallback.js +13 -1
- package/runtime/sandbox/apps/workerpals/src/execute_job.ts +420 -169
- package/runtime/sandbox/configs/default.toml +3 -1
- package/runtime/sandbox/configs/local.example.toml +3 -1
- package/runtime/sandbox/packages/shared/src/config.ts +26 -1
package/package.json
CHANGED
|
@@ -159,9 +159,11 @@ quality_publish_gate_enabled = true
|
|
|
159
159
|
# Browser/e2e validation commands get a longer built-in floor (10m) because they
|
|
160
160
|
# may need to start a dev server and run browser automation.
|
|
161
161
|
quality_validation_step_timeout_ms = 180000
|
|
162
|
-
quality_critic_timeout_ms =
|
|
162
|
+
quality_critic_timeout_ms = 90000
|
|
163
|
+
quality_critic_timeout_behavior = "retry_once" # skip | retry_once | block
|
|
163
164
|
quality_soft_pass_on_exhausted = true
|
|
164
165
|
quality_critic_min_score = 8.0
|
|
166
|
+
quality_critic_model = "" # Optional faster/smaller model override for the critic.
|
|
165
167
|
quality_critic_max_diff_chars = 16000
|
|
166
168
|
quality_critic_max_validation_output_chars = 8000
|
|
167
169
|
executor_result_prefix = "__PUSHPALS_OH_RESULT__ "
|
|
@@ -75,9 +75,11 @@ quality_publish_gate_enabled = true
|
|
|
75
75
|
# Browser/e2e validation commands get a longer built-in floor (10m) because they
|
|
76
76
|
# may need to start a dev server and run browser automation.
|
|
77
77
|
quality_validation_step_timeout_ms = 180000
|
|
78
|
-
quality_critic_timeout_ms =
|
|
78
|
+
quality_critic_timeout_ms = 90000
|
|
79
|
+
quality_critic_timeout_behavior = "retry_once" # skip | retry_once | block
|
|
79
80
|
quality_soft_pass_on_exhausted = true
|
|
80
81
|
quality_critic_min_score = 8.0
|
|
82
|
+
quality_critic_model = "" # Optional faster/smaller model override for the critic.
|
|
81
83
|
quality_critic_max_diff_chars = 16000
|
|
82
84
|
quality_critic_max_validation_output_chars = 8000
|
|
83
85
|
executor_result_prefix = "__PUSHPALS_OH_RESULT__ "
|
|
@@ -743,7 +743,8 @@ var DEFAULT_WORKERPALS_OUTPUT_MAX_CHARS = 192 * 1024;
|
|
|
743
743
|
var DEFAULT_WORKERPALS_OUTPUT_MAX_LINES = 600;
|
|
744
744
|
var DEFAULT_WORKERPALS_OUTPUT_MAX_HEAD_LINES = 120;
|
|
745
745
|
var DEFAULT_WORKERPALS_QUALITY_VALIDATION_STEP_TIMEOUT_MS = 180000;
|
|
746
|
-
var DEFAULT_WORKERPALS_QUALITY_CRITIC_TIMEOUT_MS =
|
|
746
|
+
var DEFAULT_WORKERPALS_QUALITY_CRITIC_TIMEOUT_MS = 90000;
|
|
747
|
+
var DEFAULT_WORKERPALS_QUALITY_CRITIC_TIMEOUT_BEHAVIOR = "retry_once";
|
|
747
748
|
var DEFAULT_WORKERPALS_QUALITY_CRITIC_MAX_DIFF_CHARS = 16000;
|
|
748
749
|
var DEFAULT_WORKERPALS_QUALITY_CRITIC_MAX_VALIDATION_OUTPUT_CHARS = 8000;
|
|
749
750
|
var DEFAULT_WORKERPALS_EXECUTOR = "openai_codex";
|
|
@@ -824,6 +825,13 @@ function asString(value, fallback) {
|
|
|
824
825
|
return value.trim();
|
|
825
826
|
return fallback;
|
|
826
827
|
}
|
|
828
|
+
function asQualityCriticTimeoutBehavior(value) {
|
|
829
|
+
const normalized = String(value ?? "").trim().toLowerCase().replace(/-/g, "_");
|
|
830
|
+
if (normalized === "skip" || normalized === "retry_once" || normalized === "block") {
|
|
831
|
+
return normalized;
|
|
832
|
+
}
|
|
833
|
+
return DEFAULT_WORKERPALS_QUALITY_CRITIC_TIMEOUT_BEHAVIOR;
|
|
834
|
+
}
|
|
827
835
|
function asBoolean(value, fallback) {
|
|
828
836
|
if (typeof value === "boolean")
|
|
829
837
|
return value;
|
|
@@ -1118,6 +1126,7 @@ function loadPushPalsConfig(options = {}) {
|
|
|
1118
1126
|
const workerOutputMaxHeadLines = Math.max(1, Math.min(workerOutputMaxLines, asInt(parseIntEnv("WORKERPALS_OUTPUT_MAX_HEAD_LINES") ?? workerNode.output_max_head_lines, DEFAULT_WORKERPALS_OUTPUT_MAX_HEAD_LINES)));
|
|
1119
1127
|
const workerQualityValidationStepTimeoutMs = Math.max(1000, asInt(parseIntEnv("WORKERPALS_QUALITY_VALIDATION_STEP_TIMEOUT_MS") ?? workerNode.quality_validation_step_timeout_ms, DEFAULT_WORKERPALS_QUALITY_VALIDATION_STEP_TIMEOUT_MS));
|
|
1120
1128
|
const workerQualityCriticTimeoutMs = Math.max(1000, asInt(parseIntEnv("WORKERPALS_QUALITY_CRITIC_TIMEOUT_MS") ?? workerNode.quality_critic_timeout_ms, DEFAULT_WORKERPALS_QUALITY_CRITIC_TIMEOUT_MS));
|
|
1129
|
+
const workerQualityCriticTimeoutBehavior = asQualityCriticTimeoutBehavior(process.env.WORKERPALS_QUALITY_CRITIC_TIMEOUT_BEHAVIOR ?? workerNode.quality_critic_timeout_behavior);
|
|
1121
1130
|
const workerQualitySoftPassOnExhausted = parseBoolEnv("WORKERPALS_QUALITY_SOFT_PASS_ON_EXHAUSTED") ?? asBoolean(workerNode.quality_soft_pass_on_exhausted, true);
|
|
1122
1131
|
const workerQualityScopeGateEnabled = parseBoolEnv("WORKERPALS_QUALITY_SCOPE_GATE_ENABLED") ?? asBoolean(workerNode.quality_scope_gate_enabled, true);
|
|
1123
1132
|
const workerQualityValidationGateEnabled = parseBoolEnv("WORKERPALS_QUALITY_VALIDATION_GATE_ENABLED") ?? asBoolean(workerNode.quality_validation_gate_enabled, true);
|
|
@@ -1131,6 +1140,7 @@ function loadPushPalsConfig(options = {}) {
|
|
|
1131
1140
|
return DEFAULT_WORKERPALS_QUALITY_CRITIC_MIN_SCORE;
|
|
1132
1141
|
return Math.max(0, Math.min(10, parsed));
|
|
1133
1142
|
})();
|
|
1143
|
+
const workerQualityCriticModel = firstNonEmpty(process.env.WORKERPALS_QUALITY_CRITIC_MODEL, asString(workerNode.quality_critic_model, ""), "");
|
|
1134
1144
|
const workerQualityCriticMaxDiffChars = Math.max(256, Math.min(524288, asInt(parseIntEnv("WORKERPALS_QUALITY_CRITIC_MAX_DIFF_CHARS") ?? workerNode.quality_critic_max_diff_chars, DEFAULT_WORKERPALS_QUALITY_CRITIC_MAX_DIFF_CHARS)));
|
|
1135
1145
|
const workerQualityCriticMaxValidationOutputChars = Math.max(256, Math.min(524288, asInt(parseIntEnv("WORKERPALS_QUALITY_CRITIC_MAX_VALIDATION_OUTPUT_CHARS") ?? workerNode.quality_critic_max_validation_output_chars, DEFAULT_WORKERPALS_QUALITY_CRITIC_MAX_VALIDATION_OUTPUT_CHARS)));
|
|
1136
1146
|
const workerExecutorResultPrefix = (() => {
|
|
@@ -1420,8 +1430,10 @@ function loadPushPalsConfig(options = {}) {
|
|
|
1420
1430
|
qualityPublishGateEnabled: workerQualityPublishGateEnabled,
|
|
1421
1431
|
qualityValidationStepTimeoutMs: workerQualityValidationStepTimeoutMs,
|
|
1422
1432
|
qualityCriticTimeoutMs: workerQualityCriticTimeoutMs,
|
|
1433
|
+
qualityCriticTimeoutBehavior: workerQualityCriticTimeoutBehavior,
|
|
1423
1434
|
qualitySoftPassOnExhausted: workerQualitySoftPassOnExhausted,
|
|
1424
1435
|
qualityCriticMinScore: workerQualityCriticMinScore,
|
|
1436
|
+
qualityCriticModel: workerQualityCriticModel,
|
|
1425
1437
|
qualityCriticMaxDiffChars: workerQualityCriticMaxDiffChars,
|
|
1426
1438
|
qualityCriticMaxValidationOutputChars: workerQualityCriticMaxValidationOutputChars,
|
|
1427
1439
|
executorResultPrefix: workerExecutorResultPrefix,
|