@ai-dossier/worktree-pool 0.6.1 → 0.7.1

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.
@@ -0,0 +1,416 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.UnsafeKillRootError = exports.DEFAULT_KILL_GRACE_MS = void 0;
37
+ exports.assertWorktreeKillRootSafe = assertWorktreeKillRootSafe;
38
+ exports.findWorktreeProcesses = findWorktreeProcesses;
39
+ exports.selfOrAncestorMatches = selfOrAncestorMatches;
40
+ exports.resolveRootedChild = resolveRootedChild;
41
+ exports.firstSegmentUnder = firstSegmentUnder;
42
+ exports.killProcesses = killProcesses;
43
+ exports.killWorktreeProcesses = killWorktreeProcesses;
44
+ const node_child_process_1 = require("node:child_process");
45
+ const fs = __importStar(require("node:fs"));
46
+ const path = __importStar(require("node:path"));
47
+ const HAS_PROC = process.platform === 'linux' && fs.existsSync('/proc');
48
+ /** Default SIGTERM-to-SIGKILL grace period, shared by every caller (return/gc/reap). */
49
+ exports.DEFAULT_KILL_GRACE_MS = 5000;
50
+ /**
51
+ * Thrown by {@link assertWorktreeKillRootSafe} — a kill root that fails the
52
+ * safety check (imboard-ai/ai-dossier#763). Every current caller derives its
53
+ * target correctly, so this should never fire in practice; it exists so a
54
+ * future call site cannot skip the check by construction.
55
+ */
56
+ class UnsafeKillRootError extends Error {
57
+ constructor(message) {
58
+ super(message);
59
+ this.name = 'UnsafeKillRootError';
60
+ }
61
+ }
62
+ exports.UnsafeKillRootError = UnsafeKillRootError;
63
+ function readCmdline(pid) {
64
+ try {
65
+ const raw = fs.readFileSync(`/proc/${pid}/cmdline`);
66
+ if (raw.length === 0)
67
+ return null;
68
+ const parts = raw
69
+ .toString('utf-8')
70
+ .split('\0')
71
+ .filter((p) => p.length > 0);
72
+ return parts.length > 0 ? parts.join(' ') : null;
73
+ }
74
+ catch {
75
+ return null;
76
+ }
77
+ }
78
+ const DELETED_SUFFIX = ' (deleted)';
79
+ /**
80
+ * A process's cwd — surviving deletion of the directory it points at. This is
81
+ * exactly the `reap` scenario (imboard-ai/ai-dossier#760): `gc` (pre-fix) or a
82
+ * hand-run `git worktree remove` can delete a worktree directory while a
83
+ * process still has it as cwd. Linux then reports the cwd symlink target as
84
+ * `<original path> (deleted)` rather than failing the readlink — strip the
85
+ * marker so the path still matches the worktree it was rooted in.
86
+ */
87
+ function readCwd(pid) {
88
+ try {
89
+ const link = fs.readlinkSync(`/proc/${pid}/cwd`);
90
+ return link.endsWith(DELETED_SUFFIX) ? link.slice(0, -DELETED_SUFFIX.length) : link;
91
+ }
92
+ catch {
93
+ return null;
94
+ }
95
+ }
96
+ /**
97
+ * Approximate process start time from `/proc/<pid>`'s own directory ctime.
98
+ * Not exact (exact requires parsing `/proc/<pid>/stat`'s `starttime` field
99
+ * against `/proc/uptime` and the kernel's clock ticks per second), but
100
+ * adequate for the hour-granularity `--older-than` filtering `reap` does.
101
+ */
102
+ function readStartTimeMs(pid) {
103
+ try {
104
+ return fs.statSync(`/proc/${pid}`).ctimeMs;
105
+ }
106
+ catch {
107
+ return null;
108
+ }
109
+ }
110
+ function listPids() {
111
+ try {
112
+ return fs
113
+ .readdirSync('/proc')
114
+ .filter((name) => /^\d+$/.test(name))
115
+ .map((name) => Number.parseInt(name, 10));
116
+ }
117
+ catch {
118
+ return [];
119
+ }
120
+ }
121
+ function readPpid(pid) {
122
+ try {
123
+ const statusText = fs.readFileSync(`/proc/${pid}/status`, 'utf-8');
124
+ const match = /^PPid:\s*(\d+)/m.exec(statusText);
125
+ return match ? Number.parseInt(match[1], 10) : null;
126
+ }
127
+ catch {
128
+ return null;
129
+ }
130
+ }
131
+ /** This process and every ancestor up the ppid chain — never a kill candidate. */
132
+ function selfAndAncestorPids() {
133
+ const pids = new Set([process.pid]);
134
+ if (!HAS_PROC)
135
+ return pids;
136
+ let current = process.pid;
137
+ for (let i = 0; i < 64; i++) {
138
+ const ppid = readPpid(current);
139
+ if (ppid === null || ppid <= 1 || pids.has(ppid))
140
+ break;
141
+ pids.add(ppid);
142
+ current = ppid;
143
+ }
144
+ return pids;
145
+ }
146
+ /** True when `childAbs` is `rootAbs` itself or strictly inside it. */
147
+ function isUnder(childAbs, rootAbs) {
148
+ const rel = path.relative(rootAbs, childAbs);
149
+ return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
150
+ }
151
+ /**
152
+ * Universal floor for ANY kill/scan root, regardless of caller: never
153
+ * operate on an empty path or a filesystem root (`/`, `C:\`, ...). Applied
154
+ * inside {@link findWorktreeProcesses} itself so every caller gets it,
155
+ * including `reap`'s whole-pool-directory scan.
156
+ */
157
+ function assertNotEmptyOrRoot(rootAbsPath) {
158
+ if (!rootAbsPath || rootAbsPath.trim().length === 0) {
159
+ throw new UnsafeKillRootError('refusing to scan for processes: empty path');
160
+ }
161
+ const resolved = path.resolve(rootAbsPath);
162
+ if (resolved === path.parse(resolved).root) {
163
+ throw new UnsafeKillRootError(`refusing to scan for processes: path resolves to a filesystem root (${resolved})`);
164
+ }
165
+ return resolved;
166
+ }
167
+ /**
168
+ * Extra guard for a kill scoped to one SPECIFIC worktree — `return` and
169
+ * `gc`, never `reap`'s pool-directory-wide scan (imboard-ai/ai-dossier#763).
170
+ * Beyond the universal empty/root check, the target must not be the git
171
+ * root itself and must be strictly INSIDE the pool directory — never the
172
+ * pool directory itself, which would broaden a single-worktree kill to
173
+ * everything the pool manages. Every current caller already derives this
174
+ * path as `toAbs(poolDir, someTrackedId)`, so this should never fire; it
175
+ * exists so a future call site cannot skip it by construction.
176
+ */
177
+ function assertWorktreeKillRootSafe(targetAbsPath, gitRootAbs, poolDirAbs) {
178
+ const resolved = assertNotEmptyOrRoot(targetAbsPath);
179
+ const resolvedGitRoot = path.resolve(gitRootAbs);
180
+ const resolvedPoolDir = path.resolve(poolDirAbs);
181
+ if (resolved === resolvedGitRoot) {
182
+ throw new UnsafeKillRootError(`refusing to kill processes rooted at the git root itself (${resolved})`);
183
+ }
184
+ if (resolved === resolvedPoolDir || !isUnder(resolved, resolvedPoolDir)) {
185
+ throw new UnsafeKillRootError(`refusing to kill processes at ${resolved}: not strictly inside the pool directory (${resolvedPoolDir})`);
186
+ }
187
+ return resolved;
188
+ }
189
+ /**
190
+ * True when `root` appears in `command` at a real path boundary — as the
191
+ * whole string, or followed by a path separator, whitespace, or a quote —
192
+ * never as a bare substring. Pool worktree directory names are
193
+ * `pool-<timestamp>-<pid>` (see `pool-state.ts`'s `POOL_DIR_NAME_PATTERN`),
194
+ * so a same-batch replenish routinely produces siblings that share a long
195
+ * numeric prefix (`pool-1700000000-1234` vs `pool-1700000000-12345`) — an
196
+ * unbounded `String.includes` would treat one worktree's root as a
197
+ * substring of the sibling's cwd/argv and kill a process that is not
198
+ * actually rooted there. `isUnder` already gets this right for cwd
199
+ * comparisons via `path.relative`; this is the same guarantee for the
200
+ * command-line fallback.
201
+ */
202
+ function commandRootedAt(command, root) {
203
+ let from = 0;
204
+ for (;;) {
205
+ const idx = command.indexOf(root, from);
206
+ if (idx === -1)
207
+ return false;
208
+ const after = command[idx + root.length];
209
+ if (after === undefined || after === path.sep || /[\s"'`]/.test(after))
210
+ return true;
211
+ from = idx + 1;
212
+ }
213
+ }
214
+ /**
215
+ * Non-Linux fallback: `ps` gives pid + command only, no reliable cwd. A
216
+ * process is "rooted" here only when the absolute root path appears, at a
217
+ * real path boundary, in its command line.
218
+ */
219
+ function findViaPs(rootAbsPath) {
220
+ let out;
221
+ try {
222
+ out = (0, node_child_process_1.execFileSync)('ps', ['-Ao', 'pid=,command='], { encoding: 'utf-8' });
223
+ }
224
+ catch (err) {
225
+ const msg = err instanceof Error ? err.message : String(err);
226
+ console.error(`Warning: process discovery via 'ps' failed (${msg}) — nothing will be found`);
227
+ return [];
228
+ }
229
+ const self = selfAndAncestorPids();
230
+ const results = [];
231
+ for (const line of out.split('\n')) {
232
+ const trimmed = line.trim();
233
+ if (!trimmed)
234
+ continue;
235
+ const match = /^(\d+)\s+(.*)$/.exec(trimmed);
236
+ if (!match)
237
+ continue;
238
+ const pid = Number.parseInt(match[1], 10);
239
+ if (self.has(pid))
240
+ continue;
241
+ const command = match[2];
242
+ if (commandRootedAt(command, rootAbsPath)) {
243
+ results.push({ pid, cwd: null, command, ageMs: null });
244
+ }
245
+ }
246
+ return results;
247
+ }
248
+ /**
249
+ * Every live process whose cwd or command line is rooted under
250
+ * `rootAbsPath` (a single worktree, or the whole pool directory — callers
251
+ * decide the scope). Never returns this process or any of its ancestors.
252
+ */
253
+ function findWorktreeProcesses(rootAbsPath) {
254
+ const root = assertNotEmptyOrRoot(rootAbsPath);
255
+ if (!HAS_PROC)
256
+ return findViaPs(root);
257
+ const protect = selfAndAncestorPids();
258
+ const results = [];
259
+ for (const pid of listPids()) {
260
+ if (protect.has(pid))
261
+ continue;
262
+ const cwd = readCwd(pid);
263
+ const command = readCmdline(pid);
264
+ const cwdMatches = cwd !== null && isUnder(cwd, root);
265
+ const cmdMatches = !cwdMatches && command !== null && commandRootedAt(command, root);
266
+ if (!cwdMatches && !cmdMatches)
267
+ continue;
268
+ results.push({
269
+ pid,
270
+ cwd,
271
+ command: command ?? '(unknown command)',
272
+ ageMs: (() => {
273
+ const start = readStartTimeMs(pid);
274
+ return start === null ? null : Date.now() - start;
275
+ })(),
276
+ });
277
+ }
278
+ return results;
279
+ }
280
+ /**
281
+ * Pids that would match {@link findWorktreeProcesses}'s rooting test for
282
+ * `rootAbsPath` but are excluded because they are this process or one of
283
+ * its ancestors (imboard-ai/ai-dossier#763). Reported, never killed — a
284
+ * caller can show why fewer processes were killed than a naive scan would
285
+ * suggest (the CLI's own invocation of `return --path <wt>` routinely
286
+ * matches this way: its own command line contains `--path <wt>`).
287
+ */
288
+ function selfOrAncestorMatches(rootAbsPath) {
289
+ const root = assertNotEmptyOrRoot(rootAbsPath);
290
+ const protect = selfAndAncestorPids();
291
+ if (!HAS_PROC) {
292
+ let out;
293
+ try {
294
+ out = (0, node_child_process_1.execFileSync)('ps', ['-Ao', 'pid=,command='], { encoding: 'utf-8' });
295
+ }
296
+ catch {
297
+ return [];
298
+ }
299
+ const hits = [];
300
+ for (const line of out.split('\n')) {
301
+ const trimmed = line.trim();
302
+ if (!trimmed)
303
+ continue;
304
+ const match = /^(\d+)\s+(.*)$/.exec(trimmed);
305
+ if (!match)
306
+ continue;
307
+ const pid = Number.parseInt(match[1], 10);
308
+ if (protect.has(pid) && commandRootedAt(match[2], root))
309
+ hits.push(pid);
310
+ }
311
+ return hits.sort((a, b) => a - b);
312
+ }
313
+ const hits = [];
314
+ for (const pid of protect) {
315
+ const cwd = readCwd(pid);
316
+ const command = readCmdline(pid);
317
+ const cwdMatches = cwd !== null && isUnder(cwd, root);
318
+ const cmdMatches = !cwdMatches && command !== null && commandRootedAt(command, root);
319
+ if (cwdMatches || cmdMatches)
320
+ hits.push(pid);
321
+ }
322
+ return hits.sort((a, b) => a - b);
323
+ }
324
+ /**
325
+ * Given a process discovered by {@link findWorktreeProcesses} against the
326
+ * whole pool directory, the child path (under `poolDirAbs`) it is rooted
327
+ * at — its cwd when known, otherwise a best-effort extraction from its
328
+ * command line. `null` when neither yields a path under `poolDirAbs`.
329
+ */
330
+ function resolveRootedChild(proc, poolDirAbs) {
331
+ if (proc.cwd !== null && isUnder(proc.cwd, poolDirAbs))
332
+ return proc.cwd;
333
+ const idx = proc.command.indexOf(poolDirAbs);
334
+ if (idx === -1)
335
+ return null;
336
+ const rest = proc.command.slice(idx + poolDirAbs.length);
337
+ if (rest.length === 0)
338
+ return poolDirAbs;
339
+ if (!rest.startsWith(path.sep))
340
+ return null;
341
+ const end = rest.search(/[\s"'`]/);
342
+ const segment = end === -1 ? rest : rest.slice(0, end);
343
+ return poolDirAbs + segment;
344
+ }
345
+ /** First path segment of `childAbs` relative to `rootAbs`, or `null` when it is not under it. */
346
+ function firstSegmentUnder(rootAbs, childAbs) {
347
+ const rel = path.relative(rootAbs, childAbs);
348
+ if (rel === '' || rel.startsWith('..') || path.isAbsolute(rel))
349
+ return null;
350
+ const [first] = rel.split(path.sep);
351
+ return first || null;
352
+ }
353
+ function isAlivePid(pid) {
354
+ try {
355
+ process.kill(pid, 0);
356
+ return true;
357
+ }
358
+ catch {
359
+ return false;
360
+ }
361
+ }
362
+ function sleep(ms) {
363
+ return new Promise((resolve) => setTimeout(resolve, ms));
364
+ }
365
+ /**
366
+ * SIGTERM every process in `targets`, wait up to `graceMs` for exit, then
367
+ * SIGKILL survivors. Best-effort and never throws — a stray dev server must
368
+ * not be able to block a `return`, `gc`, or `reap`. ESRCH (already exited
369
+ * between discovery and kill) is not an error.
370
+ */
371
+ async function killProcesses(targets, graceMs = exports.DEFAULT_KILL_GRACE_MS) {
372
+ const killed = [];
373
+ const errors = [];
374
+ const termed = [];
375
+ for (const target of targets) {
376
+ try {
377
+ process.kill(target.pid, 'SIGTERM');
378
+ termed.push(target);
379
+ }
380
+ catch (err) {
381
+ const msg = err instanceof Error ? err.message : String(err);
382
+ if (!/ESRCH/.test(msg))
383
+ errors.push(`SIGTERM ${target.pid}: ${msg}`);
384
+ }
385
+ }
386
+ if (termed.length > 0) {
387
+ const deadline = Date.now() + graceMs;
388
+ while (Date.now() < deadline && termed.some((t) => isAlivePid(t.pid))) {
389
+ await sleep(200);
390
+ }
391
+ }
392
+ for (const target of termed) {
393
+ if (isAlivePid(target.pid)) {
394
+ try {
395
+ process.kill(target.pid, 'SIGKILL');
396
+ killed.push({ pid: target.pid, command: target.command, signal: 'SIGKILL' });
397
+ }
398
+ catch (err) {
399
+ const msg = err instanceof Error ? err.message : String(err);
400
+ if (!/ESRCH/.test(msg))
401
+ errors.push(`SIGKILL ${target.pid}: ${msg}`);
402
+ }
403
+ }
404
+ else {
405
+ killed.push({ pid: target.pid, command: target.command, signal: 'SIGTERM' });
406
+ }
407
+ }
408
+ return { killed, errors };
409
+ }
410
+ /** {@link findWorktreeProcesses} + {@link killProcesses} for a single worktree path. */
411
+ async function killWorktreeProcesses(rootAbsPath, graceMs = exports.DEFAULT_KILL_GRACE_MS) {
412
+ const skippedSelfOrAncestor = selfOrAncestorMatches(rootAbsPath);
413
+ const result = await killProcesses(findWorktreeProcesses(rootAbsPath), graceMs);
414
+ return { ...result, skippedSelfOrAncestor };
415
+ }
416
+ //# sourceMappingURL=process-scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process-scan.js","sourceRoot":"","sources":["../src/process-scan.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -75,7 +75,7 @@ export interface PoolWorktree {
75
75
  * there is an entry to mark, and `unknown` is the fallback for a throw that
76
76
  * escaped the step wrappers.
77
77
  */
78
- export type ReturnStep = 'lookup' | 'fetch' | 'checkout-temp-branch' | 'clean' | 'rename' | 'repair' | 'read-base-commit' | 'warm-commands' | 'commit-state' | 'verify' | 'unknown';
78
+ export type ReturnStep = 'lookup' | 'kill-processes' | 'fetch' | 'checkout-temp-branch' | 'clean' | 'rename' | 'repair' | 'read-base-commit' | 'warm-commands' | 'commit-state' | 'verify' | 'unknown';
79
79
  export interface PoolState {
80
80
  schema_version: '1.0.0';
81
81
  config: PoolConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,SAAS,GACT,MAAM,GACN,UAAU,GACV,WAAW,GACX,YAAY;AACd;;;;;;;;;;GAUG;GACD,QAAQ,CAAC;AAEb,6CAA6C;AAC7C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAE7D,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,EAAE,EAAE,cAAc,CAAC;IACnB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iFAAiF;IACjF,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,OAAO,GACP,sBAAsB,GACtB,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,cAAc,EAAE,UAI5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAE9C,eAAO,MAAM,cAAc,EAAG,OAAgB,CAAC;AAE/C,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,SAAS,GACT,MAAM,GACN,UAAU,GACV,WAAW,GACX,YAAY;AACd;;;;;;;;;;GAUG;GACD,QAAQ,CAAC;AAEb,6CAA6C;AAC7C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAE7D,gEAAgE;AAChE,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,EAAE,EAAE,cAAc,CAAC;IACnB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iFAAiF;IACjF,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAC3B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,gBAAgB,GAChB,OAAO,GACP,sBAAsB,GACtB,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,cAAc,EAAE,UAI5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAE9C,eAAO,MAAM,cAAc,EAAG,OAAgB,CAAC;AAE/C,wBAAgB,UAAU,IAAI,MAAM,CAEnC"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAsHA,gCAEC;AAZY,QAAA,cAAc,GAAe;IACxC,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,EAAE;IACjB,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEW,QAAA,gBAAgB,GAAG,aAAa,CAAC;AAEjC,QAAA,cAAc,GAAG,OAAgB,CAAC;AAE/C,SAAgB,UAAU;IACxB,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAuHA,gCAEC;AAZY,QAAA,cAAc,GAAe;IACxC,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,EAAE;IACjB,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEW,QAAA,gBAAgB,GAAG,aAAa,CAAC;AAEjC,QAAA,cAAc,GAAG,OAAgB,CAAC;AAE/C,SAAgB,UAAU;IACxB,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;AAC7C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-dossier/worktree-pool",
3
- "version": "0.6.1",
3
+ "version": "0.7.1",
4
4
  "description": "Pre-warmed git worktree pool for instant issue setup",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",