SuperAPI AI 工具集

monorepo

编程与开发

查看项目

更新于 10-15 21:38

技能介绍

用途:本技能面向 epicenterhq/epicenter 的 monorepo,提供脚本命名约定、开发脚本用法与新包样板,适用于“how do I run”“bun run”“build this”“run tests”“typecheck”“create a new package”等场景。

主要能力与脚本约定:统一使用 bun 脚本。bun format 修复格式(biome),bun format:check 仅检查格式(CI);bun lint 修复 lint(biome),bun lint:check 仅检查(CI);bun typecheck 做类型检查(tsc、svelte-check、astro check);bun test 运行单元测试(仅 .test.ts);bun bench 运行基准测试(.bench.ts,只输出报告不做断言)。约定:无后缀等于修复(修改文件);:check 后缀表示只检查,用于 CI;typecheck 单独一类,无法自动修复;同一文件只能是测试或基准之一。

开发脚本:从仓库根目录启动应用,不要 cd 进应用。根级 bun dev:<app> 会运行该应用所需的全部进程;对依赖托管 API 的应用(honeycrisp、vocab、whispering 及 api dashboard),还会通过 bun run --filter 在 localhost:8787 启动 @epicenter/api。bun dev:<app>:ui 在存在前后端拆分时只运行前端;Tauri 应用映射到包的 dev:web。bun dev:api 只启动后端。Local Books、Local Mail、Super Chat 没有根级 dev:* 目标,其多进程流程见各自 README。包内约定:非 Tauri 应用用单个 dev 脚本直接运行底层工具(vite dev、astro dev、wrangler dev);Tauri 桌面应用(honeycrisp、whispering、matter)有两个 dev 面:dev 启动桌面外壳(即 dev:desktop),dev:web 仅运行 Vite,由各应用的 tauri.conf.json 作为 beforeDevCommand 调用。数据库命令:db::local 针对本地 Postgres,无需 Infisical 登录;db::remote 用 infisical run --env=prod 包装,面向生产数据,按管理员对待。没有 dev:remote,生产数据只能通过 :remote 数据库脚本和部署访问。

完成代码改动后运行 bun typecheck 验证,它执行 bun run --filter '*' typecheck,在各包内运行 typecheck 脚本(如 tsc --noEmit、svelte-check)。

新建包:在 packages/ 下按样板创建 package.json(name 为 @epicenter/<package-name>,version 0.0.1,exports 指向 ./src/index.ts,license 默认 AGPL-3.0-or-later,typecheck 脚本为 tsc --noEmit,devDependencies 使用 catalog: 引用 @types/bun 与 typescript)。约定:只用 exports,不用 main/types;内部依赖用 workspace:*;共享版本用 catalog:;消费者需自行安装的依赖用 peerDependencies;仅当包供第三方嵌入时用 MIT,bun run check:licenses 会在 MIT 包可触达 AGPL 包时失败。tsconfig.json:叶子配置继承 ../../tsconfig.base.json(Bun 库)或 ../../tsconfig.dom.json(Svelte 或浏览器库),不重复基类内容。创建后从仓库根运行 bun install 注册到工作区。

限制:以上均为仓库内部约定,未提供具体版本、收费或平台信息。