@procedures/node 0.2.3 → 0.4.0
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/CHANGELOG.md +67 -0
- package/README.md +48 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +22 -1
- package/dist/module.js.map +1 -1
- package/dist/procedures/node/index.d.ts +1 -0
- package/dist/procedures/node/index.d.ts.map +1 -1
- package/dist/procedures/node/index.js +1 -0
- package/dist/procedures/node/index.js.map +1 -1
- package/dist/procedures/node/logs.d.ts +27 -0
- package/dist/procedures/node/logs.d.ts.map +1 -0
- package/dist/procedures/node/logs.js +91 -0
- package/dist/procedures/node/logs.js.map +1 -0
- package/dist/process-manager.d.ts +6 -0
- package/dist/process-manager.d.ts.map +1 -1
- package/dist/process-manager.js +7 -0
- package/dist/process-manager.js.map +1 -1
- package/dist/types.d.ts +50 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +33 -0
- package/dist/types.js.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +1 -0
- package/src/module.ts +28 -1
- package/src/procedures/node/index.ts +1 -0
- package/src/procedures/node/logs.ts +91 -0
- package/src/process-manager.ts +9 -1
- package/src/types.ts +75 -0
package/dist/index.d.ts
CHANGED
|
@@ -7,5 +7,6 @@ export { nodeRun } from "./procedures/node/run.js";
|
|
|
7
7
|
export { nodeSpawn } from "./procedures/node/spawn.js";
|
|
8
8
|
export { nodeKill } from "./procedures/node/kill.js";
|
|
9
9
|
export { nodeStatus } from "./procedures/node/status.js";
|
|
10
|
+
export { nodeLogs } from "./procedures/node/logs.js";
|
|
10
11
|
export { processManager } from "./process-manager.js";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export { nodeRun } from "./procedures/node/run.js";
|
|
|
9
9
|
export { nodeSpawn } from "./procedures/node/spawn.js";
|
|
10
10
|
export { nodeKill } from "./procedures/node/kill.js";
|
|
11
11
|
export { nodeStatus } from "./procedures/node/status.js";
|
|
12
|
+
export { nodeLogs } from "./procedures/node/logs.js";
|
|
12
13
|
// Export process manager
|
|
13
14
|
export { processManager } from "./process-manager.js";
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAE5B,eAAe;AACf,cAAc,YAAY,CAAC;AAE3B,oBAAoB;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,aAAa,CAAC;AAE5B,eAAe;AACf,cAAc,YAAY,CAAC;AAE3B,oBAAoB;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,yBAAyB;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAoE,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAwHzL;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,eAMrB,CAAC;eAEU,UAAU;AAEzB;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE7F"}
|
package/dist/module.js
CHANGED
|
@@ -8,7 +8,8 @@ import { nodeRun } from "./procedures/node/run.js";
|
|
|
8
8
|
import { nodeSpawn } from "./procedures/node/spawn.js";
|
|
9
9
|
import { nodeKill } from "./procedures/node/kill.js";
|
|
10
10
|
import { nodeStatus } from "./procedures/node/status.js";
|
|
11
|
-
import {
|
|
11
|
+
import { nodeLogs } from "./procedures/node/logs.js";
|
|
12
|
+
import { NodeRunInputSchema, NodeSpawnInputSchema, NodeKillInputSchema, NodeStatusInputSchema, NodeLogsInputSchema, NodeRunOutputSchema, NodeSpawnOutputSchema, NodeKillOutputSchema, NodeStatusOutputSchema, NodeLogsOutputSchema, } from "./types.js";
|
|
12
13
|
// Procedure definitions
|
|
13
14
|
const nodeRunProcedure = createProcedure()
|
|
14
15
|
.path(["node", "run"])
|
|
@@ -75,6 +76,25 @@ const nodeStatusProcedure = createProcedure()
|
|
|
75
76
|
return nodeStatus(input);
|
|
76
77
|
})
|
|
77
78
|
.build();
|
|
79
|
+
// node.logs (roadmap R44). One value, or with follow one item for each line (a stream).
|
|
80
|
+
const nodeLogsProcedure = createProcedure()
|
|
81
|
+
.path(["node", "logs"])
|
|
82
|
+
.input(zodAdapter(NodeLogsInputSchema))
|
|
83
|
+
.output(zodAdapter(NodeLogsOutputSchema))
|
|
84
|
+
.meta({
|
|
85
|
+
description: "The output of a process of node.spawn: the last 64 KiB of stdout and stderr, or with follow a stream of its lines",
|
|
86
|
+
args: ["processId"],
|
|
87
|
+
shorts: { lines: "n", follow: "f" },
|
|
88
|
+
output: "json",
|
|
89
|
+
// It reads the output that the process registry keeps for a process of node.spawn
|
|
90
|
+
effects: { reads: ["jobs"], writes: [] },
|
|
91
|
+
// With follow, the stream runs as long as the process (roadmap R15)
|
|
92
|
+
stream: { unbounded: true },
|
|
93
|
+
})
|
|
94
|
+
// With follow, the promise gives a stream: invokeProcedure reads a returned async iterable as a
|
|
95
|
+
// stream, and the handler types of the core do not describe that case
|
|
96
|
+
.handler((input, ctx) => nodeLogs(input, ctx))
|
|
97
|
+
.build();
|
|
78
98
|
/**
|
|
79
99
|
* The module of this package, for `createRegistry()`: its procedures as data. Importing this
|
|
80
100
|
* file registers nothing. (`register.ts` registers the same procedures in the global registry.)
|
|
@@ -84,6 +104,7 @@ export const nodeModule = defineModule("@procedures/node", [
|
|
|
84
104
|
nodeSpawnProcedure,
|
|
85
105
|
nodeKillProcedure,
|
|
86
106
|
nodeStatusProcedure,
|
|
107
|
+
nodeLogsProcedure,
|
|
87
108
|
]);
|
|
88
109
|
export default nodeModule;
|
|
89
110
|
/**
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/procedures/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/procedures/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/procedures/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/procedures/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* node.logs procedure (roadmap R44)
|
|
3
|
+
*
|
|
4
|
+
* The output of a process that node.spawn started. The process registry of client-shell reads
|
|
5
|
+
* the output of each process and keeps its end: the last 64 KiB, stdout and stderr together.
|
|
6
|
+
* So the procedure gives that end, also after the process ended (the registry keeps the records
|
|
7
|
+
* of the last 50 ended processes). It knows only the processes of this host process.
|
|
8
|
+
*
|
|
9
|
+
* With `follow`, the procedure gives a stream: the kept output as `output` lines, then each new
|
|
10
|
+
* line of stdout and stderr, then one `exit` item at the end of the process. The stream ends at
|
|
11
|
+
* the end of the process, at an abort of the caller and when the reader stops. Each end removes
|
|
12
|
+
* the subscription of the stream from the process registry.
|
|
13
|
+
*/
|
|
14
|
+
import type { NodeLogItem, NodeLogsInput, NodeLogsOutput } from "../../types.js";
|
|
15
|
+
/** The last `count` lines of a text. A line end at the end of the text does not count as a line. */
|
|
16
|
+
export declare function lastLines(text: string, count: number): string;
|
|
17
|
+
/** The lines of a text without their line ends (LF or CRLF). A line end at the end adds no line. */
|
|
18
|
+
export declare function splitLines(text: string): string[];
|
|
19
|
+
/** The context that node.logs reads: the abort of the caller. */
|
|
20
|
+
export interface NodeLogsContext {
|
|
21
|
+
signal?: AbortSignal | undefined;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The end of the output of a process of node.spawn, or with `follow` a stream of its lines
|
|
25
|
+
*/
|
|
26
|
+
export declare function nodeLogs(input: NodeLogsInput, ctx?: NodeLogsContext): Promise<NodeLogsOutput | AsyncGenerator<NodeLogItem, void, undefined>>;
|
|
27
|
+
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/procedures/node/logs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMjF,oGAAoG;AACpG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,oGAAoG;AACpG,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAIjD;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAYtJ"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* node.logs procedure (roadmap R44)
|
|
3
|
+
*
|
|
4
|
+
* The output of a process that node.spawn started. The process registry of client-shell reads
|
|
5
|
+
* the output of each process and keeps its end: the last 64 KiB, stdout and stderr together.
|
|
6
|
+
* So the procedure gives that end, also after the process ended (the registry keeps the records
|
|
7
|
+
* of the last 50 ended processes). It knows only the processes of this host process.
|
|
8
|
+
*
|
|
9
|
+
* With `follow`, the procedure gives a stream: the kept output as `output` lines, then each new
|
|
10
|
+
* line of stdout and stderr, then one `exit` item at the end of the process. The stream ends at
|
|
11
|
+
* the end of the process, at an abort of the caller and when the reader stops. Each end removes
|
|
12
|
+
* the subscription of the stream from the process registry.
|
|
13
|
+
*/
|
|
14
|
+
import { processManager } from "../../process-manager.js";
|
|
15
|
+
// The CSI and OSC escape sequences of terminals (colors, styles, links), as client-shell removes them
|
|
16
|
+
const ANSI = /\x1b\[[0-?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;
|
|
17
|
+
/** The last `count` lines of a text. A line end at the end of the text does not count as a line. */
|
|
18
|
+
export function lastLines(text, count) {
|
|
19
|
+
const body = text.endsWith("\n") ? text.slice(0, -1) : text;
|
|
20
|
+
const lines = body.split("\n");
|
|
21
|
+
if (lines.length <= count)
|
|
22
|
+
return text;
|
|
23
|
+
return lines.slice(-count).join("\n") + (text.endsWith("\n") ? "\n" : "");
|
|
24
|
+
}
|
|
25
|
+
/** The lines of a text without their line ends (LF or CRLF). A line end at the end adds no line. */
|
|
26
|
+
export function splitLines(text) {
|
|
27
|
+
if (text === "")
|
|
28
|
+
return [];
|
|
29
|
+
const lines = (text.endsWith("\n") ? text.slice(0, -1) : text).split("\n");
|
|
30
|
+
return lines.map((line) => (line.endsWith("\r") ? line.slice(0, -1) : line));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The end of the output of a process of node.spawn, or with `follow` a stream of its lines
|
|
34
|
+
*/
|
|
35
|
+
export async function nodeLogs(input, ctx = {}) {
|
|
36
|
+
const info = processManager.get(input.processId);
|
|
37
|
+
if (!info) {
|
|
38
|
+
throw new Error(`node.logs: no process ${input.processId}. node.status lists the processes of node.spawn on this host.`);
|
|
39
|
+
}
|
|
40
|
+
if (input.follow)
|
|
41
|
+
return followLogs(input, ctx.signal);
|
|
42
|
+
let output = processManager.output(input.processId);
|
|
43
|
+
if (input.stripAnsi)
|
|
44
|
+
output = output.replace(ANSI, "");
|
|
45
|
+
if (input.lines !== undefined)
|
|
46
|
+
output = lastLines(output, input.lines);
|
|
47
|
+
const result = { processId: info.processId, status: info.status, output };
|
|
48
|
+
if (info.exitCode !== undefined)
|
|
49
|
+
result.exitCode = info.exitCode;
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
/** The lines of a process: the kept output, the new lines and the exit. */
|
|
53
|
+
async function* followLogs(input, signal) {
|
|
54
|
+
const clean = (line) => (input.stripAnsi ? line.replace(ANSI, "") : line);
|
|
55
|
+
// The start of a line that has no line end yet, for each stream
|
|
56
|
+
const partial = { stdout: "", stderr: "" };
|
|
57
|
+
for await (const item of processManager.follow(input.processId, { backlog: true, signal })) {
|
|
58
|
+
switch (item.type) {
|
|
59
|
+
case "backlog": {
|
|
60
|
+
const kept = input.lines !== undefined ? lastLines(item.text, input.lines) : item.text;
|
|
61
|
+
for (const line of splitLines(kept))
|
|
62
|
+
yield { type: "output", line: clean(line) };
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
case "output": {
|
|
66
|
+
const lines = (partial[item.stream] + item.text).split("\n");
|
|
67
|
+
partial[item.stream] = lines.pop() ?? "";
|
|
68
|
+
for (const line of lines)
|
|
69
|
+
yield { type: item.stream, line: clean(line.endsWith("\r") ? line.slice(0, -1) : line) };
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
case "dropped":
|
|
73
|
+
yield { type: "dropped", bytes: item.bytes };
|
|
74
|
+
break;
|
|
75
|
+
case "end": {
|
|
76
|
+
for (const stream of ["stdout", "stderr"]) {
|
|
77
|
+
if (partial[stream] !== "")
|
|
78
|
+
yield { type: stream, line: clean(partial[stream]) };
|
|
79
|
+
}
|
|
80
|
+
const exit = { type: "exit", status: item.info.status === "error" ? "error" : "exited" };
|
|
81
|
+
if (item.info.exitCode !== undefined)
|
|
82
|
+
exit.exitCode = item.info.exitCode;
|
|
83
|
+
if (item.info.signal !== undefined)
|
|
84
|
+
exit.signal = item.info.signal;
|
|
85
|
+
yield exit;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/procedures/node/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* - the processes end when the host ends (before, they were detached and kept running);
|
|
9
9
|
* - the registry removes old exit records, and `cleanup` removes the rest.
|
|
10
10
|
*/
|
|
11
|
+
import { type FollowOptions, type ProcessFollowItem } from "@procedures/shell/command";
|
|
11
12
|
import type { ProcessInfo } from "./types.js";
|
|
12
13
|
/** The group of the node processes in the process registry. */
|
|
13
14
|
export declare const NODE_GROUP = "node";
|
|
@@ -36,6 +37,11 @@ declare class ProcessManager {
|
|
|
36
37
|
* The end of the output of a process (the last 64 KiB)
|
|
37
38
|
*/
|
|
38
39
|
output(processId: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* The output of a process as a stream, until the process ends or the signal aborts: `follow`
|
|
42
|
+
* of the process registry. A process of another group gives an empty stream.
|
|
43
|
+
*/
|
|
44
|
+
follow(processId: string, options?: FollowOptions): AsyncGenerator<ProcessFollowItem, void, undefined>;
|
|
39
45
|
/**
|
|
40
46
|
* Get status of all or specific processes
|
|
41
47
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAa,KAAK,aAAa,EAA2B,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC3H,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,+DAA+D;AAC/D,eAAO,MAAM,UAAU,SAAS,CAAC;AAejC,cAAM,cAAc;IAClB;;OAEG;IACH,KAAK,CACH,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;KAAE,GAC3G,WAAW,CASb;IAED;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAG9C;IAED;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,OAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAGlF;IAED;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhC;IAED;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,cAAc,CAAC,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,CAEzG;IAED;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAK3C;IAED;;OAEG;IACH,OAAO,IAAI,MAAM,CAMhB;CACF;AAGD,eAAO,MAAM,cAAc,EAAE,cAAqC,CAAC"}
|
package/dist/process-manager.js
CHANGED
|
@@ -66,6 +66,13 @@ class ProcessManager {
|
|
|
66
66
|
output(processId) {
|
|
67
67
|
return this.get(processId) ? processes.output(processId) : "";
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* The output of a process as a stream, until the process ends or the signal aborts: `follow`
|
|
71
|
+
* of the process registry. A process of another group gives an empty stream.
|
|
72
|
+
*/
|
|
73
|
+
follow(processId, options = {}) {
|
|
74
|
+
return this.get(processId) ? processes.follow(processId, options) : (async function* () { })();
|
|
75
|
+
}
|
|
69
76
|
/**
|
|
70
77
|
* Get status of all or specific processes
|
|
71
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../src/process-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -80,4 +80,54 @@ export declare const NodeRunOutputSchema: z.ZodType<NodeRunOutput>;
|
|
|
80
80
|
export declare const NodeSpawnOutputSchema: z.ZodType<NodeSpawnOutput>;
|
|
81
81
|
export declare const NodeKillOutputSchema: z.ZodType<NodeKillOutput>;
|
|
82
82
|
export declare const NodeStatusOutputSchema: z.ZodType<NodeStatusOutput>;
|
|
83
|
+
export interface NodeLogsInput {
|
|
84
|
+
/** Process ID returned from node.spawn */
|
|
85
|
+
processId: string;
|
|
86
|
+
/** Only the last lines of the output */
|
|
87
|
+
lines?: number | undefined;
|
|
88
|
+
/** Remove the ANSI escape codes (colors) from the output */
|
|
89
|
+
stripAnsi?: boolean | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* True: the result is a stream. It gives the kept output, then each new line, until the process
|
|
92
|
+
* ends or the caller aborts. `lines` limits the kept output.
|
|
93
|
+
*/
|
|
94
|
+
follow?: boolean | undefined;
|
|
95
|
+
}
|
|
96
|
+
export interface NodeLogsOutput {
|
|
97
|
+
processId: string;
|
|
98
|
+
/** The state of the process */
|
|
99
|
+
status: "running" | "exited" | "error";
|
|
100
|
+
/** The exit code, when the process exited */
|
|
101
|
+
exitCode?: number | undefined;
|
|
102
|
+
/** The end of the output (stdout and stderr together, the last 64 KiB) */
|
|
103
|
+
output: string;
|
|
104
|
+
}
|
|
105
|
+
/** One item of `node.logs` with `follow`. */
|
|
106
|
+
export type NodeLogItem =
|
|
107
|
+
/** A line of the output that the registry kept before the call: stdout and stderr together. */
|
|
108
|
+
{
|
|
109
|
+
type: "output";
|
|
110
|
+
line: string;
|
|
111
|
+
}
|
|
112
|
+
/** A new line of the process, without its line end. */
|
|
113
|
+
| {
|
|
114
|
+
type: "stdout" | "stderr";
|
|
115
|
+
line: string;
|
|
116
|
+
}
|
|
117
|
+
/** The reader was slow, and the stream dropped this many bytes of output. */
|
|
118
|
+
| {
|
|
119
|
+
type: "dropped";
|
|
120
|
+
bytes: number;
|
|
121
|
+
}
|
|
122
|
+
/** The end of the process: the last item. */
|
|
123
|
+
| {
|
|
124
|
+
type: "exit";
|
|
125
|
+
status: "exited" | "error";
|
|
126
|
+
exitCode?: number | undefined;
|
|
127
|
+
signal?: string | undefined;
|
|
128
|
+
};
|
|
129
|
+
export declare const NodeLogsInputSchema: z.ZodType<NodeLogsInput>;
|
|
130
|
+
export declare const NodeLogsValueSchema: z.ZodType<NodeLogsOutput>;
|
|
131
|
+
/** node.logs: one result, or with follow a stream of lines and one last exit item. */
|
|
132
|
+
export declare const NodeLogsOutputSchema: z.ZodType<NodeLogsOutput | NodeLogItem>;
|
|
83
133
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -87,4 +87,37 @@ export const NodeStatusOutputSchema = z.looseObject({
|
|
|
87
87
|
}))
|
|
88
88
|
.describe("The processes of this host"),
|
|
89
89
|
});
|
|
90
|
+
export const NodeLogsInputSchema = z.object({
|
|
91
|
+
processId: z.string().min(1).describe("Process ID returned from node.spawn"),
|
|
92
|
+
lines: z.number().int().min(1).optional().describe("Only the last lines of the output"),
|
|
93
|
+
stripAnsi: z.boolean().optional().describe("Remove the ANSI escape codes (colors) from the output"),
|
|
94
|
+
follow: z
|
|
95
|
+
.boolean()
|
|
96
|
+
.optional()
|
|
97
|
+
.describe("Give a stream: the kept output, then each new line, until the process ends or the caller aborts"),
|
|
98
|
+
});
|
|
99
|
+
export const NodeLogsValueSchema = z.looseObject({
|
|
100
|
+
processId: z.string().describe("The id of the process"),
|
|
101
|
+
status: z.enum(["running", "exited", "error"]).describe("The state of the process"),
|
|
102
|
+
exitCode: z.number().optional().describe("The exit code, when the process exited"),
|
|
103
|
+
output: z.string().describe("The end of the output: stdout and stderr together, the last 64 KiB"),
|
|
104
|
+
});
|
|
105
|
+
/** node.logs: one result, or with follow a stream of lines and one last exit item. */
|
|
106
|
+
export const NodeLogsOutputSchema = z.union([
|
|
107
|
+
NodeLogsValueSchema,
|
|
108
|
+
z.looseObject({
|
|
109
|
+
type: z.enum(["output", "stdout", "stderr"]).describe("The stream of the line: output for a line that the registry kept"),
|
|
110
|
+
line: z.string().describe("One line of the output, without its line end"),
|
|
111
|
+
}),
|
|
112
|
+
z.looseObject({
|
|
113
|
+
type: z.literal("dropped").describe("A gap: the reader was slow"),
|
|
114
|
+
bytes: z.number().describe("The number of bytes that the stream dropped"),
|
|
115
|
+
}),
|
|
116
|
+
z.looseObject({
|
|
117
|
+
type: z.literal("exit").describe("The end of the process and of the stream"),
|
|
118
|
+
status: z.enum(["exited", "error"]).describe("The state of the process at its end"),
|
|
119
|
+
exitCode: z.number().optional().describe("The exit code, when the process exited"),
|
|
120
|
+
signal: z.string().optional().describe("The signal that ended the process"),
|
|
121
|
+
}),
|
|
122
|
+
]);
|
|
90
123
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "@procedures/node",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"description": "Node.js process procedures: run scripts, spawn and manage long-running processes, with output caps and process-tree cleanup.",
|
|
4
|
+
"version": "0.4.0",
|
|
5
|
+
"description": "Node.js process procedures: run scripts, spawn and manage long-running processes and read their logs, with output caps and process-tree cleanup.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"node",
|
|
8
8
|
"process",
|
|
@@ -57,8 +57,8 @@
|
|
|
57
57
|
"provenance": true
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@procedures/client": "0.
|
|
61
|
-
"@procedures/shell": "0.
|
|
60
|
+
"@procedures/client": "0.4.0",
|
|
61
|
+
"@procedures/shell": "0.4.0",
|
|
62
62
|
"zod": "^4.6.5"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
package/src/index.ts
CHANGED
|
@@ -12,6 +12,7 @@ export { nodeRun } from "./procedures/node/run.js";
|
|
|
12
12
|
export { nodeSpawn } from "./procedures/node/spawn.js";
|
|
13
13
|
export { nodeKill } from "./procedures/node/kill.js";
|
|
14
14
|
export { nodeStatus } from "./procedures/node/status.js";
|
|
15
|
+
export { nodeLogs } from "./procedures/node/logs.js";
|
|
15
16
|
|
|
16
17
|
// Export process manager
|
|
17
18
|
export { processManager } from "./process-manager.js";
|
package/src/module.ts
CHANGED
|
@@ -4,16 +4,18 @@
|
|
|
4
4
|
* Procedure Registration for Node.js process management
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { createProcedure, zodAdapter, defineModule, type ProcedureModule, PROCEDURE_REGISTRY, registerModules, type ProcedureRegistry } from "@procedures/client";
|
|
7
|
+
import { createProcedure, zodAdapter, defineModule, type ProcedureContext, type ProcedureModule, PROCEDURE_REGISTRY, registerModules, type ProcedureRegistry } from "@procedures/client";
|
|
8
8
|
import { nodeRun } from "./procedures/node/run.js";
|
|
9
9
|
import { nodeSpawn } from "./procedures/node/spawn.js";
|
|
10
10
|
import { nodeKill } from "./procedures/node/kill.js";
|
|
11
11
|
import { nodeStatus } from "./procedures/node/status.js";
|
|
12
|
+
import { nodeLogs } from "./procedures/node/logs.js";
|
|
12
13
|
import {
|
|
13
14
|
NodeRunInputSchema,
|
|
14
15
|
NodeSpawnInputSchema,
|
|
15
16
|
NodeKillInputSchema,
|
|
16
17
|
NodeStatusInputSchema,
|
|
18
|
+
NodeLogsInputSchema,
|
|
17
19
|
type NodeRunInput,
|
|
18
20
|
type NodeRunOutput,
|
|
19
21
|
type NodeSpawnInput,
|
|
@@ -22,10 +24,14 @@ import {
|
|
|
22
24
|
type NodeKillOutput,
|
|
23
25
|
type NodeStatusInput,
|
|
24
26
|
type NodeStatusOutput,
|
|
27
|
+
type NodeLogsInput,
|
|
28
|
+
type NodeLogsOutput,
|
|
29
|
+
type NodeLogItem,
|
|
25
30
|
NodeRunOutputSchema,
|
|
26
31
|
NodeSpawnOutputSchema,
|
|
27
32
|
NodeKillOutputSchema,
|
|
28
33
|
NodeStatusOutputSchema,
|
|
34
|
+
NodeLogsOutputSchema,
|
|
29
35
|
} from "./types.js";
|
|
30
36
|
|
|
31
37
|
// Procedure definitions
|
|
@@ -98,6 +104,26 @@ const nodeStatusProcedure = createProcedure()
|
|
|
98
104
|
})
|
|
99
105
|
.build();
|
|
100
106
|
|
|
107
|
+
// node.logs (roadmap R44). One value, or with follow one item for each line (a stream).
|
|
108
|
+
const nodeLogsProcedure = createProcedure()
|
|
109
|
+
.path(["node", "logs"])
|
|
110
|
+
.input(zodAdapter<NodeLogsInput>(NodeLogsInputSchema))
|
|
111
|
+
.output(zodAdapter<NodeLogsOutput | NodeLogItem>(NodeLogsOutputSchema))
|
|
112
|
+
.meta({
|
|
113
|
+
description: "The output of a process of node.spawn: the last 64 KiB of stdout and stderr, or with follow a stream of its lines",
|
|
114
|
+
args: ["processId"],
|
|
115
|
+
shorts: { lines: "n", follow: "f" },
|
|
116
|
+
output: "json",
|
|
117
|
+
// It reads the output that the process registry keeps for a process of node.spawn
|
|
118
|
+
effects: { reads: ["jobs"], writes: [] },
|
|
119
|
+
// With follow, the stream runs as long as the process (roadmap R15)
|
|
120
|
+
stream: { unbounded: true },
|
|
121
|
+
})
|
|
122
|
+
// With follow, the promise gives a stream: invokeProcedure reads a returned async iterable as a
|
|
123
|
+
// stream, and the handler types of the core do not describe that case
|
|
124
|
+
.handler((input: NodeLogsInput, ctx: ProcedureContext) => nodeLogs(input, ctx) as unknown as Promise<NodeLogsOutput | NodeLogItem>)
|
|
125
|
+
.build();
|
|
126
|
+
|
|
101
127
|
/**
|
|
102
128
|
* The module of this package, for `createRegistry()`: its procedures as data. Importing this
|
|
103
129
|
* file registers nothing. (`register.ts` registers the same procedures in the global registry.)
|
|
@@ -107,6 +133,7 @@ export const nodeModule: ProcedureModule = defineModule("@procedures/node", [
|
|
|
107
133
|
nodeSpawnProcedure,
|
|
108
134
|
nodeKillProcedure,
|
|
109
135
|
nodeStatusProcedure,
|
|
136
|
+
nodeLogsProcedure,
|
|
110
137
|
]);
|
|
111
138
|
|
|
112
139
|
export default nodeModule;
|