{"name":"Eloquent Surfaces","description":"Agent-facing surfaces for Eloquent Surfaces.","url":"https://surfaces.eloquentanalytics.com","version":"1.0.0","capabilities":{"streaming":false,"pushNotifications":false},"authentication":{"schemes":["none"]},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"skills":[{"id":"list_surfaces","name":"list_surfaces","description":"List registered surfaces across the platform, each with its access_patterns[] and applicable modifiers[]. Default exposure filter: live ∪ experiment patterns whose cohort matches the visitor fingerprint; reserve is hidden unless exposure:'all'.","tags":["list_surfaces"]},{"id":"get_surface","name":"get_surface","description":"Get one surface by pattern_id (with its access_patterns[]). Returns an array when the pattern_id exists for multiple services and no service is given.","tags":["get_surface"]},{"id":"list_modifiers","name":"list_modifiers","description":"The cross-cutting modifiers, stated once on the page. Default exposure: live.","tags":["list_modifiers"]},{"id":"register_surface","name":"register_surface","description":"Upsert one surface row keyed by (service, pattern_id). exposure defaults to reserve on first insert; re-register refreshes category/metadata only.","tags":["register_surface"]},{"id":"register_access_pattern","name":"register_access_pattern","description":"Upsert one access_pattern row keyed by (service, pattern_id, access_key).","tags":["register_access_pattern"]},{"id":"register_modifier","name":"register_modifier","description":"Upsert one modifier row keyed by (service, modifier_id).","tags":["register_modifier"]},{"id":"set_exposure","name":"set_exposure","description":"Move a surface (or one access pattern) along reserve → experiment → live → deprecated; stamps exposure_since. The promote/retire lever.","tags":["set_exposure"]},{"id":"update_surface","name":"update_surface","description":"Partial update of a surface's metadata/category. 404 if absent.","tags":["update_surface"]},{"id":"upsert_experiment","name":"upsert_experiment","description":"Upsert an experiment (idempotent on id). Concluding one (status:concluded + decision) authorizes the matching set_exposure promote/retire.","tags":["upsert_experiment"]}]}