"""Composite Factor Repository Protocol(M7.2b)。""" from __future__ import annotations from typing import Protocol from app.domain.entities.composite import CompositeDefinition class CompositeRepository(Protocol): def save(self, definition: CompositeDefinition) -> CompositeDefinition: """新建组合(name 冲突抛 ValueError)。""" def get(self, composite_id: str) -> CompositeDefinition | None: ... def list(self) -> list[CompositeDefinition]: ... def delete(self, composite_id: str) -> bool: """删除;不存在返回 False。"""