Skip to main content

shared/iface

The public consumer-facing interfaces. Cross-module imports go only through this package — never into another module's services/ or repository/ directories.

InterfaceProvided byConsumed by
UserProvideruserevery other module
NotificationSendernotificationauth, billing, subscriptions, agents
PDFProviderdocumentsbilling
GraphProvidergraphrag
AIModelProvideraimodelsrag, agents, sales
RAGQueryProviderragagents
JWTProviderauthidentity, any custom auth integration

This indirection is what makes the AI sidecar split zero-code for consumers: remote HTTP-backed implementations satisfy the same interfaces.