{"data":{"slug":"emmimal-control-layer","name":"control-layer","tagline":"A production-grade control layer that sits between your application logic and any LLM, input validation, schema enforcement, circuit breaking, targeted retry, and audit logging in one composable pipel","github_url":"https://github.com/Emmimal/control-layer","owner":"Emmimal","repo":"control-layer","owner_avatar_url":"https://avatars.githubusercontent.com/u/76683323?v=4","primary_language":"Python","stars":62,"forks":9,"topics":["anthropic","circuit-breaker","generative-ai","input-validation","llm","llm-guardrails","llm-ops","production-ai","prompt-engineering","python","structured-output"],"archived":false,"github_pushed_at":"2026-05-25T07:00:39+00:00","maintenance_label":"Steady","url":"https://www.graphcanon.com/tools/emmimal-control-layer","markdown_url":"https://www.graphcanon.com/tools/emmimal-control-layer.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/emmimal-control-layer","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=emmimal-control-layer","description":"A production-grade control layer that sits between your application logic and any LLM — input validation, schema enforcement, circuit breaking, targeted retry, and audit logging in one composable pipeline.","homepage_url":null,"license":"MIT","open_issues":0,"watchers":0,"ai_summary":null,"readme_excerpt":"## Installation\n\n```bash\ngit clone https://github.com/Emmimal/control-layer.git\ncd control-layer\npip install tiktoken tenacity pydantic structlog   # required\npip install pytest                                  # optional — for running tests\n```\n\nNo ML dependencies. No GPU required. All functionality runs on the Python standard library\nplus the four packages above.\n\n---\n\n---\n\n## Quick Start\n\n```python\nfrom control_layer import ControlLayer, ControlLayerConfig, ResponseSchema","github_created_at":"2026-05-18T04:38:38+00:00","created_at":"2026-07-15T10:45:27.675645+00:00","updated_at":"2026-07-15T10:45:30.439811+00:00","categories":[{"slug":"data-retrieval","name":"Data & Retrieval","url":"https://www.graphcanon.com/categories/data-retrieval","markdown_url":"https://www.graphcanon.com/categories/data-retrieval.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/data-retrieval"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"}],"tags":[{"slug":"anthropic","name":"anthropic"},{"slug":"circuit-breaker","name":"circuit-breaker"},{"slug":"generative-ai","name":"generative-ai"},{"slug":"input-validation","name":"input-validation"},{"slug":"llm","name":"llm"},{"slug":"llm-guardrails","name":"llm-guardrails"},{"slug":"llm-ops","name":"llm-ops"},{"slug":"production-ai","name":"production-ai"}],"trust":{"provenance":{"is_fork":false,"github_id":1242041584,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-15T10:45:28.618Z","maintenance":{"label":"Steady","score":60,"methodology":"github_public_v1","releases_90d":0,"days_since_push":51,"last_release_at":null},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-15T10:45:29.076Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-15T10:45:28.388Z"},"languages":{"value":["python"],"source":"github.language","observed_at":"2026-07-15T10:45:28.388Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-07-15T10:45:28.388Z"}}}}