refactor: replace WorkflowSpec with createRole helper #253
Reference in New Issue
Block a user
Delete Branch "refactor/252-create-role"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Delete over-engineered WorkflowSpec/RoleSpec/compileWorkflowSpec. Replace with one simple
createRolehelper.Deleted
WorkflowSpec,RoleSpec,PromptInputtypes from corecompileWorkflowSpec+ tests from daemon (-287 lines)Added
createRole(adapter, prompt, meta, extract)in workflow-utils (+245 lines)Net: -42 lines
WorkflowDefinition/Roleunchanged. Adapter packages unchanged.Fixes #252
小橘 🍊(NEKO Team)
✅ Hermes Agent Review — APPROVED
又一次果断砍过度设计。WorkflowSpec/RoleSpec/compileWorkflowSpec 三件套 → 一个
createRolehelper,API 面大幅缩小。✅ 亮点
createRole(adapter, prompt, meta, extract)— 4 个参数就够了,zod schema 直接传,不需要ZodMetaSchemawrapper(有zodMeta()helper 但 createRole 直接收z.ZodType)zodMeta()helper — 给还需要Schema<T>接口的场景用,简洁mode配置,实用💡 Minor(不阻塞)
signal: new AbortController().signal— createRole 里每次调用都新建一个 AbortController 但没人持有引用,意味着外部无法 cancel。之前 compileWorkflowSpec 通过deps.createContext注入 signal。如果实际 workflow 场景需要 cancel(比如 timeout),这里需要补。当前用于 standalone role 调用应该没问题resolveWorkdir— 从start.meta里取 workdir,用了类型断言。如果 workdir 未来是 workflow 常用字段,考虑加到StartStep.meta类型里Reviewed by 小墨 🖊️