mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 20:41:24 +00:00
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a57718c09e
Co-authored-by: robbyczgw-cla <239660374+robbyczgw-cla@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
This commit is contained in:
@@ -106,17 +106,19 @@ const VALID_BOOTSTRAP_NAMES: ReadonlySet<string> = new Set([
|
||||
DEFAULT_MEMORY_ALT_FILENAME,
|
||||
]);
|
||||
|
||||
async function writeFileIfMissing(filePath: string, content: string) {
|
||||
async function writeFileIfMissing(filePath: string, content: string): Promise<boolean> {
|
||||
try {
|
||||
await fs.writeFile(filePath, content, {
|
||||
encoding: "utf-8",
|
||||
flag: "wx",
|
||||
});
|
||||
return true;
|
||||
} catch (err) {
|
||||
const anyErr = err as { code?: string };
|
||||
if (anyErr.code !== "EEXIST") {
|
||||
throw err;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,15 +215,16 @@ export async function ensureAgentWorkspace(params?: {
|
||||
const identityTemplate = await loadTemplate(DEFAULT_IDENTITY_FILENAME);
|
||||
const userTemplate = await loadTemplate(DEFAULT_USER_FILENAME);
|
||||
const heartbeatTemplate = await loadTemplate(DEFAULT_HEARTBEAT_FILENAME);
|
||||
const bootstrapTemplate = await loadTemplate(DEFAULT_BOOTSTRAP_FILENAME);
|
||||
|
||||
await writeFileIfMissing(agentsPath, agentsTemplate);
|
||||
await writeFileIfMissing(soulPath, soulTemplate);
|
||||
await writeFileIfMissing(toolsPath, toolsTemplate);
|
||||
await writeFileIfMissing(identityPath, identityTemplate);
|
||||
await writeFileIfMissing(userPath, userTemplate);
|
||||
await writeFileIfMissing(heartbeatPath, heartbeatTemplate);
|
||||
if (isBrandNewWorkspace) {
|
||||
const wroteAgents = await writeFileIfMissing(agentsPath, agentsTemplate);
|
||||
const wroteSoul = await writeFileIfMissing(soulPath, soulTemplate);
|
||||
const wroteTools = await writeFileIfMissing(toolsPath, toolsTemplate);
|
||||
const wroteIdentity = await writeFileIfMissing(identityPath, identityTemplate);
|
||||
const wroteUser = await writeFileIfMissing(userPath, userTemplate);
|
||||
const wroteHeartbeat = await writeFileIfMissing(heartbeatPath, heartbeatTemplate);
|
||||
const wroteAnyCoreBootstrapFile =
|
||||
wroteAgents || wroteSoul || wroteTools || wroteIdentity || wroteUser || wroteHeartbeat;
|
||||
if (isBrandNewWorkspace || wroteAnyCoreBootstrapFile) {
|
||||
const bootstrapTemplate = await loadTemplate(DEFAULT_BOOTSTRAP_FILENAME);
|
||||
await writeFileIfMissing(bootstrapPath, bootstrapTemplate);
|
||||
}
|
||||
await ensureGitRepo(dir, isBrandNewWorkspace);
|
||||
|
||||
Reference in New Issue
Block a user