@procedures/node 0.2.2 → 0.3.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 +50 -0
- package/README.md +25 -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 +18 -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 +16 -0
- package/dist/procedures/node/logs.d.ts.map +1 -0
- package/dist/procedures/node/logs.js +38 -0
- package/dist/procedures/node/logs.js.map +1 -0
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +1 -0
- package/src/module.ts +22 -0
- package/src/procedures/node/index.ts +1 -0
- package/src/procedures/node/logs.ts +38 -0
- package/src/types.ts +36 -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,EAA6C,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA6C,KAAK,eAAe,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAmHlK;;;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,21 @@ const nodeStatusProcedure = createProcedure()
|
|
|
75
76
|
return nodeStatus(input);
|
|
76
77
|
})
|
|
77
78
|
.build();
|
|
79
|
+
// node.logs (roadmap R44)
|
|
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",
|
|
86
|
+
args: ["processId"],
|
|
87
|
+
shorts: { lines: "n" },
|
|
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
|
+
})
|
|
92
|
+
.handler(async (input) => nodeLogs(input))
|
|
93
|
+
.build();
|
|
78
94
|
/**
|
|
79
95
|
* The module of this package, for `createRegistry()`: its procedures as data. Importing this
|
|
80
96
|
* file registers nothing. (`register.ts` registers the same procedures in the global registry.)
|
|
@@ -84,6 +100,7 @@ export const nodeModule = defineModule("@procedures/node", [
|
|
|
84
100
|
nodeSpawnProcedure,
|
|
85
101
|
nodeKillProcedure,
|
|
86
102
|
nodeStatusProcedure,
|
|
103
|
+
nodeLogsProcedure,
|
|
87
104
|
]);
|
|
88
105
|
export default nodeModule;
|
|
89
106
|
/**
|
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,EAAwB,kBAAkB,EAAE,eAAe,EAA0B,MAAM,oBAAoB,CAAC;AAClK,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,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAwB,kBAAkB,EAAE,eAAe,EAA0B,MAAM,oBAAoB,CAAC;AAClK,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;AACrD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EAWnB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,wBAAwB;AACxB,MAAM,gBAAgB,GAAG,eAAe,EAAE;KACvC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KACrB,KAAK,CAAC,UAAU,CAAe,kBAAkB,CAAC,CAAC;KACnD,MAAM,CAAC,UAAU,CAAgB,mBAAmB,CAAC,CAAC;KACtD,IAAI,CAAC;IACJ,WAAW,EAAE,8CAA8C;IAC3D,IAAI,EAAE,CAAC,QAAQ,CAAC;IAChB,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;IAClC,MAAM,EAAE,MAAM;IACd,gEAAgE;IAChE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;CACrD,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAmB,EAAE,GAAG,EAA0B,EAAE;IAClE,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,kBAAkB,GAAG,eAAe,EAAE;KACzC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvB,KAAK,CAAC,UAAU,CAAiB,oBAAoB,CAAC,CAAC;KACvD,MAAM,CAAC,UAAU,CAAkB,qBAAqB,CAAC,CAAC;KAC1D,IAAI,CAAC;IACJ,WAAW,EAAE,sCAAsC;IACnD,IAAI,EAAE,CAAC,QAAQ,CAAC;IAChB,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;IACpB,MAAM,EAAE,MAAM;IACd,8CAA8C;IAC9C,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;CAC7D,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAqB,EAA4B,EAAE;IACjE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,iBAAiB,GAAG,eAAe,EAAE;KACxC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtB,KAAK,CAAC,UAAU,CAAgB,mBAAmB,CAAC,CAAC;KACrD,MAAM,CAAC,UAAU,CAAiB,oBAAoB,CAAC,CAAC;KACxD,IAAI,CAAC;IACJ,WAAW,EAAE,gCAAgC;IAC7C,IAAI,EAAE,CAAC,WAAW,CAAC;IACnB,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;IACvB,MAAM,EAAE,MAAM;IACd,kFAAkF;IAClF,gEAAgE;IAChE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;CACjE,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAoB,EAA2B,EAAE;IAC/D,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,MAAM,mBAAmB,GAAG,eAAe,EAAE;KAC1C,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KACxB,KAAK,CAAC,UAAU,CAAkB,qBAAqB,CAAC,CAAC;KACzD,MAAM,CAAC,UAAU,CAAmB,sBAAsB,CAAC,CAAC;KAC5D,IAAI,CAAC;IACJ,WAAW,EAAE,yCAAyC;IACtD,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,MAAM;IACd,sDAAsD;IACtD,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;CACzC,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAsB,EAA6B,EAAE;IACnE,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC;KACD,KAAK,EAAE,CAAC;AAEX,0BAA0B;AAC1B,MAAM,iBAAiB,GAAG,eAAe,EAAE;KACxC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtB,KAAK,CAAC,UAAU,CAAgB,mBAAmB,CAAC,CAAC;KACrD,MAAM,CAAC,UAAU,CAAiB,oBAAoB,CAAC,CAAC;KACxD,IAAI,CAAC;IACJ,WAAW,EAAE,6EAA6E;IAC1F,IAAI,EAAE,CAAC,WAAW,CAAC;IACnB,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;IACtB,MAAM,EAAE,MAAM;IACd,kFAAkF;IAClF,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;CACzC,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAoB,EAA2B,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACjF,KAAK,EAAE,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAoB,YAAY,CAAC,kBAAkB,EAAE;IACxE,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;CAClB,CAAC,CAAC;AAEL,eAAe,UAAU,CAAC;AAE1B;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAQ,GAAsB,kBAAkB;IACrF,eAAe,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -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,16 @@
|
|
|
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
|
+
import type { NodeLogsInput, NodeLogsOutput } from "../../types.js";
|
|
10
|
+
/** The last `count` lines of a text. A line end at the end of the text does not count as a line. */
|
|
11
|
+
export declare function lastLines(text: string, count: number): string;
|
|
12
|
+
/**
|
|
13
|
+
* The end of the output of a process of node.spawn
|
|
14
|
+
*/
|
|
15
|
+
export declare function nodeLogs(input: NodeLogsInput): Promise<NodeLogsOutput>;
|
|
16
|
+
//# 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;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMpE,oGAAoG;AACpG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAW5E"}
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
import { processManager } from "../../process-manager.js";
|
|
10
|
+
// The CSI and OSC escape sequences of terminals (colors, styles, links), as client-shell removes them
|
|
11
|
+
const ANSI = /\x1b\[[0-?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;
|
|
12
|
+
/** The last `count` lines of a text. A line end at the end of the text does not count as a line. */
|
|
13
|
+
export function lastLines(text, count) {
|
|
14
|
+
const body = text.endsWith("\n") ? text.slice(0, -1) : text;
|
|
15
|
+
const lines = body.split("\n");
|
|
16
|
+
if (lines.length <= count)
|
|
17
|
+
return text;
|
|
18
|
+
return lines.slice(-count).join("\n") + (text.endsWith("\n") ? "\n" : "");
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The end of the output of a process of node.spawn
|
|
22
|
+
*/
|
|
23
|
+
export async function nodeLogs(input) {
|
|
24
|
+
const info = processManager.get(input.processId);
|
|
25
|
+
if (!info) {
|
|
26
|
+
throw new Error(`node.logs: no process ${input.processId}. node.status lists the processes of node.spawn on this host.`);
|
|
27
|
+
}
|
|
28
|
+
let output = processManager.output(input.processId);
|
|
29
|
+
if (input.stripAnsi)
|
|
30
|
+
output = output.replace(ANSI, "");
|
|
31
|
+
if (input.lines !== undefined)
|
|
32
|
+
output = lastLines(output, input.lines);
|
|
33
|
+
const result = { processId: info.processId, status: info.status, output };
|
|
34
|
+
if (info.exitCode !== undefined)
|
|
35
|
+
result.exitCode = info.exitCode;
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/procedures/node/logs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,sGAAsG;AACtG,MAAM,IAAI,GAAG,4DAA4D,CAAC;AAE1E,oGAAoG;AACpG,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,KAAa;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAoB;IACjD,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,SAAS,+DAA+D,CAAC,CAAC;IAC3H,CAAC;IACD,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,SAAS;QAAE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;QAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,MAAM,GAAmB,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1F,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -80,4 +80,23 @@ 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
|
+
export interface NodeLogsOutput {
|
|
92
|
+
processId: string;
|
|
93
|
+
/** The state of the process */
|
|
94
|
+
status: "running" | "exited" | "error";
|
|
95
|
+
/** The exit code, when the process exited */
|
|
96
|
+
exitCode?: number | undefined;
|
|
97
|
+
/** The end of the output (stdout and stderr together, the last 64 KiB) */
|
|
98
|
+
output: string;
|
|
99
|
+
}
|
|
100
|
+
export declare const NodeLogsInputSchema: z.ZodType<NodeLogsInput>;
|
|
101
|
+
export declare const NodeLogsOutputSchema: z.ZodType<NodeLogsOutput>;
|
|
83
102
|
//# 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,15 @@ 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
|
+
});
|
|
95
|
+
export const NodeLogsOutputSchema = z.looseObject({
|
|
96
|
+
processId: z.string().describe("The id of the process"),
|
|
97
|
+
status: z.enum(["running", "exited", "error"]).describe("The state of the process"),
|
|
98
|
+
exitCode: z.number().optional().describe("The exit code, when the process exited"),
|
|
99
|
+
output: z.string().describe("The end of the output: stdout and stderr together, the last 64 KiB"),
|
|
100
|
+
});
|
|
90
101
|
//# 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.3.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.3.0",
|
|
61
|
+
"@procedures/shell": "0.3.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
|
@@ -9,11 +9,13 @@ 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,13 @@ import {
|
|
|
22
24
|
type NodeKillOutput,
|
|
23
25
|
type NodeStatusInput,
|
|
24
26
|
type NodeStatusOutput,
|
|
27
|
+
type NodeLogsInput,
|
|
28
|
+
type NodeLogsOutput,
|
|
25
29
|
NodeRunOutputSchema,
|
|
26
30
|
NodeSpawnOutputSchema,
|
|
27
31
|
NodeKillOutputSchema,
|
|
28
32
|
NodeStatusOutputSchema,
|
|
33
|
+
NodeLogsOutputSchema,
|
|
29
34
|
} from "./types.js";
|
|
30
35
|
|
|
31
36
|
// Procedure definitions
|
|
@@ -98,6 +103,22 @@ const nodeStatusProcedure = createProcedure()
|
|
|
98
103
|
})
|
|
99
104
|
.build();
|
|
100
105
|
|
|
106
|
+
// node.logs (roadmap R44)
|
|
107
|
+
const nodeLogsProcedure = createProcedure()
|
|
108
|
+
.path(["node", "logs"])
|
|
109
|
+
.input(zodAdapter<NodeLogsInput>(NodeLogsInputSchema))
|
|
110
|
+
.output(zodAdapter<NodeLogsOutput>(NodeLogsOutputSchema))
|
|
111
|
+
.meta({
|
|
112
|
+
description: "The output of a process of node.spawn: the last 64 KiB of stdout and stderr",
|
|
113
|
+
args: ["processId"],
|
|
114
|
+
shorts: { lines: "n" },
|
|
115
|
+
output: "json",
|
|
116
|
+
// It reads the output that the process registry keeps for a process of node.spawn
|
|
117
|
+
effects: { reads: ["jobs"], writes: [] },
|
|
118
|
+
})
|
|
119
|
+
.handler(async (input: NodeLogsInput): Promise<NodeLogsOutput> => nodeLogs(input))
|
|
120
|
+
.build();
|
|
121
|
+
|
|
101
122
|
/**
|
|
102
123
|
* The module of this package, for `createRegistry()`: its procedures as data. Importing this
|
|
103
124
|
* file registers nothing. (`register.ts` registers the same procedures in the global registry.)
|
|
@@ -107,6 +128,7 @@ export const nodeModule: ProcedureModule = defineModule("@procedures/node", [
|
|
|
107
128
|
nodeSpawnProcedure,
|
|
108
129
|
nodeKillProcedure,
|
|
109
130
|
nodeStatusProcedure,
|
|
131
|
+
nodeLogsProcedure,
|
|
110
132
|
]);
|
|
111
133
|
|
|
112
134
|
export default nodeModule;
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
|
|
10
|
+
import type { NodeLogsInput, NodeLogsOutput } from "../../types.js";
|
|
11
|
+
import { processManager } from "../../process-manager.js";
|
|
12
|
+
|
|
13
|
+
// The CSI and OSC escape sequences of terminals (colors, styles, links), as client-shell removes them
|
|
14
|
+
const ANSI = /\x1b\[[0-?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g;
|
|
15
|
+
|
|
16
|
+
/** The last `count` lines of a text. A line end at the end of the text does not count as a line. */
|
|
17
|
+
export function lastLines(text: string, count: number): string {
|
|
18
|
+
const body = text.endsWith("\n") ? text.slice(0, -1) : text;
|
|
19
|
+
const lines = body.split("\n");
|
|
20
|
+
if (lines.length <= count) return text;
|
|
21
|
+
return lines.slice(-count).join("\n") + (text.endsWith("\n") ? "\n" : "");
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The end of the output of a process of node.spawn
|
|
26
|
+
*/
|
|
27
|
+
export async function nodeLogs(input: NodeLogsInput): Promise<NodeLogsOutput> {
|
|
28
|
+
const info = processManager.get(input.processId);
|
|
29
|
+
if (!info) {
|
|
30
|
+
throw new Error(`node.logs: no process ${input.processId}. node.status lists the processes of node.spawn on this host.`);
|
|
31
|
+
}
|
|
32
|
+
let output = processManager.output(input.processId);
|
|
33
|
+
if (input.stripAnsi) output = output.replace(ANSI, "");
|
|
34
|
+
if (input.lines !== undefined) output = lastLines(output, input.lines);
|
|
35
|
+
const result: NodeLogsOutput = { processId: info.processId, status: info.status, output };
|
|
36
|
+
if (info.exitCode !== undefined) result.exitCode = info.exitCode;
|
|
37
|
+
return result;
|
|
38
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -182,3 +182,39 @@ export const NodeStatusOutputSchema: z.ZodType<NodeStatusOutput> = z.looseObject
|
|
|
182
182
|
)
|
|
183
183
|
.describe("The processes of this host"),
|
|
184
184
|
});
|
|
185
|
+
|
|
186
|
+
// ============================================================================
|
|
187
|
+
// node.logs - The output of a spawned process (roadmap R44)
|
|
188
|
+
// ============================================================================
|
|
189
|
+
|
|
190
|
+
export interface NodeLogsInput {
|
|
191
|
+
/** Process ID returned from node.spawn */
|
|
192
|
+
processId: string;
|
|
193
|
+
/** Only the last lines of the output */
|
|
194
|
+
lines?: number | undefined;
|
|
195
|
+
/** Remove the ANSI escape codes (colors) from the output */
|
|
196
|
+
stripAnsi?: boolean | undefined;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export interface NodeLogsOutput {
|
|
200
|
+
processId: string;
|
|
201
|
+
/** The state of the process */
|
|
202
|
+
status: "running" | "exited" | "error";
|
|
203
|
+
/** The exit code, when the process exited */
|
|
204
|
+
exitCode?: number | undefined;
|
|
205
|
+
/** The end of the output (stdout and stderr together, the last 64 KiB) */
|
|
206
|
+
output: string;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export const NodeLogsInputSchema: z.ZodType<NodeLogsInput> = z.object({
|
|
210
|
+
processId: z.string().min(1).describe("Process ID returned from node.spawn"),
|
|
211
|
+
lines: z.number().int().min(1).optional().describe("Only the last lines of the output"),
|
|
212
|
+
stripAnsi: z.boolean().optional().describe("Remove the ANSI escape codes (colors) from the output"),
|
|
213
|
+
});
|
|
214
|
+
|
|
215
|
+
export const NodeLogsOutputSchema: z.ZodType<NodeLogsOutput> = z.looseObject({
|
|
216
|
+
processId: z.string().describe("The id of the process"),
|
|
217
|
+
status: z.enum(["running", "exited", "error"]).describe("The state of the process"),
|
|
218
|
+
exitCode: z.number().optional().describe("The exit code, when the process exited"),
|
|
219
|
+
output: z.string().describe("The end of the output: stdout and stderr together, the last 64 KiB"),
|
|
220
|
+
});
|