mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-25 11:55:47 -06:00
30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
/**
|
|
* Default agent workspace resolver.
|
|
*
|
|
* Derives the process workspace directory from env, profile, and home-directory state.
|
|
*/
|
|
import os from "node:os";
|
|
import path from "node:path";
|
|
import { normalizeOptionalLowercaseString } from "@openclaw/normalization-core/string-coerce";
|
|
import { resolveRequiredHomeDir } from "../infra/home-dir.js";
|
|
|
|
/** Resolve the default agent workspace directory from env/profile/home state. */
|
|
export function resolveDefaultAgentWorkspaceDir(
|
|
env: NodeJS.ProcessEnv = process.env,
|
|
homedir: () => string = os.homedir,
|
|
): string {
|
|
const workspaceDir = env.OPENCLAW_WORKSPACE_DIR?.trim();
|
|
if (workspaceDir) {
|
|
return path.resolve(workspaceDir);
|
|
}
|
|
const home = resolveRequiredHomeDir(env, homedir);
|
|
const profile = env.OPENCLAW_PROFILE?.trim();
|
|
if (profile && normalizeOptionalLowercaseString(profile) !== "default") {
|
|
return path.join(home, ".openclaw", `workspace-${profile}`);
|
|
}
|
|
return path.join(home, ".openclaw", "workspace");
|
|
}
|
|
|
|
/** Default agent workspace directory for the current process environment. */
|
|
export const DEFAULT_AGENT_WORKSPACE_DIR = resolveDefaultAgentWorkspaceDir();
|