{"openapi":"3.1.0","info":{"title":"Taste Engine API","description":"API for extracting design guidelines and generating creative briefs","version":"1.0.0"},"paths":{"/health":{"get":{"tags":["health"],"summary":"Liveness Check","description":"Liveness probe - returns 200 if the process is up.","operationId":"liveness_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/full":{"get":{"tags":["health"],"summary":"Health Check","description":"Full health check. The gateway proxies to core via /v2 and has no\nin-repo downstream services to probe, so this reports process liveness.","operationId":"health_check_health_full_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/enhance/":{"post":{"tags":["prompt-enhancement","Prompt Enhancement"],"summary":"Enhance Prompt","description":"Enhance a website design prompt using brand guidelines (sync).\n\nFetches brand guidelines from an existing extraction (by URL or submission ID)\nand enhances the user's prompt with brand-specific design tokens.","operationId":"enhance_prompt_enhance__post","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnhanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnhanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/enhance/slides":{"post":{"tags":["prompt-enhancement","Prompt Enhancement"],"summary":"Enhance Slides Prompt","description":"Enhance a slides prompt using brand guidelines from an existing deck (sync).\n\nFetches deck analysis/guidelines from a previous slides extraction and\nenhances the user's prompt for brand-consistent slide creation.","operationId":"enhance_slides_prompt_enhance_slides_post","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlidesEnhanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnhanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Root","description":"Root endpoint.","operationId":"root__get","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"DesignSurface":{"type":"string","enum":["landing_page","product_page","pricing_page","about_page","blog_page","dashboard","marketing_site","saas_app","e_commerce","portfolio","other"],"title":"DesignSurface","description":"Type of design surface (website)."},"EnhanceRequest":{"properties":{"prompt":{"type":"string","minLength":1,"title":"Prompt","description":"The user's prompt to enhance","examples":["Create a landing page for a SaaS product"]},"url":{"type":"string","title":"Url","description":"URL or submission ID to fetch brand guidelines from","examples":["https://stripe.com","f33f811f-21bb-482c-81bc-c9d993989d3c"]},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID for tracking enhancements"},"strategy":{"$ref":"#/components/schemas/EnhancementStrategy","description":"Enhancement strategy","default":"structured"},"surface_type":{"anyOf":[{"$ref":"#/components/schemas/DesignSurface"},{"type":"null"}],"description":"Target design surface type"},"include_sections":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Include Sections","description":"Sections to include"},"exclude_sections":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclude Sections","description":"Sections to exclude"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for enhancement"},"auto_extract":{"type":"boolean","title":"Auto Extract","description":"If URL has no guidelines, trigger extraction first","default":false}},"type":"object","required":["prompt","url"],"title":"EnhanceRequest","description":"Request to enhance a website design prompt."},"EnhanceResponse":{"properties":{"id":{"type":"string","title":"Id","description":"Database record ID","default":""},"request_id":{"type":"string","title":"Request Id","default":""},"original_prompt":{"type":"string","title":"Original Prompt","default":""},"enhanced_prompt":{"type":"string","title":"Enhanced Prompt"},"structured_prompt":{"additionalProperties":true,"type":"object","title":"Structured Prompt"},"brand_context":{"additionalProperties":true,"type":"object","title":"Brand Context"},"reasoning":{"type":"string","title":"Reasoning","default":""},"processing_time_ms":{"type":"integer","title":"Processing Time Ms","default":0},"model_used":{"type":"string","title":"Model Used","default":""}},"type":"object","required":["enhanced_prompt"],"title":"EnhanceResponse","description":"Response from prompt enhancement (sync)."},"EnhancementStrategy":{"type":"string","enum":["full_rewrite","augment","structured","minimal"],"title":"EnhancementStrategy","description":"Strategy for enhancing prompts."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","default":"healthy"},"version":{"type":"string","title":"Version","default":"1.0.0"},"services":{"additionalProperties":{"type":"string"},"type":"object","title":"Services"}},"type":"object","title":"HealthResponse","description":"Health check response."},"SlideSurface":{"type":"string","enum":["pitch_deck","investor_deck","sales_deck","product_deck","company_overview","quarterly_review","team_update","workshop","training","webinar","conference","case_study","proposal","other"],"title":"SlideSurface","description":"Type of slide deck."},"SlidesEnhanceRequest":{"properties":{"prompt":{"type":"string","minLength":1,"title":"Prompt","description":"The user's prompt to enhance for slide deck creation","examples":["Create a pitch deck for our Series A fundraise"]},"submission_id":{"type":"string","title":"Submission Id","description":"Submission ID to fetch slides brand guidelines from","examples":["f33f811f-21bb-482c-81bc-c9d993989d3c"]},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"User ID for tracking enhancements"},"strategy":{"$ref":"#/components/schemas/EnhancementStrategy","description":"Enhancement strategy","default":"structured"},"slide_surface":{"anyOf":[{"$ref":"#/components/schemas/SlideSurface"},{"type":"null"}],"description":"Target slide deck type"},"num_slides":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Num Slides","description":"Target number of slides"},"include_slide_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Include Slide Types","description":"Slide types to include"},"exclude_slide_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclude Slide Types","description":"Slide types to exclude"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context for enhancement"}},"type":"object","required":["prompt","submission_id"],"title":"SlidesEnhanceRequest","description":"Request to enhance a slides prompt."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}