模块按 SPEC §7.5 的组件分层组织: - runtime/ 是持久化执行核心:runner.py 中的 LiveRunner 实现组件 #2(tick 循环)和 #7(主动过期),以注入式依赖(scheduler、reconcile_fn、agent_caller、clock、job_store、triggers)保持可测试;scheduler.py 提供基于 asyncio timer 的 R1 调度器,triggers.py 定义 INTERVAL/MARKET/EVENT 三类触发器并维护 MARKET_SPECS;reconcile.py 实现组件 #5,通过读取 broker 真实状态并与 runtime_state.json 比对分类出 matched/unknown_fill/orphan_order/mid_order_ambiguous 四类 delta;flatten.py、liveness.py、jobstore.py 分别承担 preemptive sweep、心跳写入与任务持久化。 - 顶层文件构成订单前置强制层:order_guard.py 的 LiveOrderGuardTool 在每个写工具调用前串行执行 mandate 加载→过期检查→halt 标志→意图提取→报价→mandate 校验→审计,所有失败路径 fail-closed;enforcement.py、classification.py、daily_count.py、sdk_order_gate.py 提供限额计算、资产分类、日计数与 SDK 侧 gate。 - 安全基础设施:halt.py 通过文件系统哨兵(全局 <runtime_root>/live/HALT + 可选 per-broker)实现 LLM 无关的 kill switch,并提供 register_halt_action hook 让 runner 在检测到 halt 时执行取消挂单/平仓的预emptive sweep;audit.py 统一记录 live-action 事件。 - 支撑子包:mandate/(模型、提交、存储)、advisory/(可选观察性顾问审查)、extractors/(broker 特定订单意图解析)、paths.py(运行时根目录约定 ~/.vibe-trading/live/)。依赖方向单向:runner → reconcile/scheduler/triggers/audit/halt;order_guard → enforcement/extractor/daily_count/audit;无反向依赖。