模块由两个并列子包组成,均作为 live enforcement gate 的外挂能力: - advisory/:定义 PreTradeAdvisoryInterface 抽象、AdvisoryContext/AdvisoryResult/AggregatedVerdict 数据契约及 Verdict 枚举;AdvisoryOrchestrator 顺序调用已注册的 provider 列表并取最严重 verdict 聚合,任何 provider 异常都被捕获并降级为 REVIEW_UNAVAILABLE,保证 fail-open;通过模块级 _advisory_providers 列表 + register_advisory_provider/clear_advisory_providers/get_advisory_providers 实现插件式注册;mock.py 提供带延迟、强制失败、调用历史记录的 MockAdvisory 用于测试。 - extractors/:维护 BROKER_EXTRACTORS: dict[str, OrderIntentExtractor] 查找表,将券商 key(如 robinhood)映射到其 connector 中的 extract_order_intent 函数;get_extractor 返回 None 时 gate 侧 fail-close/DENY,确保缺失解析器即拒绝交易。 依赖方向单向:本模块仅依赖 src.live.enforcement.OrderIntent 与具体 broker connector 的 extractor,不被 enforcement 反向引用,保持 broker-agnostic 边界。