forked from ChaiHao/BPOS-MVP
Mastra 化阶段1:抽 FlowRuntime 端口 —— 编排层执行面成为可替换切面,解耦完全成形
目标(用户定):完全实现编排层与活动解耦。解耦线(TaskGateway 起活动 / 终态回报) 本就存在;缺的是 CONTRACT M5-1 那句「Mastra 编译器作可替换 adapter、usecase 不动」 的端口 —— 勘察坐实它此前不存在,状态机直接写在 usecase 里揉着五端口副作用编排。 - port.ts 立 FlowRuntime 端口:begin / onTaskTerminal / applyFailure / onApprovalVerdict / refreshState / terminate —— 执行面的全部 - 状态机整体迁入 internal/runtime/self-hosted-runtime.ts(逐字搬迁,行为零变化): enter(调度+组轮值分派+实例落 assignee)、advanceFrom(条件出边选路+死路诊断+ 分支不连坐)、失败走向四选一、审批裁决(边优先、声明兜底)、三态聚合投影、终止级联 - process-service 573→248 行薄壳:定义生命周期(保存/激活/校验)+ 起单前置 (取生效版/入参校验/工作组快照/建单留痕)+ 五方法委托; ProcessServiceDeps.runtime 可注入 —— Mastra 编译产物从这里换入,路由/接线零动 - index 出口 FlowRuntime 型;CONTRACT.md 记切面与已核实的语义冲突清单 (reopen 无原语待 spike / parallel 失败连坐须 step 内自吞 / abnormal 三态 / node_instance 投影必留);debt M5-1 → 切面已立 等价性护栏:process 49 单测 + 八例端到端真库,提取前后原样全绿 —— 行为零变化实证。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
@@ -84,8 +84,20 @@
|
||||
- **驳回走向声明式**:审批点的驳回按 `reject` 声明回指定节点重开新实例,不由临场决定
|
||||
- **凡单必有来源**:`source` 必填;终点按输出声明交付、按来源回执
|
||||
|
||||
## M5 待补(docs/PROGRESS.md · docs/debt.md M5-1)
|
||||
`internal/adapter/workflow-compiler.ts` —— 编码规范 §6.1 规定流程包动态编译为 Mastra
|
||||
`createWorkflow`/`createStep`(XOR → `.branch()`,AND → `.parallel()`,节点 `suspend()`/`resume()`)。
|
||||
当前流转由本模块自持的**确定性状态机 + `sys.node_instance` 持久**承担,语义等价且已可测;
|
||||
Mastra 编译器作为可替换的 adapter 后补,替换时 usecase 不动。
|
||||
## M5-1:运行时切面已立(2026-07-28),编译器实现仍欠
|
||||
|
||||
「Mastra 编译器作可替换 adapter、usecase 不动」的端口**已经存在**:`port.ts` 的
|
||||
`FlowRuntime`(begin / onTaskTerminal / applyFailure / onApprovalVerdict /
|
||||
refreshState / terminate)。执行面的语义、留痕与副作用编排整体住在默认实现
|
||||
`internal/runtime/self-hosted-runtime.ts`(自持确定性状态机 + `sys.node_instance`
|
||||
持久);`process-service` 是薄壳:定义生命周期(保存/激活/校验)+ 起单前置
|
||||
(取生效版/调用接口校验/工作组快照/建单留痕)+ 五方法委托。
|
||||
|
||||
替换路径:`ProcessServiceDeps.runtime` 注入第二实现(`internal/adapter/
|
||||
workflow-compiler.ts`,编码规范 §6.1:流程包编译为 Mastra `createWorkflow`/
|
||||
`createStep`,XOR → `.branch()`,AND → `.parallel()`,节点 `suspend()`/`resume()`)。
|
||||
八例端到端(`unified-quote-flow.it.test.ts`)是两个实现的**等价性护栏**。
|
||||
已核实的语义冲突清单(编译器必须绕):回边 reopen 无原语(spike 定案)、
|
||||
`.parallel()` 任一失败即整体失败(step 内自吞,不让 Mastra 感知)、
|
||||
三态聚合投影(abnormal 防假成功,Mastra run 无此态)、`node_instance`
|
||||
投影表必须照写(治理台按行查)。
|
||||
|
||||
Reference in New Issue
Block a user