@claudexor/cli 1.0.1 → 2.1.3
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/acp-surface-runner.d.ts +17 -0
- package/dist/acp-surface-runner.d.ts.map +1 -0
- package/dist/acp-surface-runner.js +187 -0
- package/dist/acp-surface-runner.js.map +1 -0
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js.map +1 -1
- package/dist/bridge-serve.d.ts +3 -0
- package/dist/bridge-serve.d.ts.map +1 -0
- package/dist/bridge-serve.js +39 -0
- package/dist/bridge-serve.js.map +1 -0
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +12 -3
- package/dist/capabilities.js.map +1 -1
- package/dist/claude-oauth-usage.d.ts +33 -0
- package/dist/claude-oauth-usage.d.ts.map +1 -0
- package/dist/claude-oauth-usage.js +190 -0
- package/dist/claude-oauth-usage.js.map +1 -0
- package/dist/claude-statusline.d.ts +25 -0
- package/dist/claude-statusline.d.ts.map +1 -0
- package/dist/claude-statusline.js +259 -0
- package/dist/claude-statusline.js.map +1 -0
- package/dist/claudexord.js +346 -543
- package/dist/claudexord.js.map +1 -1
- package/dist/cli-io.d.ts +8 -9
- package/dist/cli-io.d.ts.map +1 -1
- package/dist/cli-io.js +11 -7
- package/dist/cli-io.js.map +1 -1
- package/dist/cli.js +475 -516
- package/dist/cli.js.map +1 -1
- package/dist/codex-quota-source.d.ts +11 -0
- package/dist/codex-quota-source.d.ts.map +1 -0
- package/dist/codex-quota-source.js +181 -0
- package/dist/codex-quota-source.js.map +1 -0
- package/dist/command-flags.d.ts +18 -0
- package/dist/command-flags.d.ts.map +1 -0
- package/dist/command-flags.js +124 -0
- package/dist/command-flags.js.map +1 -0
- package/dist/command-registry.d.ts +2 -40
- package/dist/command-registry.d.ts.map +1 -1
- package/dist/command-registry.js +74 -164
- package/dist/command-registry.js.map +1 -1
- package/dist/control-services.d.ts +2490 -0
- package/dist/control-services.d.ts.map +1 -0
- package/dist/control-services.js +453 -0
- package/dist/control-services.js.map +1 -0
- package/dist/credential-commands.d.ts +9 -0
- package/dist/credential-commands.d.ts.map +1 -0
- package/dist/credential-commands.js +224 -0
- package/dist/credential-commands.js.map +1 -0
- package/dist/daemon-lifecycle.d.ts +7 -3
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +40 -12
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/daemon-run.d.ts +2 -0
- package/dist/daemon-run.d.ts.map +1 -1
- package/dist/daemon-run.js +62 -14
- package/dist/daemon-run.js.map +1 -1
- package/dist/daemon-runtime-shutdown.d.ts +58 -0
- package/dist/daemon-runtime-shutdown.d.ts.map +1 -0
- package/dist/daemon-runtime-shutdown.js +142 -0
- package/dist/daemon-runtime-shutdown.js.map +1 -0
- package/dist/decision.d.ts.map +1 -1
- package/dist/decision.js +12 -3
- package/dist/decision.js.map +1 -1
- package/dist/live.d.ts +29 -0
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +117 -6
- package/dist/live.js.map +1 -1
- package/dist/local-attachment.d.ts +14 -0
- package/dist/local-attachment.d.ts.map +1 -0
- package/dist/local-attachment.js +67 -0
- package/dist/local-attachment.js.map +1 -0
- package/dist/mcp-runner.d.ts +4 -15
- package/dist/mcp-runner.d.ts.map +1 -1
- package/dist/mcp-runner.js +276 -145
- package/dist/mcp-runner.js.map +1 -1
- package/dist/native-login.d.ts +21 -0
- package/dist/native-login.d.ts.map +1 -0
- package/dist/native-login.js +110 -0
- package/dist/native-login.js.map +1 -0
- package/dist/ops-commands.d.ts +8 -6
- package/dist/ops-commands.d.ts.map +1 -1
- package/dist/ops-commands.js +250 -168
- package/dist/ops-commands.js.map +1 -1
- package/dist/orchestrate-options.d.ts.map +1 -1
- package/dist/orchestrate-options.js +1 -1
- package/dist/orchestrate-options.js.map +1 -1
- package/dist/orphan-reaper.d.ts +4 -5
- package/dist/orphan-reaper.d.ts.map +1 -1
- package/dist/orphan-reaper.js +29 -56
- package/dist/orphan-reaper.js.map +1 -1
- package/dist/orphan-sweeper.d.ts +1 -2
- package/dist/orphan-sweeper.d.ts.map +1 -1
- package/dist/orphan-sweeper.js +29 -48
- package/dist/orphan-sweeper.js.map +1 -1
- package/dist/plugins.d.ts.map +1 -1
- package/dist/plugins.js +196 -64
- package/dist/plugins.js.map +1 -1
- package/dist/primary-output.d.ts.map +1 -1
- package/dist/primary-output.js.map +1 -1
- package/dist/profile-compatibility.d.ts +6 -0
- package/dist/profile-compatibility.d.ts.map +1 -0
- package/dist/profile-compatibility.js +21 -0
- package/dist/profile-compatibility.js.map +1 -0
- package/dist/profile-registration.d.ts +15 -0
- package/dist/profile-registration.d.ts.map +1 -0
- package/dist/profile-registration.js +68 -0
- package/dist/profile-registration.js.map +1 -0
- package/dist/project-command.d.ts +3 -0
- package/dist/project-command.d.ts.map +1 -0
- package/dist/project-command.js +87 -0
- package/dist/project-command.js.map +1 -0
- package/dist/quota-command.d.ts +3 -0
- package/dist/quota-command.d.ts.map +1 -0
- package/dist/quota-command.js +59 -0
- package/dist/quota-command.js.map +1 -0
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +16 -4
- package/dist/registry.js.map +1 -1
- package/dist/release.d.ts.map +1 -1
- package/dist/release.js +15 -3
- package/dist/release.js.map +1 -1
- package/dist/repl.d.ts +3 -8
- package/dist/repl.d.ts.map +1 -1
- package/dist/repl.js +23 -122
- package/dist/repl.js.map +1 -1
- package/dist/request-preflight.d.ts +13 -0
- package/dist/request-preflight.d.ts.map +1 -0
- package/dist/request-preflight.js +81 -0
- package/dist/request-preflight.js.map +1 -0
- package/dist/retention-service.d.ts +24 -0
- package/dist/retention-service.d.ts.map +1 -0
- package/dist/retention-service.js +100 -0
- package/dist/retention-service.js.map +1 -0
- package/dist/retry-command-specs.d.ts +3 -0
- package/dist/retry-command-specs.d.ts.map +1 -0
- package/dist/retry-command-specs.js +21 -0
- package/dist/retry-command-specs.js.map +1 -0
- package/dist/retry-command.d.ts +4 -0
- package/dist/retry-command.d.ts.map +1 -0
- package/dist/retry-command.js +57 -0
- package/dist/retry-command.js.map +1 -0
- package/dist/review-command.d.ts.map +1 -1
- package/dist/review-command.js +47 -12
- package/dist/review-command.js.map +1 -1
- package/dist/run-options.d.ts +2 -2
- package/dist/run-options.d.ts.map +1 -1
- package/dist/run-options.js +27 -5
- package/dist/run-options.js.map +1 -1
- package/dist/settings-command.d.ts.map +1 -1
- package/dist/settings-command.js +143 -188
- package/dist/settings-command.js.map +1 -1
- package/dist/settings-service.d.ts +50 -0
- package/dist/settings-service.d.ts.map +1 -1
- package/dist/settings-service.js +67 -1
- package/dist/settings-service.js.map +1 -1
- package/dist/setup-job-reducer.d.ts +9 -0
- package/dist/setup-job-reducer.d.ts.map +1 -0
- package/dist/setup-job-reducer.js +290 -0
- package/dist/setup-job-reducer.js.map +1 -0
- package/dist/setup-job-store.d.ts +250 -0
- package/dist/setup-job-store.d.ts.map +1 -0
- package/dist/setup-job-store.js +359 -0
- package/dist/setup-job-store.js.map +1 -0
- package/dist/setup-job-support.d.ts +27 -0
- package/dist/setup-job-support.d.ts.map +1 -0
- package/dist/setup-job-support.js +141 -0
- package/dist/setup-job-support.js.map +1 -0
- package/dist/setup-jobs.d.ts +437 -22
- package/dist/setup-jobs.d.ts.map +1 -1
- package/dist/setup-jobs.js +813 -423
- package/dist/setup-jobs.js.map +1 -1
- package/dist/setup-lifecycle-binding.d.ts +40 -0
- package/dist/setup-lifecycle-binding.d.ts.map +1 -0
- package/dist/setup-lifecycle-binding.js +159 -0
- package/dist/setup-lifecycle-binding.js.map +1 -0
- package/dist/setup-login-protocol.d.ts +13 -0
- package/dist/setup-login-protocol.d.ts.map +1 -0
- package/dist/setup-login-protocol.js +179 -0
- package/dist/setup-login-protocol.js.map +1 -0
- package/dist/setup-login-runner.d.ts +20 -0
- package/dist/setup-login-runner.d.ts.map +1 -0
- package/dist/setup-login-runner.js +225 -0
- package/dist/setup-login-runner.js.map +1 -0
- package/dist/setup-supervisor.d.ts +53 -0
- package/dist/setup-supervisor.d.ts.map +1 -0
- package/dist/setup-supervisor.js +177 -0
- package/dist/setup-supervisor.js.map +1 -0
- package/dist/spec-thread-scope.d.ts +3 -0
- package/dist/spec-thread-scope.d.ts.map +1 -0
- package/dist/spec-thread-scope.js +9 -0
- package/dist/spec-thread-scope.js.map +1 -0
- package/dist/spec.d.ts +9 -20
- package/dist/spec.d.ts.map +1 -1
- package/dist/spec.js +49 -21
- package/dist/spec.js.map +1 -1
- package/dist/thread-delivery.d.ts +18 -0
- package/dist/thread-delivery.d.ts.map +1 -0
- package/dist/thread-delivery.js +67 -0
- package/dist/thread-delivery.js.map +1 -0
- package/dist/thread-select.d.ts +9 -0
- package/dist/thread-select.d.ts.map +1 -0
- package/dist/thread-select.js +12 -0
- package/dist/thread-select.js.map +1 -0
- package/dist/trust-command.d.ts.map +1 -1
- package/dist/trust-command.js +69 -61
- package/dist/trust-command.js.map +1 -1
- package/dist/trust-services.d.ts +5 -6
- package/dist/trust-services.d.ts.map +1 -1
- package/dist/trust-services.js +42 -13
- package/dist/trust-services.js.map +1 -1
- package/package.json +24 -22
- package/dist/attachment-resolver.d.ts +0 -11
- package/dist/attachment-resolver.d.ts.map +0 -1
- package/dist/attachment-resolver.js +0 -61
- package/dist/attachment-resolver.js.map +0 -1
- package/dist/settings-display.d.ts +0 -3
- package/dist/settings-display.d.ts.map +0 -1
- package/dist/settings-display.js +0 -33
- package/dist/settings-display.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-reaper.d.ts","sourceRoot":"","sources":["../src/orphan-reaper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orphan-reaper.d.ts","sourceRoot":"","sources":["../src/orphan-reaper.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAQzB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAapD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,aAAa,GAAE,mBAAgD,GAC9D,MAAM,EAAE,CAoCV"}
|
package/dist/orphan-reaper.js
CHANGED
|
@@ -2,15 +2,11 @@
|
|
|
2
2
|
* Orphaned-child bookkeeping for the daemon. Harness children run in
|
|
3
3
|
* their OWN process groups (deliberate: group kill), so they survive a daemon
|
|
4
4
|
* crash/SIGKILL and keep mutating trees with nobody watching. The daemon
|
|
5
|
-
* periodically snapshots
|
|
6
|
-
*
|
|
7
|
-
* command is an orphan from a previous daemon life — its process group is
|
|
8
|
-
* killed before new work is accepted.
|
|
5
|
+
* periodically snapshots exact kernel process-group handles to a pids file;
|
|
6
|
+
* on the next start, only the same leader birth identity may be signalled.
|
|
9
7
|
*/
|
|
10
|
-
import { execFileSync } from "node:child_process";
|
|
11
8
|
import { readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
12
|
-
import {
|
|
13
|
-
import { liveChildProcesses } from "@claudexor/core";
|
|
9
|
+
import { defaultProcessGroupService, liveChildProcesses, parseProcessGroupHandle, } from "@claudexor/core";
|
|
14
10
|
export function writePidsSnapshot(path) {
|
|
15
11
|
try {
|
|
16
12
|
const pids = liveChildProcesses();
|
|
@@ -27,17 +23,30 @@ export function writePidsSnapshot(path) {
|
|
|
27
23
|
}
|
|
28
24
|
}
|
|
29
25
|
/**
|
|
30
|
-
* Kill process groups recorded by a PREVIOUS daemon life.
|
|
31
|
-
*
|
|
32
|
-
* recorded command (typed equality on basename, no pattern matching). Returns
|
|
33
|
-
* a human-readable action log for the daemon log.
|
|
26
|
+
* Kill process groups recorded by a PREVIOUS daemon life. Legacy pid/cmd-only
|
|
27
|
+
* entries and stale/unknown identities are skipped fail-closed.
|
|
34
28
|
*/
|
|
35
|
-
export function reapRecordedOrphans(path) {
|
|
29
|
+
export function reapRecordedOrphans(path, processGroups = defaultProcessGroupService) {
|
|
36
30
|
let recorded = [];
|
|
37
31
|
try {
|
|
38
32
|
const raw = JSON.parse(readFileSync(path, "utf8"));
|
|
39
33
|
if (Array.isArray(raw.pids)) {
|
|
40
|
-
recorded = raw.pids.
|
|
34
|
+
recorded = raw.pids.flatMap((value) => {
|
|
35
|
+
if (!value || typeof value !== "object")
|
|
36
|
+
return [];
|
|
37
|
+
const candidate = value;
|
|
38
|
+
if (!Number.isSafeInteger(candidate.pid) || typeof candidate.cmd !== "string")
|
|
39
|
+
return [];
|
|
40
|
+
try {
|
|
41
|
+
const processGroup = parseProcessGroupHandle(candidate.processGroup);
|
|
42
|
+
return processGroup.pgid === candidate.pid
|
|
43
|
+
? [{ pid: candidate.pid, cmd: candidate.cmd, processGroup }]
|
|
44
|
+
: [];
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
});
|
|
41
50
|
}
|
|
42
51
|
}
|
|
43
52
|
catch {
|
|
@@ -45,53 +54,17 @@ export function reapRecordedOrphans(path) {
|
|
|
45
54
|
}
|
|
46
55
|
const actions = [];
|
|
47
56
|
for (const child of recorded) {
|
|
48
|
-
const
|
|
49
|
-
if (
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
actions.push(`skip pid ${child.pid}: command changed (${basename(liveCmd)} != ${basename(child.cmd)}) — likely recycled`);
|
|
53
|
-
continue;
|
|
54
|
-
}
|
|
55
|
-
try {
|
|
56
|
-
process.kill(-child.pid, "SIGTERM");
|
|
57
|
-
actions.push(`SIGTERM orphan process group ${child.pid} (${basename(child.cmd)})`);
|
|
58
|
-
setTimeout(() => {
|
|
59
|
-
try {
|
|
60
|
-
process.kill(-child.pid, "SIGKILL");
|
|
61
|
-
}
|
|
62
|
-
catch {
|
|
63
|
-
/* group exited after SIGTERM */
|
|
64
|
-
}
|
|
65
|
-
}, 3_000).unref?.();
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
try {
|
|
69
|
-
process.kill(child.pid, "SIGTERM");
|
|
70
|
-
actions.push(`SIGTERM orphan pid ${child.pid} (${basename(child.cmd)}; group already gone)`);
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
/* exited between the liveness check and the kill */
|
|
57
|
+
const term = processGroups.signal(child.processGroup, "SIGTERM");
|
|
58
|
+
if (term.status !== "sent") {
|
|
59
|
+
if (term.status === "unknown") {
|
|
60
|
+
actions.push(`skip orphan process group ${child.pid} (${child.cmd}): ${term.reason}`);
|
|
74
61
|
}
|
|
62
|
+
continue;
|
|
75
63
|
}
|
|
64
|
+
actions.push(`SIGTERM orphan process group ${child.pid} (${child.cmd})`);
|
|
65
|
+
setTimeout(() => processGroups.signal(child.processGroup, "SIGKILL"), 3_000).unref?.();
|
|
76
66
|
}
|
|
77
67
|
rmSync(path, { force: true });
|
|
78
68
|
return actions;
|
|
79
69
|
}
|
|
80
|
-
/** The live command name for a pid, or null when the process is gone. */
|
|
81
|
-
function processCommandName(pid) {
|
|
82
|
-
try {
|
|
83
|
-
process.kill(pid, 0);
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
try {
|
|
89
|
-
const out = execFileSync("ps", ["-p", String(pid), "-o", "comm="], { encoding: "utf8" });
|
|
90
|
-
const cmd = out.trim();
|
|
91
|
-
return cmd.length > 0 ? cmd : null;
|
|
92
|
-
}
|
|
93
|
-
catch {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
70
|
//# sourceMappingURL=orphan-reaper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-reaper.js","sourceRoot":"","sources":["../src/orphan-reaper.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"orphan-reaper.js","sourceRoot":"","sources":["../src/orphan-reaper.ts"],"names":[],"mappings":"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"}
|
package/dist/orphan-sweeper.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-sweeper.d.ts","sourceRoot":"","sources":["../src/orphan-sweeper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orphan-sweeper.d.ts","sourceRoot":"","sources":["../src/orphan-sweeper.ts"],"names":[],"mappings":"AA6BA,UAAU,UAAU;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAahF"}
|
package/dist/orphan-sweeper.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* to interrupted, queued jobs have not materialized task ids), so every
|
|
8
8
|
* found envelope under a daemon-known project root is an orphan.
|
|
9
9
|
*
|
|
10
|
-
* Reach is honest: only roots recorded in
|
|
10
|
+
* Reach is honest: only roots recorded in the command journal (plus their thread
|
|
11
11
|
* trees) are sweepable — a project never run through this daemon is not.
|
|
12
12
|
*
|
|
13
13
|
* LIVE-OWNER GUARD: envelopes carry owner.json (pid + kernel start time);
|
|
@@ -22,31 +22,33 @@ import { existsSync, readFileSync, readdirSync, rmSync, statSync } from "node:fs
|
|
|
22
22
|
import { tmpdir } from "node:os";
|
|
23
23
|
import { join } from "node:path";
|
|
24
24
|
import { WorkspaceManager, git, processStartTime } from "@claudexor/workspace";
|
|
25
|
+
import { projectRuntimeDir } from "@claudexor/util";
|
|
26
|
+
import { DurableJournal } from "@claudexor/journal";
|
|
25
27
|
const RO_HOME_MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
26
28
|
export async function sweepOrphanWorkspaces(input) {
|
|
27
29
|
const actions = [];
|
|
28
|
-
const roots = knownProjectRoots(input.
|
|
29
|
-
const liveThreadIds = knownThreadIds(input.threadsPath);
|
|
30
|
+
const roots = knownProjectRoots(input.journalRoot);
|
|
30
31
|
for (const root of roots) {
|
|
31
32
|
const trees = [root, ...threadTreesUnder(root)];
|
|
32
33
|
for (const tree of trees) {
|
|
33
34
|
actions.push(...(await sweepEnvelopesUnder(tree)));
|
|
34
|
-
actions.push(...(await sweepAttemptBranches(tree
|
|
35
|
+
actions.push(...(await sweepAttemptBranches(tree)));
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
actions.push(...sweepReadOnlyHomes());
|
|
38
39
|
return actions;
|
|
39
40
|
}
|
|
40
|
-
/** Project roots this daemon has ever run against (
|
|
41
|
-
function knownProjectRoots(
|
|
41
|
+
/** Project roots this daemon has ever run against (command journal scope roots). */
|
|
42
|
+
function knownProjectRoots(journalRoot) {
|
|
42
43
|
const roots = new Set();
|
|
44
|
+
let journal = null;
|
|
43
45
|
try {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
46
|
+
journal = new DurableJournal({ rootDir: journalRoot, partition: "global" });
|
|
47
|
+
for (const entry of journal.records()) {
|
|
48
|
+
if (entry.type !== "command.accepted")
|
|
49
|
+
continue;
|
|
50
|
+
const payload = entry.payload;
|
|
51
|
+
const scope = payload.record?.params?.scope;
|
|
50
52
|
if (scope &&
|
|
51
53
|
scope.kind === "project" &&
|
|
52
54
|
typeof scope.root === "string" &&
|
|
@@ -58,20 +60,14 @@ function knownProjectRoots(jobsPath) {
|
|
|
58
60
|
catch {
|
|
59
61
|
return [];
|
|
60
62
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
function knownThreadIds(threadsPath) {
|
|
64
|
-
try {
|
|
65
|
-
const raw = JSON.parse(readFileSync(threadsPath, "utf8"));
|
|
66
|
-
return new Set((raw.threads ?? []).map((t) => t?.id).filter((id) => typeof id === "string"));
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
return new Set();
|
|
63
|
+
finally {
|
|
64
|
+
journal?.close();
|
|
70
65
|
}
|
|
66
|
+
return [...roots];
|
|
71
67
|
}
|
|
72
|
-
/** Isolated-thread worktrees
|
|
68
|
+
/** Isolated-thread worktrees live in the external per-project runtime namespace. */
|
|
73
69
|
function threadTreesUnder(root) {
|
|
74
|
-
const threadsDir = join(root, "
|
|
70
|
+
const threadsDir = join(projectRuntimeDir(root), "threads");
|
|
75
71
|
if (!existsSync(threadsDir))
|
|
76
72
|
return [];
|
|
77
73
|
try {
|
|
@@ -85,7 +81,7 @@ function threadTreesUnder(root) {
|
|
|
85
81
|
}
|
|
86
82
|
async function sweepEnvelopesUnder(execRoot) {
|
|
87
83
|
const actions = [];
|
|
88
|
-
const workspacesDir = join(execRoot, "
|
|
84
|
+
const workspacesDir = join(projectRuntimeDir(execRoot), "workspaces");
|
|
89
85
|
if (!existsSync(workspacesDir))
|
|
90
86
|
return actions;
|
|
91
87
|
const wsm = new WorkspaceManager(execRoot);
|
|
@@ -114,8 +110,8 @@ async function sweepEnvelopesUnder(execRoot) {
|
|
|
114
110
|
return actions;
|
|
115
111
|
}
|
|
116
112
|
/** How long an envelope may be KEPT on live-pid evidence alone when
|
|
117
|
-
* start-time recycling proof is unavailable on either side. Bounds
|
|
118
|
-
* retention: a recycled pid cannot pin a
|
|
113
|
+
* start-time recycling proof is unavailable on either side. Bounds scoped
|
|
114
|
+
* auth/scratch retention: a recycled pid cannot pin a route-scoped home forever. */
|
|
119
115
|
const OWNERLESS_PROOF_KEEP_MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
120
116
|
/** The live owner pid recorded in the envelope's owner.json, or null when the
|
|
121
117
|
* marker is missing, the pid is dead, or the pid was RECYCLED (the live
|
|
@@ -123,7 +119,7 @@ const OWNERLESS_PROOF_KEEP_MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
|
123
119
|
* names/titles mutate, start times never do). FAIL-SAFE, bounded: when
|
|
124
120
|
* start-time evidence is unavailable on either side (`ps` missing/sandboxed,
|
|
125
121
|
* legacy marker), a LIVE pid keeps the envelope only while it is FRESH —
|
|
126
|
-
* in-flight work survives, but a recycled pid cannot retain
|
|
122
|
+
* in-flight work survives, but a recycled pid cannot retain route-scoped
|
|
127
123
|
* homes indefinitely. A pid alive under another uid (EPERM) counts as alive. */
|
|
128
124
|
function envelopeOwner(envelopeBase) {
|
|
129
125
|
try {
|
|
@@ -153,7 +149,7 @@ function envelopeOwner(envelopeBase) {
|
|
|
153
149
|
// only the file's mtime, not its parent directory's, so directory stats
|
|
154
150
|
// alone would sweep a live owner that edits in place. A live long-running
|
|
155
151
|
// owner keeps extending its own window; a recycled pid cannot pin a
|
|
156
|
-
//
|
|
152
|
+
// route-scoped home forever.
|
|
157
153
|
const newestMtime = Math.max(safeMtime(envelopeBase), safeMtime(join(envelopeBase, "owner.json")), newestMtimeUnder(join(envelopeBase, "tree")), newestMtimeUnder(join(envelopeBase, "home")));
|
|
158
154
|
return Date.now() - newestMtime < OWNERLESS_PROOF_KEEP_MAX_AGE_MS ? raw.pid : null;
|
|
159
155
|
}
|
|
@@ -164,11 +160,10 @@ function envelopeOwner(envelopeBase) {
|
|
|
164
160
|
/**
|
|
165
161
|
* Per-attempt branches whose envelope is gone are debris (disposeOrphan
|
|
166
162
|
* removes its own branch; this catches branches whose envelope dir was
|
|
167
|
-
* deleted out-of-band).
|
|
168
|
-
*
|
|
169
|
-
* the store.
|
|
163
|
+
* deleted out-of-band). Persistent thread branches are lifecycle-owned and
|
|
164
|
+
* are removed only by explicit purge, never by this generic debris sweep.
|
|
170
165
|
*/
|
|
171
|
-
async function sweepAttemptBranches(execRoot
|
|
166
|
+
async function sweepAttemptBranches(execRoot) {
|
|
172
167
|
const actions = [];
|
|
173
168
|
const branches = await git(execRoot, [
|
|
174
169
|
"branch",
|
|
@@ -193,26 +188,12 @@ async function sweepAttemptBranches(execRoot, liveThreadIds) {
|
|
|
193
188
|
continue;
|
|
194
189
|
}
|
|
195
190
|
if (rest.startsWith("thread-")) {
|
|
196
|
-
const tid = rest.slice("thread-".length);
|
|
197
|
-
if (liveThreadIds.has(tid))
|
|
198
|
-
continue;
|
|
199
|
-
// Dead thread branch: its worktree dir decides — an existing tree means
|
|
200
|
-
// the thread store lost the record but the work is still there; keep it
|
|
201
|
-
// (evidence beats cleanup) and only note it.
|
|
202
|
-
const threadTree = join(execRoot, ".claudexor", "threads", tid, "tree");
|
|
203
|
-
if (existsSync(threadTree)) {
|
|
204
|
-
actions.push(`kept branch ${branch}: thread tree still on disk (store record missing)`);
|
|
205
|
-
continue;
|
|
206
|
-
}
|
|
207
|
-
const del = await git(execRoot, ["branch", "-D", branch]);
|
|
208
|
-
if (del.code === 0)
|
|
209
|
-
actions.push(`deleted dead thread branch ${branch} under ${execRoot}`);
|
|
210
191
|
continue;
|
|
211
192
|
}
|
|
212
193
|
const [taskId, attemptId] = rest.split("/");
|
|
213
194
|
if (!taskId || !attemptId)
|
|
214
195
|
continue;
|
|
215
|
-
const envelopeBase = join(execRoot, "
|
|
196
|
+
const envelopeBase = join(projectRuntimeDir(execRoot), "workspaces", taskId, attemptId);
|
|
216
197
|
if (existsSync(envelopeBase))
|
|
217
198
|
continue; // still owned (sweep order: envelopes first)
|
|
218
199
|
const del = await git(execRoot, ["branch", "-D", branch]);
|
|
@@ -221,7 +202,7 @@ async function sweepAttemptBranches(execRoot, liveThreadIds) {
|
|
|
221
202
|
}
|
|
222
203
|
return actions;
|
|
223
204
|
}
|
|
224
|
-
/** Read-only scoped homes and verify worktree dirs leak on crash; ro homes can hold
|
|
205
|
+
/** Read-only scoped homes and verify worktree dirs leak on crash; ro homes can hold injected API-route material. */
|
|
225
206
|
function sweepReadOnlyHomes() {
|
|
226
207
|
const actions = [];
|
|
227
208
|
const tmp = tmpdir();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orphan-sweeper.js","sourceRoot":"","sources":["../src/orphan-sweeper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"orphan-sweeper.js","sourceRoot":"","sources":["../src/orphan-sweeper.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAyBA,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AACpE,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AAC9C,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAClF,MAAM,MAAM,kBAAkB,GAC5B,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7E,eAAO,MAAM,YAAY,EAAE,UAAU,EAA8C,CAAC;AACpF,eAAO,MAAM,cAAc,EAAE,YAAY,EAA6B,CAAC;AACvE,eAAO,MAAM,YAAY,EAAE,UAAU,EAA2D,CAAC;AAkEjG,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,EAAE,CAAC;IACZ,EAAE,EAAE,KAAK,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAmoDD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAsB9B;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAWtE;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,wBAAwB,CAU1B"}
|