M4: 范式引擎与任务运行时

skill-engine(L4):载方法不载权力(白名单外工具即拒)、结晶片段经 ToolInvoker 留痕、
  装配入信封、技能目录渐进披露

flow-engine(L5):四种步型、确定性谓词跳步、重试与声明给定的兜底、
  异步步即监听(时限必配)、写类工具登记动作意向、步序位置持久

loop-engine(L5):自研 CMMN 子集解析器(表外构件直接报错,子集封顶可机器证明)、
  两副标准生命周期与迁移拓扑(引擎不得私改)、Enabled ≠ Active、
  语义性前提标待裁量评估(引擎不代裁量)、DMN 确定性求值 + 命中行留痕、
  DRD 缺口演绎与拓扑序、双向驱动与交集导航(断点即人环)、三型行动、
  终局唯放行与 Harness

task(L6):终态五名裁定(released 唯一成功)、Harness 预算环外强制与停滞熔断
  (监听中是健康态)、控制三语义(叫停不是终态,记最重档纠正)、改派留痕通知双方、
  断点续跑三份持久状态、封卷触发蒸馏钩子

301 个测试通过,门禁五道全绿

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
This commit is contained in:
JCAI Main Agent
2026-07-27 01:51:22 +08:00
co-authored by Claude Opus 5
parent 2850e6d4ef
commit 3c974d2860
55 changed files with 7113 additions and 1 deletions
+37
View File
@@ -0,0 +1,37 @@
# module: task
职责: 任务运行时:生命周期与**终态五名裁定**、Harness 预算执行器 / 停滞熔断、
控制三语义、改派、断点续跑的就绪判定、封卷与蒸馏钩子的触发
不负责: 范式的推进逻辑(见 loop-engine / flow-engine,经 `ParadigmEngine` 端口)、
放行与落地(见 release)、工作流的编排与聚合(见 process)
公开出口: index.ts
- 类型:`TaskService` `Task` `StartTaskInput` `TickOutcome` `Consumption` `HarnessVerdict`
`ControlOutcome` `TerminalCause` `ResumeReadiness`
- 错误:`TaskNotFoundError` `TaskAlreadyTerminalError`
- 端口类型:`TaskStore` `ActivityLoader` `SchemaValidator` `ParadigmEngine` `MemoryRecorder`
`ListenerProbe` `PersistenceProbe` `TaskEventPublisher` `ReassignNotifier`
`InteractionPhaseSetter`
- 用例工厂:`createTaskService(deps): TaskService`
- 纯函数:`judge` `budgetBreaches` `isStalled` `terminalOf` `durationMs`
`applyControl` `decideTerminal` `isSuccess` `triggersFailureDisposition`
`resumeReadiness` `isPassiveOpen` `landingBlocked` `rejectionKeepsRunning`
- adapter:`createTaskStore`;Drizzle 表:`taskTable`
层级: L6(编码规范 §4)
依赖: @contracts;@shared/db;loop-engine / flow-engine / activity-registry(L5/L4);
port 注入:memory / event / message / interaction / ledger
被依赖: process, org(停用前置检查的在途任务), report, app
不变量(OS 04 / 4.3,AM 10 / 12.1):
- **恰一负责人**:任务必绑定恰一个 `ownerId`;改派**留痕并通知双方**
- **输入必过 schema**:`data` 缺项**不得启动**;`message` 计入初始观察但不得扩大授权
- **预算环外强制**:每一拍先 `judge` 再交引擎 —— 活动代码无从自查自守;
任一项触顶即 `exhausted`,空转即 `stalled`
- **监听中是健康态**:有监听在等或等人回传一律**不算停滞**
- **终态五名封闭**:`decideTerminal` 是唯一命名口;`released` 是唯一成功终态
- **已终结不得再推进**:`tick` / `deliver` 对终态任务抛 `TaskAlreadyTerminalError` ——
流级重做一律重开新实例,不复活旧任务
- **叫停不是终态**:转挂起待纠偏,并记**最重档纠正信号**
- **封卷触发蒸馏**:终态后 `seal` + `distill`,产出活动记忆候选条目
- **断点续跑靠三份持久状态**:任务记忆 / 草稿层 / 运行时实例状态,缺一即不可续