Data Models & State Machines
Entity relationships, domain enums, and lifecycle state machines across all AnyaSelf services.
AnyaSelf organizes all data under the Household scope — every entity belongs to exactly one household.
erDiagram
Household ||--o{ Member : "has members"
Household ||--o{ WardrobeItem : "owns items"
Household ||--o{ Outfit : "owns outfits"
Household ||--o{ NormalizedOffer : "stores offers"
Household ||--o{ Mission : "runs missions"
Household ||--o{ PurchaseRequest : "tracks purchases"
Household ||--o{ HyperbeamSession : "spawns sessions"
Household ||--o{ FeedCollection : "curates collections"
Member ||--o{ WardrobeItem : "owns"
Member ||--o{ Outfit : "owns"
WardrobeItem ||--o{ ImageRef : "has images"
WardrobeItem }o--o{ Outfit : "composed into"
WardrobeItem }o--o{ FeedItemView : "appears in feed"
FeedItemView }o--o{ FeedCollection : "saved to"
Mission ||--o{ ChatMessage : "contains turns"
Mission ||--o{ Artifact : "produces"
Mission ||--o{ AuditEvent : "logs"
Mission }o--o| HyperbeamSession : "linked session"
NormalizedOffer }o--o| CartPrepJob : "automated checkout"
PurchaseRequest }o--o| CartPrepJob : "linked job"
HyperbeamSession ||--o{ IndexedElement : "DOM elements"
HyperbeamSession ||--o{ AgentAction : "action log"
Missions are stateful agent conversations managed by the Orchestrator.
stateDiagram-v2
[*] --> PLANNED : Create Mission
PLANNED --> RUNNING : First chat turn
RUNNING --> RUNNING : Agent reasoning loop
RUNNING --> NEEDS_USER : Awaiting user input / approval
NEEDS_USER --> RUNNING : User responds
RUNNING --> DONE : Mission goal achieved
RUNNING --> FAILED : Unrecoverable error
NEEDS_USER --> FAILED : Timeout / user cancellation
DONE --> [*]
FAILED --> [*]
| State | Description |
|---|
PLANNED | Mission created, initial message received, agent not yet invoked |
RUNNING | Agent is actively reasoning and executing tools |
NEEDS_USER | Agent has paused — waiting for user confirmation, approval, or additional input |
DONE | Mission completed successfully |
FAILED | Unrecoverable error or timeout |
| Type | Purpose |
|---|
STYLE | Conversational styling — agent searches wardrobe and commerce, recommends outfits |
POLL | Style poll — presents options for user preference ranking |
CARTPREP | Cart preparation — agent automates adding items to an e-commerce cart |
INTERACTIVE | Interactive session — agent controls a Hyperbeam browser session |
Purchase requests flow through the API Gateway and require multi-step confirmation.
stateDiagram-v2
[*] --> DRAFT : Create request
DRAFT --> SUBMITTED : Submit for approval
SUBMITTED --> APPROVED : Guardian approves
SUBMITTED --> REJECTED : Guardian rejects
APPROVED --> APPROVED : Intent created
APPROVED --> CART_READY : CartPrep job completes
CART_READY --> COMPLETED : User confirms checkout
APPROVED --> FAILED : CartPrep job fails
CART_READY --> FAILED : Checkout fails / TTL expires
REJECTED --> [*]
COMPLETED --> [*]
FAILED --> [*]
| State | Description |
|---|
DRAFT | Request created but not yet submitted |
SUBMITTED | Awaiting guardian approval |
APPROVED | Guardian approved — ready for purchase intent |
REJECTED | Guardian denied the purchase |
CART_READY | CartPrep automation succeeded, items are in the external cart |
COMPLETED | User confirmed final checkout with ephemeral confirmation token |
FAILED | Automation error, timeout, or checkout failure |
stateDiagram-v2
[*] --> CREATING : Create session
CREATING --> ACTIVE : Hyperbeam cloud browser ready
ACTIVE --> USER_TAKEOVER : User takes control
USER_TAKEOVER --> ACTIVE : User releases control
ACTIVE --> TERMINATED : Explicit terminate or mission ends
USER_TAKEOVER --> TERMINATED : Explicit terminate
ACTIVE --> EXPIRED : TTL exceeded
CREATING --> EXPIRED : Hyperbeam API timeout
TERMINATED --> [*]
EXPIRED --> [*]
stateDiagram-v2
[*] --> QUEUED : Create VTO job
QUEUED --> RUNNING : Worker picks up job
RUNNING --> SUCCEEDED : Inference complete
RUNNING --> FAILED : Model error or timeout
SUCCEEDED --> [*]
FAILED --> [*]
stateDiagram-v2
[*] --> QUEUED : Create job
QUEUED --> RUNNING : Process triggered
RUNNING --> CART_READY : Items added to external cart
RUNNING --> FAILED : Automation error
CART_READY --> [*]
FAILED --> [*]
Error Codes for Failed CartPrep Jobs:
| Code | Description |
|---|
BLOCKED_BOT_DETECTED | Site detected bot automation |
SIZE_UNAVAILABLE | Requested size out of stock |
POPUP_OVERLAY_UNRESOLVED | Cookie/modal overlay blocked interaction |
LOGIN_REQUIRED | Site requires authentication |
UNKNOWN_DOM | Unrecognized page structure |
TIMEOUT | Page or action timed out |
DOMAIN_NOT_ALLOWED | URL not in domain allowlist |
SAFETY_VIOLATION | Action violates safety policy |
INTERNAL_ERROR | Server-side error |
| Enum | Values |
|---|
ItemCategory | TOP, BOTTOM, DRESS, SHOES, ACCESSORY, OUTERWEAR, OTHER |
Season | SPRING, SUMMER, FALL, WINTER, ALL_SEASON |
ImageUploadStatus | PENDING, UPLOADED, FAILED |
FeedSource | OWNED, TRIED, PROFILE, MIXED, OTHER |
WardrobeEventType | wardrobe.item.created, wardrobe.item.updated, wardrobe.item.deleted, wardrobe.image.uploaded, wardrobe.embedding.ready, wardrobe.feed.engagement.updated, wardrobe.feed.collection.updated |
| Enum | Values |
|---|
OfferSource | MERCHANT_FEED, AFFILIATE, RETAILER_DIRECT, MANUAL_LINK |
OfferStatus | ACTIVE, EXPIRED, UNAVAILABLE |
| Enum | Values |
|---|
MissionState | PLANNED, RUNNING, NEEDS_USER, DONE, FAILED |
MissionType | STYLE, POLL, CARTPREP, INTERACTIVE |
PlanStepStatus | PENDING, IN_PROGRESS, DONE, FAILED |
ClientEventType | USER_LIKED_ITEM, USER_DISLIKED_ITEM, USER_TAKEOVER_START, USER_TAKEOVER_END, USER_APPROVED_REQUEST, USER_CONFIRMED_FINAL_CHECKOUT |
HyperbeamEventKind | HYPERBEAM_EXTENSION_EVENT, HYPERBEAM_TAKEOVER_CHANGED |
| Enum | Values |
|---|
SessionState | CREATING, ACTIVE, USER_TAKEOVER, TERMINATED, EXPIRED |
SessionRole | VIEWER, CONTROLLER |
AgentActionType | QUERY_ELEMENTS, CLICK, TYPE, SCROLL, NAVIGATE, SNAPSHOT |
ExtensionEventType | DOM_SNAPSHOT, ELEMENTS_INDEXED, ACTION_RESULT, PAGE_CONTEXT_CHANGED |
| Enum | Values |
|---|
VTOCategory | TOP, BOTTOM, DRESS, OUTERWEAR |
VTOJobState | QUEUED, RUNNING, SUCCEEDED, FAILED |
| Enum | Values |
|---|
ArtifactType | MissionPlan, OutcomeSummary, BrowserRecording, Transcript, AuditLog |
AuditEventSeverity | INFO, WARNING, CRITICAL |
AuditEventCategory | MISSION_LIFECYCLE, TOOL_CALL, PURCHASE_GATE, SAFETY_VIOLATION, USER_ACTION, SESSION_EVENT, DATA_ACCESS, SYSTEM |
| Enum | Values |
|---|
HouseholdRole | PARENT/GUARDIAN, ADULT_MEMBER, CHILD_MEMBER |
PurchaseRequestStatus | DRAFT, SUBMITTED, APPROVED, REJECTED, CART_READY, COMPLETED, FAILED |
ApprovalDecision | APPROVE, REJECT |