# -*- coding: utf-8 -*- """iAOP-Core · 交接班摘要模块(shift-handover)—— 对齐 PRD 场景C / 5.4「④ LLM 网关」。 对外暴露 issue #53「移动端交接班摘要生成(NL)」的能力:把本班关键事件/能耗/待办/ 异常归一为 ``ShiftRecord``,按模板配置(``HandoverBriefConfig``)经 LLM(或离线 确定性降级)生成交接班摘要,并编译成移动端只读卡片可直接消费的 props。 LLM 以依赖注入形式传入(``llm_generate``),内核不绑定具体云端 SDK;未注入或调用 失败时自动降级为 ``render_deterministic_brief``(PRD「模型服务故障自动降级」、 「可用性 ≥ 99.8%」),保证离线/降级时交接班链路不中断。 测试:`python -m unittest discover -s tests -v`(在 core/shift-handover 目录下)。 验收:`python scripts/verify_handover_brief.py`。 """ from __future__ import annotations from .handover import ( # noqa: F401 DEFAULT_COLLAPSE_THRESHOLD, DEFAULT_MAX_EVENTS, DEFAULT_MAX_TODOS, DEFAULT_PROMPT_TEMPLATE, DEFAULT_PROMPT_VERSION, DEFAULT_REQUIRE_CONFIRM, HANDOVER_CONFIG_SCHEMA_ID, HANDOVER_CONFIG_SCHEMA_VERSION, HANDOVER_GENERATION_BUDGET_MS, MAX_ALLOWED_EVENTS, MAX_ALLOWED_TODOS, VALID_FONT_SIZES, VALID_SECTIONS, HandoverBriefConfig, HandoverConfigError, HandoverConfigValidationResult, ShiftEvent, ShiftRecord, ShiftTodo, build_llm_input, generate_handover_brief, load_handover_config, normalize_shift_record, render_deterministic_brief, render_handover_brief, validate_handover_config, within_generation_budget, ) __all__ = [ "DEFAULT_COLLAPSE_THRESHOLD", "DEFAULT_MAX_EVENTS", "DEFAULT_MAX_TODOS", "DEFAULT_PROMPT_TEMPLATE", "DEFAULT_PROMPT_VERSION", "DEFAULT_REQUIRE_CONFIRM", "HANDOVER_CONFIG_SCHEMA_ID", "HANDOVER_CONFIG_SCHEMA_VERSION", "HANDOVER_GENERATION_BUDGET_MS", "MAX_ALLOWED_EVENTS", "MAX_ALLOWED_TODOS", "VALID_FONT_SIZES", "VALID_SECTIONS", "HandoverBriefConfig", "HandoverConfigError", "HandoverConfigValidationResult", "ShiftEvent", "ShiftRecord", "ShiftTodo", "build_llm_input", "generate_handover_brief", "load_handover_config", "normalize_shift_record", "render_deterministic_brief", "render_handover_brief", "validate_handover_config", "within_generation_budget", ]