"""辰正:时态感知横切能力(rewrite/1.0 M8 重实现)。 计算核复用 modules/time_sense(snapshot/lunar——符文引擎依赖同源); 本模块提供投影级入口:``temporal_context()`` 产出【时态感知】提示段, 经符文展开后进入镜树/内核 prompt 组装。守一期间不得虚构等待与孤独 (identity-continuity.md §4)——时态只陈述客观时间语境。 """ from __future__ import annotations from datetime import UTC, datetime from app.modules.time_sense.snapshot import SnapshotInput, compute_snapshot _WEEKDAY_CN = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"] def _default_input(now: datetime | None) -> SnapshotInput: current = now or datetime.now(UTC) return SnapshotInput( now=current, timezone="Asia/Shanghai", anniversaries=[], acquaintance_anchor=current, last_active_at=current, ) def temporal_context(now: datetime | None = None) -> str: """时态感知投影段:客观时间语境(不附情绪臆测——那是调节层的事)。""" snap = compute_snapshot(_default_input(now)) weekday = _WEEKDAY_CN[snap.weekday] parts = [ f"现在是{snap.solar_date} {weekday} {snap.day_period}(本地时区 {snap.timezone})", ] if snap.lunar is not None: parts.append(f"农历{snap.lunar.month}月{snap.lunar.day}日") if snap.season: parts.append(snap.season) return "【时态感知】" + ",".join(parts) __all__ = ["temporal_context"]