import { join, resolve } from 'node:path'; import { homedir } from 'node:os'; export const DATA_PATH = process.env.DATA_PATH ?? join(process.cwd(), 'data'); export const SERVER_CONFIG_DIR = join(DATA_PATH, 'server-settings'); export const PI_CONFIG_DIR = join(homedir(), '.pi', 'agent'); export const SEED_PATH = resolve(import.meta.dir, '../../seed'); export const getUserSessionsDir = (email: string) => join(DATA_PATH, email, 'chat_sessions'); export const getClaudeDir = (email: string) => join(DATA_PATH, email, 'chat_sessions', 'claude'); export const getSessionDir = (email: string, sessionId: string) => join(DATA_PATH, email, 'chat_sessions', 'claude', sessionId); export const getOpencodeDir = (email: string) => join(DATA_PATH, email, 'chat_sessions', 'opencode'); export const getOpencodeSessionDir = (email: string, sessionId: string) => join(DATA_PATH, email, 'chat_sessions', 'opencode', sessionId); export const getPiMonoDir = (email: string) => join(DATA_PATH, email, 'chat_sessions', 'pi-mono'); export const getPiMonoSessionDir = (email: string, sessionId: string) => join(DATA_PATH, email, 'chat_sessions', 'pi-mono', sessionId); export const getArchivedSessionDir = (email: string, sessionId: string) => join(DATA_PATH, email, 'chat_sessions', 'claude', 'archived', sessionId); export const getHomeDir = (email: string) => join(DATA_PATH, email, 'home'); export const getUserPiConfigDir = (email: string) => join(DATA_PATH, email, 'home', '.pi', 'agent'); export const getUserSettingsDir = (email: string) => join(DATA_PATH, email, 'settings'); export const getUserSettingsFile = (email: string) => join(DATA_PATH, email, 'settings', 'settings.json'); export const getUserStateDir = (email: string) => join(DATA_PATH, email, 'state'); export const getUserStateFile = (email: string) => join(DATA_PATH, email, 'state', 'state.json'); export const getUserWorkspacesDir = (email: string) => join(DATA_PATH, email, 'workspaces'); export const getUserProjectsDir = (email: string) => join(DATA_PATH, email, 'home', 'Projects'); export const getUserHomepageWorkspaceDir = (email: string) => join(DATA_PATH, email, 'ws-homepage'); export const getNativeSkillsDir = () => join(SEED_PATH, 'skills'); export const getGlobalSkillsDir = () => join(DATA_PATH, 'skills'); export const getUserSkillsDir = (email: string) => join(DATA_PATH, email, 'skills'); export const getNativeToolsDir = () => join(SEED_PATH, 'tools'); export const getGlobalToolsDir = () => join(DATA_PATH, 'tools'); export const getUserToolsDir = (email: string) => join(DATA_PATH, email, 'tools'); export const getNativeExtensionsDir = () => join(SEED_PATH, 'extensions'); export const getGlobalExtensionsDir = () => join(DATA_PATH, 'extensions'); export const getUserExtensionsDir = (email: string) => join(DATA_PATH, email, 'extensions'); export const getNativeTasksDir = () => join(SEED_PATH, 'tasks'); export const getGlobalTasksDir = () => join(DATA_PATH, 'tasks'); export const getUserTasksDir = (email: string) => join(DATA_PATH, email, 'tasks'); export const getNativeProcessesDir = () => join(SEED_PATH, 'processes'); export const getGlobalProcessesDir = () => join(DATA_PATH, 'processes'); export const getUserProcessesDir = (email: string) => join(DATA_PATH, email, 'processes'); export const getNativeResourcesDir = () => join(SEED_PATH, 'resources'); export const getGlobalResourcesDir = () => join(DATA_PATH, 'resources'); export const getResourcesDir = () => join(DATA_PATH, 'resources'); export const getTaskLogsDir = (email: string) => join(DATA_PATH, email, 'logs', 'tasks'); export const getTmpAttachmentsDir = (email: string) => join(DATA_PATH, email, 'chat_sessions', 'tmp_attachments'); export const getAttachmentsDir = (email: string, provider: 'claude' | 'opencode' | 'pi-mono', sessionId: string) => join(DATA_PATH, email, 'chat_sessions', provider, sessionId, 'attachments'); export const getUserEmailDir = (email: string) => join(DATA_PATH, email, 'Gmail', 'emails');