steroids-cli 0.8.21 → 0.8.23
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/commands/llm.d.ts.map +1 -1
- package/dist/commands/llm.js +4 -0
- package/dist/commands/llm.js.map +1 -1
- package/dist/commands/loop-phases.d.ts +1 -1
- package/dist/commands/loop-phases.d.ts.map +1 -1
- package/dist/commands/loop-phases.js +3 -3
- package/dist/commands/loop-phases.js.map +1 -1
- package/dist/commands/runners.js +4 -0
- package/dist/commands/runners.js.map +1 -1
- package/dist/commands/tasks.d.ts.map +1 -1
- package/dist/commands/tasks.js +86 -33
- package/dist/commands/tasks.js.map +1 -1
- package/dist/database/queries.d.ts +14 -0
- package/dist/database/queries.d.ts.map +1 -1
- package/dist/database/queries.js +46 -0
- package/dist/database/queries.js.map +1 -1
- package/dist/database/schema.d.ts +2 -2
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/schema.js +30 -0
- package/dist/database/schema.js.map +1 -1
- package/dist/orchestrator/task-selector.d.ts +7 -2
- package/dist/orchestrator/task-selector.d.ts.map +1 -1
- package/dist/orchestrator/task-selector.js +91 -14
- package/dist/orchestrator/task-selector.js.map +1 -1
- package/dist/parallel/clone.d.ts +41 -0
- package/dist/parallel/clone.d.ts.map +1 -0
- package/dist/parallel/clone.js +176 -0
- package/dist/parallel/clone.js.map +1 -0
- package/dist/parallel/clone.test.d.ts +2 -0
- package/dist/parallel/clone.test.d.ts.map +1 -0
- package/dist/parallel/clone.test.js +252 -0
- package/dist/parallel/clone.test.js.map +1 -0
- package/dist/parallel/merge-conflict.d.ts +22 -0
- package/dist/parallel/merge-conflict.d.ts.map +1 -0
- package/dist/parallel/merge-conflict.js +227 -0
- package/dist/parallel/merge-conflict.js.map +1 -0
- package/dist/parallel/merge-errors.d.ts +10 -0
- package/dist/parallel/merge-errors.d.ts.map +1 -0
- package/dist/parallel/merge-errors.js +16 -0
- package/dist/parallel/merge-errors.js.map +1 -0
- package/dist/parallel/merge-git.d.ts +25 -0
- package/dist/parallel/merge-git.d.ts.map +1 -0
- package/dist/parallel/merge-git.js +134 -0
- package/dist/parallel/merge-git.js.map +1 -0
- package/dist/parallel/merge-lock.d.ts +26 -0
- package/dist/parallel/merge-lock.d.ts.map +1 -0
- package/dist/parallel/merge-lock.js +58 -0
- package/dist/parallel/merge-lock.js.map +1 -0
- package/dist/parallel/merge-progress.d.ts +20 -0
- package/dist/parallel/merge-progress.d.ts.map +1 -0
- package/dist/parallel/merge-progress.js +36 -0
- package/dist/parallel/merge-progress.js.map +1 -0
- package/dist/parallel/merge.d.ts +39 -0
- package/dist/parallel/merge.d.ts.map +1 -0
- package/dist/parallel/merge.js +231 -0
- package/dist/parallel/merge.js.map +1 -0
- package/dist/parallel/merge.test.d.ts +5 -0
- package/dist/parallel/merge.test.d.ts.map +1 -0
- package/dist/parallel/merge.test.js +322 -0
- package/dist/parallel/merge.test.js.map +1 -0
- package/dist/parallel/scheduler.d.ts +43 -0
- package/dist/parallel/scheduler.d.ts.map +1 -0
- package/dist/parallel/scheduler.js +281 -0
- package/dist/parallel/scheduler.js.map +1 -0
- package/dist/runners/daemon.d.ts +11 -1
- package/dist/runners/daemon.d.ts.map +1 -1
- package/dist/runners/daemon.js +18 -4
- package/dist/runners/daemon.js.map +1 -1
- package/dist/runners/global-db.d.ts.map +1 -1
- package/dist/runners/global-db.js +42 -1
- package/dist/runners/global-db.js.map +1 -1
- package/dist/runners/orchestrator-loop.d.ts +3 -0
- package/dist/runners/orchestrator-loop.d.ts.map +1 -1
- package/dist/runners/orchestrator-loop.js +19 -9
- package/dist/runners/orchestrator-loop.js.map +1 -1
- package/dist/runners/wakeup.d.ts.map +1 -1
- package/dist/runners/wakeup.js +2 -1
- package/dist/runners/wakeup.js.map +1 -1
- package/migrations/011_add_merge_locks_and_progress.sql +39 -0
- package/migrations/manifest.json +9 -1
- package/package.json +1 -1
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.releaseSectionLock = exports.acquireSectionLock = exports.isSectionLocked = exports.isTaskLocked = void 0;
|
|
8
|
+
exports.normalizeSectionFilters = normalizeSectionFilters;
|
|
9
|
+
exports.hasPendingOrInProgressWork = hasPendingOrInProgressWork;
|
|
8
10
|
exports.selectNextTask = selectNextTask;
|
|
9
11
|
exports.selectTaskBatch = selectTaskBatch;
|
|
10
12
|
exports.markTaskInProgress = markTaskInProgress;
|
|
@@ -23,6 +25,20 @@ Object.defineProperty(exports, "acquireSectionLock", { enumerable: true, get: fu
|
|
|
23
25
|
Object.defineProperty(exports, "releaseSectionLock", { enumerable: true, get: function () { return section_lock_js_1.releaseSectionLock; } });
|
|
24
26
|
Object.defineProperty(exports, "isSectionLocked", { enumerable: true, get: function () { return section_lock_js_1.isSectionLocked; } });
|
|
25
27
|
const queries_js_2 = require("../locking/queries.js");
|
|
28
|
+
function normalizeSectionFilters(sectionId, sectionIds) {
|
|
29
|
+
if (sectionIds && sectionIds.length > 0) {
|
|
30
|
+
return [...sectionIds];
|
|
31
|
+
}
|
|
32
|
+
return sectionId ? [sectionId] : undefined;
|
|
33
|
+
}
|
|
34
|
+
function hasPendingOrInProgressWork(db, sectionId) {
|
|
35
|
+
const row = db
|
|
36
|
+
.prepare(`SELECT COUNT(*) as count FROM tasks
|
|
37
|
+
WHERE section_id = ?
|
|
38
|
+
AND status IN ('pending', 'in_progress', 'review')`)
|
|
39
|
+
.get(sectionId);
|
|
40
|
+
return row.count > 0;
|
|
41
|
+
}
|
|
26
42
|
/**
|
|
27
43
|
* Select the next task to work on
|
|
28
44
|
*
|
|
@@ -35,8 +51,28 @@ const queries_js_2 = require("../locking/queries.js");
|
|
|
35
51
|
* - Section position (lower first)
|
|
36
52
|
* - Creation time (older first)
|
|
37
53
|
*/
|
|
38
|
-
function selectNextTask(db,
|
|
39
|
-
const
|
|
54
|
+
function selectNextTask(db, sectionIdOrIds) {
|
|
55
|
+
const sectionIds = normalizeSectionFilters(typeof sectionIdOrIds === 'string' ? sectionIdOrIds : undefined, Array.isArray(sectionIdOrIds) ? sectionIdOrIds : undefined);
|
|
56
|
+
if (sectionIds) {
|
|
57
|
+
for (const sectionId of sectionIds) {
|
|
58
|
+
const result = (0, queries_js_1.findNextTask)(db, sectionId);
|
|
59
|
+
if (result.task && result.action !== 'idle') {
|
|
60
|
+
const selectedTask = {
|
|
61
|
+
task: result.task,
|
|
62
|
+
action: result.action,
|
|
63
|
+
};
|
|
64
|
+
if (result.action === 'resume' && result.task.rejection_count > 0) {
|
|
65
|
+
selectedTask.rejectionNotes = (0, queries_js_1.getLastRejectionNotes)(db, result.task.id) ?? undefined;
|
|
66
|
+
}
|
|
67
|
+
return selectedTask;
|
|
68
|
+
}
|
|
69
|
+
if (hasPendingOrInProgressWork(db, sectionId)) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const result = (0, queries_js_1.findNextTask)(db);
|
|
40
76
|
if (!result.task || result.action === 'idle') {
|
|
41
77
|
return null;
|
|
42
78
|
}
|
|
@@ -104,9 +140,17 @@ function markTaskInProgress(db, taskId) {
|
|
|
104
140
|
/**
|
|
105
141
|
* Check if all tasks are completed
|
|
106
142
|
*/
|
|
107
|
-
function areAllTasksComplete(db,
|
|
108
|
-
const
|
|
109
|
-
|
|
143
|
+
function areAllTasksComplete(db, sectionIdOrIds) {
|
|
144
|
+
const sectionIds = normalizeSectionFilters(typeof sectionIdOrIds === 'string' ? sectionIdOrIds : undefined, Array.isArray(sectionIdOrIds) ? sectionIdOrIds : undefined);
|
|
145
|
+
if (!sectionIds) {
|
|
146
|
+
const result = (0, queries_js_1.findNextTask)(db);
|
|
147
|
+
return result.action === 'idle';
|
|
148
|
+
}
|
|
149
|
+
const result = selectNextTask(db, sectionIds);
|
|
150
|
+
if (result) {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
return sectionIds.every((id) => !hasPendingOrInProgressWork(db, id));
|
|
110
154
|
}
|
|
111
155
|
/**
|
|
112
156
|
* Count tasks by status
|
|
@@ -147,10 +191,11 @@ const DEFAULT_POLL_INTERVAL_MS = 5 * 1000; // 5 seconds
|
|
|
147
191
|
*/
|
|
148
192
|
function selectNextTaskWithLock(db, options) {
|
|
149
193
|
const { runnerId, timeoutMinutes = DEFAULT_TIMEOUT_MINUTES, } = options;
|
|
194
|
+
const sectionIds = normalizeSectionFilters(options.sectionId, options.sectionIds);
|
|
150
195
|
// Get all currently locked task IDs
|
|
151
196
|
const lockedTaskIds = new Set((0, queries_js_2.listTaskLocks)(db).map(lock => lock.task_id));
|
|
152
197
|
// Find next available task that is not locked
|
|
153
|
-
const candidates =
|
|
198
|
+
const candidates = findNextTaskSkippingLockedForSections(db, lockedTaskIds, runnerId, sectionIds);
|
|
154
199
|
if (!candidates) {
|
|
155
200
|
return null;
|
|
156
201
|
}
|
|
@@ -230,6 +275,21 @@ function findNextTaskSkippingLocked(db, lockedTaskIds, runnerId, sectionId) {
|
|
|
230
275
|
}
|
|
231
276
|
return null;
|
|
232
277
|
}
|
|
278
|
+
function findNextTaskSkippingLockedForSections(db, lockedTaskIds, runnerId, sectionIds) {
|
|
279
|
+
if (!sectionIds) {
|
|
280
|
+
return findNextTaskSkippingLocked(db, lockedTaskIds, runnerId, undefined);
|
|
281
|
+
}
|
|
282
|
+
for (const sectionId of sectionIds) {
|
|
283
|
+
const candidates = findNextTaskSkippingLocked(db, lockedTaskIds, runnerId, sectionId);
|
|
284
|
+
if (candidates) {
|
|
285
|
+
return candidates;
|
|
286
|
+
}
|
|
287
|
+
if (hasPendingOrInProgressWork(db, sectionId)) {
|
|
288
|
+
return null;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
233
293
|
/**
|
|
234
294
|
* Check if a task is locked by the current runner
|
|
235
295
|
*/
|
|
@@ -244,15 +304,24 @@ function isLockedByUs(db, taskId, runnerId) {
|
|
|
244
304
|
*/
|
|
245
305
|
async function selectNextTaskWithWait(db, options) {
|
|
246
306
|
const { noWait = false, waitTimeoutMs = DEFAULT_WAIT_TIMEOUT_MS, pollIntervalMs = DEFAULT_POLL_INTERVAL_MS, } = options;
|
|
307
|
+
const sectionIds = normalizeSectionFilters(options.sectionId, options.sectionIds);
|
|
247
308
|
// First try without waiting
|
|
248
309
|
const result = selectNextTaskWithLock(db, options);
|
|
249
310
|
if (result) {
|
|
250
311
|
return result;
|
|
251
312
|
}
|
|
252
313
|
// Check if there are any tasks at all
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
314
|
+
if (sectionIds) {
|
|
315
|
+
const allSectionsIdle = sectionIds.every((sectionId) => !hasPendingOrInProgressWork(db, sectionId));
|
|
316
|
+
if (allSectionsIdle) {
|
|
317
|
+
return null; // Section-scoped work completed
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
const counts = getTaskCounts(db);
|
|
322
|
+
if (counts.pending === 0 && counts.in_progress === 0 && counts.review === 0) {
|
|
323
|
+
return null; // All tasks completed
|
|
324
|
+
}
|
|
256
325
|
}
|
|
257
326
|
// If noWait, return null immediately
|
|
258
327
|
if (noWait) {
|
|
@@ -267,11 +336,19 @@ async function selectNextTaskWithWait(db, options) {
|
|
|
267
336
|
return nextResult;
|
|
268
337
|
}
|
|
269
338
|
// Check if all remaining tasks are locked
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
339
|
+
if (sectionIds) {
|
|
340
|
+
const allSectionsIdle = sectionIds.every((sectionId) => !hasPendingOrInProgressWork(db, sectionId));
|
|
341
|
+
if (allSectionsIdle) {
|
|
342
|
+
return null; // Section-scoped work completed while waiting
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
const currentCounts = getTaskCounts(db);
|
|
347
|
+
if (currentCounts.pending === 0 &&
|
|
348
|
+
currentCounts.in_progress === 0 &&
|
|
349
|
+
currentCounts.review === 0) {
|
|
350
|
+
return null; // All tasks completed while waiting
|
|
351
|
+
}
|
|
275
352
|
}
|
|
276
353
|
}
|
|
277
354
|
// Timeout reached
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-selector.js","sourceRoot":"","sources":["../../src/orchestrator/task-selector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task-selector.js","sourceRoot":"","sources":["../../src/orchestrator/task-selector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace clone manager for parallel execution.
|
|
3
|
+
*/
|
|
4
|
+
export interface WorkspaceCloneOptions {
|
|
5
|
+
projectPath: string;
|
|
6
|
+
workstreamId: string;
|
|
7
|
+
branchName: string;
|
|
8
|
+
workspaceRoot?: string;
|
|
9
|
+
force?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface WorkspaceCloneResult {
|
|
12
|
+
projectPath: string;
|
|
13
|
+
workspaceRoot: string;
|
|
14
|
+
workspacePath: string;
|
|
15
|
+
branchName: string;
|
|
16
|
+
projectHash: string;
|
|
17
|
+
usedLocalClone: boolean;
|
|
18
|
+
steroidsSymlinkPath: string;
|
|
19
|
+
}
|
|
20
|
+
export declare class WorkspaceCloneError extends Error {
|
|
21
|
+
cause?: unknown | undefined;
|
|
22
|
+
constructor(message: string, cause?: unknown | undefined);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolve the project hash used for workspace grouping.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getProjectHash(projectPath: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* Default root for parallel workspaces: ~/.steroids/workspaces
|
|
30
|
+
*/
|
|
31
|
+
export declare function getDefaultWorkspaceRoot(): string;
|
|
32
|
+
export declare function getWorkspacePath(projectPath: string, workstreamId: string, workspaceRoot?: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Determine whether two paths are on the same filesystem by comparing fs identifiers.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isSameFileSystem(leftPath: string, rightPath: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Create an isolated workspace clone for one parallel workstream.
|
|
39
|
+
*/
|
|
40
|
+
export declare function createWorkspaceClone(options: WorkspaceCloneOptions): WorkspaceCloneResult;
|
|
41
|
+
//# sourceMappingURL=clone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../src/parallel/clone.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoBH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IACR,KAAK,CAAC,EAAE,OAAO;gBAAvC,OAAO,EAAE,MAAM,EAAS,KAAK,CAAC,EAAE,OAAO,YAAA;CAQpD;AAwCD;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAK1D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,aAAa,GAAE,MAAkC,GAChD,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAK7E;AAkDD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CAiEzF"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Workspace clone manager for parallel execution.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.WorkspaceCloneError = void 0;
|
|
7
|
+
exports.getProjectHash = getProjectHash;
|
|
8
|
+
exports.getDefaultWorkspaceRoot = getDefaultWorkspaceRoot;
|
|
9
|
+
exports.getWorkspacePath = getWorkspacePath;
|
|
10
|
+
exports.isSameFileSystem = isSameFileSystem;
|
|
11
|
+
exports.createWorkspaceClone = createWorkspaceClone;
|
|
12
|
+
const node_crypto_1 = require("node:crypto");
|
|
13
|
+
const node_child_process_1 = require("node:child_process");
|
|
14
|
+
const node_fs_1 = require("node:fs");
|
|
15
|
+
const node_os_1 = require("node:os");
|
|
16
|
+
const node_path_1 = require("node:path");
|
|
17
|
+
class WorkspaceCloneError extends Error {
|
|
18
|
+
cause;
|
|
19
|
+
constructor(message, cause) {
|
|
20
|
+
super(message);
|
|
21
|
+
this.cause = cause;
|
|
22
|
+
this.name = 'WorkspaceCloneError';
|
|
23
|
+
if (Error.captureStackTrace) {
|
|
24
|
+
Error.captureStackTrace(this, WorkspaceCloneError);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.WorkspaceCloneError = WorkspaceCloneError;
|
|
29
|
+
function normalizeWorkstreamDirectory(workstreamId) {
|
|
30
|
+
return workstreamId.startsWith('ws-') ? workstreamId : `ws-${workstreamId}`;
|
|
31
|
+
}
|
|
32
|
+
function normalizeFsIdentifier(value) {
|
|
33
|
+
if (typeof value === 'bigint' || typeof value === 'number' || typeof value === 'string') {
|
|
34
|
+
return String(value);
|
|
35
|
+
}
|
|
36
|
+
if (typeof value === 'object' && value !== null) {
|
|
37
|
+
const nested = value;
|
|
38
|
+
if (nested.val !== undefined) {
|
|
39
|
+
return String(nested.val);
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
return JSON.stringify(value);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
function getFileSystemId(stats) {
|
|
51
|
+
const raw =
|
|
52
|
+
// Primary signal: f_fsid (as specified in parallel workspace design docs)
|
|
53
|
+
normalizeFsIdentifier(stats.f_fsid)
|
|
54
|
+
?? normalizeFsIdentifier(stats.fsid)
|
|
55
|
+
?? normalizeFsIdentifier(stats.type);
|
|
56
|
+
if (!raw) {
|
|
57
|
+
throw new WorkspaceCloneError('Unable to determine filesystem identity for clone placement');
|
|
58
|
+
}
|
|
59
|
+
return raw;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolve the project hash used for workspace grouping.
|
|
63
|
+
*/
|
|
64
|
+
function getProjectHash(projectPath) {
|
|
65
|
+
return (0, node_crypto_1.createHash)('sha1')
|
|
66
|
+
.update((0, node_path_1.resolve)(projectPath))
|
|
67
|
+
.digest('hex')
|
|
68
|
+
.slice(0, 16);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Default root for parallel workspaces: ~/.steroids/workspaces
|
|
72
|
+
*/
|
|
73
|
+
function getDefaultWorkspaceRoot() {
|
|
74
|
+
return (0, node_path_1.join)((0, node_os_1.homedir)(), '.steroids', 'workspaces');
|
|
75
|
+
}
|
|
76
|
+
function getWorkspacePath(projectPath, workstreamId, workspaceRoot = getDefaultWorkspaceRoot()) {
|
|
77
|
+
return resolveWorkspacePath((0, node_path_1.resolve)(workspaceRoot), (0, node_path_1.resolve)(projectPath), workstreamId);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Determine whether two paths are on the same filesystem by comparing fs identifiers.
|
|
81
|
+
*/
|
|
82
|
+
function isSameFileSystem(leftPath, rightPath) {
|
|
83
|
+
const leftStats = (0, node_fs_1.statfsSync)(leftPath);
|
|
84
|
+
const rightStats = (0, node_fs_1.statfsSync)(rightPath);
|
|
85
|
+
return getFileSystemId(leftStats) === getFileSystemId(rightStats);
|
|
86
|
+
}
|
|
87
|
+
function resolveWorkspacePath(workspaceRoot, projectPath, workstreamId) {
|
|
88
|
+
const normalizedWorkstreamDir = normalizeWorkstreamDirectory(workstreamId);
|
|
89
|
+
return (0, node_path_1.join)(workspaceRoot, getProjectHash(projectPath), normalizedWorkstreamDir);
|
|
90
|
+
}
|
|
91
|
+
function resolveSteroidsDir(projectPath) {
|
|
92
|
+
const steroidsDir = (0, node_path_1.join)((0, node_path_1.resolve)(projectPath), '.steroids');
|
|
93
|
+
if (!(0, node_fs_1.existsSync)(steroidsDir)) {
|
|
94
|
+
throw new WorkspaceCloneError(`Missing .steroids directory: ${steroidsDir}`);
|
|
95
|
+
}
|
|
96
|
+
const resolved = (0, node_fs_1.realpathSync)(steroidsDir);
|
|
97
|
+
const stat = (0, node_fs_1.lstatSync)(resolved);
|
|
98
|
+
if (!stat.isDirectory()) {
|
|
99
|
+
throw new WorkspaceCloneError(`Expected .steroids to be a directory: ${resolved}`);
|
|
100
|
+
}
|
|
101
|
+
return resolved;
|
|
102
|
+
}
|
|
103
|
+
function verifySteroidsSymlink(steroidsPath) {
|
|
104
|
+
const dbPath = (0, node_path_1.join)(steroidsPath, 'steroids.db');
|
|
105
|
+
(0, node_fs_1.accessSync)(dbPath, node_fs_1.constants.R_OK);
|
|
106
|
+
}
|
|
107
|
+
function createWorkspaceSymlink(clonePath, projectPath) {
|
|
108
|
+
const targetSteroidsPath = resolveSteroidsDir(projectPath);
|
|
109
|
+
const destination = (0, node_path_1.join)(clonePath, '.steroids');
|
|
110
|
+
if ((0, node_fs_1.existsSync)(destination)) {
|
|
111
|
+
(0, node_fs_1.rmSync)(destination, { recursive: true, force: true });
|
|
112
|
+
}
|
|
113
|
+
// Use the resolved path to avoid symlink chain surprises.
|
|
114
|
+
(0, node_fs_1.symlinkSync)(targetSteroidsPath, destination);
|
|
115
|
+
verifySteroidsSymlink(destination);
|
|
116
|
+
return destination;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Create an isolated workspace clone for one parallel workstream.
|
|
120
|
+
*/
|
|
121
|
+
function createWorkspaceClone(options) {
|
|
122
|
+
const projectPath = (0, node_path_1.resolve)(options.projectPath);
|
|
123
|
+
const workspaceRoot = (0, node_path_1.resolve)(options.workspaceRoot ?? getDefaultWorkspaceRoot());
|
|
124
|
+
const workspacePath = getWorkspacePath(projectPath, options.workstreamId, workspaceRoot);
|
|
125
|
+
const projectHash = getProjectHash(projectPath);
|
|
126
|
+
if (!(0, node_fs_1.existsSync)(projectPath)) {
|
|
127
|
+
throw new WorkspaceCloneError(`Project path does not exist: ${projectPath}`);
|
|
128
|
+
}
|
|
129
|
+
if (!(0, node_fs_1.lstatSync)(projectPath).isDirectory()) {
|
|
130
|
+
throw new WorkspaceCloneError(`Project path is not a directory: ${projectPath}`);
|
|
131
|
+
}
|
|
132
|
+
if ((0, node_fs_1.existsSync)(workspacePath)) {
|
|
133
|
+
if (!options.force) {
|
|
134
|
+
throw new WorkspaceCloneError(`Workspace already exists: ${workspacePath}`);
|
|
135
|
+
}
|
|
136
|
+
(0, node_fs_1.rmSync)(workspacePath, { recursive: true, force: true });
|
|
137
|
+
}
|
|
138
|
+
(0, node_fs_1.mkdirSync)(workspaceRoot, { recursive: true });
|
|
139
|
+
(0, node_fs_1.mkdirSync)((0, node_path_1.resolve)(workspacePath, '..'), { recursive: true });
|
|
140
|
+
const usedLocalClone = isSameFileSystem(projectPath, workspaceRoot);
|
|
141
|
+
const cloneArgs = ['clone', ...(usedLocalClone ? ['--local'] : []), projectPath, workspacePath];
|
|
142
|
+
try {
|
|
143
|
+
// hardcoded command, no user input
|
|
144
|
+
(0, node_child_process_1.execFileSync)('git', cloneArgs, { cwd: process.cwd(), stdio: 'inherit' });
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
(0, node_fs_1.rmSync)(workspacePath, { recursive: true, force: true });
|
|
148
|
+
throw new WorkspaceCloneError('Git clone failed', error);
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
// hardcoded command, no user input
|
|
152
|
+
(0, node_child_process_1.execFileSync)('git', ['-C', workspacePath, 'checkout', '-b', options.branchName], { stdio: 'inherit' });
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
(0, node_fs_1.rmSync)(workspacePath, { recursive: true, force: true });
|
|
156
|
+
throw new WorkspaceCloneError('Failed to create branch in clone', error);
|
|
157
|
+
}
|
|
158
|
+
let steroidsSymlinkPath;
|
|
159
|
+
try {
|
|
160
|
+
steroidsSymlinkPath = createWorkspaceSymlink(workspacePath, projectPath);
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
(0, node_fs_1.rmSync)(workspacePath, { recursive: true, force: true });
|
|
164
|
+
throw new WorkspaceCloneError('Failed to create .steroids symlink', error);
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
projectPath,
|
|
168
|
+
workspaceRoot,
|
|
169
|
+
workspacePath,
|
|
170
|
+
branchName: options.branchName,
|
|
171
|
+
projectHash,
|
|
172
|
+
usedLocalClone,
|
|
173
|
+
steroidsSymlinkPath,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=clone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/parallel/clone.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clone.test.d.ts","sourceRoot":"","sources":["../../src/parallel/clone.test.ts"],"names":[],"mappings":""}
|