环境
pnpm 12.4.2 · Node ≥22 · TypeScript 7 · oxlint / oxfmt · vitest · tsdown。
pnpm install
pnpm lint && pnpm format:check && pnpm typecheck && pnpm test
pnpm build目录结构(monorepo)
packages/core @botharness/core # PersonaBot registry / 状态(记忆在 M2)
packages/client @botharness/client # React:roster / 详情 / 委派入口(M3)
packages/im @botharness/im # IM 适配器(M5)
packages/deepseekbot deepseekbot # bundle + 应用(后续)
apps/docs 文档站(Nimbus / Astro,部署 Cloudflare Workers)
docs/ 规格、ADR、架构与 changelog(文档站的唯一内容源)文档站
apps/docs 的内容大多由 scripts/sync-docs.mjs 从仓库根部同步生成(规格 / PRD / 词表 / ADR / 架构 / changelog)——改文档请改仓库源文件,不要改生成物。
pnpm dev # 推荐:经 portless → https://docs.botharness.localhost(首次会生成本地 CA 并请求信任)
PORTLESS_PORT=8788 PORTLESS_HTTPS=0 pnpm dev # 免 sudo 版 → http://docs.botharness.localhost:8788
pnpm docs:dev # 直连 → http://localhost:4321(WSL / Windows 本机均可访问)
pnpm docs:build # 同步 + 构建
pnpm docs:deploy # 构建 + wrangler 部署同步已内置在
astro.config.ts(syncDocs()),所以直接用astro dev/astro build也会先生成内容;portless作为根 devDependency 锁定版本(无需全局安装),从本包内启动以便正确注入--port。