open-agents-ai 0.187.338 → 0.187.339
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/index.js +52 -13
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -299783,12 +299783,19 @@ sleep 1
|
|
|
299783
299783
|
onEnter: (item, { done }) => {
|
|
299784
299784
|
(async () => {
|
|
299785
299785
|
if (item.key === "__kill__") {
|
|
299786
|
-
|
|
299786
|
+
renderInfo2("Scorched earth: removing all scheduled tasks, timers, crons, and killing processes...");
|
|
299787
299787
|
try {
|
|
299788
|
+
const delResp = await doFetch("/v1/scheduled/all", { method: "DELETE", headers: { "Content-Type": "application/json" } });
|
|
299789
|
+
const delJ = await delResp.json();
|
|
299790
|
+
renderInfo2(`Deleted ${delJ.deleted || 0} tasks, ${delJ.timers_disabled || 0} timers, ${delJ.cron_lines_removed || 0} cron entries.`);
|
|
299791
|
+
} catch {
|
|
299792
|
+
}
|
|
299793
|
+
try {
|
|
299794
|
+
const resp = await doFetch("/v1/scheduled/kill", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({}) });
|
|
299788
299795
|
const j = await resp.json();
|
|
299789
299796
|
const kb = Array.isArray(j.killed) ? j.killed.length : 0;
|
|
299790
299797
|
const ka = Array.isArray(j.additionally) ? j.additionally.length : 0;
|
|
299791
|
-
renderInfo2(`Killed ${kb + ka} processes
|
|
299798
|
+
renderInfo2(`Killed ${kb + ka} processes.`);
|
|
299792
299799
|
const before = j.gpu_before?.[0];
|
|
299793
299800
|
const after = j.gpu_after?.[0];
|
|
299794
299801
|
if (before && after) {
|
|
@@ -299796,19 +299803,18 @@ sleep 1
|
|
|
299796
299803
|
}
|
|
299797
299804
|
const rem = Array.isArray(j.procs_after) ? j.procs_after.length : 0;
|
|
299798
299805
|
if (rem > 0) {
|
|
299799
|
-
renderWarning2(
|
|
299800
|
-
const script =
|
|
299806
|
+
renderWarning2(`${rem} processes remain. Escalating with sudo...`);
|
|
299807
|
+
const script = [
|
|
299808
|
+
`for u in $(systemctl list-unit-files 'oa-*.timer' --no-legend 2>/dev/null | awk '{print $1}'); do systemctl disable --now "$u" 2>/dev/null; done`,
|
|
299809
|
+
`for u in $(systemctl list-unit-files 'oa-*.service' --no-legend 2>/dev/null | awk '{print $1}'); do systemctl disable --now "$u" 2>/dev/null; done`,
|
|
299810
|
+
`crontab -l 2>/dev/null | sed '/OPEN-AGENTS-SCHEDULED/d' | crontab - || true`,
|
|
299811
|
+
`pkill -f 'OPEN-AGENTS-SCHEDULED|oa-sched-' || true`,
|
|
299812
|
+
`sleep 1`,
|
|
299813
|
+
`pkill -9 -f 'OPEN-AGENTS-SCHEDULED|oa-sched-' || true`
|
|
299814
|
+
].join("; ");
|
|
299801
299815
|
await runSudoScript(ctx3, script);
|
|
299802
|
-
try {
|
|
299803
|
-
const r22 = await doFetch("/v1/scheduled/kill", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({}) });
|
|
299804
|
-
const j2 = await r22.json();
|
|
299805
|
-
const rem2 = Array.isArray(j2.procs_after) ? j2.procs_after.length : 0;
|
|
299806
|
-
if (rem2 > 0) renderWarning2(`Remaining after escalation: ${rem2}`);
|
|
299807
|
-
else renderInfo2("No remaining matched processes after escalation.");
|
|
299808
|
-
} catch {
|
|
299809
|
-
}
|
|
299810
299816
|
} else {
|
|
299811
|
-
renderInfo2("
|
|
299817
|
+
renderInfo2("All clear — no remaining processes.");
|
|
299812
299818
|
}
|
|
299813
299819
|
} catch {
|
|
299814
299820
|
renderInfo2("Kill signal sent.");
|
|
@@ -328163,6 +328169,39 @@ async function handleRequest(req2, res, ollamaUrl, verbose) {
|
|
|
328163
328169
|
jsonResponse(res, ok2 ? 200 : 404, ok2 ? { id, enabled: enabled2 } : { error: "Not found" });
|
|
328164
328170
|
return;
|
|
328165
328171
|
}
|
|
328172
|
+
if (pathname === "/v1/scheduled/all" && method === "DELETE") {
|
|
328173
|
+
let deleted = 0;
|
|
328174
|
+
try {
|
|
328175
|
+
const tasks = listScheduledTasks();
|
|
328176
|
+
for (let i2 = tasks.length - 1; i2 >= 0; i2--) {
|
|
328177
|
+
try {
|
|
328178
|
+
deleteScheduledById(tasks[i2].id);
|
|
328179
|
+
deleted++;
|
|
328180
|
+
} catch {
|
|
328181
|
+
}
|
|
328182
|
+
}
|
|
328183
|
+
} catch {
|
|
328184
|
+
}
|
|
328185
|
+
const timersDisabled = disableAllOaTimers();
|
|
328186
|
+
const cronRemoved = removeAllOaCrons();
|
|
328187
|
+
try {
|
|
328188
|
+
const tasks = listScheduledTasks();
|
|
328189
|
+
const seenFiles = /* @__PURE__ */ new Set();
|
|
328190
|
+
for (const t2 of tasks) {
|
|
328191
|
+
if (t2.file && t2.file !== "(systemd)") seenFiles.add(t2.file);
|
|
328192
|
+
}
|
|
328193
|
+
for (const f2 of seenFiles) {
|
|
328194
|
+
try {
|
|
328195
|
+
writeFileSync45(f2, JSON.stringify({ tasks: [] }, null, 2));
|
|
328196
|
+
deleted++;
|
|
328197
|
+
} catch {
|
|
328198
|
+
}
|
|
328199
|
+
}
|
|
328200
|
+
} catch {
|
|
328201
|
+
}
|
|
328202
|
+
jsonResponse(res, 200, { deleted, timers_disabled: timersDisabled, cron_lines_removed: cronRemoved });
|
|
328203
|
+
return;
|
|
328204
|
+
}
|
|
328166
328205
|
if (pathname === "/v1/scheduled/kill" && method === "POST") {
|
|
328167
328206
|
const body = await parseJsonBody(req2);
|
|
328168
328207
|
const pids = Array.isArray(body?.pids) ? body.pids.filter((n2) => Number.isInteger(n2)) : void 0;
|
package/package.json
CHANGED