- Remove the preset document suite (letters, emails, invoices, quotes, PDF generation, line items) with its routes, API handlers and tables - Rebrand to Cobble: site data, Lato, handoff design tokens (light and dark) in main.css, brand assets in public/brand, ember stone logo and regenerated favicons - Add bots, bot_messages, bot_tasks and bot_task_steps tables, regenerate DB types (BUN_SQLITE_COBBLE_*) and add a sample crew seed (seed:bots) - Add the chat shell at /admin/bots: rail with pinned coordinator and user popover, bottom-anchored conversation with composer, working-on panel, and a send-message API scoped to the session user - Add BotStone and Wordmark components, crew status and relative time utils with tests, and update AGENTS.md Co-Authored-By: Claude Opus 5.5 <[email protected]>
42 lines
1.4 KiB
TypeScript
42 lines
1.4 KiB
TypeScript
import path from "path";
|
|
import type { User } from "../types";
|
|
import type { BUN_SQLITE_COBBLE_USERS } from "@/db/types/db";
|
|
|
|
type Params = {
|
|
user?: BUN_SQLITE_COBBLE_USERS | User;
|
|
};
|
|
|
|
export default function grabDirNames(params?: Params) {
|
|
const DIRNAME = __dirname;
|
|
const ROOT_DIR = DIRNAME.includes(`/.bunext`)
|
|
? process.cwd()
|
|
: path.resolve(__dirname, "../..");
|
|
|
|
const DATA_DIR = process.env.DATA_DIR || path.join(ROOT_DIR, ".data");
|
|
const MEDIA_RELATIVE_DIR = "media";
|
|
const MEDIA_DIR = path.join(DATA_DIR, MEDIA_RELATIVE_DIR);
|
|
|
|
const USER_MEDIA_PUBLIC_DIR = params?.user?.id
|
|
? path.join(MEDIA_DIR, String(params.user.id), "public")
|
|
: undefined;
|
|
const USER_MEDIA_PUBLIC_RELATIVE_DIR = params?.user?.id
|
|
? path.join(MEDIA_RELATIVE_DIR, String(params.user.id), "public")
|
|
: undefined;
|
|
const USER_MEDIA_PRIVATE_DIR = params?.user?.id
|
|
? path.join(MEDIA_DIR, String(params.user.id), "private")
|
|
: undefined;
|
|
const USER_MEDIA_PRIVATE_RELATIVE_DIR = params?.user?.id
|
|
? path.join(MEDIA_RELATIVE_DIR, String(params.user.id), "private")
|
|
: undefined;
|
|
|
|
return {
|
|
ROOT_DIR,
|
|
MEDIA_DIR,
|
|
USER_MEDIA_PUBLIC_DIR,
|
|
USER_MEDIA_PRIVATE_DIR,
|
|
DATA_DIR,
|
|
USER_MEDIA_PUBLIC_RELATIVE_DIR,
|
|
USER_MEDIA_PRIVATE_RELATIVE_DIR,
|
|
};
|
|
}
|