"""存储接缝的两个实现:一个逐行追加进本地文件,一个只留在进程内存里。 **这一层公开,但不进 `polyloop/__init__.py`**,必须显式 import(`0003` 决策八第 9 条)。存储 是必填的装配项,库不给默认值:顺手提供一个默认实现等于替所有下游选了日志落在哪儿,而那是 每个项目自己的运维决定。调用方要么从这里挑一个,要么自己写一个。 **关系数据库那一种形态本库不提供。** 表结构、事务边界、连接管理都在项目那边,库替它写一个 通用实现只会写出一个谁都不合用的。存储接缝的意义就是让它自己实现,而契约套件 (`polyloop.testing`,见 `research-wiki/design/0014-contract-suite-distribution.md` 决策一) 是它的准入标准:那套用例只说行为、不碰形态,跑全绿就算合格。 **这一层也不提供「把日志转成别的格式」「按时间范围查」这类操作。** 存储接缝上多一个方法,就是 给每一个下游实现多加一份永久要求,而这些事拿 `read_log` 读回来的日志在库外面做即可。 """ from polyloop.stores._jsonl import RECORD_KEY, JsonlRunStore from polyloop.stores._volatile import VolatileRunStore __all__ = ["RECORD_KEY", "JsonlRunStore", "VolatileRunStore"]