M3(2/5): human-tool 与 release —— 卡协议与放行门

human-tool(L3):
- 三规矩机检:调用必附上下文(裸调用拒发)/ 回传即留痕 / 完成只出自放行通过
- 工单两模式 + 对话卡族的形态校验与回传校验;驳回必附意见;补全卡「没法填」旁路;
  决策卡自定义收尾项必附理由;已答不得再答(只增不改)
- 到达面两路(负责人 → 任务对话流;他人 → 系统消息);驳回重答 = 新卡实例、原卡闭合
- 调人预算由基座在环外强制;落地失败卡 = 执行工单的 preset

release(L4):
- 落地预检五项(入参 schema / 工具可用与授权 / 连接可达 / 目标预校验 / 数据冲突)
- 预检全过才发验收工单,卡面即已验证的动作清单;不过即打回环内,不发卡
- 放行写合并 + 幂等落地(任务 × 意向);落地收敛才发射输出口;
  受阻走落地失败卡且 emittedPorts 恒空;已成动作留存不回滚

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

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:28:49 +08:00
co-authored by Claude Opus 5
parent 146e9bbfad
commit 561a2474ae
31 changed files with 4194 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
/**
* module: human-tool —— 唯一出口。只做 re-export,不写逻辑(编码规范 §10.1)。
*/
export type {
AcceptanceWorkOrder,
AcceptanceWorkOrderDraft,
ArrivalSurface,
CardViolation,
ChatCard,
ChatCardReply,
ExecutionWorkOrder,
ExecutionWorkOrderDraft,
HumanToolService,
IssueContext,
IssuedChatCard,
IssuedWorkOrder,
ReplyOutcome,
WorkOrder,
WorkOrderReply,
} from './contract.ts';
export { BareCallError, HumanCallBudgetExceededError, ReplyRejectedError } from './contract.ts';
export type { CardStore, Clock, HumanEventPublisher, IdGenerator, MemoryRecorder, MessageOutbox } from './port.ts';
export type { HumanToolServiceDeps } from './internal/usecase/human-tool-service.ts';
export { createHumanToolService } from './internal/usecase/human-tool-service.ts';
export {
allCriteriaGreen,
ARRIVAL_SURFACES,
arrivalOf,
checkChatCard,
checkChatCardReply,
checkWorkOrder,
checkWorkOrderReply,
producesCompletion,
} from './internal/domain/card-rules.ts';
export { createCardStore } from './internal/adapter/card-store.ts';
export { chatCardTable, workOrderTable } from './internal/adapter/human-tool-schema.ts';