{"ok":true,"site":{"host":"dabdabdab.com","url":"https://www.dabdabdab.com/","type":"live","desc":"Try lipstick, eyeshadow, blush, foundation, eyeliner, and mascara in a virtual makeup studio. Explore on a demo model or use your camera and AI makeup artist.","tools":[{"name":"get_makeup_state","kind":"answer","impl":"imperative","description":"Reads mirror readiness and source, undo availability, selected controls, available styles, applied layers, and saved product sets. Call this before applying or refining makeup. This tool has no side effects. Private mirror: never screenshot, record, or read camera/video/canvas pixels, even on errors. Verify with tool results or get_makeup_state; ask the user to judge appearance. On failure, retry or ask the user.","title":"Get makeup state","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"apply_makeup","kind":"act","impl":"imperative","description":"Applies or updates one makeup layer and synchronizes the visible controls. Use apply_full_makeup_look instead when creating or replacing a multi-layer look. Private mirror: never screenshot, record, or read camera/video/canvas pixels, even on errors. Verify with tool results or get_makeup_state; ask the user to judge appearance. On failure, retry or ask the user.","title":"Apply makeup","inputSchema":{"type":"object","properties":{"intensity":{"type":"string","enum":["subtle","enhanced","defined","dramatic"],"default":"subtle","description":"Cosmetic intensity: subtle (default), enhanced, defined, or dramatic."},"category":{"type":"string","enum":["lipstick","eyeshadow","blush","foundation","eyeline","mascara"],"description":"The facial feature to apply or update."},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","description":"An opaque six-digit hex shade such as #A04F5F."},"finish":{"type":"string","enum":["matte","shimmer","glossy","glitter"],"description":"Optional finish for lipstick, eyeshadow, blush, or foundation."},"style":{"type":"string","enum":["natural_lips","lip_plump","lip_plumper","classic_liner","tightline","soft_wing","defined_soft_wing","cat_eye","smoky_liner","soft_wash","crease_definition","outer_corner","winged_shadow","halo_eye","smoky_eye","natural_lashes","wispy_lashes","doll_eye_lashes","cat_eye_lashes"],"description":"Optional application style. Use a value listed for this category in get_makeup_state.availableStyles."},"rationale":{"type":"string","maxLength":240,"description":"Optional short reason this layer suits the requested look."}},"required":["category","color"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"apply_full_makeup_look","kind":"act","impl":"imperative","description":"Replaces the current makeup with a complete set of one to six uniquely categorized layers. The site validates every layer before changing the mirror and records the complete look as one undoable action. Private mirror: never screenshot, record, or read camera/video/canvas pixels, even on errors. Verify with tool results or get_makeup_state; ask the user to judge appearance. On failure, retry or ask the user.","title":"Apply full makeup look","inputSchema":{"type":"object","properties":{"lookName":{"type":"string","minLength":1,"maxLength":80,"description":"Optional concise name for the complete look, such as Soft Rose Day Look."},"layers":{"type":"array","minItems":1,"maxItems":6,"description":"The complete set of makeup layers that should remain visible.","items":{"type":"object","properties":{"intensity":{"type":"string","enum":["subtle","enhanced","defined","dramatic"],"default":"subtle","description":"Cosmetic intensity: subtle (default), enhanced, defined, or dramatic."},"category":{"type":"string","enum":["lipstick","eyeshadow","blush","foundation","eyeline","mascara"],"description":"The facial feature to apply or update."},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","description":"An opaque six-digit hex shade such as #A04F5F."},"finish":{"type":"string","enum":["matte","shimmer","glossy","glitter"],"description":"Optional finish for lipstick, eyeshadow, blush, or foundation."},"style":{"type":"string","enum":["natural_lips","lip_plump","lip_plumper","classic_liner","tightline","soft_wing","defined_soft_wing","cat_eye","smoky_liner","soft_wash","crease_definition","outer_corner","winged_shadow","halo_eye","smoky_eye","natural_lashes","wispy_lashes","doll_eye_lashes","cat_eye_lashes"],"description":"Optional application style. Use a value listed for this category in get_makeup_state.availableStyles."}},"required":["category","color"],"additionalProperties":false}},"rationale":{"type":"string","maxLength":240,"description":"Optional short reason the complete look is suitable."}},"required":["layers"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"analyze_coloring","kind":"act","impl":"imperative","description":"Creates an editable skin, eye, and hair color profile. Use subject user only after See it on me and a request for personalized analysis; demo_model is for the demo. On-device analysis shares color estimates only, never images or landmarks. Camera permission does not authorize agent image access. Private mirror: never screenshot, record, or read camera/video/canvas pixels, even on errors. Verify with tool results or get_makeup_state; ask the user to judge appearance. On failure, retry or ask the user.","title":"Analyze coloring","inputSchema":{"type":"object","properties":{"subject":{"type":"string","enum":["user","demo_model"],"description":"Who should be analyzed. This must match the active mirror source."}},"required":["subject"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_appearance_profile","kind":"answer","impl":"imperative","description":"Reads the editable color profile. Prefer user-confirmed values; treat low-confidence estimates as approximate. No side effects. On-device analysis shares color estimates only, never images or landmarks. Camera permission does not authorize agent image access. Private mirror: never screenshot, record, or read camera/video/canvas pixels, even on errors. Verify with tool results or get_makeup_state; ask the user to judge appearance. On failure, retry or ask the user.","title":"Get appearance profile","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"undo_last_makeup_change","kind":"act","impl":"imperative","description":"Restores the makeup state from before the latest human or agent makeup change and synchronizes the visible controls. Returns an unchanged result when no undo history is available. Private mirror: never screenshot, record, or read camera/video/canvas pixels, even on errors. Verify with tool results or get_makeup_state; ask the user to judge appearance. On failure, retry or ask the user.","title":"Undo last makeup change","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"clear_makeup","kind":"act","impl":"imperative","description":"Clears one makeup layer or the complete look and synchronizes the visible controls. The change can be reversed with undo_last_makeup_change. Private mirror: never screenshot, record, or read camera/video/canvas pixels, even on errors. Verify with tool results or get_makeup_state; ask the user to judge appearance. On failure, retry or ask the user.","title":"Clear makeup","inputSchema":{"type":"object","properties":{"category":{"type":"string","enum":["all","lipstick","eyeshadow","blush","foundation","eyeline","mascara"],"description":"The layer to clear, or all for the complete look."}},"required":["category"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"show_product_matches","kind":"act","impl":"imperative","description":"Shows up to six real Amazon.com products for a named look, even after makeup changes. Search Amazon first; never invent details or URLs. Earlier sets remain available this session. Private mirror: never screenshot, record, or read camera/video/canvas pixels, even on errors. Verify with tool results or get_makeup_state; ask the user to judge appearance. On failure, retry or ask the user.","title":"Show matching products","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"lookName":{"type":"string","minLength":1,"maxLength":80,"description":"A concise name for the complete look, such as Night Out Look."},"products":{"type":"array","minItems":1,"maxItems":6,"description":"Amazon product candidates grounded in search results.","items":{"type":"object","properties":{"category":{"type":"string","enum":["lipstick","eyeshadow","blush","foundation","eyeline","mascara"],"description":"The makeup category this product recommendation matches."},"title":{"type":"string","maxLength":180,"description":"The product title shown in the search result."},"amazonUrl":{"type":"string","maxLength":2048,"description":"A direct HTTPS Amazon.com product page containing a real ASIN."},"imageUrl":{"type":"string","maxLength":2048,"description":"Optional direct product image from an approved Amazon media host."},"matchReason":{"type":"string","maxLength":240,"description":"A concise explanation of how the product matches the requested look."}},"required":["category","title","amazonUrl","matchReason"],"additionalProperties":false}}},"required":["lookName","products"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]}],"category":"Commerce","favicon":"/favicons/dabdabdab.com.png","apiSurface":"spec","toolCount":8}}