@seqyuan/ennote
v0.2.0
Published
AI-native bioinformatics agent workspace
Readme
Ennote
AI-native bioinformatics agent workspace.
架构
两个长期运行的 Go 进程,一个职责边界;Next.js 仅在构建时生成静态前端:
Browser → ennogate (Go, :45131) → ennoworker (Go, :0, loopback)
守门人 劳动者
认证 / 代理 / 静态文件 SQLite / Agent / 工具 / Skill快速开始
make dev打开 http://127.0.0.1:45131,首次访问会引导设置密码。make dev 会先生成静态前端,再由 ennogate 启动和认证 ennoworker。
安装与分发
Ennote 是开源项目(MIT),仓库公开;npm 包与运行时二进制均由 GitHub Actions 在打版本 tag 时自动构建发布。
npm install -g @seqyuan/ennote
ennote start- npm 包(
@seqyuan/ennote)只包含 CLI 脚本和编译后的静态前端(约 12 MB)。 - 首次
ennote start时,CLI 会从本仓库(seqyuan/ennote)的 GitHub Release 按当前平台/架构下载 Go 二进制(ennogate + ennoworker),缓存到~/.ennote/bin/,后续启动不再下载。 - 支持平台:linux-x64 / linux-arm64 / darwin-x64 / darwin-arm64。
- 发布流程:打版本 tag(
vX.Y.Z)后,release workflow 自动构建四平台二进制、上传到该 tag 对应的 GitHub Release,并发布 npm 包。
目录
ennoworker/
cmd/ennogate/ BFF:认证、代理、静态文件
cmd/ennoworker/ Agent 引擎、数据库、工具、沙箱
internal/
agent/ Go Agent Loop + steer/follow-up
api/ ennoworker HTTP API + SSE
config/ 配置与环境变量
domain/ 领域类型和状态机
events/ Durable EventWriter + 订阅 Hub
llm/ Provider 接口、OpenAI-compatible、fake
runs/ Run Coordinator(并发、取消、恢复)
skills/ Skill bundle 加载与 per-run 快照
store/ SQLite、迁移、Repository
tools/ 7 个文件/Shell 工具 + registry
workspace/ Path jail、bubblewrap 沙箱
migrations/ SQL 版本化迁移
app/ Next.js 前端(React + SSE 消费)
contracts/ OpenAPI 3.1 契约
skills/ 内置 Skill bundle
docs/ 设计与实施计划Roadmap
当前开发状态、优先级和明确延期范围以 docs/roadmap.md 为唯一来源。docs/plans/ 中的旧优先级仅保留为设计与实施历史。
开发
make dev # 启动 ennogate + ennoworker
make test-go # Go 测试(含 -race)
make test # JS 测试
make lint # ESLint
make typecheck # tsc --noEmit
make build # 构建静态前端和本机 Go 产物
npm run release:prepare # 构建四个平台的发布包并检查 tarball
npm run smoke:installed # 安装临时 tarball 并验证双进程生命周期