@3leaps/sysprims 0.1.13 → 0.1.15
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/README.md +1 -0
- package/dist/ffi.d.ts +6 -2
- package/dist/ffi.d.ts.map +1 -1
- package/dist/ffi.js.map +1 -1
- package/dist/index.d.ts +23 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +93 -11
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +93 -0
- package/dist/types.d.ts.map +1 -1
- package/native/src/lib.rs +304 -53
- package/package.json +8 -8
package/README.md
CHANGED
package/dist/ffi.d.ts
CHANGED
|
@@ -16,12 +16,16 @@ export type SysprimsCallVoidResult = {
|
|
|
16
16
|
export type SysprimsLib = {
|
|
17
17
|
sysprimsAbiVersion: () => number;
|
|
18
18
|
sysprimsProcGet: (pid: number) => SysprimsCallJsonResult;
|
|
19
|
+
sysprimsProcGetEx: (pid: number, optionsJson: string) => SysprimsCallJsonResult;
|
|
19
20
|
sysprimsProcList: (filterJson: string) => SysprimsCallJsonResult;
|
|
21
|
+
sysprimsProcListEx: (filterJson: string, optionsJson: string) => SysprimsCallJsonResult;
|
|
20
22
|
sysprimsProcListeningPorts: (filterJson: string) => SysprimsCallJsonResult;
|
|
21
23
|
sysprimsProcWaitPid: (pid: number, timeoutMs: number) => SysprimsCallJsonResult;
|
|
22
24
|
sysprimsProcListFds: (pid: number, filterJson: string) => SysprimsCallJsonResult;
|
|
23
|
-
sysprimsProcDescendants: (rootPid: number, maxLevels: number,
|
|
24
|
-
sysprimsProcKillDescendants: (rootPid: number, maxLevels: number, signal: number,
|
|
25
|
+
sysprimsProcDescendants: (rootPid: number, maxLevels: number, configJson: string) => SysprimsCallJsonResult;
|
|
26
|
+
sysprimsProcKillDescendants: (rootPid: number, maxLevels: number, signal: number, configJson: string) => SysprimsCallJsonResult;
|
|
27
|
+
sysprimsProcGuardStep: (configJson: string) => SysprimsCallJsonResult;
|
|
28
|
+
sysprimsProcAncestors: (pid: number, maxDepth: number, optionsJson: string) => SysprimsCallJsonResult;
|
|
25
29
|
sysprimsSelfGetpgid: () => SysprimsCallU32Result;
|
|
26
30
|
sysprimsSelfGetsid: () => SysprimsCallU32Result;
|
|
27
31
|
sysprimsSignalSend: (pid: number, signal: number) => SysprimsCallVoidResult;
|
package/dist/ffi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffi.d.ts","sourceRoot":"","sources":["../src/ffi.ts"],"names":[],"mappings":"AAQA,wBAAgB,YAAY,IAAI,WAAW,CAQ1C;AAcD,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvF,MAAM,MAAM,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvF,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,WAAW,GAAG;IACxB,kBAAkB,EAAE,MAAM,MAAM,CAAC;IAGjC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;IACzD,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IACjE,0BAA0B,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAC3E,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAChF,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAGjF,uBAAuB,EAAE,CACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACf,sBAAsB,CAAC;IAC5B,2BAA2B,EAAE,CAC3B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,sBAAsB,CAAC;IAG5B,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;IACjD,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;IAGhD,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAC5E,uBAAuB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAClF,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAC3D,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAG3D,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAGnF,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;CACtE,CAAC;AAUF,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,sBAAsB,GAAG,OAAO,CAMxE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,qBAAqB,GAAG,MAAM,CAMlE;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,sBAAsB,GAAG,IAAI,CAK/D"}
|
|
1
|
+
{"version":3,"file":"ffi.d.ts","sourceRoot":"","sources":["../src/ffi.ts"],"names":[],"mappings":"AAQA,wBAAgB,YAAY,IAAI,WAAW,CAQ1C;AAcD,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvF,MAAM,MAAM,qBAAqB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACvF,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,MAAM,MAAM,WAAW,GAAG;IACxB,kBAAkB,EAAE,MAAM,MAAM,CAAC;IAGjC,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;IACzD,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAChF,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IACjE,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,sBAAsB,CAAC;IACxF,0BAA0B,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAC3E,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAChF,mBAAmB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAGjF,uBAAuB,EAAE,CACvB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,KACf,sBAAsB,CAAC;IAC5B,2BAA2B,EAAE,CAC3B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,KACf,sBAAsB,CAAC;IAC5B,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IACtE,qBAAqB,EAAE,CACrB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,sBAAsB,CAAC;IAG5B,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;IACjD,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;IAGhD,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAC5E,uBAAuB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAClF,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAC3D,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAG3D,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;IAGnF,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,sBAAsB,CAAC;CACtE,CAAC;AAUF,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,sBAAsB,GAAG,OAAO,CAMxE;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,qBAAqB,GAAG,MAAM,CAMlE;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,sBAAsB,GAAG,IAAI,CAK/D"}
|
package/dist/ffi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ffi.js","sourceRoot":"","sources":["../src/ffi.ts"],"names":[],"mappings":";;;;;AAQA,oCAQC;
|
|
1
|
+
{"version":3,"file":"ffi.js","sourceRoot":"","sources":["../src/ffi.ts"],"names":[],"mappings":";;;;;AAQA,oCAQC;AA0ED,wCAMC;AAED,gCAMC;AAED,4BAKC;AA/GD,sDAAyB;AACzB,0DAA6B;AAC7B,qCAA4D;AAE5D,qCAA6C;AAE7C,IAAI,MAAM,GAAuB,IAAI,CAAC;AAEtC,SAAgB,YAAY;IAC1B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAgB,IAAA,0BAAiB,EAAC,WAAW,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,CAAC;IACb,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACrD,IAAI,iBAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,OAAO,CAAC;QAC7C,MAAM,MAAM,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;AAC5E,CAAC;AAsDD,SAAS,kBAAkB,CAAC,IAAY,EAAE,OAAgB;IACxD,MAAM,cAAc,GAAG,UAAU,IAAI,GAAG,CAAC;IACzC,MAAM,IAAI,sBAAa,CACrB,IAAyB,EACzB,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,cAAc,EAAE,CAC5E,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,EAAgC;IAC7D,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,CAAC,IAAI,KAAK,0BAAiB,CAAC,EAAE,EAAE,CAAC;QACpC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;AACtC,CAAC;AAED,SAAgB,UAAU,CAAC,EAA+B;IACxD,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,CAAC,IAAI,KAAK,0BAAiB,CAAC,EAAE,EAAE,CAAC;QACpC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,OAAQ,CAAC,CAAC,KAAgB,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,QAAQ,CAAC,EAAgC;IACvD,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;IACf,IAAI,CAAC,CAAC,IAAI,KAAK,0BAAiB,CAAC,EAAE,EAAE,CAAC;QACpC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SysprimsError, SysprimsErrorCode } from "./errors";
|
|
2
|
-
import type { BatchKillResult, DescendantsOptions, DescendantsResult, FdFilter, FdSnapshot, KillDescendantsOptions, KillDescendantsResult, PortBindingsSnapshot, PortFilter, ProcessFilter, ProcessInfo, ProcessSnapshot, SpawnInGroupConfig, SpawnInGroupResult, TerminateTreeConfig, TerminateTreeResult, WaitPidResult } from "./types";
|
|
2
|
+
import type { AncestorsOptions, AncestorsResult, BatchKillResult, DescendantsOptions, DescendantsResult, FdFilter, FdSnapshot, GuardConfig, GuardEvent, KillDescendantsOptions, KillDescendantsResult, PortBindingsSnapshot, PortFilter, ProcessFilter, ProcessInfo, ProcessOptions, ProcessSnapshot, SpawnInGroupConfig, SpawnInGroupResult, TerminateTreeConfig, TerminateTreeResult, WaitPidResult } from "./types";
|
|
3
3
|
export { SysprimsError, SysprimsErrorCode };
|
|
4
|
-
export type { BatchKillFailure, BatchKillResult, DescendantsLevel, DescendantsOptions, DescendantsResult, FdFilter, FdSnapshot, KillDescendantsFailure, KillDescendantsOptions, KillDescendantsResult, PortBinding, PortBindingsSnapshot, PortFilter, ProcessFilter, ProcessInfo, ProcessSnapshot, ProcessState, Protocol, SpawnInGroupConfig, SpawnInGroupResult, TerminateTreeConfig, TerminateTreeResult, WaitPidResult, } from "./types";
|
|
4
|
+
export type { AncestorsOptions, AncestorsResult, BatchKillFailure, BatchKillResult, CpuMode, DescendantsLevel, DescendantsOptions, DescendantsResult, FdFilter, FdSnapshot, GuardAction, GuardConfig, GuardEvent, GuardRule, KillDescendantsFailure, KillDescendantsOptions, KillDescendantsResult, PortBinding, PortBindingsSnapshot, PortFilter, ProcessFilter, ProcessInfo, ProcessOptions, ProcessSnapshot, ProcessState, Protocol, SpawnInGroupConfig, SpawnInGroupResult, TerminateTreeConfig, TerminateTreeResult, WaitPidResult, } from "./types";
|
|
5
5
|
/**
|
|
6
6
|
* Get information about a specific process by PID.
|
|
7
7
|
*
|
|
@@ -10,7 +10,7 @@ export type { BatchKillFailure, BatchKillResult, DescendantsLevel, DescendantsOp
|
|
|
10
10
|
* @throws {SysprimsError} NotFound if process does not exist
|
|
11
11
|
* @throws {SysprimsError} PermissionDenied if access is denied
|
|
12
12
|
*/
|
|
13
|
-
export declare function procGet(pid: number): ProcessInfo;
|
|
13
|
+
export declare function procGet(pid: number, options?: ProcessOptions): ProcessInfo;
|
|
14
14
|
/**
|
|
15
15
|
* List running processes with optional filtering.
|
|
16
16
|
*
|
|
@@ -38,7 +38,7 @@ export declare function procGet(pid: number): ProcessInfo;
|
|
|
38
38
|
* // Filter by multiple criteria
|
|
39
39
|
* const heavy = processList({ cpu_above: 50, memory_above_kb: 100000 });
|
|
40
40
|
*/
|
|
41
|
-
export declare function processList(filter?: ProcessFilter): ProcessSnapshot;
|
|
41
|
+
export declare function processList(filter?: ProcessFilter, options?: ProcessOptions): ProcessSnapshot;
|
|
42
42
|
/**
|
|
43
43
|
* List listening network ports with optional filtering.
|
|
44
44
|
*
|
|
@@ -116,6 +116,25 @@ export declare function descendants(pid: number, options?: DescendantsOptions):
|
|
|
116
116
|
* });
|
|
117
117
|
*/
|
|
118
118
|
export declare function killDescendants(pid: number, signal?: number, options?: KillDescendantsOptions): KillDescendantsResult;
|
|
119
|
+
/**
|
|
120
|
+
* Execute one guard evaluation/remediation cycle.
|
|
121
|
+
*
|
|
122
|
+
* Actions are gated by `action_enabled`; when false, this is evaluate-only.
|
|
123
|
+
*/
|
|
124
|
+
export declare function guardStep(config: GuardConfig): GuardEvent;
|
|
125
|
+
/**
|
|
126
|
+
* Walk the ancestor chain of a process.
|
|
127
|
+
*
|
|
128
|
+
* Returns the parent chain from `pid` upward to init/launchd.
|
|
129
|
+
* The starting PID is included as the first element of the chain.
|
|
130
|
+
*
|
|
131
|
+
* @param pid - Starting process ID
|
|
132
|
+
* @param options - Optional traversal configuration
|
|
133
|
+
* @returns Ancestor chain with metadata
|
|
134
|
+
* @throws {SysprimsError} NotFound if starting process does not exist
|
|
135
|
+
* @throws {SysprimsError} InvalidArgument if pid is 0
|
|
136
|
+
*/
|
|
137
|
+
export declare function ancestors(pid: number, options?: AncestorsOptions): AncestorsResult;
|
|
119
138
|
/**
|
|
120
139
|
* Wait for a PID to exit up to the provided timeout (milliseconds).
|
|
121
140
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAEf,eAAe,EAEf,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;AAC5C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACd,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,GACd,MAAM,SAAS,CAAC;AA0EjB;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW,CAK1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,eAAe,CAM7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,oBAAoB,CAKxE;AAQD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,iBAAiB,CAUxF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,SAAK,EACX,OAAO,CAAC,EAAE,sBAAsB,GAC/B,qBAAqB,CAUvB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAIzD;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAWlF;AAMD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,CAIrE;AAMD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAKlE;AAMD;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,MAAM,CAGjC;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAGhC;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAG5D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAGlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG3C;AA8BD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAexE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAc7D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAc7D;AAMD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAiB5F;AAMD,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAS3E"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,8 @@ exports.processList = processList;
|
|
|
6
6
|
exports.listeningPorts = listeningPorts;
|
|
7
7
|
exports.descendants = descendants;
|
|
8
8
|
exports.killDescendants = killDescendants;
|
|
9
|
+
exports.guardStep = guardStep;
|
|
10
|
+
exports.ancestors = ancestors;
|
|
9
11
|
exports.waitPID = waitPID;
|
|
10
12
|
exports.listFds = listFds;
|
|
11
13
|
exports.selfPGID = selfPGID;
|
|
@@ -26,6 +28,51 @@ const ffi_1 = require("./ffi");
|
|
|
26
28
|
// -----------------------------------------------------------------------------
|
|
27
29
|
// Process Inspection
|
|
28
30
|
// -----------------------------------------------------------------------------
|
|
31
|
+
function serializeProcessOptions(options) {
|
|
32
|
+
if (!options) {
|
|
33
|
+
return "";
|
|
34
|
+
}
|
|
35
|
+
const wire = {};
|
|
36
|
+
if (options.includeEnv === true) {
|
|
37
|
+
wire.include_env = true;
|
|
38
|
+
}
|
|
39
|
+
if (options.includeThreads === true) {
|
|
40
|
+
wire.include_threads = true;
|
|
41
|
+
}
|
|
42
|
+
if (!wire.include_env && !wire.include_threads) {
|
|
43
|
+
return "";
|
|
44
|
+
}
|
|
45
|
+
return JSON.stringify(wire);
|
|
46
|
+
}
|
|
47
|
+
function serializeDescendantsConfig(options) {
|
|
48
|
+
if (!options) {
|
|
49
|
+
return "";
|
|
50
|
+
}
|
|
51
|
+
const wire = {};
|
|
52
|
+
if (options.filter) {
|
|
53
|
+
Object.assign(wire, options.filter);
|
|
54
|
+
}
|
|
55
|
+
if (options.cpuMode !== undefined) {
|
|
56
|
+
if (options.cpuMode !== "lifetime" && options.cpuMode !== "monitor") {
|
|
57
|
+
throw new errors_1.SysprimsError(errors_1.SysprimsErrorCode.InvalidArgument, `invalid cpuMode: ${String(options.cpuMode)}`);
|
|
58
|
+
}
|
|
59
|
+
wire.cpu_mode = options.cpuMode;
|
|
60
|
+
}
|
|
61
|
+
if (options.sampleDurationMs !== undefined) {
|
|
62
|
+
const sample = options.sampleDurationMs;
|
|
63
|
+
if (!Number.isFinite(sample) || sample < 0) {
|
|
64
|
+
throw new errors_1.SysprimsError(errors_1.SysprimsErrorCode.InvalidArgument, "sampleDurationMs must be a finite number >= 0");
|
|
65
|
+
}
|
|
66
|
+
wire.sample_duration_ms = Math.trunc(sample);
|
|
67
|
+
}
|
|
68
|
+
if (options.cascade === true) {
|
|
69
|
+
wire.cascade = true;
|
|
70
|
+
}
|
|
71
|
+
if (Object.keys(wire).length === 0) {
|
|
72
|
+
return "";
|
|
73
|
+
}
|
|
74
|
+
return JSON.stringify(wire);
|
|
75
|
+
}
|
|
29
76
|
/**
|
|
30
77
|
* Get information about a specific process by PID.
|
|
31
78
|
*
|
|
@@ -34,9 +81,10 @@ const ffi_1 = require("./ffi");
|
|
|
34
81
|
* @throws {SysprimsError} NotFound if process does not exist
|
|
35
82
|
* @throws {SysprimsError} PermissionDenied if access is denied
|
|
36
83
|
*/
|
|
37
|
-
function procGet(pid) {
|
|
84
|
+
function procGet(pid, options) {
|
|
38
85
|
const lib = (0, ffi_1.loadSysprims)();
|
|
39
|
-
const
|
|
86
|
+
const optionsJson = serializeProcessOptions(options);
|
|
87
|
+
const result = (0, ffi_1.callJsonReturn)(() => lib.sysprimsProcGetEx(pid >>> 0, optionsJson));
|
|
40
88
|
return result;
|
|
41
89
|
}
|
|
42
90
|
/**
|
|
@@ -66,10 +114,11 @@ function procGet(pid) {
|
|
|
66
114
|
* // Filter by multiple criteria
|
|
67
115
|
* const heavy = processList({ cpu_above: 50, memory_above_kb: 100000 });
|
|
68
116
|
*/
|
|
69
|
-
function processList(filter) {
|
|
117
|
+
function processList(filter, options) {
|
|
70
118
|
const lib = (0, ffi_1.loadSysprims)();
|
|
71
119
|
const filterJson = filter ? JSON.stringify(filter) : "";
|
|
72
|
-
const
|
|
120
|
+
const optionsJson = serializeProcessOptions(options);
|
|
121
|
+
const result = (0, ffi_1.callJsonReturn)(() => lib.sysprimsProcListEx(filterJson, optionsJson));
|
|
73
122
|
return result;
|
|
74
123
|
}
|
|
75
124
|
/**
|
|
@@ -107,7 +156,7 @@ function listeningPorts(filter) {
|
|
|
107
156
|
// -----------------------------------------------------------------------------
|
|
108
157
|
// Descendants
|
|
109
158
|
// -----------------------------------------------------------------------------
|
|
110
|
-
const MAX_LEVELS_ALL =
|
|
159
|
+
const MAX_LEVELS_ALL = 0xffffffff; // u32::MAX
|
|
111
160
|
/**
|
|
112
161
|
* Get descendants of a process.
|
|
113
162
|
*
|
|
@@ -134,11 +183,11 @@ const MAX_LEVELS_ALL = 0xFFFFFFFF; // u32::MAX
|
|
|
134
183
|
*/
|
|
135
184
|
function descendants(pid, options) {
|
|
136
185
|
const lib = (0, ffi_1.loadSysprims)();
|
|
137
|
-
const maxLevels = options?.maxLevels != null && isFinite(options.maxLevels)
|
|
186
|
+
const maxLevels = options?.maxLevels != null && Number.isFinite(options.maxLevels)
|
|
138
187
|
? options.maxLevels >>> 0
|
|
139
188
|
: MAX_LEVELS_ALL;
|
|
140
|
-
const
|
|
141
|
-
return (0, ffi_1.callJsonReturn)(() => lib.sysprimsProcDescendants(pid >>> 0, maxLevels,
|
|
189
|
+
const configJson = serializeDescendantsConfig(options);
|
|
190
|
+
return (0, ffi_1.callJsonReturn)(() => lib.sysprimsProcDescendants(pid >>> 0, maxLevels, configJson));
|
|
142
191
|
}
|
|
143
192
|
/**
|
|
144
193
|
* Kill descendants of a process.
|
|
@@ -166,11 +215,44 @@ function descendants(pid, options) {
|
|
|
166
215
|
*/
|
|
167
216
|
function killDescendants(pid, signal = 15, options) {
|
|
168
217
|
const lib = (0, ffi_1.loadSysprims)();
|
|
169
|
-
const maxLevels = options?.maxLevels != null && isFinite(options.maxLevels)
|
|
218
|
+
const maxLevels = options?.maxLevels != null && Number.isFinite(options.maxLevels)
|
|
170
219
|
? options.maxLevels >>> 0
|
|
171
220
|
: MAX_LEVELS_ALL;
|
|
172
|
-
const
|
|
173
|
-
return (0, ffi_1.callJsonReturn)(() => lib.sysprimsProcKillDescendants(pid >>> 0, maxLevels, signal | 0,
|
|
221
|
+
const configJson = serializeDescendantsConfig(options);
|
|
222
|
+
return (0, ffi_1.callJsonReturn)(() => lib.sysprimsProcKillDescendants(pid >>> 0, maxLevels, signal | 0, configJson));
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Execute one guard evaluation/remediation cycle.
|
|
226
|
+
*
|
|
227
|
+
* Actions are gated by `action_enabled`; when false, this is evaluate-only.
|
|
228
|
+
*/
|
|
229
|
+
function guardStep(config) {
|
|
230
|
+
const lib = (0, ffi_1.loadSysprims)();
|
|
231
|
+
const configJson = JSON.stringify(config);
|
|
232
|
+
return (0, ffi_1.callJsonReturn)(() => lib.sysprimsProcGuardStep(configJson));
|
|
233
|
+
}
|
|
234
|
+
// -----------------------------------------------------------------------------
|
|
235
|
+
// Ancestors
|
|
236
|
+
// -----------------------------------------------------------------------------
|
|
237
|
+
/**
|
|
238
|
+
* Walk the ancestor chain of a process.
|
|
239
|
+
*
|
|
240
|
+
* Returns the parent chain from `pid` upward to init/launchd.
|
|
241
|
+
* The starting PID is included as the first element of the chain.
|
|
242
|
+
*
|
|
243
|
+
* @param pid - Starting process ID
|
|
244
|
+
* @param options - Optional traversal configuration
|
|
245
|
+
* @returns Ancestor chain with metadata
|
|
246
|
+
* @throws {SysprimsError} NotFound if starting process does not exist
|
|
247
|
+
* @throws {SysprimsError} InvalidArgument if pid is 0
|
|
248
|
+
*/
|
|
249
|
+
function ancestors(pid, options) {
|
|
250
|
+
const lib = (0, ffi_1.loadSysprims)();
|
|
251
|
+
const maxDepth = options?.maxDepth ?? 64;
|
|
252
|
+
const optionsJson = serializeProcessOptions(options?.includeEnv || options?.includeThreads
|
|
253
|
+
? { includeEnv: options?.includeEnv, includeThreads: options?.includeThreads }
|
|
254
|
+
: undefined);
|
|
255
|
+
return (0, ffi_1.callJsonReturn)(() => lib.sysprimsProcAncestors(pid >>> 0, maxDepth >>> 0, optionsJson));
|
|
174
256
|
}
|
|
175
257
|
// -----------------------------------------------------------------------------
|
|
176
258
|
// Wait
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAgJA,0BAKC;AA6BD,kCAMC;AA4BD,wCAKC;AAgCD,kCAUC;AA0BD,0CAcC;AAOD,8BAIC;AAkBD,8BAWC;AAaD,0BAIC;AAWD,0BAKC;AAYD,4BAGC;AAQD,0BAGC;AA2BD,gCAGC;AAcD,0CAGC;AAYD,8BAGC;AAYD,8BAGC;AAoCD,4BAeC;AAQD,sCAcC;AAQD,sCAcC;AAcD,sCAiBC;AAMD,oCASC;AAxmBD,qCAA4D;AA6BnD,8FA7BA,sBAAa,OA6BA;AAAE,kGA7BA,0BAAiB,OA6BA;AA5BzC,+BAA2E;AA+D3E,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,SAAS,uBAAuB,CAAC,OAAwB;IACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAyD,EAAE,CAAC;IACtE,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,0BAA0B,CAAC,OAKnC;IACC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACpE,MAAM,IAAI,sBAAa,CACrB,0BAAiB,CAAC,eAAe,EACjC,oBAAoB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAC9C,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,sBAAa,CACrB,0BAAiB,CAAC,eAAe,EACjC,+CAA+C,CAChD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,OAAO,CAAC,GAAW,EAAE,OAAwB;IAC3D,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAA,oBAAc,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;IACnF,OAAO,MAAqB,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,WAAW,CAAC,MAAsB,EAAE,OAAwB;IAC1E,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAA,oBAAc,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IACrF,OAAO,MAAyB,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,cAAc,CAAC,MAAmB;IAChD,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,IAAA,oBAAc,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,CAAC;IAChF,OAAO,MAA8B,CAAC;AACxC,CAAC;AAED,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,WAAW;AAE9C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,WAAW,CAAC,GAAW,EAAE,OAA4B;IACnE,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,MAAM,SAAS,GACb,OAAO,EAAE,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QAC9D,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,CAAC;QACzB,CAAC,CAAC,cAAc,CAAC;IACrB,MAAM,UAAU,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,IAAA,oBAAc,EAAC,GAAG,EAAE,CACzB,GAAG,CAAC,uBAAuB,CAAC,GAAG,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CACzC,CAAC;AACzB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,eAAe,CAC7B,GAAW,EACX,MAAM,GAAG,EAAE,EACX,OAAgC;IAEhC,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,MAAM,SAAS,GACb,OAAO,EAAE,SAAS,IAAI,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;QAC9D,CAAC,CAAC,OAAO,CAAC,SAAS,KAAK,CAAC;QACzB,CAAC,CAAC,cAAc,CAAC;IACrB,MAAM,UAAU,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,IAAA,oBAAc,EAAC,GAAG,EAAE,CACzB,GAAG,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE,UAAU,CAAC,CACrD,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,MAAmB;IAC3C,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAA,oBAAc,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAe,CAAC;AACnF,CAAC;AAED,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF;;;;;;;;;;;GAWG;AACH,SAAgB,SAAS,CAAC,GAAW,EAAE,OAA0B;IAC/D,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,uBAAuB,CACzC,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,cAAc;QAC5C,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE;QAC9E,CAAC,CAAC,SAAS,CACd,CAAC;IACF,OAAO,IAAA,oBAAc,EAAC,GAAG,EAAE,CACzB,GAAG,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,EAAE,QAAQ,KAAK,CAAC,EAAE,WAAW,CAAC,CAC/C,CAAC;AACvB,CAAC;AAED,gFAAgF;AAChF,OAAO;AACP,gFAAgF;AAEhF;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,GAAW,EAAE,SAAiB;IACpD,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAA,oBAAc,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACnF,OAAO,MAAuB,CAAC;AACjC,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;GAIG;AACH,SAAgB,OAAO,CAAC,GAAW,EAAE,MAAiB;IACpD,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,IAAA,oBAAc,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACpF,OAAO,MAAoB,CAAC;AAC9B,CAAC;AAED,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF;;;;;GAKG;AACH,SAAgB,QAAQ;IACtB,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,OAAO,IAAA,gBAAU,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,OAAO;IACrB,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,OAAO,IAAA,gBAAU,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,UAAU,CAAC,GAAW,EAAE,MAAc;IACpD,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,IAAA,cAAQ,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,eAAe,CAAC,IAAY,EAAE,MAAc;IAC1D,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,IAAA,cAAQ,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,SAAS,CAAC,GAAW;IACnC,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,IAAA,cAAQ,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,SAAS,CAAC,GAAW;IACnC,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,IAAA,cAAQ,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,YAAY,GAAG,UAAU,CAAC;AAEhC,SAAS,eAAe,CAAC,IAAc;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,sBAAa,CAAC,0BAAiB,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC;IACvF,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,sBAAa,CAAC,0BAAiB,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,MAAM,IAAI,sBAAa,CAAC,0BAAiB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,GAAG,GAAG,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,sBAAa,CACrB,0BAAiB,CAAC,eAAe,EACjC,OAAO,GAAG,+BAA+B,YAAY,EAAE,CACxD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,sBAAa,CAAC,0BAAiB,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;IAC1F,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAc,EAAE,MAAc;IACrD,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAoB,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACxB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAA6B,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,IAAc;IAC1C,eAAe,CAAC,IAAI,CAAC,CAAC;IAEtB,MAAM,MAAM,GAAoB,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,SAAS,CAAC,GAAG,CAAC,CAAC;YACf,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAA6B,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,IAAc;IAC1C,eAAe,CAAC,IAAI,CAAC,CAAC;IAEtB,MAAM,MAAM,GAAoB,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC9D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,SAAS,CAAC,GAAG,CAAC,CAAC;YACf,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,EAA6B,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,GAAW,EAAE,MAA4B;IACrE,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAE3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAA,oBAAc,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAwB,CAAC;IAC/F,CAAC;IAED,MAAM,GAAG,GAAwB;QAC/B,SAAS,EACP,MAAM,CAAC,SAAS;YAChB,sFAAsF;QACxF,GAAG,MAAM;KACV,CAAC;IAEF,OAAO,IAAA,oBAAc,EAAC,GAAG,EAAE,CACzB,GAAG,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CACnC,CAAC;AAC3B,CAAC;AAED,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,SAAgB,YAAY,CAAC,MAA0B;IACrD,MAAM,GAAG,GAAG,IAAA,kBAAY,GAAE,CAAC;IAC3B,MAAM,GAAG,GAAuB;QAC9B,SAAS,EACP,MAAM,CAAC,SAAS;YAChB,sFAAsF;QACxF,GAAG,MAAM;KACV,CAAC;IACF,OAAO,IAAA,oBAAc,EAAC,GAAG,EAAE,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAuB,CAAC;AACnG,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type JsonObject = Record<string, unknown>;
|
|
2
2
|
export type ProcessState = "running" | "sleeping" | "stopped" | "zombie" | "unknown";
|
|
3
|
+
export type CpuMode = "lifetime" | "monitor";
|
|
3
4
|
/**
|
|
4
5
|
* Information about a single process.
|
|
5
6
|
* Matches schema: process-info.schema.json#/definitions/process_info
|
|
@@ -16,6 +17,8 @@ export interface ProcessInfo {
|
|
|
16
17
|
exe_path?: string | null;
|
|
17
18
|
state: ProcessState;
|
|
18
19
|
cmdline: string[];
|
|
20
|
+
env?: Record<string, string> | null;
|
|
21
|
+
thread_count?: number | null;
|
|
19
22
|
}
|
|
20
23
|
/**
|
|
21
24
|
* Filter criteria for process listing.
|
|
@@ -32,6 +35,15 @@ export interface ProcessFilter {
|
|
|
32
35
|
memory_above_kb?: number;
|
|
33
36
|
running_for_at_least_secs?: number;
|
|
34
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Optional process detail collection controls.
|
|
40
|
+
*
|
|
41
|
+
* Uses camelCase at the TypeScript API boundary; converted to snake_case for FFI.
|
|
42
|
+
*/
|
|
43
|
+
export interface ProcessOptions {
|
|
44
|
+
includeEnv?: boolean;
|
|
45
|
+
includeThreads?: boolean;
|
|
46
|
+
}
|
|
35
47
|
/**
|
|
36
48
|
* Snapshot of running processes.
|
|
37
49
|
* Matches schema: process-info.schema.json
|
|
@@ -177,6 +189,10 @@ export interface DescendantsOptions {
|
|
|
177
189
|
maxLevels?: number;
|
|
178
190
|
/** Optional filter applied to descendant processes. */
|
|
179
191
|
filter?: ProcessFilter;
|
|
192
|
+
/** CPU measurement mode used for cpu_above evaluation. */
|
|
193
|
+
cpuMode?: CpuMode;
|
|
194
|
+
/** Sampling interval in milliseconds (used with monitor mode). */
|
|
195
|
+
sampleDurationMs?: number;
|
|
180
196
|
}
|
|
181
197
|
/**
|
|
182
198
|
* Options for kill-descendants operation.
|
|
@@ -186,6 +202,12 @@ export interface KillDescendantsOptions {
|
|
|
186
202
|
maxLevels?: number;
|
|
187
203
|
/** Optional filter applied to descendant processes. */
|
|
188
204
|
filter?: ProcessFilter;
|
|
205
|
+
/** CPU measurement mode used for cpu_above evaluation. */
|
|
206
|
+
cpuMode?: CpuMode;
|
|
207
|
+
/** Sampling interval in milliseconds (used with monitor mode). */
|
|
208
|
+
sampleDurationMs?: number;
|
|
209
|
+
/** Expand each matched PID to include its descendant subtree. */
|
|
210
|
+
cascade?: boolean;
|
|
189
211
|
}
|
|
190
212
|
/**
|
|
191
213
|
* A single failure in a kill-descendants operation.
|
|
@@ -205,4 +227,75 @@ export interface KillDescendantsResult {
|
|
|
205
227
|
failed: KillDescendantsFailure[];
|
|
206
228
|
skipped_safety: number;
|
|
207
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Result of an ancestors traversal.
|
|
232
|
+
* Matches schema: ancestors-result.schema.json
|
|
233
|
+
*/
|
|
234
|
+
export interface AncestorsResult {
|
|
235
|
+
schema_id: string;
|
|
236
|
+
timestamp: string;
|
|
237
|
+
platform: string;
|
|
238
|
+
pid: number;
|
|
239
|
+
chain: ProcessInfo[];
|
|
240
|
+
warnings: string[];
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Options for ancestors traversal.
|
|
244
|
+
*/
|
|
245
|
+
export interface AncestorsOptions {
|
|
246
|
+
/** Maximum depth to walk (default: 64). */
|
|
247
|
+
maxDepth?: number;
|
|
248
|
+
/** Optional extended process fields. */
|
|
249
|
+
includeEnv?: boolean;
|
|
250
|
+
includeThreads?: boolean;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Rule config for one guard evaluation cycle.
|
|
254
|
+
*/
|
|
255
|
+
export interface GuardRule {
|
|
256
|
+
root_pid: number;
|
|
257
|
+
max_levels?: number;
|
|
258
|
+
name_contains?: string;
|
|
259
|
+
name_equals?: string;
|
|
260
|
+
user_equals?: string;
|
|
261
|
+
pid_in?: number[];
|
|
262
|
+
ppid?: number;
|
|
263
|
+
state_in?: ProcessState[];
|
|
264
|
+
cpu_above?: number;
|
|
265
|
+
memory_above_kb?: number;
|
|
266
|
+
running_for_at_least_secs?: number;
|
|
267
|
+
cpu_mode?: CpuMode;
|
|
268
|
+
sample_duration_ms?: number;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Action config for one guard cycle.
|
|
272
|
+
*/
|
|
273
|
+
export interface GuardAction {
|
|
274
|
+
kind?: "kill_descendants";
|
|
275
|
+
signal?: number;
|
|
276
|
+
cascade?: boolean;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* One-shot guard step input.
|
|
280
|
+
*/
|
|
281
|
+
export interface GuardConfig {
|
|
282
|
+
rule: GuardRule;
|
|
283
|
+
action?: GuardAction;
|
|
284
|
+
action_enabled?: boolean;
|
|
285
|
+
max_targets?: number;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Structured output from one guard step.
|
|
289
|
+
*/
|
|
290
|
+
export interface GuardEvent {
|
|
291
|
+
schema_id: string;
|
|
292
|
+
timestamp: string;
|
|
293
|
+
platform: string;
|
|
294
|
+
matched: number;
|
|
295
|
+
targeted: number;
|
|
296
|
+
killed: number;
|
|
297
|
+
failed: number;
|
|
298
|
+
skipped_safety: number;
|
|
299
|
+
warnings: string[];
|
|
300
|
+
}
|
|
208
301
|
//# 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":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAIjD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/native/src/lib.rs
CHANGED
|
@@ -3,7 +3,10 @@ use std::time::Duration;
|
|
|
3
3
|
use napi_derive::napi;
|
|
4
4
|
use sysprims_core::schema::{SPAWN_IN_GROUP_CONFIG_V1, TERMINATE_TREE_CONFIG_V1};
|
|
5
5
|
use sysprims_core::SysprimsError;
|
|
6
|
-
use sysprims_proc::{
|
|
6
|
+
use sysprims_proc::{
|
|
7
|
+
ancestors, descendants_with_config_and_options, guard_step, CpuMode, DescendantsConfig,
|
|
8
|
+
FdFilter, GuardAction, GuardConfig, GuardRule, PortFilter, ProcessFilter, ProcessOptions,
|
|
9
|
+
};
|
|
7
10
|
use sysprims_timeout::{spawn_in_group, terminate_tree, SpawnInGroupConfig, TerminateTreeConfig};
|
|
8
11
|
|
|
9
12
|
#[repr(i32)]
|
|
@@ -113,9 +116,206 @@ pub fn sysprims_abi_version() -> u32 {
|
|
|
113
116
|
// Process Inspection
|
|
114
117
|
// -----------------------------------------------------------------------------
|
|
115
118
|
|
|
119
|
+
#[derive(Debug, Default, serde::Deserialize)]
|
|
120
|
+
#[serde(default, deny_unknown_fields)]
|
|
121
|
+
struct ProcessOptionsWire {
|
|
122
|
+
include_env: bool,
|
|
123
|
+
include_threads: bool,
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
fn parse_process_options(options_json: &str) -> Result<ProcessOptions, SysprimsError> {
|
|
127
|
+
if options_json.is_empty() || options_json == "{}" {
|
|
128
|
+
return Ok(ProcessOptions::default());
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
let wire: ProcessOptionsWire = serde_json::from_str(options_json)
|
|
132
|
+
.map_err(|e| SysprimsError::invalid_argument(format!("invalid options JSON: {}", e)))?;
|
|
133
|
+
|
|
134
|
+
Ok(ProcessOptions {
|
|
135
|
+
include_env: wire.include_env,
|
|
136
|
+
include_threads: wire.include_threads,
|
|
137
|
+
})
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
#[derive(Debug, Clone, Copy, Default, serde::Deserialize)]
|
|
141
|
+
#[serde(rename_all = "lowercase")]
|
|
142
|
+
enum CpuModeWire {
|
|
143
|
+
#[default]
|
|
144
|
+
Lifetime,
|
|
145
|
+
Monitor,
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
#[derive(Debug, Default, serde::Deserialize)]
|
|
149
|
+
#[serde(default, deny_unknown_fields)]
|
|
150
|
+
struct DescendantsConfigWire {
|
|
151
|
+
#[serde(flatten)]
|
|
152
|
+
filter: ProcessFilter,
|
|
153
|
+
cpu_mode: CpuModeWire,
|
|
154
|
+
sample_duration_ms: Option<u64>,
|
|
155
|
+
cascade: bool,
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
#[derive(Debug, Default)]
|
|
159
|
+
struct ParsedDescendantsConfig {
|
|
160
|
+
filter: Option<ProcessFilter>,
|
|
161
|
+
cpu_mode: CpuMode,
|
|
162
|
+
sample_duration: Option<Duration>,
|
|
163
|
+
cascade: bool,
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
#[derive(Debug, Clone, Copy, serde::Deserialize, Default)]
|
|
167
|
+
#[serde(rename_all = "snake_case")]
|
|
168
|
+
enum GuardActionKindWire {
|
|
169
|
+
#[default]
|
|
170
|
+
KillDescendants,
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
#[derive(Debug, serde::Deserialize)]
|
|
174
|
+
#[serde(default, deny_unknown_fields)]
|
|
175
|
+
struct GuardRuleWire {
|
|
176
|
+
root_pid: u32,
|
|
177
|
+
max_levels: u32,
|
|
178
|
+
#[serde(flatten)]
|
|
179
|
+
filter: ProcessFilter,
|
|
180
|
+
cpu_mode: CpuModeWire,
|
|
181
|
+
sample_duration_ms: Option<u64>,
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
impl Default for GuardRuleWire {
|
|
185
|
+
fn default() -> Self {
|
|
186
|
+
Self {
|
|
187
|
+
root_pid: 0,
|
|
188
|
+
max_levels: u32::MAX,
|
|
189
|
+
filter: ProcessFilter::default(),
|
|
190
|
+
cpu_mode: CpuModeWire::Lifetime,
|
|
191
|
+
sample_duration_ms: None,
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
#[derive(Debug, serde::Deserialize)]
|
|
197
|
+
#[serde(default, deny_unknown_fields)]
|
|
198
|
+
struct GuardActionWire {
|
|
199
|
+
kind: GuardActionKindWire,
|
|
200
|
+
signal: i32,
|
|
201
|
+
cascade: bool,
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
impl Default for GuardActionWire {
|
|
205
|
+
fn default() -> Self {
|
|
206
|
+
Self {
|
|
207
|
+
kind: GuardActionKindWire::KillDescendants,
|
|
208
|
+
signal: 15,
|
|
209
|
+
cascade: false,
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
#[derive(Debug, Default, serde::Deserialize)]
|
|
215
|
+
#[serde(default, deny_unknown_fields)]
|
|
216
|
+
struct GuardConfigWire {
|
|
217
|
+
rule: GuardRuleWire,
|
|
218
|
+
action: GuardActionWire,
|
|
219
|
+
action_enabled: bool,
|
|
220
|
+
max_targets: u32,
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
fn process_filter_has_criteria(filter: &ProcessFilter) -> bool {
|
|
224
|
+
filter.name_contains.is_some()
|
|
225
|
+
|| filter.name_equals.is_some()
|
|
226
|
+
|| filter.user_equals.is_some()
|
|
227
|
+
|| filter.pid_in.is_some()
|
|
228
|
+
|| filter.ppid.is_some()
|
|
229
|
+
|| filter.state_in.is_some()
|
|
230
|
+
|| filter.cpu_above.is_some()
|
|
231
|
+
|| filter.memory_above_kb.is_some()
|
|
232
|
+
|| filter.running_for_at_least_secs.is_some()
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
fn wire_cpu_mode_to_proc(mode: CpuModeWire) -> CpuMode {
|
|
236
|
+
match mode {
|
|
237
|
+
CpuModeWire::Lifetime => CpuMode::Lifetime,
|
|
238
|
+
CpuModeWire::Monitor => CpuMode::Monitor,
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
fn parse_descendants_config(config_json: &str) -> Result<ParsedDescendantsConfig, SysprimsError> {
|
|
243
|
+
if config_json.is_empty() || config_json == "{}" {
|
|
244
|
+
return Ok(ParsedDescendantsConfig::default());
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
let wire: DescendantsConfigWire = serde_json::from_str(config_json)
|
|
248
|
+
.map_err(|e| SysprimsError::invalid_argument(format!("invalid config JSON: {}", e)))?;
|
|
249
|
+
|
|
250
|
+
let filter = if process_filter_has_criteria(&wire.filter) {
|
|
251
|
+
Some(wire.filter)
|
|
252
|
+
} else {
|
|
253
|
+
None
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
Ok(ParsedDescendantsConfig {
|
|
257
|
+
filter,
|
|
258
|
+
cpu_mode: wire_cpu_mode_to_proc(wire.cpu_mode),
|
|
259
|
+
sample_duration: wire.sample_duration_ms.map(Duration::from_millis),
|
|
260
|
+
cascade: wire.cascade,
|
|
261
|
+
})
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
fn parse_guard_config(config_json: &str) -> Result<GuardConfig, SysprimsError> {
|
|
265
|
+
if config_json.is_empty() || config_json == "{}" {
|
|
266
|
+
return Err(SysprimsError::invalid_argument(
|
|
267
|
+
"guard config JSON cannot be empty",
|
|
268
|
+
));
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
let wire: GuardConfigWire = serde_json::from_str(config_json).map_err(|e| {
|
|
272
|
+
SysprimsError::invalid_argument(format!("invalid guard config JSON: {}", e))
|
|
273
|
+
})?;
|
|
274
|
+
|
|
275
|
+
let filter = if process_filter_has_criteria(&wire.rule.filter) {
|
|
276
|
+
Some(wire.rule.filter)
|
|
277
|
+
} else {
|
|
278
|
+
None
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
let action = match wire.action.kind {
|
|
282
|
+
GuardActionKindWire::KillDescendants => GuardAction::KillDescendants {
|
|
283
|
+
signal: wire.action.signal,
|
|
284
|
+
cascade: wire.action.cascade,
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
Ok(GuardConfig {
|
|
289
|
+
rule: GuardRule {
|
|
290
|
+
root_pid: wire.rule.root_pid,
|
|
291
|
+
max_levels: wire.rule.max_levels,
|
|
292
|
+
filter,
|
|
293
|
+
cpu_mode: wire_cpu_mode_to_proc(wire.rule.cpu_mode),
|
|
294
|
+
sample_duration: wire.rule.sample_duration_ms.map(Duration::from_millis),
|
|
295
|
+
},
|
|
296
|
+
action,
|
|
297
|
+
action_enabled: wire.action_enabled,
|
|
298
|
+
max_targets: if wire.max_targets == 0 {
|
|
299
|
+
64
|
|
300
|
+
} else {
|
|
301
|
+
wire.max_targets
|
|
302
|
+
},
|
|
303
|
+
})
|
|
304
|
+
}
|
|
305
|
+
|
|
116
306
|
#[napi]
|
|
117
307
|
pub fn sysprims_proc_get(pid: u32) -> SysprimsCallJsonResult {
|
|
118
|
-
|
|
308
|
+
sysprims_proc_get_ex(pid, String::new())
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
#[napi]
|
|
312
|
+
pub fn sysprims_proc_get_ex(pid: u32, options_json: String) -> SysprimsCallJsonResult {
|
|
313
|
+
let options = match parse_process_options(&options_json) {
|
|
314
|
+
Ok(o) => o,
|
|
315
|
+
Err(e) => return err_json(e),
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
match sysprims_proc::get_process_with_options(pid, options) {
|
|
119
319
|
Ok(info) => match serde_json::to_string(&info) {
|
|
120
320
|
Ok(json) => ok_json(json),
|
|
121
321
|
Err(e) => err_json(SysprimsError::internal(format!(
|
|
@@ -129,6 +329,11 @@ pub fn sysprims_proc_get(pid: u32) -> SysprimsCallJsonResult {
|
|
|
129
329
|
|
|
130
330
|
#[napi]
|
|
131
331
|
pub fn sysprims_proc_list(filter_json: String) -> SysprimsCallJsonResult {
|
|
332
|
+
sysprims_proc_list_ex(filter_json, String::new())
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
#[napi]
|
|
336
|
+
pub fn sysprims_proc_list_ex(filter_json: String, options_json: String) -> SysprimsCallJsonResult {
|
|
132
337
|
let filter = if filter_json.is_empty() || filter_json == "{}" {
|
|
133
338
|
ProcessFilter::default()
|
|
134
339
|
} else {
|
|
@@ -147,7 +352,12 @@ pub fn sysprims_proc_list(filter_json: String) -> SysprimsCallJsonResult {
|
|
|
147
352
|
return err_json(e);
|
|
148
353
|
}
|
|
149
354
|
|
|
150
|
-
match
|
|
355
|
+
let options = match parse_process_options(&options_json) {
|
|
356
|
+
Ok(o) => o,
|
|
357
|
+
Err(e) => return err_json(e),
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
match sysprims_proc::snapshot_filtered_with_options(&filter, options) {
|
|
151
361
|
Ok(snapshot) => match serde_json::to_string(&snapshot) {
|
|
152
362
|
Ok(json) => ok_json(json),
|
|
153
363
|
Err(e) => err_json(SysprimsError::internal(format!(
|
|
@@ -245,29 +455,22 @@ pub fn sysprims_proc_wait_pid(pid: u32, timeout_ms: u32) -> SysprimsCallJsonResu
|
|
|
245
455
|
pub fn sysprims_proc_descendants(
|
|
246
456
|
root_pid: u32,
|
|
247
457
|
max_levels: u32,
|
|
248
|
-
|
|
458
|
+
config_json: String,
|
|
249
459
|
) -> SysprimsCallJsonResult {
|
|
250
|
-
let
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
match serde_json::from_str::<ProcessFilter>(&filter_json) {
|
|
254
|
-
Ok(f) => Some(f),
|
|
255
|
-
Err(e) => {
|
|
256
|
-
return err_json(SysprimsError::invalid_argument(format!(
|
|
257
|
-
"invalid filter JSON: {}",
|
|
258
|
-
e
|
|
259
|
-
)))
|
|
260
|
-
}
|
|
261
|
-
}
|
|
460
|
+
let parsed = match parse_descendants_config(&config_json) {
|
|
461
|
+
Ok(c) => c,
|
|
462
|
+
Err(e) => return err_json(e),
|
|
262
463
|
};
|
|
263
464
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
465
|
+
let config = DescendantsConfig {
|
|
466
|
+
root_pid,
|
|
467
|
+
max_levels: Some(max_levels),
|
|
468
|
+
filter: parsed.filter,
|
|
469
|
+
cpu_mode: parsed.cpu_mode,
|
|
470
|
+
sample_duration: parsed.sample_duration,
|
|
471
|
+
};
|
|
269
472
|
|
|
270
|
-
match
|
|
473
|
+
match descendants_with_config_and_options(config, ProcessOptions::default()) {
|
|
271
474
|
Ok(result) => match serde_json::to_string(&result) {
|
|
272
475
|
Ok(json) => ok_json(json),
|
|
273
476
|
Err(e) => err_json(SysprimsError::internal(format!(
|
|
@@ -284,45 +487,33 @@ pub fn sysprims_proc_kill_descendants(
|
|
|
284
487
|
root_pid: u32,
|
|
285
488
|
max_levels: u32,
|
|
286
489
|
signal: i32,
|
|
287
|
-
|
|
490
|
+
config_json: String,
|
|
288
491
|
) -> SysprimsCallJsonResult {
|
|
289
|
-
let
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
match serde_json::from_str::<ProcessFilter>(&filter_json) {
|
|
293
|
-
Ok(f) => Some(f),
|
|
294
|
-
Err(e) => {
|
|
295
|
-
return err_json(SysprimsError::invalid_argument(format!(
|
|
296
|
-
"invalid filter JSON: {}",
|
|
297
|
-
e
|
|
298
|
-
)))
|
|
299
|
-
}
|
|
300
|
-
}
|
|
492
|
+
let parsed = match parse_descendants_config(&config_json) {
|
|
493
|
+
Ok(c) => c,
|
|
494
|
+
Err(e) => return err_json(e),
|
|
301
495
|
};
|
|
302
496
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
497
|
+
let config = DescendantsConfig {
|
|
498
|
+
root_pid,
|
|
499
|
+
max_levels: Some(max_levels),
|
|
500
|
+
filter: None,
|
|
501
|
+
cpu_mode: parsed.cpu_mode,
|
|
502
|
+
sample_duration: parsed.sample_duration,
|
|
503
|
+
};
|
|
308
504
|
|
|
309
|
-
// Traverse descendants
|
|
310
|
-
let desc_result = match
|
|
505
|
+
// Traverse descendants before sending any signal.
|
|
506
|
+
let desc_result = match descendants_with_config_and_options(config, ProcessOptions::default()) {
|
|
311
507
|
Ok(r) => r,
|
|
312
508
|
Err(e) => return err_json(e),
|
|
313
509
|
};
|
|
314
510
|
|
|
315
|
-
//
|
|
316
|
-
let mut target_pids
|
|
317
|
-
|
|
318
|
-
.
|
|
319
|
-
.
|
|
320
|
-
|
|
321
|
-
target_pids.sort_unstable();
|
|
322
|
-
target_pids.dedup();
|
|
323
|
-
|
|
324
|
-
// Safety: exclude root PID (descendants-only)
|
|
325
|
-
target_pids.retain(|&pid| pid != root_pid);
|
|
511
|
+
// Select matched targets (optionally expanded to matched subtrees).
|
|
512
|
+
let mut target_pids = sysprims_proc::select_descendant_targets(
|
|
513
|
+
&desc_result,
|
|
514
|
+
parsed.filter.as_ref(),
|
|
515
|
+
parsed.cascade,
|
|
516
|
+
);
|
|
326
517
|
|
|
327
518
|
// Safety: exclude self, PID 1, parent
|
|
328
519
|
let self_pid = std::process::id();
|
|
@@ -373,6 +564,66 @@ pub fn sysprims_proc_kill_descendants(
|
|
|
373
564
|
}
|
|
374
565
|
}
|
|
375
566
|
|
|
567
|
+
#[napi]
|
|
568
|
+
pub fn sysprims_proc_guard_step(config_json: String) -> SysprimsCallJsonResult {
|
|
569
|
+
let config = match parse_guard_config(&config_json) {
|
|
570
|
+
Ok(c) => c,
|
|
571
|
+
Err(e) => return err_json(e),
|
|
572
|
+
};
|
|
573
|
+
|
|
574
|
+
match guard_step(config) {
|
|
575
|
+
Ok(event) => match serde_json::to_string(&event) {
|
|
576
|
+
Ok(json) => ok_json(json),
|
|
577
|
+
Err(e) => err_json(SysprimsError::internal(format!(
|
|
578
|
+
"failed to serialize guard event: {}",
|
|
579
|
+
e
|
|
580
|
+
))),
|
|
581
|
+
},
|
|
582
|
+
Err(e) => err_json(e),
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
#[napi]
|
|
587
|
+
pub fn sysprims_proc_ancestors(
|
|
588
|
+
pid: u32,
|
|
589
|
+
max_depth: u32,
|
|
590
|
+
options_json: String,
|
|
591
|
+
) -> SysprimsCallJsonResult {
|
|
592
|
+
let options = if options_json.is_empty() {
|
|
593
|
+
ProcessOptions::default()
|
|
594
|
+
} else {
|
|
595
|
+
match serde_json::from_str::<ProcessOptionsWire>(&options_json) {
|
|
596
|
+
Ok(w) => {
|
|
597
|
+
let mut opts = ProcessOptions::default();
|
|
598
|
+
if w.include_env {
|
|
599
|
+
opts = opts.with_env();
|
|
600
|
+
}
|
|
601
|
+
if w.include_threads {
|
|
602
|
+
opts = opts.with_threads();
|
|
603
|
+
}
|
|
604
|
+
opts
|
|
605
|
+
}
|
|
606
|
+
Err(e) => {
|
|
607
|
+
return err_json(SysprimsError::invalid_argument(format!(
|
|
608
|
+
"invalid options JSON: {}",
|
|
609
|
+
e
|
|
610
|
+
)))
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
};
|
|
614
|
+
|
|
615
|
+
match ancestors(pid, max_depth, options) {
|
|
616
|
+
Ok(result) => match serde_json::to_string(&result) {
|
|
617
|
+
Ok(json) => ok_json(json),
|
|
618
|
+
Err(e) => err_json(SysprimsError::internal(format!(
|
|
619
|
+
"failed to serialize ancestors result: {}",
|
|
620
|
+
e
|
|
621
|
+
))),
|
|
622
|
+
},
|
|
623
|
+
Err(e) => err_json(e),
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
376
627
|
#[derive(serde::Serialize)]
|
|
377
628
|
struct KillDescendantsFailureWire {
|
|
378
629
|
pid: u32,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@3leaps/sysprims",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.15",
|
|
4
4
|
"description": "GPL-free cross-platform process utilities (TypeScript bindings via Node-API native addon)",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {},
|
|
47
47
|
"optionalDependencies": {
|
|
48
|
-
"@3leaps/sysprims-linux-x64-gnu": "0.1.
|
|
49
|
-
"@3leaps/sysprims-linux-x64-musl": "0.1.
|
|
50
|
-
"@3leaps/sysprims-linux-arm64-gnu": "0.1.
|
|
51
|
-
"@3leaps/sysprims-linux-arm64-musl": "0.1.
|
|
52
|
-
"@3leaps/sysprims-darwin-arm64": "0.1.
|
|
53
|
-
"@3leaps/sysprims-win32-x64-msvc": "0.1.
|
|
54
|
-
"@3leaps/sysprims-win32-arm64-msvc": "0.1.
|
|
48
|
+
"@3leaps/sysprims-linux-x64-gnu": "0.1.15",
|
|
49
|
+
"@3leaps/sysprims-linux-x64-musl": "0.1.15",
|
|
50
|
+
"@3leaps/sysprims-linux-arm64-gnu": "0.1.15",
|
|
51
|
+
"@3leaps/sysprims-linux-arm64-musl": "0.1.15",
|
|
52
|
+
"@3leaps/sysprims-darwin-arm64": "0.1.15",
|
|
53
|
+
"@3leaps/sysprims-win32-x64-msvc": "0.1.15",
|
|
54
|
+
"@3leaps/sysprims-win32-arm64-msvc": "0.1.15"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@napi-rs/cli": "^2.18.4",
|