"""asf-events: canonical contracts for every message that travels on the ASF RabbitMQ backbone (both domain events and job-request envelopes). Service code NEVER constructs a message dict inline: always use one of the models in this package. This keeps producers and consumers typed. """ __version__ = "0.1.0" from asf_events.base import ASFEvent, JobRequestEnvelope from asf_events.artifact_events import ( ArtifactCreated, ArtifactUpdated, ArtifactDeleted, ArtifactRelationshipCreated, ArtifactRelationshipDeleted, ) from asf_events.ai_events import ( AIInferenceRequested, AIInferenceCompleted, AIInferenceFailed, ) from asf_events.identity_events import ( OrganizationCreated, ProjectCreated, ProjectUpdated, ) from asf_events.job_events import ( JobQueued, JobStarted, JobCompleted, JobFailed, JobCancelled, ) __all__ = [ "ASFEvent", "JobRequestEnvelope", "ArtifactCreated", "ArtifactUpdated", "ArtifactDeleted", "ArtifactRelationshipCreated", "ArtifactRelationshipDeleted", "AIInferenceRequested", "AIInferenceCompleted", "AIInferenceFailed", "OrganizationCreated", "ProjectCreated", "ProjectUpdated", "JobQueued", "JobStarted", "JobCompleted", "JobFailed", "JobCancelled", ]