@wjarka/cezarion 0.14.2-pr406.627 → 0.14.2-pr406.633
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.
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
export declare function agentTmpDir(dataDir: string, runId: string): string;
|
|
3
3
|
/**
|
|
4
4
|
* The longest a per-run temp directory may be so that tools binding named
|
|
5
|
-
* unix sockets under it still work (#387)
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
5
|
+
* unix sockets under it still work (#387), measured in UTF-8 bytes — the
|
|
6
|
+
* kernel bounds the encoded path, not the JavaScript character count.
|
|
7
|
+
* `sockaddr_un.sun_path` holds 108 bytes on Linux and 104 on macOS, NUL
|
|
8
|
+
* included; the longest name a known tool lays down under TMPDIR is tsx's IPC
|
|
9
|
+
* socket, `<tmpdir>/tsx-<uid>/<pid>.pipe`, ~22 bytes (Chrome's
|
|
10
|
+
* `SingletonSocket` is 16). A 78-byte ceiling leaves ≥25 bytes of headroom on
|
|
11
|
+
* the tighter platform — past anything these tools generate — while keeping
|
|
12
|
+
* ordinary checkouts on their repo-local scratch: only a genuinely deep path,
|
|
13
|
+
* like the 100-character directories #387 reports, moves to the fallback.
|
|
13
14
|
*/
|
|
14
15
|
export declare const MAX_SOCKET_SAFE_DIR_LENGTH = 78;
|
|
15
16
|
/**
|
|
@@ -73,7 +74,8 @@ export declare function removeAgentTmpDir(dataDir: string, runId: string): void;
|
|
|
73
74
|
* name digests the dataDir and is not reversible to a run id (reports the
|
|
74
75
|
* directory names reaped). The pattern is exact — prefix, lowercase hex,
|
|
75
76
|
* fixed length, directories only — and a directory is removed only when
|
|
76
|
-
* THIS dataDir
|
|
77
|
-
* root is
|
|
77
|
+
* its `.cez-owner` marker names THIS dataDir and none of this dataDir's
|
|
78
|
+
* kept runs claims it, so another project's scratch in the shared root is
|
|
79
|
+
* never touched.
|
|
78
80
|
*/
|
|
79
81
|
export declare function sweepAgentTmpDirs(dataDir: string, keepRunIds: Iterable<string>): string[];
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
* run.
|
|
41
41
|
*/
|
|
42
42
|
import { createHash } from 'node:crypto';
|
|
43
|
-
import { existsSync, mkdirSync, readdirSync, realpathSync, rmSync, writeFileSync } from 'node:fs';
|
|
43
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, realpathSync, rmSync, writeFileSync } from 'node:fs';
|
|
44
44
|
import { tmpdir } from 'node:os';
|
|
45
45
|
import { basename, join } from 'node:path';
|
|
46
46
|
/** Run ids are uuids; anything else must never reach a recursive `rmSync`.
|
|
@@ -63,14 +63,15 @@ function agentTmpRoot(dataDir) {
|
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* The longest a per-run temp directory may be so that tools binding named
|
|
66
|
-
* unix sockets under it still work (#387)
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
66
|
+
* unix sockets under it still work (#387), measured in UTF-8 bytes — the
|
|
67
|
+
* kernel bounds the encoded path, not the JavaScript character count.
|
|
68
|
+
* `sockaddr_un.sun_path` holds 108 bytes on Linux and 104 on macOS, NUL
|
|
69
|
+
* included; the longest name a known tool lays down under TMPDIR is tsx's IPC
|
|
70
|
+
* socket, `<tmpdir>/tsx-<uid>/<pid>.pipe`, ~22 bytes (Chrome's
|
|
71
|
+
* `SingletonSocket` is 16). A 78-byte ceiling leaves ≥25 bytes of headroom on
|
|
72
|
+
* the tighter platform — past anything these tools generate — while keeping
|
|
73
|
+
* ordinary checkouts on their repo-local scratch: only a genuinely deep path,
|
|
74
|
+
* like the 100-character directories #387 reports, moves to the fallback.
|
|
74
75
|
*/
|
|
75
76
|
export const MAX_SOCKET_SAFE_DIR_LENGTH = 78;
|
|
76
77
|
/** The OS temp root, symlink-resolved: `bind(2)` bounds the path the kernel
|
|
@@ -86,11 +87,50 @@ function osTempRoot() {
|
|
|
86
87
|
}
|
|
87
88
|
const FALLBACK_PREFIX = 'cez-agent-';
|
|
88
89
|
const FALLBACK_NAME_LENGTH = 12;
|
|
90
|
+
/** The marker file inside a fallback directory naming the dataDir that minted
|
|
91
|
+
* it. The directory name digests `dataDir:runId` and is not reversible, so
|
|
92
|
+
* without this marker a sweep could not tell its own stale directories from
|
|
93
|
+
* another project's live ones in the shared root — and would delete them. */
|
|
94
|
+
const OWNER_FILE = '.cez-owner';
|
|
95
|
+
function dataDirOwner(dataDir) {
|
|
96
|
+
return createHash('sha256').update(`cez-agent-owner:${dataDir}`).digest('hex').slice(0, 16);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Write the ownership marker. `'wx'` never follows an existing name: an agent
|
|
100
|
+
* that replaced a previous marker with a symlink must not turn this rewrite
|
|
101
|
+
* into an arbitrary-file write. An existing marker is verified by content —
|
|
102
|
+
* a mismatch means the directory's ownership is no longer what the digest
|
|
103
|
+
* name promises, and the spawn refuses rather than guess.
|
|
104
|
+
*/
|
|
105
|
+
function writeOwnerMarker(dir, dataDir) {
|
|
106
|
+
const marker = join(dir, OWNER_FILE);
|
|
107
|
+
const expected = dataDirOwner(dataDir);
|
|
108
|
+
try {
|
|
109
|
+
writeFileSync(marker, expected, { encoding: 'utf8', flag: 'wx' });
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
if (err.code !== 'EEXIST')
|
|
113
|
+
throw err;
|
|
114
|
+
let actual = '';
|
|
115
|
+
try {
|
|
116
|
+
actual = readFileSync(marker, 'utf8').trim();
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// unreadable marker (symlink to nowhere, wrong type): verify below.
|
|
120
|
+
}
|
|
121
|
+
if (actual !== expected) {
|
|
122
|
+
throw new AgentTempDirError(dir, new Error('ownership marker was replaced — remove the directory to re-mint it'));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
89
126
|
/**
|
|
90
127
|
* Where the fallback lives for this dataDir+run pair. The name digests the
|
|
91
128
|
* dataDir in, because the OS temp root is SHARED: a name derived from the run
|
|
92
|
-
* id alone would let one repo's reap
|
|
93
|
-
*
|
|
129
|
+
* id alone would let one repo's reap delete another repo's live scratch when
|
|
130
|
+
* two run ids happen to share their leading characters. The name alone cannot
|
|
131
|
+
* make the sweep safe — a digest is not reversible, so a sweep could not tell
|
|
132
|
+
* its own stale directories from another project's live ones — which is why
|
|
133
|
+
* every fallback directory also carries the `.cez-owner` marker.
|
|
94
134
|
*/
|
|
95
135
|
function fallbackTmpDir(dataDir, runId) {
|
|
96
136
|
const digest = createHash('sha256').update(`${dataDir}:${runId}`).digest('hex');
|
|
@@ -104,14 +144,19 @@ function fallbackTmpDir(dataDir, runId) {
|
|
|
104
144
|
*/
|
|
105
145
|
export function resolveAgentTmpDir(dataDir, runId) {
|
|
106
146
|
const local = agentTmpDir(dataDir, runId);
|
|
107
|
-
if (local
|
|
147
|
+
if (Buffer.byteLength(local, 'utf8') <= MAX_SOCKET_SAFE_DIR_LENGTH)
|
|
108
148
|
return local;
|
|
109
149
|
const fallback = fallbackTmpDir(dataDir, runId);
|
|
110
|
-
if (fallback
|
|
150
|
+
if (Buffer.byteLength(fallback, 'utf8') <= MAX_SOCKET_SAFE_DIR_LENGTH)
|
|
111
151
|
return fallback;
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
|
|
152
|
+
// Nothing fits — a host TMPDIR so long that even the OS-root candidate
|
|
153
|
+
// crosses the cap. Minting either would hand the agent a temp directory
|
|
154
|
+
// that cannot serve unix sockets: the silent failure #387 is about. Fail
|
|
155
|
+
// the spawn with the named error instead; the remedy names the escape.
|
|
156
|
+
throw new AgentTempDirError(Buffer.byteLength(fallback) < Buffer.byteLength(local) ? fallback : local, new Error(`no socket-safe temp directory exists — repo-local path is `
|
|
157
|
+
+ `${Buffer.byteLength(local)} bytes and the OS temp root candidate is `
|
|
158
|
+
+ `${Buffer.byteLength(fallback)} bytes, both past the `
|
|
159
|
+
+ `${MAX_SOCKET_SAFE_DIR_LENGTH}-byte unix socket budget`));
|
|
115
160
|
}
|
|
116
161
|
/** `errno` → the phrasing a human recognises from their shell. */
|
|
117
162
|
const REASONS = {
|
|
@@ -197,6 +242,11 @@ export function agentTmpEnv(dataDir, runId, env = process.env) {
|
|
|
197
242
|
const dir = resolveAgentTmpDir(dataDir, runId);
|
|
198
243
|
try {
|
|
199
244
|
mkdirSync(dir, dir === local ? { recursive: true } : { recursive: true, mode: 0o700 });
|
|
245
|
+
// In the shared OS root the directory carries its ownership marker, so a
|
|
246
|
+
// startup sweep from another project can tell it apart from stale
|
|
247
|
+
// scratch (the sweep skips anything whose marker is missing or foreign).
|
|
248
|
+
if (dir !== local)
|
|
249
|
+
writeOwnerMarker(dir, dataDir);
|
|
200
250
|
}
|
|
201
251
|
catch (err) {
|
|
202
252
|
throw new AgentTempDirError(dir, err);
|
|
@@ -236,8 +286,9 @@ export function removeAgentTmpDir(dataDir, runId) {
|
|
|
236
286
|
* name digests the dataDir and is not reversible to a run id (reports the
|
|
237
287
|
* directory names reaped). The pattern is exact — prefix, lowercase hex,
|
|
238
288
|
* fixed length, directories only — and a directory is removed only when
|
|
239
|
-
* THIS dataDir
|
|
240
|
-
* root is
|
|
289
|
+
* its `.cez-owner` marker names THIS dataDir and none of this dataDir's
|
|
290
|
+
* kept runs claims it, so another project's scratch in the shared root is
|
|
291
|
+
* never touched.
|
|
241
292
|
*/
|
|
242
293
|
export function sweepAgentTmpDirs(dataDir, keepRunIds) {
|
|
243
294
|
const keep = new Set(keepRunIds);
|
|
@@ -266,8 +317,12 @@ export function sweepAgentTmpDirs(dataDir, keepRunIds) {
|
|
|
266
317
|
}
|
|
267
318
|
}
|
|
268
319
|
// The #387 fallback location, in the shared OS temp root. Kept narrow on
|
|
269
|
-
// purpose: exact prefix, 12 lowercase-hex name, directories only, and
|
|
270
|
-
//
|
|
320
|
+
// purpose: exact prefix, 12 lowercase-hex name, directories only, and
|
|
321
|
+
// ownership — a directory is removed only when its `.cez-owner` marker
|
|
322
|
+
// names THIS dataDir (a marker that is missing or foreign is another
|
|
323
|
+
// project's, or unknown, and is never ours to remove) and none of this
|
|
324
|
+
// dataDir's kept runs claims it.
|
|
325
|
+
const owner = dataDirOwner(dataDir);
|
|
271
326
|
const claimed = new Set([...keep].filter(safeRunId).map((id) => basename(fallbackTmpDir(dataDir, id))));
|
|
272
327
|
const osRoot = osTempRoot();
|
|
273
328
|
let fallbackEntries;
|
|
@@ -282,6 +337,15 @@ export function sweepAgentTmpDirs(dataDir, keepRunIds) {
|
|
|
282
337
|
continue;
|
|
283
338
|
if (!/^[0-9a-f]{12}$/.test(entry.name.slice(FALLBACK_PREFIX.length)))
|
|
284
339
|
continue;
|
|
340
|
+
let entryOwner;
|
|
341
|
+
try {
|
|
342
|
+
entryOwner = readFileSync(join(osRoot, entry.name, OWNER_FILE), 'utf8').trim();
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
continue; // no readable marker: unknown ownership is never ours to remove.
|
|
346
|
+
}
|
|
347
|
+
if (entryOwner !== owner)
|
|
348
|
+
continue;
|
|
285
349
|
if (claimed.has(entry.name))
|
|
286
350
|
continue;
|
|
287
351
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-tmpdir.js","sourceRoot":"","sources":["../../src/runs/agent-tmpdir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-tmpdir.js","sourceRoot":"","sources":["../../src/runs/agent-tmpdir.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wjarka/cezarion",
|
|
3
|
-
"version": "0.14.2-pr406.
|
|
3
|
+
"version": "0.14.2-pr406.633",
|
|
4
4
|
"description": "Local cockpit for running and tracking AI agent tasks in your repo. Uses your logged-in `claude` CLI and `gh` — zero config, zero database.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"zod": "^4.4.3"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@open-mercato/cezar-api-client": "0.14.2-pr406.
|
|
54
|
-
"@open-mercato/cezar-contract": "0.14.2-pr406.
|
|
53
|
+
"@open-mercato/cezar-api-client": "0.14.2-pr406.633",
|
|
54
|
+
"@open-mercato/cezar-contract": "0.14.2-pr406.633",
|
|
55
55
|
"@types/node": "^20.14.0",
|
|
56
56
|
"@types/ws": "^8.18.1",
|
|
57
57
|
"esbuild": "^0.28.1",
|