@monoes/monomindcli 2.16.9 → 2.16.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/commands/cleanup.d.ts +8 -1
- package/dist/src/commands/cleanup.d.ts.map +1 -1
- package/dist/src/commands/cleanup.js +113 -15
- package/dist/src/commands/cleanup.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +3 -0
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/git-guard.d.ts.map +1 -1
- package/dist/src/orgrt/git-guard.js +9 -23
- package/dist/src/orgrt/git-guard.js.map +1 -1
- package/dist/src/orgrt/role-sandbox.d.ts +7 -1
- package/dist/src/orgrt/role-sandbox.d.ts.map +1 -1
- package/dist/src/orgrt/role-sandbox.js +8 -4
- package/dist/src/orgrt/role-sandbox.js.map +1 -1
- package/dist/src/orgrt/sandbox-deny-write.d.ts +43 -12
- package/dist/src/orgrt/sandbox-deny-write.d.ts.map +1 -1
- package/dist/src/orgrt/sandbox-deny-write.js +48 -13
- package/dist/src/orgrt/sandbox-deny-write.js.map +1 -1
- package/dist/src/orgrt/sandbox-stubs.d.ts +154 -0
- package/dist/src/orgrt/sandbox-stubs.d.ts.map +1 -0
- package/dist/src/orgrt/sandbox-stubs.js +457 -0
- package/dist/src/orgrt/sandbox-stubs.js.map +1 -0
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +10 -0
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
* ('read'/'none') or its config + hooks ('commit'), the guard's hooks,
|
|
12
12
|
* local-path remotes, and git/shell/Claude config that would undo the guard
|
|
13
13
|
* (a denied directory holding the cwd or ~/.claude goes in as its existing
|
|
14
|
-
* children, #323
|
|
14
|
+
* children, #323, unless it is the cwd and the runtime holds every stub
|
|
15
|
+
* in it — sandbox-deny-write.ts);
|
|
15
16
|
* - network: every host allowed (`policy.sandbox.allowedDomains`, default
|
|
16
17
|
* ['*']) minus the opt-in `policy.sandbox.deniedDomains`, deterministically,
|
|
17
18
|
* with local binding kept for dev servers and tests. Git remote hosts are
|
|
@@ -160,8 +161,11 @@ export function buildClaudeRestrictions(guard, cfg, ctx, sandboxEnabled) {
|
|
|
160
161
|
if (!sandboxEnabled)
|
|
161
162
|
return { disallowedTools };
|
|
162
163
|
const allowWrite = uniq([ctx.cwd, ctx.orgRoot, home, tmp, ...(cfg?.allowWrite ?? [])]);
|
|
164
|
+
// Stubs first: with all of the cwd's in place, bwrap creates nothing there.
|
|
165
|
+
const missingStubs = (ctx.platform ?? process.platform) === 'linux' ? ctx.holdStubs?.(allowWrite) : undefined;
|
|
163
166
|
// #323: a read-only directory holding the cwd or ~/.claude breaks the SDK's
|
|
164
|
-
// own stub mounts — pass its children instead
|
|
167
|
+
// own stub mounts — pass its children instead, unless it is the cwd and the
|
|
168
|
+
// runtime holds every stub in it (sandbox-deny-write.ts).
|
|
165
169
|
const expanded = expandDenyWrite(uniq([
|
|
166
170
|
guard.dir,
|
|
167
171
|
...(lockedRepo ? gitDirs : gitDirs.flatMap((d) => [join(d, 'config'), join(d, 'hooks')])),
|
|
@@ -169,7 +173,7 @@ export function buildClaudeRestrictions(guard, cfg, ctx, sandboxEnabled) {
|
|
|
169
173
|
...HOME_DENY_WRITE.map((p) => join(home, p)),
|
|
170
174
|
...decisionFilePaths(ctx.orgRoot),
|
|
171
175
|
...roleDenyWrite,
|
|
172
|
-
]), [ctx.cwd, join(home, '.claude')], ctx.platform);
|
|
176
|
+
]), [ctx.cwd, join(home, '.claude')], ctx.platform, missingStubs && { cwd: ctx.cwd, writableRoots: allowWrite, missingStubs });
|
|
173
177
|
const sandbox = {
|
|
174
178
|
enabled: true,
|
|
175
179
|
failIfUnavailable: true,
|
|
@@ -316,7 +320,7 @@ export function resolveRoleGitEnforcement(args) {
|
|
|
316
320
|
? { NODE_USE_ENV_PROXY: '1' }
|
|
317
321
|
: {}),
|
|
318
322
|
},
|
|
319
|
-
claudeRestrictions: buildClaudeRestrictions(guard, cfg, { cwd: args.cwd, orgRoot: args.orgRoot }, sandboxEnabled),
|
|
323
|
+
claudeRestrictions: buildClaudeRestrictions(guard, cfg, { cwd: args.cwd, orgRoot: args.orgRoot, holdStubs: args.holdStubs }, sandboxEnabled),
|
|
320
324
|
};
|
|
321
325
|
}
|
|
322
326
|
const PROVIDER_RUNTIME = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-sandbox.js","sourceRoot":"","sources":["../../../src/orgrt/role-sandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"role-sandbox.js","sourceRoot":"","sources":["../../../src/orgrt/role-sandbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,21 +12,42 @@
|
|
|
12
12
|
* Read-only file system" and the role's Bash call fails. It only worked while
|
|
13
13
|
* another sandboxed process happened to hold the stub.
|
|
14
14
|
*
|
|
15
|
-
* So such a directory is
|
|
15
|
+
* So such a directory is not passed as a deny. It is replaced by its
|
|
16
16
|
* existing children, each read-only (a child that itself contains the cwd or
|
|
17
17
|
* ~/.claude is expanded the same way), and the directory itself is returned
|
|
18
18
|
* as a mount point for `filesystem.allowWrite`: bind-mounted, it cannot be
|
|
19
19
|
* renamed or removed (EBUSY), while bwrap can create the SDK's stubs in it.
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
21
|
+
* The role's cwd itself is the exception once the runtime holds its stubs
|
|
22
|
+
* (sandbox-stubs.ts, held before the restrictions are built): every stub path
|
|
23
|
+
* in it then exists, the SDK binds each one onto itself, and bwrap creates
|
|
24
|
+
* nothing there. The one path the runtime leaves to the SDK inside the cwd is
|
|
25
|
+
* `.git/config.lock`, and the SDK (0.3.226) skips a missing deny path whose
|
|
26
|
+
* nearest denied directory has no writable root below it ("already
|
|
27
|
+
* uncreatable"). So the cwd goes in as a plain deny when it has no other
|
|
28
|
+
* writable root and no other keep-writable path inside it and
|
|
29
|
+
* SandboxStubs.missing() reports nothing in it; any missing stub (a failed
|
|
30
|
+
* hold, a foreign empty stub that may vanish, no runtime stubs at all) falls
|
|
31
|
+
* back to the expansion. A directory ABOVE the cwd is still expanded: the
|
|
32
|
+
* SDK always makes the cwd a writable root, and with one below a denied
|
|
33
|
+
* directory it does create `.git/config.lock` inside it — that bwrap manages
|
|
34
|
+
* this under a read-only parent depends on the order the SDK emits its
|
|
35
|
+
* binds, which nothing here controls. ~/.claude is still expanded too:
|
|
36
|
+
* the SDK binds CLI state there that the runtime leaves to it on purpose
|
|
37
|
+
* (.credentials.json, .config.json, the CLI's own dirs), and bwrap creates
|
|
38
|
+
* those when they are missing (sandbox-stubs-sdk.test.ts).
|
|
39
|
+
*
|
|
40
|
+
* What becomes writable at the OS layer: NEW entries directly inside an
|
|
41
|
+
* expanded directory (a new top-level file in ~/.claude, in the org root when
|
|
42
|
+
* the cwd lies below it, or in the cwd while one of its stubs is missing),
|
|
43
|
+
* and the directory's own mode bits. A locked cwd allows neither. Everything
|
|
44
|
+
* that existed at session start stays read-only — an existing entry is a
|
|
45
|
+
* mount point, so it cannot be rewritten, unlinked, renamed or replaced. The
|
|
46
|
+
* Claude-Code-critical new names (settings, hooks, skills, commands, agents,
|
|
47
|
+
* .mcp.json, .gitconfig, …) are the SDK's own denies, now enforceable because
|
|
48
|
+
* their stubs can be created. The file tools never relied on this layer:
|
|
49
|
+
* their permission rules (`Edit(//dir/**)`) and the PolicyEngine deny lists
|
|
50
|
+
* keep the unexpanded directory.
|
|
30
51
|
*
|
|
31
52
|
* An empty regular file among those children is left out: it is one of
|
|
32
53
|
* those stubs, which the SDK deletes when the sandbox that made it ends. The
|
|
@@ -47,14 +68,24 @@ export interface ExpandedDenyWrite {
|
|
|
47
68
|
* bind mount when it already lies under a writable root. */
|
|
48
69
|
mountPoints: string[];
|
|
49
70
|
}
|
|
71
|
+
/** What lets the role's cwd itself stay a plain deny (see the header). */
|
|
72
|
+
export interface CwdLock {
|
|
73
|
+
/** The role's cwd. */
|
|
74
|
+
cwd: string;
|
|
75
|
+
/** The sandbox's `filesystem.allowWrite` before expansion. */
|
|
76
|
+
writableRoots: string[];
|
|
77
|
+
/** Stub paths the runtime could not put in place (SandboxStubs.missing). */
|
|
78
|
+
missingStubs: string[];
|
|
79
|
+
}
|
|
50
80
|
/**
|
|
51
81
|
* Replaces every deny-write path that equals or contains one of `keepWritable`
|
|
52
82
|
* (the role's cwd, ~/.claude) with its existing children (less the SDK's
|
|
53
83
|
* empty stubs), recursively. A path
|
|
54
84
|
* that cannot be listed (missing, unreadable, not a directory) is kept as-is,
|
|
55
|
-
* so the old — stricter — behaviour is the fallback.
|
|
85
|
+
* so the old — stricter — behaviour is the fallback. With `lock`, the cwd
|
|
86
|
+
* itself stays a plain deny when bwrap has nothing to create in it.
|
|
56
87
|
*/
|
|
57
|
-
export declare function expandDenyWrite(paths: string[], keepWritable: string[], platform?: NodeJS.Platform): ExpandedDenyWrite;
|
|
88
|
+
export declare function expandDenyWrite(paths: string[], keepWritable: string[], platform?: NodeJS.Platform, lock?: CwdLock): ExpandedDenyWrite;
|
|
58
89
|
/** `within()` over real paths, for picking the mount points that lie under a
|
|
59
90
|
* root that is writable anyway (anything else was never writable and must not
|
|
60
91
|
* become so). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-deny-write.d.ts","sourceRoot":"","sources":["../../../src/orgrt/sandbox-deny-write.ts"],"names":[],"mappings":"AACA
|
|
1
|
+
{"version":3,"file":"sandbox-deny-write.d.ts","sourceRoot":"","sources":["../../../src/orgrt/sandbox-deny-write.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AA2BH,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;iEAC6D;IAC7D,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,0EAA0E;AAC1E,MAAM,WAAW,OAAO;IACtB,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,8DAA8D;IAC9D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,4EAA4E;IAC5E,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAaD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,MAAM,EAAE,EACtB,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,IAAI,CAAC,EAAE,OAAO,GACb,iBAAiB,CAuBnB;AAED;;kBAEkB;AAClB,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAGhE"}
|
|
@@ -13,21 +13,42 @@
|
|
|
13
13
|
* Read-only file system" and the role's Bash call fails. It only worked while
|
|
14
14
|
* another sandboxed process happened to hold the stub.
|
|
15
15
|
*
|
|
16
|
-
* So such a directory is
|
|
16
|
+
* So such a directory is not passed as a deny. It is replaced by its
|
|
17
17
|
* existing children, each read-only (a child that itself contains the cwd or
|
|
18
18
|
* ~/.claude is expanded the same way), and the directory itself is returned
|
|
19
19
|
* as a mount point for `filesystem.allowWrite`: bind-mounted, it cannot be
|
|
20
20
|
* renamed or removed (EBUSY), while bwrap can create the SDK's stubs in it.
|
|
21
21
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
22
|
+
* The role's cwd itself is the exception once the runtime holds its stubs
|
|
23
|
+
* (sandbox-stubs.ts, held before the restrictions are built): every stub path
|
|
24
|
+
* in it then exists, the SDK binds each one onto itself, and bwrap creates
|
|
25
|
+
* nothing there. The one path the runtime leaves to the SDK inside the cwd is
|
|
26
|
+
* `.git/config.lock`, and the SDK (0.3.226) skips a missing deny path whose
|
|
27
|
+
* nearest denied directory has no writable root below it ("already
|
|
28
|
+
* uncreatable"). So the cwd goes in as a plain deny when it has no other
|
|
29
|
+
* writable root and no other keep-writable path inside it and
|
|
30
|
+
* SandboxStubs.missing() reports nothing in it; any missing stub (a failed
|
|
31
|
+
* hold, a foreign empty stub that may vanish, no runtime stubs at all) falls
|
|
32
|
+
* back to the expansion. A directory ABOVE the cwd is still expanded: the
|
|
33
|
+
* SDK always makes the cwd a writable root, and with one below a denied
|
|
34
|
+
* directory it does create `.git/config.lock` inside it — that bwrap manages
|
|
35
|
+
* this under a read-only parent depends on the order the SDK emits its
|
|
36
|
+
* binds, which nothing here controls. ~/.claude is still expanded too:
|
|
37
|
+
* the SDK binds CLI state there that the runtime leaves to it on purpose
|
|
38
|
+
* (.credentials.json, .config.json, the CLI's own dirs), and bwrap creates
|
|
39
|
+
* those when they are missing (sandbox-stubs-sdk.test.ts).
|
|
40
|
+
*
|
|
41
|
+
* What becomes writable at the OS layer: NEW entries directly inside an
|
|
42
|
+
* expanded directory (a new top-level file in ~/.claude, in the org root when
|
|
43
|
+
* the cwd lies below it, or in the cwd while one of its stubs is missing),
|
|
44
|
+
* and the directory's own mode bits. A locked cwd allows neither. Everything
|
|
45
|
+
* that existed at session start stays read-only — an existing entry is a
|
|
46
|
+
* mount point, so it cannot be rewritten, unlinked, renamed or replaced. The
|
|
47
|
+
* Claude-Code-critical new names (settings, hooks, skills, commands, agents,
|
|
48
|
+
* .mcp.json, .gitconfig, …) are the SDK's own denies, now enforceable because
|
|
49
|
+
* their stubs can be created. The file tools never relied on this layer:
|
|
50
|
+
* their permission rules (`Edit(//dir/**)`) and the PolicyEngine deny lists
|
|
51
|
+
* keep the unexpanded directory.
|
|
31
52
|
*
|
|
32
53
|
* An empty regular file among those children is left out: it is one of
|
|
33
54
|
* those stubs, which the SDK deletes when the sandbox that made it ends. The
|
|
@@ -63,21 +84,35 @@ const isStub = (p) => {
|
|
|
63
84
|
return true; // already gone
|
|
64
85
|
}
|
|
65
86
|
};
|
|
87
|
+
/** Can `p`, which holds a keep-writable path, go in as a plain deny? Only the
|
|
88
|
+
* cwd itself, with no other keep-writable path and no other writable root
|
|
89
|
+
* inside it, and every stub in it in place. */
|
|
90
|
+
function lockable(p, keep, lock) {
|
|
91
|
+
const rp = real(p);
|
|
92
|
+
if (rp !== real(lock.cwd))
|
|
93
|
+
return false;
|
|
94
|
+
if (keep.some((k) => k !== rp && within(rp, k)))
|
|
95
|
+
return false;
|
|
96
|
+
if (lock.writableRoots.some((r) => real(r) !== rp && within(rp, real(r))))
|
|
97
|
+
return false;
|
|
98
|
+
return !lock.missingStubs.some((s) => within(rp, s) || within(p, s));
|
|
99
|
+
}
|
|
66
100
|
/**
|
|
67
101
|
* Replaces every deny-write path that equals or contains one of `keepWritable`
|
|
68
102
|
* (the role's cwd, ~/.claude) with its existing children (less the SDK's
|
|
69
103
|
* empty stubs), recursively. A path
|
|
70
104
|
* that cannot be listed (missing, unreadable, not a directory) is kept as-is,
|
|
71
|
-
* so the old — stricter — behaviour is the fallback.
|
|
105
|
+
* so the old — stricter — behaviour is the fallback. With `lock`, the cwd
|
|
106
|
+
* itself stays a plain deny when bwrap has nothing to create in it.
|
|
72
107
|
*/
|
|
73
|
-
export function expandDenyWrite(paths, keepWritable, platform = process.platform) {
|
|
108
|
+
export function expandDenyWrite(paths, keepWritable, platform = process.platform, lock) {
|
|
74
109
|
if (platform !== 'linux')
|
|
75
110
|
return { denyWrite: paths, mountPoints: [] };
|
|
76
111
|
const keep = keepWritable.map(real);
|
|
77
112
|
const denyWrite = [];
|
|
78
113
|
const mountPoints = [];
|
|
79
114
|
const visit = (p) => {
|
|
80
|
-
if (!keep.some((k) => within(real(p), k))) {
|
|
115
|
+
if (!keep.some((k) => within(real(p), k)) || (lock && lockable(p, keep, lock))) {
|
|
81
116
|
denyWrite.push(p);
|
|
82
117
|
return;
|
|
83
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-deny-write.js","sourceRoot":"","sources":["../../../src/orgrt/sandbox-deny-write.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD
|
|
1
|
+
{"version":3,"file":"sandbox-deny-write.js","sourceRoot":"","sources":["../../../src/orgrt/sandbox-deny-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mount-point stubs for the SDK sandbox's write-denies, held for the whole run.
|
|
3
|
+
*
|
|
4
|
+
* The Claude Code sandbox (bubblewrap) denies writes to a fixed set of
|
|
5
|
+
* "dangerous" paths: in the role's cwd, in every directory above it that is
|
|
6
|
+
* writable in the sandbox, in the Claude config dir and in $HOME. For one that
|
|
7
|
+
* does not exist it binds /dev/null onto it, so bwrap creates a 0-byte,
|
|
8
|
+
* mode-0444 file there as the mount point (an empty directory for a missing
|
|
9
|
+
* `.claude/`), and the SDK deletes it again when the command ends
|
|
10
|
+
* (sandbox-runtime cleanupBwrapMountPoints). The SDK only coordinates that
|
|
11
|
+
* within one process. Every role is its own CLI process sharing one cwd and
|
|
12
|
+
* one ~/.claude, so role B, wrapping a command while role A's stub exists,
|
|
13
|
+
* takes the stub for a real file and binds it onto itself (`--ro-bind P P`);
|
|
14
|
+
* A's command ends, A deletes it, and B's bwrap dies with "Can't find source
|
|
15
|
+
* path ~/.claude/local" (release runs since 2.16.x: 0–5 per run, each a
|
|
16
|
+
* sandbox-fault).
|
|
17
|
+
*
|
|
18
|
+
* So before a sandboxed role starts, the runtime creates every such path that
|
|
19
|
+
* is missing, the way bwrap would (an empty 0444 file; a plain `.claude/`
|
|
20
|
+
* directory to hold them), and keeps it until the run ends. The SDK then only
|
|
21
|
+
* ever finds an existing path, which it binds read-only and never tracks or
|
|
22
|
+
* deletes, so no process removes a mount source another one is about to use.
|
|
23
|
+
* At the end the runtime removes only what it created itself — still the same
|
|
24
|
+
* inode, still empty; a path that already existed is never touched. Every
|
|
25
|
+
* stub is also written to a per-machine ledger (defaultStubLedger()), so the
|
|
26
|
+
* ones a SIGKILL'd daemon or a reboot leaves behind (an empty read-only file
|
|
27
|
+
* at ~/.claude/commands would break the user's own Claude config for good)
|
|
28
|
+
* are reclaimed by the next runtime under the same rule (reclaim()).
|
|
29
|
+
*
|
|
30
|
+
* The lists are what claude-agent-sdk 0.3.226 binds (read off /proc/self/
|
|
31
|
+
* mountinfo inside its sandbox; sandbox-stubs-sdk.test.ts fails when an SDK
|
|
32
|
+
* upgrade adds one). Left out on purpose: `.git/config.lock` (held, it makes
|
|
33
|
+
* every `git config` write fail), the dirs the CLI writes into itself
|
|
34
|
+
* (projects, shell-snapshots, session-env, plugins, backups), which a file
|
|
35
|
+
* would break, and the state files it writes itself (.claude.json,
|
|
36
|
+
* .config.json, .credentials.json): a CLI starting on an empty .config.json
|
|
37
|
+
* exits with "configuration file … is corrupted". A path whose parent does not
|
|
38
|
+
* exist is skipped.
|
|
39
|
+
*/
|
|
40
|
+
/** Relative to the role's cwd. Also what git-guard.ts hides from `git add`. */
|
|
41
|
+
export declare const CWD_STUBS: string[];
|
|
42
|
+
/** Relative to the Claude config dir ($CLAUDE_CONFIG_DIR, else ~/.claude). */
|
|
43
|
+
export declare const CONFIG_DIR_STUBS: string[];
|
|
44
|
+
/** Relative to where the global config file lives ($CLAUDE_CONFIG_DIR, else $HOME). */
|
|
45
|
+
export declare const GLOBAL_CONFIG_STUBS: string[];
|
|
46
|
+
/** Every stub path the sandbox binds for a role with this cwd and HOME, where
|
|
47
|
+
* `writableRoots` is the sandbox's `filesystem.allowWrite`. A `.claude`
|
|
48
|
+
* directory comes before the files in it. */
|
|
49
|
+
export declare function sandboxStubPaths(ctx: {
|
|
50
|
+
cwd: string;
|
|
51
|
+
home: string;
|
|
52
|
+
writableRoots: string[];
|
|
53
|
+
env?: NodeJS.ProcessEnv;
|
|
54
|
+
}): string[];
|
|
55
|
+
/** The per-machine crash ledger: `MONOMIND_ORGRT_STUBS_DIR`, else
|
|
56
|
+
* ~/.monomind/orgrt-sandbox-stubs (next to orgrt-broker and orgrt-operator). */
|
|
57
|
+
export declare function defaultStubLedger(env?: NodeJS.ProcessEnv): string;
|
|
58
|
+
export interface LedgerEntry {
|
|
59
|
+
path: string;
|
|
60
|
+
ino: number;
|
|
61
|
+
dev: number;
|
|
62
|
+
kind: 'file' | 'dir';
|
|
63
|
+
pid: number;
|
|
64
|
+
/** This pid's namespace and boot, so a later reclaim() can tell a dead pid
|
|
65
|
+
* in our own namespace apart from a live one we simply cannot see from a
|
|
66
|
+
* different namespace. Absent on an entry written before this field
|
|
67
|
+
* existed (see isLegacy). */
|
|
68
|
+
pidNamespace?: string;
|
|
69
|
+
bootId?: string;
|
|
70
|
+
runId: string;
|
|
71
|
+
createdAt: string;
|
|
72
|
+
}
|
|
73
|
+
/** Reads what identifies THIS process's pid namespace and boot, so a ledger
|
|
74
|
+
* entry can later tell a dead pid in our own namespace (safe to reclaim)
|
|
75
|
+
* apart from a live daemon's pid that we simply cannot see (the Claude SDK
|
|
76
|
+
* sandbox runs every role with `bwrap --unshare-pid`: `process.kill(pid, 0)`
|
|
77
|
+
* on a pid outside our namespace always throws ESRCH, alive or not). */
|
|
78
|
+
export interface IdentitySource {
|
|
79
|
+
/** `/proc/self/ns/pid`'s target, e.g. `pid:[4026531836]`; undefined if it
|
|
80
|
+
* cannot be read (older kernel, no /proc). */
|
|
81
|
+
pidNamespace(): string | undefined;
|
|
82
|
+
/** `/proc/sys/kernel/random/boot_id`, stable for one boot and never reused
|
|
83
|
+
* across a reboot — unlike a pid, which is. */
|
|
84
|
+
bootId(): string | undefined;
|
|
85
|
+
}
|
|
86
|
+
/** The stubs this process created, and which runs still need each one. */
|
|
87
|
+
export declare class SandboxStubs {
|
|
88
|
+
private readonly ledger?;
|
|
89
|
+
private readonly identity;
|
|
90
|
+
private readonly stubs;
|
|
91
|
+
private exitHook;
|
|
92
|
+
private reclaimed;
|
|
93
|
+
/** `ledger`: the crash-ledger file (default defaultStubLedger(), read when
|
|
94
|
+
* first needed); null keeps no ledger. `identity`: overridable in tests;
|
|
95
|
+
* defaults to reading this process's real pid namespace and boot id. */
|
|
96
|
+
constructor(ledger?: string | null | undefined, identity?: IdentitySource);
|
|
97
|
+
private get ledgerFile();
|
|
98
|
+
/** Creates each missing path — a `.claude` path as a directory, anything
|
|
99
|
+
* else as an empty 0444 file — and records `owner` on every path this
|
|
100
|
+
* process created. The first call reclaims a dead runtime's stubs first.
|
|
101
|
+
* Returns the paths created now. */
|
|
102
|
+
hold(owner: string, paths: string[]): string[];
|
|
103
|
+
/**
|
|
104
|
+
* The paths among `paths` that bwrap could still have to create as a mount
|
|
105
|
+
* point: neither a stub this process holds nor something that exists for
|
|
106
|
+
* good. An empty file or directory we did not make is what another
|
|
107
|
+
* process's bwrap stub looks like, and it vanishes when that sandbox ends,
|
|
108
|
+
* so it counts as missing. A path whose parent is not a directory is left
|
|
109
|
+
* out: the SDK skips it (a file ancestor, or no `.git` dir), and a missing
|
|
110
|
+
* `.claude` parent is reported itself.
|
|
111
|
+
*/
|
|
112
|
+
missing(paths: string[]): string[];
|
|
113
|
+
/** Drops `owner`; removes the stubs no other run holds. Returns them. */
|
|
114
|
+
release(owner: string): string[];
|
|
115
|
+
releaseAll(): void;
|
|
116
|
+
/**
|
|
117
|
+
* Stubs a runtime that died without cleaning up (SIGKILL, reboot) left in
|
|
118
|
+
* the ledger. Each is removed under the same rule as our own — same inode,
|
|
119
|
+
* still empty — and forgotten either way: a changed path is no longer a
|
|
120
|
+
* stub. While another live runtime has stubs in the ledger, its roles may
|
|
121
|
+
* be binding the dead one's as existing files, so they are adopted instead:
|
|
122
|
+
* held by this process and removed when its first run ends. Entries of live
|
|
123
|
+
* runtimes are kept. Returns the paths removed.
|
|
124
|
+
*/
|
|
125
|
+
reclaim(): string[];
|
|
126
|
+
private entry;
|
|
127
|
+
/** Is `e` an entry this process itself wrote? For a modern entry that also
|
|
128
|
+
* requires our current namespace and boot to match — a matching pid alone
|
|
129
|
+
* can be a different process after a pid wrap, or the same-numbered pid in
|
|
130
|
+
* an unrelated namespace. A legacy entry (no pidNamespace/bootId) falls
|
|
131
|
+
* back to the bare pid check it was written under — and so does every
|
|
132
|
+
* entry when OUR OWN identity could not be read (older kernel, no /proc):
|
|
133
|
+
* with no `ourNs`/`ourBootId` to compare against, a modern entry's real
|
|
134
|
+
* values would always look "different", which is not a safe basis for
|
|
135
|
+
* ownership either. */
|
|
136
|
+
private isOwn;
|
|
137
|
+
/** Is `e` safe to reclaim? A different boot always is (pids and namespace
|
|
138
|
+
* ids are meaningless across a reboot). Same boot but a different pid
|
|
139
|
+
* namespace never is — we cannot tell alive from dead across namespaces
|
|
140
|
+
* (`process.kill` always throws ESRCH there), so it is left alone rather
|
|
141
|
+
* than guessed at. Same boot and same namespace (or a legacy entry) falls
|
|
142
|
+
* back to the bare pid-alive check — and so does every entry when OUR OWN
|
|
143
|
+
* identity could not be read (older kernel, no /proc): without `ourNs`/
|
|
144
|
+
* `ourBootId` to compare against, a modern entry's real boot/namespace
|
|
145
|
+
* ids would always compare unequal, which would misjudge every live
|
|
146
|
+
* entry as a different boot and reclaim it. */
|
|
147
|
+
private isDead;
|
|
148
|
+
private updateLedger;
|
|
149
|
+
/** Files before the directories holding them; each only while unchanged. */
|
|
150
|
+
private remove;
|
|
151
|
+
}
|
|
152
|
+
/** One per process: every org run in it shares the cwd and ~/.claude stubs. */
|
|
153
|
+
export declare const sandboxStubs: SandboxStubs;
|
|
154
|
+
//# sourceMappingURL=sandbox-stubs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandbox-stubs.d.ts","sourceRoot":"","sources":["../../../src/orgrt/sandbox-stubs.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAoCH,+EAA+E;AAC/E,eAAO,MAAM,SAAS,UAYrB,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,gBAAgB,UAqB5B,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,mBAAmB,UAI/B,CAAC;AAKF;;8CAE8C;AAC9C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,MAAM,EAAE,CAoBX;AAWD;iFACiF;AACjF,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAK9E;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ;;;kCAG8B;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AA6CD;;;;yEAIyE;AACzE,MAAM,WAAW,cAAc;IAC7B;mDAC+C;IAC/C,YAAY,IAAI,MAAM,GAAG,SAAS,CAAC;IACnC;oDACgD;IAChD,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC;CAC9B;AAiCD,0EAA0E;AAC1E,qBAAa,YAAY;IASrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAT3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAE1B;;6EAEyE;IACzE,YACmB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,YAAA,EACtB,QAAQ,GAAE,cAAgC,EACzD;IAEJ,OAAO,KAAK,UAAU,GAErB;IAED;;;yCAGqC;IACrC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA+B7C;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAEjC;IAED,yEAAyE;IACzE,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/B;IAED,UAAU,IAAI,IAAI,CAEjB;IAED;;;;;;;;OAQG;IACH,OAAO,IAAI,MAAM,EAAE,CA4BlB;IAED,OAAO,CAAC,KAAK;IAeb;;;;;;;;4BAQwB;IACxB,OAAO,CAAC,KAAK;IAKb;;;;;;;;;oDASgD;IAChD,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,YAAY;IAWpB,4EAA4E;IAC5E,OAAO,CAAC,MAAM;CAiBf;AAiDD,+EAA+E;AAC/E,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|