AnyaSelf Docs

Data Models & State Machines

Entity relationships, domain enums, and lifecycle state machines across all AnyaSelf services.

Entity Relationship Overview

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"

State Machines

Mission Lifecycle

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 --> [*]
StateDescription
PLANNEDMission created, initial message received, agent not yet invoked
RUNNINGAgent is actively reasoning and executing tools
NEEDS_USERAgent has paused — waiting for user confirmation, approval, or additional input
DONEMission completed successfully
FAILEDUnrecoverable error or timeout

Mission Types

TypePurpose
STYLEConversational styling — agent searches wardrobe and commerce, recommends outfits
POLLStyle poll — presents options for user preference ranking
CARTPREPCart preparation — agent automates adding items to an e-commerce cart
INTERACTIVEInteractive session — agent controls a Hyperbeam browser session

Purchase Request Lifecycle

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 --> [*]
StateDescription
DRAFTRequest created but not yet submitted
SUBMITTEDAwaiting guardian approval
APPROVEDGuardian approved — ready for purchase intent
REJECTEDGuardian denied the purchase
CART_READYCartPrep automation succeeded, items are in the external cart
COMPLETEDUser confirmed final checkout with ephemeral confirmation token
FAILEDAutomation error, timeout, or checkout failure

Hyperbeam Session Lifecycle

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 --> [*]

VTO Job Lifecycle

stateDiagram-v2
    [*] --> QUEUED : Create VTO job
    QUEUED --> RUNNING : Worker picks up job
    RUNNING --> SUCCEEDED : Inference complete
    RUNNING --> FAILED : Model error or timeout
    SUCCEEDED --> [*]
    FAILED --> [*]

CartPrep Job Lifecycle

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:

CodeDescription
BLOCKED_BOT_DETECTEDSite detected bot automation
SIZE_UNAVAILABLERequested size out of stock
POPUP_OVERLAY_UNRESOLVEDCookie/modal overlay blocked interaction
LOGIN_REQUIREDSite requires authentication
UNKNOWN_DOMUnrecognized page structure
TIMEOUTPage or action timed out
DOMAIN_NOT_ALLOWEDURL not in domain allowlist
SAFETY_VIOLATIONAction violates safety policy
INTERNAL_ERRORServer-side error

Domain Enums Reference

Wardrobe

EnumValues
ItemCategoryTOP, BOTTOM, DRESS, SHOES, ACCESSORY, OUTERWEAR, OTHER
SeasonSPRING, SUMMER, FALL, WINTER, ALL_SEASON
ImageUploadStatusPENDING, UPLOADED, FAILED
FeedSourceOWNED, TRIED, PROFILE, MIXED, OTHER
WardrobeEventTypewardrobe.item.created, wardrobe.item.updated, wardrobe.item.deleted, wardrobe.image.uploaded, wardrobe.embedding.ready, wardrobe.feed.engagement.updated, wardrobe.feed.collection.updated

Commerce

EnumValues
OfferSourceMERCHANT_FEED, AFFILIATE, RETAILER_DIRECT, MANUAL_LINK
OfferStatusACTIVE, EXPIRED, UNAVAILABLE

Orchestrator

EnumValues
MissionStatePLANNED, RUNNING, NEEDS_USER, DONE, FAILED
MissionTypeSTYLE, POLL, CARTPREP, INTERACTIVE
PlanStepStatusPENDING, IN_PROGRESS, DONE, FAILED
ClientEventTypeUSER_LIKED_ITEM, USER_DISLIKED_ITEM, USER_TAKEOVER_START, USER_TAKEOVER_END, USER_APPROVED_REQUEST, USER_CONFIRMED_FINAL_CHECKOUT
HyperbeamEventKindHYPERBEAM_EXTENSION_EVENT, HYPERBEAM_TAKEOVER_CHANGED

Hyperbeam Bridge

EnumValues
SessionStateCREATING, ACTIVE, USER_TAKEOVER, TERMINATED, EXPIRED
SessionRoleVIEWER, CONTROLLER
AgentActionTypeQUERY_ELEMENTS, CLICK, TYPE, SCROLL, NAVIGATE, SNAPSHOT
ExtensionEventTypeDOM_SNAPSHOT, ELEMENTS_INDEXED, ACTION_RESULT, PAGE_CONTEXT_CHANGED

VTO

EnumValues
VTOCategoryTOP, BOTTOM, DRESS, OUTERWEAR
VTOJobStateQUEUED, RUNNING, SUCCEEDED, FAILED

Artifacts & Audit

EnumValues
ArtifactTypeMissionPlan, OutcomeSummary, BrowserRecording, Transcript, AuditLog
AuditEventSeverityINFO, WARNING, CRITICAL
AuditEventCategoryMISSION_LIFECYCLE, TOOL_CALL, PURCHASE_GATE, SAFETY_VIOLATION, USER_ACTION, SESSION_EVENT, DATA_ACCESS, SYSTEM

API Gateway

EnumValues
HouseholdRolePARENT/GUARDIAN, ADULT_MEMBER, CHILD_MEMBER
PurchaseRequestStatusDRAFT, SUBMITTED, APPROVED, REJECTED, CART_READY, COMPLETED, FAILED
ApprovalDecisionAPPROVE, REJECT

On this page