用途:本资料是 latitude-llm 仓库的工具链与命令说明,覆盖依赖安装、dev/build/test/lint/typecheck 运行、按包或按路径过滤、单测运行、Git 钩子配置、克隆环境准备以及 Docker 本地服务和开发服务器启动。
技术栈:运行时为 Node.js 25(mise.toml 指定,root package.json 也有 engines),需用 mise install / mise exec,以保证 Vitest 与 Uint8Array.fromHex / toHex 与生产一致;Node 22 缺少这些 API,涉及 @repo/utils 加密辅助的测试会失败。包管理器由 package.json 的 packageManager 字段指定(如 pnpm),安装依赖用 pnpm install。任务运行器为 turbo(通过根脚本调用),Lint/格式为 Biome(@biomejs/biome 1.9.x),类型检查为 TypeScript 6.0.x 加 TypeScript 7 beta(@typescript/native-preview),pnpm typecheck 运行 tsgo,不要在脚本或文档中直接调用 tsc。打包工具为 tsdown(替代已弃用的 tsup),测试用 Vitest 3.x,核心逻辑用 Effect TS,Postgres ORM 用 Drizzle,API/ingest 边界用 Hono,Web 应用用 TanStack Start + React。
顶层命令(仓库根目录):pnpm dev、pnpm build、pnpm check、pnpm typecheck、pnpm test、pnpm hooks。Git 钩子:pre-commit 位于 .husky/pre-commit,运行 pnpm check、pnpm typecheck 和 pnpm knip;依赖安装时通过根 prepare 脚本(pnpm hooks)自动配置,已有克隆需运行一次 pnpm hooks 以配置 core.hooksPath 和钩子权限。
按包过滤:pnpm --filter @app/api check,typecheck、build、test 同理;也可按路径过滤,如 pnpm --filter ./apps/api test、pnpm --filter ./packages/domain/workspaces check。单测以 vitest run --passWithNoTests 调用,可指定文件或 -t 名称模式。CI 等价本地检查为 pnpm check、pnpm typecheck、pnpm test;CI 工作流 check.yml、typecheck.yml、knip.yml、test.yml 使用 Node 25 + pnpm 运行相同命令。
环境准备:开始工作前需确保 .env.development 和 .env.test 存在,可从 .env.example 复制,并分别设置 NODE_ENV=development 与 NODE_ENV=test,为 Postgres、ClickHouse、Redis 等服务提供与 Docker Compose 匹配的默认值。本地服务需在应用进程前启动基础设施,使用 docker compose 启动 postgres、clickhouse、redis、redis-bullmq、mailpit、temporal、temporal-ui;迁移与种子命令仅在用户要求设置数据库时执行。开发服务器分别用 pnpm --filter @app/web dev 等启动,Web 端口 3000、API 3001、Ingest 3002、Workers 9090、Workflows 9091,Mailpit UI 8025、Temporal UI 8233,并有对应健康检查地址。手动登录:在 /signup 注册后,magic link 出现在 Mailpit 的 http://localhost:8025。