用途:定义 latitude-llm 的架构分层与边界规则,覆盖 web 与公共 API 的区分、应用布局、端口/适配器、可跨运行时移植的 domain/shared/utils 代码、多租户与 DDD 布局,以及需要拒绝的反模式。
主要能力与规则:apps/* 只负责输入校验、认证授权、组织访问强制与路由到领域用例,handler/controller/job 中不放业务逻辑;客户端在 apps//clients.ts 初始化并从边界导入;路由用 apps//routes/ 与 registerRoutes() 保持模块化;日志用 @repo/observability 的 createLogger(),每个 Effect.runPromise 调用点需在 pipe 链中加 withTracing;配置经 parseEnv / parseEnvOptional 读取。apps/api 是稳定公共 API,apps/web 不得为内部功能调用或代理 apps/api,而应组合领域用例与平台适配器实现服务端行为。领域层 packages/domain/* 承载用例、Zod-first 实体 schema 与推断类型、领域类型与错误、依赖端口;平台层 packages/platform/* 实现适配器,客户端构造用 createXClientEffect 返回 Effect,错误用 Data.TaggedError 并联合为单一错误类型,promise SDK 用 Effect.tryPromise 包装。通用纯函数放 @repo/utils,领域级共享契约放 @domain/shared。端口与适配器要求 domain 只依赖接口/tag,不得导入具体 DB/缓存/队列/对象存储客户端。多租户要求每个请求按组织作用域,成员检查在边界完成,遥测持久化与查询都带 organizationId,Redis 键以 org:${organizationId}: 开头。domain/utils/shared 优先使用 Web 标准 API(crypto.subtle、fetch、TextEncoder、Uint8Array、ReadableStream、URL 等),Node 专有 API 仅限构建、脚本、CLI 与测试。
限制与注意:资料未提供安装命令、收费、价格与平台信息;反模式包括跨领域无明确归属的逻辑、无核心能力契约的新提供商集成、未加 LAT_ 前缀的应用环境变量、使用 Next.js 的 "use client"/"use server" 指令、从包主入口导出测试工具。