@pushpalsdev/cli 1.1.8 → 1.1.10
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 +68 -5
- package/monitor-ui/+not-found.html +1 -1
- package/monitor-ui/_expo/static/js/web/{entry-22a236a301d5ba71c53234f142ec71d4.js → entry-ff425ab85ad13c1920b8ee00abfae7dd.js} +1139 -1139
- package/monitor-ui/_expo/static/js/web/{index-968878738b5a9ca32445d688cec9db60.js → index-ec13ec62e2b37ed3c5f6d324ef6784e1.js} +6 -6
- package/monitor-ui/_sitemap.html +1 -1
- package/monitor-ui/index.html +1 -1
- package/monitor-ui/modal.html +1 -1
- package/package.json +1 -1
- package/runtime/sandbox/apps/workerpals/src/backends/openai_codex/test_openai_codex_runtime_config.py +48 -0
- package/runtime/sandbox/apps/workerpals/src/backends/shared/executor_base.py +107 -0
- package/runtime/sandbox/apps/workerpals/src/execute_job.ts +486 -6
- package/runtime/sandbox/apps/workerpals/src/workerpals_main.ts +95 -41
package/dist/pushpals-cli.js
CHANGED
|
@@ -1644,8 +1644,10 @@ var WINDOWS_TASKKILL_TIMEOUT_MS2 = 5000;
|
|
|
1644
1644
|
var RUNTIME_BINARY_DOWNLOAD_ATTEMPTS = 3;
|
|
1645
1645
|
var DEFAULT_STARTUP_GIT_PROBE_TIMEOUT_MS = 5000;
|
|
1646
1646
|
var DEFAULT_STARTUP_GIT_REMOTE_TIMEOUT_MS = 1e4;
|
|
1647
|
+
var DEFAULT_EMBEDDED_SERVICE_LAUNCH_WARN_MS = 5000;
|
|
1647
1648
|
var EMBEDDED_SERVICE_RESTART_MAX_ATTEMPTS = 4;
|
|
1648
1649
|
var WORKERPAL_STARTUP_READINESS_PROBE_MAX_MS = 15000;
|
|
1650
|
+
var CLI_SESSION_JOB_LOG_MAX_CHARS = 700;
|
|
1649
1651
|
var EMBEDDED_RUNTIME_SAFETY_CAP_DISABLE_ENV = "PUSHPALS_DISABLE_EMBEDDED_SAFETY_CAPS";
|
|
1650
1652
|
var EMBEDDED_RUNTIME_WINDOWS_SAFETY_CAPS = {
|
|
1651
1653
|
REMOTEBUDDY_WORKERPAL_STARTUP_TIMEOUT_MS: "120000",
|
|
@@ -1677,6 +1679,13 @@ function formatRuntimeStartupTimingSummary(input) {
|
|
|
1677
1679
|
const detail = typeof input.detail === "string" && input.detail.trim() ? ` detail=${input.detail.trim()}` : "";
|
|
1678
1680
|
return `[pushpals] startup timing summary: outcome=${input.outcome} ` + `total=${Math.max(0, Math.floor(input.totalDurationMs))}ms${detail}` + (phaseSummary ? ` ${phaseSummary}` : "");
|
|
1679
1681
|
}
|
|
1682
|
+
function formatEmbeddedServiceLaunchDelayWarning(input) {
|
|
1683
|
+
const durationMs = Math.max(0, Math.floor(Number(input.durationMs) || 0));
|
|
1684
|
+
const serviceName = String(input.serviceName || "service");
|
|
1685
|
+
const platform = String(input.platform ?? process.platform);
|
|
1686
|
+
const windowsHint = platform === "win32" ? " On Windows, first-run standalone binaries can be delayed while security software scans them." : "";
|
|
1687
|
+
return `[pushpals] Embedded ${serviceName} process launch took ${durationMs}ms; startup is continuing.` + windowsHint;
|
|
1688
|
+
}
|
|
1680
1689
|
function describeWorkerExecutionReadiness(opts) {
|
|
1681
1690
|
const onlineWorkers = Math.max(0, Math.floor(opts.onlineWorkers));
|
|
1682
1691
|
const idleWorkers = Math.max(0, Math.floor(opts.idleWorkers));
|
|
@@ -4481,10 +4490,34 @@ async function autoStartRuntimeServices(opts) {
|
|
|
4481
4490
|
};
|
|
4482
4491
|
};
|
|
4483
4492
|
const launchService = (name, command, launchOpts) => {
|
|
4484
|
-
|
|
4493
|
+
const launchStartedAt = Date.now();
|
|
4494
|
+
const service = serviceManager.startService(buildManagedServiceSpec(name, command, launchOpts));
|
|
4495
|
+
const launchDurationMs = Date.now() - launchStartedAt;
|
|
4496
|
+
if (launchDurationMs >= DEFAULT_EMBEDDED_SERVICE_LAUNCH_WARN_MS) {
|
|
4497
|
+
const warning = formatEmbeddedServiceLaunchDelayWarning({
|
|
4498
|
+
serviceName: name,
|
|
4499
|
+
durationMs: launchDurationMs,
|
|
4500
|
+
platform: process.platform
|
|
4501
|
+
});
|
|
4502
|
+
console.warn(warning);
|
|
4503
|
+
appendRuntimeServicesLogLine(runtimeServicesLogPath, warning);
|
|
4504
|
+
}
|
|
4505
|
+
return service;
|
|
4485
4506
|
};
|
|
4486
4507
|
const replaceService = (name, command, launchOpts) => {
|
|
4487
|
-
|
|
4508
|
+
const launchStartedAt = Date.now();
|
|
4509
|
+
const service = serviceManager.replaceService(buildManagedServiceSpec(name, command, launchOpts));
|
|
4510
|
+
const launchDurationMs = Date.now() - launchStartedAt;
|
|
4511
|
+
if (launchDurationMs >= DEFAULT_EMBEDDED_SERVICE_LAUNCH_WARN_MS) {
|
|
4512
|
+
const warning = formatEmbeddedServiceLaunchDelayWarning({
|
|
4513
|
+
serviceName: name,
|
|
4514
|
+
durationMs: launchDurationMs,
|
|
4515
|
+
platform: process.platform
|
|
4516
|
+
});
|
|
4517
|
+
console.warn(warning);
|
|
4518
|
+
appendRuntimeServicesLogLine(runtimeServicesLogPath, warning);
|
|
4519
|
+
}
|
|
4520
|
+
return service;
|
|
4488
4521
|
};
|
|
4489
4522
|
const sandboxPaths = buildWorkerpalSandboxPaths(runtimeRoot);
|
|
4490
4523
|
const remoteBuddyFallbackBun = process.platform === "win32" ? resolveEmbeddedBunExecutableFromEnv(runtimeEnv, process.platform, process.execPath) : "";
|
|
@@ -5160,6 +5193,29 @@ function formatSessionEventLine(event) {
|
|
|
5160
5193
|
const type = String(event.type ?? "").toLowerCase();
|
|
5161
5194
|
const from = String(event.from ?? "");
|
|
5162
5195
|
const payload = event.payload ?? {};
|
|
5196
|
+
if (type === "job_enqueued") {
|
|
5197
|
+
const jobId = String(payload.jobId ?? "").slice(0, 8);
|
|
5198
|
+
const kind = String(payload.kind ?? "").trim();
|
|
5199
|
+
const taskId = String(payload.taskId ?? "").slice(0, 8);
|
|
5200
|
+
const detail = kind || (taskId ? `task ${taskId}` : "queued");
|
|
5201
|
+
return `[job ${jobId}] queued: ${detail}`;
|
|
5202
|
+
}
|
|
5203
|
+
if (type === "job_claimed") {
|
|
5204
|
+
const jobId = String(payload.jobId ?? "").slice(0, 8);
|
|
5205
|
+
const workerId = String(payload.workerId ?? "").trim();
|
|
5206
|
+
return `[job ${jobId}] claimed${workerId ? ` by ${workerId}` : ""}`;
|
|
5207
|
+
}
|
|
5208
|
+
if (type === "job_log") {
|
|
5209
|
+
const jobId = String(payload.jobId ?? "").slice(0, 8);
|
|
5210
|
+
const stream = String(payload.stream ?? "").toLowerCase() === "stderr" ? " stderr" : "";
|
|
5211
|
+
const line = compactCliSessionJobLogLine(String(payload.line ?? "").trim());
|
|
5212
|
+
return line ? `[job ${jobId}${stream}] ${line}` : null;
|
|
5213
|
+
}
|
|
5214
|
+
if (type === "job_failed") {
|
|
5215
|
+
const jobId = String(payload.jobId ?? "").slice(0, 8);
|
|
5216
|
+
const message = String(payload.message ?? "").trim();
|
|
5217
|
+
return `[job ${jobId}] failed: ${message || "unknown"}`;
|
|
5218
|
+
}
|
|
5163
5219
|
if (!shouldDisplayInteractiveSessionEvent(event))
|
|
5164
5220
|
return null;
|
|
5165
5221
|
if (type === "message")
|
|
@@ -5185,10 +5241,10 @@ function formatSessionEventLine(event) {
|
|
|
5185
5241
|
const summary = String(payload.summary ?? "").trim();
|
|
5186
5242
|
return `[task ${taskId}] completed${summary ? `: ${summary}` : ""}`;
|
|
5187
5243
|
}
|
|
5188
|
-
if (type === "
|
|
5244
|
+
if (type === "job_completed") {
|
|
5189
5245
|
const jobId = String(payload.jobId ?? "").slice(0, 8);
|
|
5190
|
-
const
|
|
5191
|
-
return `[job ${jobId}]
|
|
5246
|
+
const summary = String(payload.summary ?? "").trim();
|
|
5247
|
+
return `[job ${jobId}] completed${summary ? `: ${summary}` : ""}`;
|
|
5192
5248
|
}
|
|
5193
5249
|
if (type === "error") {
|
|
5194
5250
|
const message = String(payload.message ?? "").trim();
|
|
@@ -5202,6 +5258,12 @@ function formatSessionEventLine(event) {
|
|
|
5202
5258
|
}
|
|
5203
5259
|
return null;
|
|
5204
5260
|
}
|
|
5261
|
+
function compactCliSessionJobLogLine(line) {
|
|
5262
|
+
const compacted = line.replace(/\s+/g, " ").trim();
|
|
5263
|
+
if (compacted.length <= CLI_SESSION_JOB_LOG_MAX_CHARS)
|
|
5264
|
+
return compacted;
|
|
5265
|
+
return `${compacted.slice(0, CLI_SESSION_JOB_LOG_MAX_CHARS - 3)}...`;
|
|
5266
|
+
}
|
|
5205
5267
|
function buildSessionEventReplayFingerprint(event) {
|
|
5206
5268
|
const type = String(event.type ?? "").trim().toLowerCase();
|
|
5207
5269
|
if (type !== "status")
|
|
@@ -5905,6 +5967,7 @@ export {
|
|
|
5905
5967
|
formatTimestampedCliLine,
|
|
5906
5968
|
formatSessionEventLine,
|
|
5907
5969
|
formatRuntimeStartupTimingSummary,
|
|
5970
|
+
formatEmbeddedServiceLaunchDelayWarning,
|
|
5908
5971
|
formatEmbeddedRuntimeHealthLines2 as formatEmbeddedRuntimeHealthLines,
|
|
5909
5972
|
extractRemoteBuddySessionConsumerHealth,
|
|
5910
5973
|
extractRemoteBuddyAutonomousEngineState,
|
|
@@ -435,5 +435,5 @@ input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-web
|
|
|
435
435
|
@keyframes r-1pzkwqh{0%{transform:translateY(100%);}100%{transform:translateY(0%);}}
|
|
436
436
|
@keyframes r-imtty0{0%{opacity:0;}100%{opacity:1;}}
|
|
437
437
|
@keyframes r-q67da2{0%{transform:translateX(-100%);}100%{transform:translateX(400%);}}
|
|
438
|
-
@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><script type="module">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script><link rel="icon" href="/favicon.ico" /></head><body><div id="root"><div class="css-g5y9jx r-13awgt0"></div></div><script src="/_expo/static/js/web/entry-
|
|
438
|
+
@keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><script type="module">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script><link rel="icon" href="/favicon.ico" /></head><body><div id="root"><div class="css-g5y9jx r-13awgt0"></div></div><script src="/_expo/static/js/web/entry-ff425ab85ad13c1920b8ee00abfae7dd.js" defer></script>
|
|
439
439
|
</body></html>
|