@locusai/cli 0.22.4 → 0.22.6
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/bin/locus.js +31 -6
- package/package.json +2 -2
package/bin/locus.js
CHANGED
|
@@ -1044,17 +1044,42 @@ function detectContainerWorkdir(sandboxName, hostProjectRoot) {
|
|
|
1044
1044
|
log.debug("Host path not found in container, probing for mount point...");
|
|
1045
1045
|
}
|
|
1046
1046
|
try {
|
|
1047
|
-
const
|
|
1047
|
+
const raw = execSync2(`docker sandbox exec ${sandboxName} cat /proc/mounts`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 5000 }).trim();
|
|
1048
|
+
if (raw) {
|
|
1049
|
+
const systemPrefixes = ["/proc", "/sys", "/dev"];
|
|
1050
|
+
const candidates = raw.split(`
|
|
1051
|
+
`).map((line) => {
|
|
1052
|
+
const fields = line.split(" ");
|
|
1053
|
+
return fields[1];
|
|
1054
|
+
}).filter((mp) => !!mp && mp !== "/" && !systemPrefixes.some((p) => mp === p || mp.startsWith(`${p}/`)));
|
|
1055
|
+
for (const candidate of candidates) {
|
|
1056
|
+
try {
|
|
1057
|
+
execSync2(`docker sandbox exec ${sandboxName} sh -c "test -d ${JSON.stringify(candidate + "/.git")} || test -f ${JSON.stringify(candidate + "/package.json")}"`, { stdio: ["pipe", "pipe", "pipe"], timeout: 3000 });
|
|
1058
|
+
log.debug("Detected container workdir from mount table", {
|
|
1059
|
+
hostProjectRoot,
|
|
1060
|
+
containerWorkdir: candidate
|
|
1061
|
+
});
|
|
1062
|
+
return candidate;
|
|
1063
|
+
} catch {}
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
} catch (err) {
|
|
1067
|
+
log.debug("Mount table probe failed", {
|
|
1068
|
+
error: err instanceof Error ? err.message : String(err)
|
|
1069
|
+
});
|
|
1070
|
+
}
|
|
1071
|
+
try {
|
|
1072
|
+
const gitDir = execSync2(`docker sandbox exec ${sandboxName} sh -c "find / -maxdepth 10 -name .git -type d ! -path '*/proc/*' ! -path '*/sys/*' ! -path '*/dev/*' ! -path '*/node_modules/*' 2>/dev/null | head -1"`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 15000 }).trim();
|
|
1048
1073
|
if (gitDir) {
|
|
1049
1074
|
const containerPath = gitDir.replace(/\/\.git$/, "") || "/";
|
|
1050
|
-
log.debug("Detected container workdir from .git marker", {
|
|
1075
|
+
log.debug("Detected container workdir from .git marker (deep find)", {
|
|
1051
1076
|
hostProjectRoot,
|
|
1052
1077
|
containerWorkdir: containerPath
|
|
1053
1078
|
});
|
|
1054
1079
|
return containerPath;
|
|
1055
1080
|
}
|
|
1056
1081
|
} catch (err) {
|
|
1057
|
-
log.debug("Container workdir detection via
|
|
1082
|
+
log.debug("Container workdir detection via deep find failed", {
|
|
1058
1083
|
error: err instanceof Error ? err.message : String(err)
|
|
1059
1084
|
});
|
|
1060
1085
|
}
|
|
@@ -13486,10 +13511,10 @@ function detectPackageManager2(projectRoot) {
|
|
|
13486
13511
|
}
|
|
13487
13512
|
return "npm";
|
|
13488
13513
|
}
|
|
13489
|
-
function getInstallCommand(pm) {
|
|
13514
|
+
function getInstallCommand(pm, noSymlinks) {
|
|
13490
13515
|
switch (pm) {
|
|
13491
13516
|
case "bun":
|
|
13492
|
-
return ["bun", "install"];
|
|
13517
|
+
return noSymlinks ? ["bun", "install", "--backend=copyfile"] : ["bun", "install"];
|
|
13493
13518
|
case "yarn":
|
|
13494
13519
|
return ["yarn", "install"];
|
|
13495
13520
|
case "pnpm":
|
|
@@ -13507,7 +13532,7 @@ async function runSandboxSetup(sandboxName, projectRoot, containerWorkdir) {
|
|
|
13507
13532
|
if (pm !== "npm") {
|
|
13508
13533
|
await ensurePackageManagerInSandbox(sandboxName, pm);
|
|
13509
13534
|
}
|
|
13510
|
-
const installCmd = getInstallCommand(pm);
|
|
13535
|
+
const installCmd = getInstallCommand(pm, !!containerWorkdir);
|
|
13511
13536
|
process.stderr.write(`
|
|
13512
13537
|
Installing dependencies (${bold2(installCmd.join(" "))}) in sandbox ${dim2(sandboxName)}...
|
|
13513
13538
|
`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@locusai/cli",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.6",
|
|
4
4
|
"description": "GitHub-native AI engineering assistant",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"license": "MIT",
|
|
37
37
|
"dependencies": {},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@locusai/sdk": "^0.22.
|
|
39
|
+
"@locusai/sdk": "^0.22.6",
|
|
40
40
|
"@types/bun": "latest",
|
|
41
41
|
"typescript": "^5.8.3"
|
|
42
42
|
},
|