RFC: @uncaged/workflow 模块分组重构 #102

Closed
opened 2026-05-08 01:11:13 +00:00 by xiaoju · 1 comment
Owner

背景

packages/workflow/src/ 目前 34 个模块平铺,缺乏组织。模块间依赖关系清晰,适合按内聚性分组。

目标

将模块按职责分入 6 个 folder,依赖方向单向,无循环:

src/
├── cas/         # CAS + Merkle DAG + hash + gc
├── registry/    # workflow.yaml 注册表
├── bundle/      # .esm.js 加载、校验、描述符
├── extract/     # LLM 输出解析
├── engine/      # 线程执行引擎
├── util/        # 共享原语 (base32, ulid, result, logger...)
├── types.ts
├── workflow-as-agent.ts
├── extract-provider.ts
└── index.ts

依赖方向:util ← cas ← extract ← engineutil ← registry ← bundle

Phase 拆分

Phase 1: 创建 folder 结构,移动模块

一句话:把 34 个平铺模块移入 6 个 folder,更新 import 路径

  • 验证目标:所有 import 正确,bun run test 全过,bun run check 通过
  • Testing issue: 待创建

Phase 2: 更新 index.ts re-exports

一句话:index.ts 从 folder 入口 re-export,外部消费者无感

  • 验证目标:所有其他 packages 的 import 不变,测试全过
  • Testing issue: 待创建

Phase 3: 验证外部包 + CLI 兼容性

一句话:确保 cli-workflow、template 包、agent 包全部正常工作

  • 验证目标:全量 bun run test 通过,thread run 实际执行正常
  • Testing issue: 待创建

完成标准

  • 所有 Phase 的 testing issue 已 close
  • 全量测试通过
  • 无循环依赖
## 背景 `packages/workflow/src/` 目前 34 个模块平铺,缺乏组织。模块间依赖关系清晰,适合按内聚性分组。 ## 目标 将模块按职责分入 6 个 folder,依赖方向单向,无循环: ``` src/ ├── cas/ # CAS + Merkle DAG + hash + gc ├── registry/ # workflow.yaml 注册表 ├── bundle/ # .esm.js 加载、校验、描述符 ├── extract/ # LLM 输出解析 ├── engine/ # 线程执行引擎 ├── util/ # 共享原语 (base32, ulid, result, logger...) ├── types.ts ├── workflow-as-agent.ts ├── extract-provider.ts └── index.ts ``` 依赖方向:`util ← cas ← extract ← engine`,`util ← registry ← bundle` ## Phase 拆分 ### Phase 1: 创建 folder 结构,移动模块 > 一句话:把 34 个平铺模块移入 6 个 folder,更新 import 路径 - 验证目标:所有 import 正确,`bun run test` 全过,`bun run check` 通过 - Testing issue: 待创建 ### Phase 2: 更新 index.ts re-exports > 一句话:index.ts 从 folder 入口 re-export,外部消费者无感 - 验证目标:所有其他 packages 的 import 不变,测试全过 - Testing issue: 待创建 ### Phase 3: 验证外部包 + CLI 兼容性 > 一句话:确保 cli-workflow、template 包、agent 包全部正常工作 - 验证目标:全量 `bun run test` 通过,`thread run` 实际执行正常 - Testing issue: 待创建 ## 完成标准 - [ ] 所有 Phase 的 testing issue 已 close - [ ] 全量测试通过 - [ ] 无循环依赖
Author
Owner

完成

  • PR #104 merged — 34 模块分入 6 个 folder
  • gc.ts 移到 engine/ 解决 cas→engine 反向依赖(review nit)
  • 93 tests pass, check pass
  • CLAUDE.md 增加 folder module discipline 规范

—— 小橘 🍊(NEKO Team)

## 完成 - ✅ PR #104 merged — 34 模块分入 6 个 folder - ✅ gc.ts 移到 engine/ 解决 cas→engine 反向依赖(review nit) - ✅ 93 tests pass, check pass - ✅ CLAUDE.md 增加 folder module discipline 规范 —— 小橘 🍊(NEKO Team)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#102