rayhpeng 44cb9fd375 feat(harness): add feedback domain slice (model, ports, service)
Hexagonal inner ring for the feedback bounded context: frozen aggregate
with construct-time invariants (rating, reason-tag slugs), technology-
neutral ports (typing.Protocol), and the application service with
explicit user_id. Guarded by an AST purity test that keeps domain/ free
of infrastructure imports.
2026-07-23 15:30:33 +08:00

28 lines
727 B
Python

"""Feedback bounded context: a user's rating of a single run.
Public API of the context. Import domain objects and the service from
here; import ports (FeedbackRepository, RunLookup) from
`deerflow.domain.feedback.ports` -- they are contracts consumed by
adapters and tests, not everyday call-site symbols.
"""
from deerflow.domain.feedback.model import (
DuplicateFeedbackError,
Feedback,
FeedbackError,
InvalidRatingError,
InvalidTagError,
RunNotFoundError,
)
from deerflow.domain.feedback.service import FeedbackService
__all__ = [
"DuplicateFeedbackError",
"Feedback",
"FeedbackError",
"FeedbackService",
"InvalidRatingError",
"InvalidTagError",
"RunNotFoundError",
]