fix: doctor ignore install dir in legacy workspace check
This commit is contained in:
@@ -2,7 +2,12 @@ import fs from "node:fs";
|
||||
import os from "node:os";
|
||||
import path from "node:path";
|
||||
|
||||
import { DEFAULT_AGENTS_FILENAME } from "../agents/workspace.js";
|
||||
import {
|
||||
DEFAULT_AGENTS_FILENAME,
|
||||
DEFAULT_IDENTITY_FILENAME,
|
||||
DEFAULT_SOUL_FILENAME,
|
||||
DEFAULT_USER_FILENAME,
|
||||
} from "../agents/workspace.js";
|
||||
|
||||
export const MEMORY_SYSTEM_PROMPT = [
|
||||
"Memory system not found in workspace.",
|
||||
@@ -46,6 +51,19 @@ export type LegacyWorkspaceDetection = {
|
||||
legacyDirs: string[];
|
||||
};
|
||||
|
||||
function looksLikeWorkspaceDir(
|
||||
dir: string,
|
||||
exists: (value: string) => boolean,
|
||||
) {
|
||||
const markers = [
|
||||
DEFAULT_AGENTS_FILENAME,
|
||||
DEFAULT_SOUL_FILENAME,
|
||||
DEFAULT_USER_FILENAME,
|
||||
DEFAULT_IDENTITY_FILENAME,
|
||||
];
|
||||
return markers.some((name) => exists(path.join(dir, name)));
|
||||
}
|
||||
|
||||
export function detectLegacyWorkspaceDirs(params: {
|
||||
workspaceDir: string;
|
||||
homedir?: () => string;
|
||||
@@ -56,10 +74,14 @@ export function detectLegacyWorkspaceDirs(params: {
|
||||
const home = homedir();
|
||||
const activeWorkspace = path.resolve(params.workspaceDir);
|
||||
const candidates = [path.join(home, "clawdis"), path.join(home, "clawdbot")];
|
||||
const legacyDirs = candidates.filter((candidate) => {
|
||||
if (!exists(candidate)) return false;
|
||||
return path.resolve(candidate) !== activeWorkspace;
|
||||
});
|
||||
const legacyDirs = candidates
|
||||
.filter((candidate) => {
|
||||
if (!exists(candidate)) return false;
|
||||
return path.resolve(candidate) !== activeWorkspace;
|
||||
})
|
||||
.filter((candidate) => {
|
||||
return looksLikeWorkspaceDir(candidate, exists);
|
||||
});
|
||||
return { activeWorkspace, legacyDirs };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user