codedeck 0.1.1 → 0.1.2
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/cli/commands/ps.js +40 -12
- package/dist/cli/commands/ps.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/commands/ps.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isActiveStatus } from "../../core/session.js";
|
|
1
2
|
import { IpcClient } from "../../daemon/ipc.js";
|
|
2
3
|
function formatAge(date) {
|
|
3
4
|
const d = new Date(date);
|
|
@@ -13,6 +14,43 @@ function formatAge(date) {
|
|
|
13
14
|
const days = Math.floor(hours / 24);
|
|
14
15
|
return `${days}d`;
|
|
15
16
|
}
|
|
17
|
+
const LAST_EVENT_WIDTH = 15;
|
|
18
|
+
function isProcessAlive(pid) {
|
|
19
|
+
try {
|
|
20
|
+
process.kill(pid, 0);
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
// EPERM means the process exists but belongs to another user.
|
|
25
|
+
return error.code !== "ESRCH";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function displayStatus(session) {
|
|
29
|
+
if (isActiveStatus(session.status) &&
|
|
30
|
+
session.pid != null &&
|
|
31
|
+
!isProcessAlive(session.pid)) {
|
|
32
|
+
return "dead";
|
|
33
|
+
}
|
|
34
|
+
return session.status;
|
|
35
|
+
}
|
|
36
|
+
export function renderPsTable(sessions) {
|
|
37
|
+
const lines = [
|
|
38
|
+
"ID NAME AGENT STATUS AGE LAST LAST EVENT CWD",
|
|
39
|
+
"─".repeat(80),
|
|
40
|
+
];
|
|
41
|
+
for (const s of sessions) {
|
|
42
|
+
const id = (s.id || "").slice(0, 4).padEnd(4);
|
|
43
|
+
const name = (s.name || s.branch?.replace("ra/", "") || "-").slice(0, 16).padEnd(16);
|
|
44
|
+
const agent = (s.agent || "").slice(0, 9).padEnd(9);
|
|
45
|
+
const status = displayStatus(s).slice(0, 12).padEnd(12);
|
|
46
|
+
const age = formatAge(s.createdAt).padEnd(5);
|
|
47
|
+
const last = formatAge(s.updatedAt).padEnd(5);
|
|
48
|
+
const lastEvent = (s.lastEvent || "-").replace(/[\r\n\t]+/g, " ").slice(0, LAST_EVENT_WIDTH).padEnd(LAST_EVENT_WIDTH);
|
|
49
|
+
const cwd = (s.worktree || s.cwd || "").replace(process.env.HOME || "", "~");
|
|
50
|
+
lines.push(`${id} ${name} ${agent} ${status} ${age} ${last} ${lastEvent} ${cwd}`);
|
|
51
|
+
}
|
|
52
|
+
return lines.join("\n");
|
|
53
|
+
}
|
|
16
54
|
export function registerPsCommand(program) {
|
|
17
55
|
program
|
|
18
56
|
.command("ps")
|
|
@@ -42,18 +80,8 @@ export function registerPsCommand(program) {
|
|
|
42
80
|
console.log("No sessions");
|
|
43
81
|
return;
|
|
44
82
|
}
|
|
45
|
-
// Header
|
|
46
|
-
console.log(
|
|
47
|
-
console.log("─".repeat(80));
|
|
48
|
-
for (const s of sessions) {
|
|
49
|
-
const id = (s.id || "").padEnd(4);
|
|
50
|
-
const name = (s.name || s.branch?.replace("ra/", "") || "-").slice(0, 16).padEnd(16);
|
|
51
|
-
const agent = (s.agent || "").padEnd(9);
|
|
52
|
-
const status = (s.status || "").padEnd(12);
|
|
53
|
-
const age = formatAge(s.createdAt).padEnd(5);
|
|
54
|
-
const cwd = (s.worktree || s.cwd || "").replace(process.env.HOME || "", "~");
|
|
55
|
-
console.log(`${id} ${name} ${agent} ${status} ${age} ${cwd}`);
|
|
56
|
-
}
|
|
83
|
+
// Header and rows share the same fixed-width formatter.
|
|
84
|
+
console.log(renderPsTable(sessions));
|
|
57
85
|
});
|
|
58
86
|
}
|
|
59
87
|
//# sourceMappingURL=ps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ps.js","sourceRoot":"","sources":["../../../src/cli/commands/ps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,SAAS,SAAS,CAAC,IAAmB;IACpC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IACxC,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,GAAG,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,GAAG,KAAK,GAAG,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACpC,OAAO,GAAG,IAAI,GAAG,CAAC;AACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"ps.js","sourceRoot":"","sources":["../../../src/cli/commands/ps.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED