nawabari 0.7.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +264 -29
- package/dist/cli-command-registry.d.ts +50 -0
- package/dist/cli-command-registry.js +509 -0
- package/dist/cli-command-registry.js.map +1 -0
- package/dist/cli.d.ts +18 -0
- package/dist/cli.js +302 -583
- package/dist/cli.js.map +1 -1
- package/dist/contract.d.ts +6 -0
- package/dist/contract.js +296 -192
- package/dist/contract.js.map +1 -1
- package/dist/domain/cgroups-v2.d.ts +77 -0
- package/dist/domain/cgroups-v2.js +434 -0
- package/dist/domain/cgroups-v2.js.map +1 -0
- package/dist/domain/doctor.d.ts +4 -1
- package/dist/domain/doctor.js +64 -13
- package/dist/domain/doctor.js.map +1 -1
- package/dist/domain/errors.d.ts +1 -1
- package/dist/domain/errors.js.map +1 -1
- package/dist/domain/landlock.d.ts +55 -0
- package/dist/domain/landlock.js +279 -0
- package/dist/domain/landlock.js.map +1 -0
- package/dist/domain/runtime.d.ts +12 -0
- package/dist/domain/runtime.js +50 -0
- package/dist/domain/runtime.js.map +1 -0
- package/dist/domain/sandbox-launcher.d.ts +26 -0
- package/dist/domain/sandbox-launcher.js +312 -23
- package/dist/domain/sandbox-launcher.js.map +1 -1
- package/dist/domain/sandbox-seccomp.d.ts +46 -0
- package/dist/domain/sandbox-seccomp.js +302 -0
- package/dist/domain/sandbox-seccomp.js.map +1 -0
- package/dist/domain/sandbox.d.ts +45 -1
- package/dist/domain/sandbox.js +176 -25
- package/dist/domain/sandbox.js.map +1 -1
- package/dist/domain/session-backend.d.ts +4 -1
- package/dist/domain/session-backend.js +256 -3
- package/dist/domain/session-backend.js.map +1 -1
- package/dist/domain/session.d.ts +207 -3
- package/dist/domain/session.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/failure-code-vocabulary.d.ts +20 -0
- package/dist/failure-code-vocabulary.js +216 -0
- package/dist/failure-code-vocabulary.js.map +1 -0
- package/dist/git.js +92 -6
- package/dist/git.js.map +1 -1
- package/dist/operation-authorization.d.ts +1 -1
- package/dist/product-state-manifest.d.ts +152 -0
- package/dist/product-state-manifest.js +240 -0
- package/dist/product-state-manifest.js.map +1 -0
- package/dist/public-contract.d.ts +25 -0
- package/dist/public-contract.js +29 -0
- package/dist/public-contract.js.map +1 -0
- package/dist/public-state.d.ts +75 -0
- package/dist/public-state.js +60 -0
- package/dist/public-state.js.map +1 -0
- package/dist/registry/lock.d.ts +8 -0
- package/dist/registry/lock.js +38 -20
- package/dist/registry/lock.js.map +1 -1
- package/dist/repository-evidence.d.ts +16 -0
- package/dist/repository-evidence.js.map +1 -1
- package/dist/resource-claims.d.ts +2 -2
- package/dist/resource-claims.js +96 -27
- package/dist/resource-claims.js.map +1 -1
- package/dist/session-lifecycle-actions.d.ts +64 -0
- package/dist/session-lifecycle-actions.js +117 -0
- package/dist/session-lifecycle-actions.js.map +1 -0
- package/dist/session-lifecycle-classification.d.ts +120 -0
- package/dist/session-lifecycle-classification.js +88 -0
- package/dist/session-lifecycle-classification.js.map +1 -0
- package/dist/session-registry.d.ts +210 -2
- package/dist/session-registry.js +1330 -87
- package/dist/session-registry.js.map +1 -1
- package/dist/state/index.d.ts +5 -0
- package/dist/state/index.js +4 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/session/actors.d.ts +71 -0
- package/dist/state/session/actors.js +259 -0
- package/dist/state/session/actors.js.map +1 -0
- package/dist/state/session/guards.d.ts +25 -0
- package/dist/state/session/guards.js +108 -0
- package/dist/state/session/guards.js.map +1 -0
- package/dist/state/session/index.d.ts +6 -0
- package/dist/state/session/index.js +5 -0
- package/dist/state/session/index.js.map +1 -0
- package/dist/state/session/machine.d.ts +185 -0
- package/dist/state/session/machine.js +408 -0
- package/dist/state/session/machine.js.map +1 -0
- package/dist/state/session/types.d.ts +94 -0
- package/dist/state/session/types.js +14 -0
- package/dist/state/session/types.js.map +1 -0
- package/package.json +46 -26
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { type DomainResult } from "./errors.js";
|
|
2
|
+
/** Versioned, execution-level cgroups v2 evidence/control contract. */
|
|
3
|
+
export declare const CGROUPS_V2_CONTRACT_ID: "nawabari.cgroups-v2.v1";
|
|
4
|
+
export declare const CGROUPS_V2_ROOT: "/sys/fs/cgroup";
|
|
5
|
+
export type CgroupLimitProfile = {
|
|
6
|
+
/** Maximum CPU time in each period, in microseconds. */
|
|
7
|
+
readonly cpu_max_usec?: number;
|
|
8
|
+
/** CPU quota period in microseconds. Defaults to 100000. */
|
|
9
|
+
readonly cpu_period_usec?: number;
|
|
10
|
+
/** Maximum resident memory in bytes. */
|
|
11
|
+
readonly memory_max_bytes?: number;
|
|
12
|
+
/** Maximum number of processes/threads in the scope. */
|
|
13
|
+
readonly pids_max?: number;
|
|
14
|
+
};
|
|
15
|
+
export type CgroupExecutionIdentity = {
|
|
16
|
+
readonly session_id: string;
|
|
17
|
+
readonly execution_id: string;
|
|
18
|
+
};
|
|
19
|
+
export type CgroupScope = {
|
|
20
|
+
readonly contract_id: typeof CGROUPS_V2_CONTRACT_ID;
|
|
21
|
+
readonly root: string;
|
|
22
|
+
readonly parent: string;
|
|
23
|
+
readonly path: string;
|
|
24
|
+
readonly name: string;
|
|
25
|
+
readonly identity: CgroupExecutionIdentity;
|
|
26
|
+
readonly limits: CgroupLimitProfile;
|
|
27
|
+
};
|
|
28
|
+
export type CgroupAccounting = {
|
|
29
|
+
readonly bounded: true;
|
|
30
|
+
readonly cpu_usage_usec: number | null;
|
|
31
|
+
readonly cpu_user_usec: number | null;
|
|
32
|
+
readonly cpu_system_usec: number | null;
|
|
33
|
+
readonly cpu_throttled_usec: number | null;
|
|
34
|
+
readonly memory_current_bytes: number | null;
|
|
35
|
+
readonly memory_peak_bytes: number | null;
|
|
36
|
+
readonly pids_current: number | null;
|
|
37
|
+
readonly pids_max_events: number | null;
|
|
38
|
+
readonly memory_oom_kill_events: number | null;
|
|
39
|
+
readonly memory_max_events: number | null;
|
|
40
|
+
readonly cpu_throttled: boolean;
|
|
41
|
+
readonly memory_limit_exceeded: boolean;
|
|
42
|
+
readonly pids_limit_exceeded: boolean;
|
|
43
|
+
};
|
|
44
|
+
export type CgroupLimitEvent = "cpu" | "memory" | "pids";
|
|
45
|
+
export type CgroupScopeOptions = {
|
|
46
|
+
readonly root?: string;
|
|
47
|
+
readonly limits?: CgroupLimitProfile;
|
|
48
|
+
/** Injectable filesystem boundary for hermetic tests and controlled runtimes. */
|
|
49
|
+
readonly filesystem?: CgroupFileSystem;
|
|
50
|
+
};
|
|
51
|
+
export type CgroupFileSystem = {
|
|
52
|
+
readonly statSync: (file: string) => {
|
|
53
|
+
readonly isDirectory: () => boolean;
|
|
54
|
+
readonly isFile: () => boolean;
|
|
55
|
+
};
|
|
56
|
+
readonly realpathSync: (file: string) => string;
|
|
57
|
+
readonly readFileSync: (file: string) => string;
|
|
58
|
+
readonly writeFileSync: (file: string, value: string) => void;
|
|
59
|
+
readonly mkdirSync: (file: string, options?: {
|
|
60
|
+
readonly recursive?: boolean;
|
|
61
|
+
readonly mode?: number;
|
|
62
|
+
}) => void;
|
|
63
|
+
readonly rmdirSync: (file: string) => void;
|
|
64
|
+
};
|
|
65
|
+
/** Derive a stable, non-display-name scope name from both authoritative identities. */
|
|
66
|
+
export declare function deriveCgroupScopeName(identity: CgroupExecutionIdentity): string;
|
|
67
|
+
/** Create or resume a deterministic scope; an occupied scope is never adopted. */
|
|
68
|
+
export declare function createCgroupScope(identity: CgroupExecutionIdentity, options?: CgroupScopeOptions): DomainResult<CgroupScope>;
|
|
69
|
+
/** Attach only a positive process id to the exact scope created for this identity. */
|
|
70
|
+
export declare function attachProcessToCgroup(scope: CgroupScope, pid: number): DomainResult<null>;
|
|
71
|
+
/** Read bounded counters only; malformed/unavailable kernel files become null evidence. */
|
|
72
|
+
export declare function readCgroupAccounting(scope: CgroupScope): CgroupAccounting;
|
|
73
|
+
/** Remove only an identity-verified, empty scope. Populated scopes are killed first through cgroup.kill. */
|
|
74
|
+
export declare function cleanupCgroupScope(scope: CgroupScope): DomainResult<{
|
|
75
|
+
readonly removed: boolean;
|
|
76
|
+
}>;
|
|
77
|
+
export declare function cgroupLimitEvents(accounting: CgroupAccounting): CgroupLimitEvent[];
|
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { DomainError, failure, success } from "./errors.js";
|
|
5
|
+
/** Versioned, execution-level cgroups v2 evidence/control contract. */
|
|
6
|
+
export const CGROUPS_V2_CONTRACT_ID = "nawabari.cgroups-v2.v1";
|
|
7
|
+
export const CGROUPS_V2_ROOT = "/sys/fs/cgroup";
|
|
8
|
+
const CONTROLLERS = ["cpu", "memory", "pids"];
|
|
9
|
+
const MAX_MEMORY_LIMIT = 1_024 * 1_024 * 1_024 * 1_024;
|
|
10
|
+
const MAX_PIDS_LIMIT = 1_000_000;
|
|
11
|
+
const MAX_CGROUP_FILE_BYTES = 64 * 1_024;
|
|
12
|
+
const nativeFileSystem = {
|
|
13
|
+
statSync: (file) => fs.statSync(file),
|
|
14
|
+
realpathSync: (file) => fs.realpathSync.native(file),
|
|
15
|
+
readFileSync: (file) => fs.readFileSync(file, { encoding: "utf8", flag: "r" }),
|
|
16
|
+
writeFileSync: (file, value) => fs.writeFileSync(file, value, { encoding: "utf8" }),
|
|
17
|
+
mkdirSync: (file, options) => fs.mkdirSync(file, options),
|
|
18
|
+
rmdirSync: (file) => fs.rmdirSync(file),
|
|
19
|
+
};
|
|
20
|
+
const scopeFilesystems = new WeakMap();
|
|
21
|
+
function filesystemFor(scope) {
|
|
22
|
+
return scopeFilesystems.get(scope) ?? nativeFileSystem;
|
|
23
|
+
}
|
|
24
|
+
function cgroupError(code, message, details) {
|
|
25
|
+
return failure(new DomainError(code, message, details));
|
|
26
|
+
}
|
|
27
|
+
function capabilityError(message, details) {
|
|
28
|
+
return failure(new DomainError("SANDBOX_CAPABILITY_UNAVAILABLE", message, details));
|
|
29
|
+
}
|
|
30
|
+
function cleanupError(message, details) {
|
|
31
|
+
return failure(new DomainError("SANDBOX_CGROUP_CLEANUP_FAILED", message, details));
|
|
32
|
+
}
|
|
33
|
+
function isSafeInteger(value) {
|
|
34
|
+
return typeof value === "number" && Number.isSafeInteger(value) && value >= 1;
|
|
35
|
+
}
|
|
36
|
+
function validateIdentity(identity) {
|
|
37
|
+
if (typeof identity.session_id !== "string" ||
|
|
38
|
+
identity.session_id.length === 0 ||
|
|
39
|
+
identity.session_id.length > 256 ||
|
|
40
|
+
identity.session_id.includes("\0") ||
|
|
41
|
+
typeof identity.execution_id !== "string" ||
|
|
42
|
+
identity.execution_id.length === 0 ||
|
|
43
|
+
identity.execution_id.length > 256 ||
|
|
44
|
+
identity.execution_id.includes("\0")) {
|
|
45
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The cgroup scope identity is invalid.", {
|
|
46
|
+
session_id: identity.session_id,
|
|
47
|
+
execution_id: identity.execution_id,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return success(null);
|
|
51
|
+
}
|
|
52
|
+
function validateLimits(limits) {
|
|
53
|
+
const cpuPeriod = limits.cpu_period_usec ?? 100_000;
|
|
54
|
+
if (limits.cpu_max_usec !== undefined && !isSafeInteger(limits.cpu_max_usec)) {
|
|
55
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The CPU cgroup limit is invalid.", {
|
|
56
|
+
limit: limits.cpu_max_usec,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
if (!isSafeInteger(cpuPeriod) || cpuPeriod < 1_000 || cpuPeriod > 1_000_000) {
|
|
60
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The CPU cgroup period is invalid.", { period_usec: cpuPeriod });
|
|
61
|
+
}
|
|
62
|
+
if (limits.cpu_max_usec !== undefined && limits.cpu_max_usec > cpuPeriod) {
|
|
63
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The CPU quota cannot exceed its period.", {
|
|
64
|
+
max_usec: limits.cpu_max_usec,
|
|
65
|
+
period_usec: cpuPeriod,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
if (limits.memory_max_bytes !== undefined &&
|
|
69
|
+
(!isSafeInteger(limits.memory_max_bytes) || limits.memory_max_bytes > MAX_MEMORY_LIMIT)) {
|
|
70
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The memory cgroup limit is invalid.", {
|
|
71
|
+
limit: limits.memory_max_bytes,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
if (limits.pids_max !== undefined && (!isSafeInteger(limits.pids_max) || limits.pids_max > MAX_PIDS_LIMIT)) {
|
|
75
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The PID cgroup limit is invalid.", { limit: limits.pids_max });
|
|
76
|
+
}
|
|
77
|
+
return success({
|
|
78
|
+
...(limits.cpu_max_usec === undefined ? {} : { cpu_max_usec: limits.cpu_max_usec }),
|
|
79
|
+
...(limits.cpu_max_usec === undefined && limits.cpu_period_usec === undefined
|
|
80
|
+
? {}
|
|
81
|
+
: { cpu_period_usec: cpuPeriod }),
|
|
82
|
+
...(limits.memory_max_bytes === undefined ? {} : { memory_max_bytes: limits.memory_max_bytes }),
|
|
83
|
+
...(limits.pids_max === undefined ? {} : { pids_max: limits.pids_max }),
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function validateRoot(root, filesystem) {
|
|
87
|
+
if (!path.isAbsolute(root) || root.includes("\0")) {
|
|
88
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The cgroups v2 root must be an absolute path.", { root });
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
if (!filesystem.statSync(root).isDirectory() ||
|
|
92
|
+
!filesystem.statSync(path.join(root, "cgroup.controllers")).isFile()) {
|
|
93
|
+
return capabilityError("The cgroups v2 hierarchy is unavailable.", { root });
|
|
94
|
+
}
|
|
95
|
+
return success(filesystem.realpathSync(root));
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
return capabilityError("The cgroups v2 hierarchy is unavailable.", {
|
|
99
|
+
root,
|
|
100
|
+
reason: error instanceof Error ? error.message.slice(0, 200) : "unknown",
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/** Derive a stable, non-display-name scope name from both authoritative identities. */
|
|
105
|
+
export function deriveCgroupScopeName(identity) {
|
|
106
|
+
const checked = validateIdentity(identity);
|
|
107
|
+
if (!checked.ok)
|
|
108
|
+
throw checked.error;
|
|
109
|
+
const digest = crypto
|
|
110
|
+
.createHash("sha256")
|
|
111
|
+
.update(`${identity.session_id}\0${identity.execution_id}`, "utf8")
|
|
112
|
+
.digest("hex");
|
|
113
|
+
return `nawabari-${digest.slice(0, 48)}`;
|
|
114
|
+
}
|
|
115
|
+
function readBounded(file, filesystem = nativeFileSystem) {
|
|
116
|
+
try {
|
|
117
|
+
const value = filesystem.readFileSync(file);
|
|
118
|
+
return value.slice(0, MAX_CGROUP_FILE_BYTES);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function parseCounter(text, key) {
|
|
125
|
+
if (text === null)
|
|
126
|
+
return null;
|
|
127
|
+
const line = key === undefined
|
|
128
|
+
? text.trim()
|
|
129
|
+
: (text
|
|
130
|
+
.split(/\r?\n/u)
|
|
131
|
+
.find((entry) => entry.startsWith(`${key} `))
|
|
132
|
+
?.slice(key.length)
|
|
133
|
+
.trim() ?? "");
|
|
134
|
+
if (!/^\d+$/u.test(line))
|
|
135
|
+
return null;
|
|
136
|
+
const value = Number(line);
|
|
137
|
+
return Number.isSafeInteger(value) && value >= 0 ? value : null;
|
|
138
|
+
}
|
|
139
|
+
function requiredControllers(root, filesystem) {
|
|
140
|
+
const available = readBounded(path.join(root, "cgroup.controllers"), filesystem);
|
|
141
|
+
if (available === null)
|
|
142
|
+
return capabilityError("Cannot read cgroups v2 controllers.", { root });
|
|
143
|
+
// The scope is both a control and bounded accounting authority. All three
|
|
144
|
+
// controllers are therefore required even when the profile supplies no
|
|
145
|
+
// optional limit; silently returning partial evidence would be misleading.
|
|
146
|
+
const required = CONTROLLERS;
|
|
147
|
+
const missing = required.filter((controller) => !available.split(/\s+/u).includes(controller));
|
|
148
|
+
if (missing.length > 0) {
|
|
149
|
+
return capabilityError("The requested cgroups v2 controllers are unavailable.", {
|
|
150
|
+
missing,
|
|
151
|
+
available: available.trim().slice(0, 256),
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
return success(null);
|
|
155
|
+
}
|
|
156
|
+
function ensureControllerDelegation(parent, filesystem) {
|
|
157
|
+
const controllers = CONTROLLERS;
|
|
158
|
+
const controlFile = path.join(parent, "cgroup.subtree_control");
|
|
159
|
+
const current = readBounded(controlFile, filesystem);
|
|
160
|
+
if (current === null)
|
|
161
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "Cannot inspect cgroups v2 controller delegation.", { parent });
|
|
162
|
+
const missing = controllers.filter((controller) => !current.split(/\s+/u).includes(`+${controller}`) && !current.split(/\s+/u).includes(controller));
|
|
163
|
+
if (missing.length === 0)
|
|
164
|
+
return success(null);
|
|
165
|
+
try {
|
|
166
|
+
filesystem.writeFileSync(controlFile, missing.map((controller) => `+${controller}`).join(" "));
|
|
167
|
+
return success(null);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The requested cgroups v2 controllers cannot be delegated.", {
|
|
171
|
+
parent,
|
|
172
|
+
controllers: missing,
|
|
173
|
+
reason: error instanceof Error ? error.message.slice(0, 200) : "unknown",
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
function scopeWithin(root, candidate) {
|
|
178
|
+
const relative = path.relative(root, candidate);
|
|
179
|
+
return relative !== "" && relative !== ".." && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative);
|
|
180
|
+
}
|
|
181
|
+
function verifiesScopeIdentity(scope) {
|
|
182
|
+
return (scopeWithin(scope.root, scope.path) &&
|
|
183
|
+
scope.path === path.join(scope.root, "nawabari", scope.name) &&
|
|
184
|
+
path.basename(scope.path) === scope.name &&
|
|
185
|
+
deriveCgroupScopeName(scope.identity) === scope.name);
|
|
186
|
+
}
|
|
187
|
+
function reconcileExistingScope(scopePath, name, filesystem) {
|
|
188
|
+
const processesText = readBounded(path.join(scopePath, "cgroup.procs"), filesystem);
|
|
189
|
+
if (processesText === null) {
|
|
190
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The existing cgroups v2 scope could not be inspected.", {
|
|
191
|
+
scope: name,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
const processes = parseProcessIds(processesText);
|
|
195
|
+
if (processes.length > 0) {
|
|
196
|
+
return cgroupError("SANDBOX_CGROUP_SCOPE_CONFLICT", "The deterministic cgroups v2 scope is still occupied.", {
|
|
197
|
+
scope: name,
|
|
198
|
+
process_count: processes.length,
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
// Removing an empty scope is the only portable way to reset both writable
|
|
202
|
+
// limits and kernel-maintained accounting/event counters. The path is
|
|
203
|
+
// already identity-derived and verified by the caller; never reclaim a
|
|
204
|
+
// scope before the occupancy check above.
|
|
205
|
+
try {
|
|
206
|
+
filesystem.rmdirSync(scopePath);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The empty cgroups v2 scope could not be reconciled.", {
|
|
210
|
+
scope: name,
|
|
211
|
+
reason: error instanceof Error ? error.message.slice(0, 200) : "unknown",
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
filesystem.mkdirSync(scopePath, { mode: 0o755 });
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
if (error.code === "EEXIST") {
|
|
219
|
+
const replacementProcesses = readBounded(path.join(scopePath, "cgroup.procs"), filesystem);
|
|
220
|
+
const replacement = parseProcessIds(replacementProcesses);
|
|
221
|
+
if (replacement.length > 0) {
|
|
222
|
+
return cgroupError("SANDBOX_CGROUP_SCOPE_CONFLICT", "The deterministic cgroups v2 scope is still occupied.", {
|
|
223
|
+
scope: name,
|
|
224
|
+
process_count: replacement.length,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The reconciled cgroups v2 scope could not be recreated.", {
|
|
229
|
+
scope: name,
|
|
230
|
+
reason: error instanceof Error ? error.message.slice(0, 200) : "unknown",
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
return success(null);
|
|
234
|
+
}
|
|
235
|
+
/** Create or resume a deterministic scope; an occupied scope is never adopted. */
|
|
236
|
+
export function createCgroupScope(identity, options = {}) {
|
|
237
|
+
const validIdentity = validateIdentity(identity);
|
|
238
|
+
if (!validIdentity.ok)
|
|
239
|
+
return validIdentity;
|
|
240
|
+
const limits = validateLimits(options.limits ?? {});
|
|
241
|
+
if (!limits.ok)
|
|
242
|
+
return limits;
|
|
243
|
+
const filesystem = options.filesystem ?? nativeFileSystem;
|
|
244
|
+
const root = validateRoot(options.root ?? CGROUPS_V2_ROOT, filesystem);
|
|
245
|
+
if (!root.ok)
|
|
246
|
+
return root;
|
|
247
|
+
const controllerCheck = requiredControllers(root.value, filesystem);
|
|
248
|
+
if (!controllerCheck.ok)
|
|
249
|
+
return controllerCheck;
|
|
250
|
+
const parent = path.join(root.value, "nawabari");
|
|
251
|
+
const name = deriveCgroupScopeName(identity);
|
|
252
|
+
const scopePath = path.join(parent, name);
|
|
253
|
+
if (!scopeWithin(root.value, parent) || !scopeWithin(root.value, scopePath)) {
|
|
254
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The derived cgroups v2 scope escaped its root.", {
|
|
255
|
+
root: root.value,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
try {
|
|
259
|
+
filesystem.mkdirSync(parent, { recursive: false, mode: 0o755 });
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
if (error.code !== "EEXIST") {
|
|
263
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The cgroups v2 scope parent could not be created.", {
|
|
264
|
+
parent,
|
|
265
|
+
reason: error instanceof Error ? error.message.slice(0, 200) : "unknown",
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
const delegated = ensureControllerDelegation(parent, filesystem);
|
|
270
|
+
if (!delegated.ok)
|
|
271
|
+
return delegated;
|
|
272
|
+
let createdNew = false;
|
|
273
|
+
try {
|
|
274
|
+
filesystem.mkdirSync(scopePath, { mode: 0o755 });
|
|
275
|
+
createdNew = true;
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
if (error.code !== "EEXIST") {
|
|
279
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The cgroups v2 scope could not be created.", {
|
|
280
|
+
scope: scopePath,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
const reconciled = reconcileExistingScope(scopePath, name, filesystem);
|
|
284
|
+
if (!reconciled.ok)
|
|
285
|
+
return reconciled;
|
|
286
|
+
createdNew = true;
|
|
287
|
+
}
|
|
288
|
+
const applied = applyCgroupLimits(scopePath, limits.value, filesystem);
|
|
289
|
+
if (!applied.ok) {
|
|
290
|
+
if (createdNew) {
|
|
291
|
+
try {
|
|
292
|
+
filesystem.rmdirSync(scopePath);
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
// Preserve the original setup failure; a later retry can reconcile it.
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return applied;
|
|
299
|
+
}
|
|
300
|
+
const scope = {
|
|
301
|
+
contract_id: CGROUPS_V2_CONTRACT_ID,
|
|
302
|
+
root: root.value,
|
|
303
|
+
parent,
|
|
304
|
+
path: scopePath,
|
|
305
|
+
name,
|
|
306
|
+
identity,
|
|
307
|
+
limits: limits.value,
|
|
308
|
+
};
|
|
309
|
+
scopeFilesystems.set(scope, filesystem);
|
|
310
|
+
return success(scope);
|
|
311
|
+
}
|
|
312
|
+
function applyCgroupLimits(scope, limits, filesystem) {
|
|
313
|
+
const writes = [];
|
|
314
|
+
if (limits.cpu_max_usec !== undefined)
|
|
315
|
+
writes.push(["cpu.max", `${limits.cpu_max_usec} ${limits.cpu_period_usec ?? 100_000}`]);
|
|
316
|
+
if (limits.memory_max_bytes !== undefined)
|
|
317
|
+
writes.push(["memory.max", String(limits.memory_max_bytes)]);
|
|
318
|
+
if (limits.pids_max !== undefined)
|
|
319
|
+
writes.push(["pids.max", String(limits.pids_max)]);
|
|
320
|
+
try {
|
|
321
|
+
for (const [file, value] of writes)
|
|
322
|
+
filesystem.writeFileSync(path.join(scope, file), value);
|
|
323
|
+
return success(null);
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "A cgroups v2 limit could not be applied.", {
|
|
327
|
+
scope,
|
|
328
|
+
reason: error instanceof Error ? error.message.slice(0, 200) : "unknown",
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
function parseProcessIds(text) {
|
|
333
|
+
if (text === null)
|
|
334
|
+
return [];
|
|
335
|
+
return text
|
|
336
|
+
.split(/\r?\n/u)
|
|
337
|
+
.map((entry) => Number(entry.trim()))
|
|
338
|
+
.filter((pid) => Number.isSafeInteger(pid) && pid > 0);
|
|
339
|
+
}
|
|
340
|
+
/** Attach only a positive process id to the exact scope created for this identity. */
|
|
341
|
+
export function attachProcessToCgroup(scope, pid) {
|
|
342
|
+
if (!Number.isSafeInteger(pid) || pid < 1)
|
|
343
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The process id is invalid.", { pid });
|
|
344
|
+
try {
|
|
345
|
+
if (!verifiesScopeIdentity(scope)) {
|
|
346
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The cgroups v2 scope identity could not be verified.", {
|
|
347
|
+
scope: scope.name,
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
filesystemFor(scope).writeFileSync(path.join(scope.path, "cgroup.procs"), String(pid));
|
|
351
|
+
return success(null);
|
|
352
|
+
}
|
|
353
|
+
catch (error) {
|
|
354
|
+
return cgroupError("SANDBOX_CGROUP_SETUP_FAILED", "The protected process could not be attached to cgroups v2.", {
|
|
355
|
+
scope: scope.name,
|
|
356
|
+
pid,
|
|
357
|
+
reason: error instanceof Error ? error.message.slice(0, 200) : "unknown",
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
/** Read bounded counters only; malformed/unavailable kernel files become null evidence. */
|
|
362
|
+
export function readCgroupAccounting(scope) {
|
|
363
|
+
const filesystem = filesystemFor(scope);
|
|
364
|
+
const cpu = readBounded(path.join(scope.path, "cpu.stat"), filesystem);
|
|
365
|
+
const memory = readBounded(path.join(scope.path, "memory.current"), filesystem);
|
|
366
|
+
const memoryPeak = readBounded(path.join(scope.path, "memory.peak"), filesystem);
|
|
367
|
+
const memoryEvents = readBounded(path.join(scope.path, "memory.events"), filesystem);
|
|
368
|
+
const pids = readBounded(path.join(scope.path, "pids.current"), filesystem);
|
|
369
|
+
const pidsEvents = readBounded(path.join(scope.path, "pids.events"), filesystem);
|
|
370
|
+
const cpuThrottled = parseCounter(cpu, "throttled_usec");
|
|
371
|
+
const memoryOomKill = parseCounter(memoryEvents, "oom_kill");
|
|
372
|
+
const memoryMax = parseCounter(memoryEvents, "max");
|
|
373
|
+
const pidsMax = parseCounter(pidsEvents, "max");
|
|
374
|
+
return {
|
|
375
|
+
bounded: true,
|
|
376
|
+
cpu_usage_usec: parseCounter(cpu, "usage_usec"),
|
|
377
|
+
cpu_user_usec: parseCounter(cpu, "user_usec"),
|
|
378
|
+
cpu_system_usec: parseCounter(cpu, "system_usec"),
|
|
379
|
+
cpu_throttled_usec: cpuThrottled,
|
|
380
|
+
memory_current_bytes: parseCounter(memory),
|
|
381
|
+
memory_peak_bytes: parseCounter(memoryPeak),
|
|
382
|
+
pids_current: parseCounter(pids),
|
|
383
|
+
pids_max_events: pidsMax,
|
|
384
|
+
memory_oom_kill_events: memoryOomKill,
|
|
385
|
+
memory_max_events: memoryMax,
|
|
386
|
+
cpu_throttled: cpuThrottled !== null && cpuThrottled > 0,
|
|
387
|
+
memory_limit_exceeded: (memoryOomKill !== null && memoryOomKill > 0) || (memoryMax !== null && memoryMax > 0),
|
|
388
|
+
pids_limit_exceeded: pidsMax !== null && pidsMax > 0,
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
/** Remove only an identity-verified, empty scope. Populated scopes are killed first through cgroup.kill. */
|
|
392
|
+
export function cleanupCgroupScope(scope) {
|
|
393
|
+
if (!verifiesScopeIdentity(scope)) {
|
|
394
|
+
return cleanupError("The cgroups v2 scope identity could not be verified for cleanup.", { scope: scope.name });
|
|
395
|
+
}
|
|
396
|
+
const filesystem = filesystemFor(scope);
|
|
397
|
+
const processes = parseProcessIds(readBounded(path.join(scope.path, "cgroup.procs"), filesystem));
|
|
398
|
+
if (processes.length > 0) {
|
|
399
|
+
try {
|
|
400
|
+
filesystem.writeFileSync(path.join(scope.path, "cgroup.kill"), "1");
|
|
401
|
+
}
|
|
402
|
+
catch (error) {
|
|
403
|
+
return cleanupError("The occupied cgroups v2 scope could not be safely terminated.", {
|
|
404
|
+
scope: scope.name,
|
|
405
|
+
process_count: processes.length,
|
|
406
|
+
reason: error instanceof Error ? error.message.slice(0, 200) : "unknown",
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
if (parseProcessIds(readBounded(path.join(scope.path, "cgroup.procs"), filesystem)).length > 0) {
|
|
410
|
+
return cleanupError("The cgroups v2 scope remained occupied after cleanup.", { scope: scope.name });
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
try {
|
|
414
|
+
filesystem.rmdirSync(scope.path);
|
|
415
|
+
return success({ removed: true });
|
|
416
|
+
}
|
|
417
|
+
catch (error) {
|
|
418
|
+
return cleanupError("The cgroups v2 scope could not be removed.", {
|
|
419
|
+
scope: scope.name,
|
|
420
|
+
reason: error instanceof Error ? error.message.slice(0, 200) : "unknown",
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
export function cgroupLimitEvents(accounting) {
|
|
425
|
+
const events = [];
|
|
426
|
+
if (accounting.cpu_throttled)
|
|
427
|
+
events.push("cpu");
|
|
428
|
+
if (accounting.memory_limit_exceeded)
|
|
429
|
+
events.push("memory");
|
|
430
|
+
if (accounting.pids_limit_exceeded)
|
|
431
|
+
events.push("pids");
|
|
432
|
+
return events;
|
|
433
|
+
}
|
|
434
|
+
//# sourceMappingURL=cgroups-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cgroups-v2.js","sourceRoot":"","sources":["../../src/domain/cgroups-v2.ts"],"names":[],"mappings":"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"}
|
package/dist/domain/doctor.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type DomainResult, type ErrorCode, type JsonObject } from "./errors.js";
|
|
2
|
+
import { type SandboxDoctorReport, type SandboxProbe } from "./sandbox.js";
|
|
2
3
|
export type DoctorCheckStatus = "ok" | "warning" | "error" | "not_configured" | "not_applicable";
|
|
3
4
|
export type DoctorCheck = {
|
|
4
5
|
name: "git" | "repository" | "registry" | "reconciliation" | "runtime";
|
|
@@ -16,5 +17,7 @@ export type DoctorReport = {
|
|
|
16
17
|
ok: boolean;
|
|
17
18
|
checks: DoctorCheck[];
|
|
18
19
|
repository: RepositoryInfo | null;
|
|
20
|
+
/** Runtime protected-execution readiness from the canonical sandbox probe. */
|
|
21
|
+
sandbox: SandboxDoctorReport;
|
|
19
22
|
};
|
|
20
|
-
export declare function runDoctor(cwd?: string): Promise<DomainResult<DoctorReport>>;
|
|
23
|
+
export declare function runDoctor(cwd?: string, sandboxProbe?: SandboxProbe, runtimeVersion?: string): Promise<DomainResult<DoctorReport>>;
|