{"coderifts_version":"1.0","decision":"ALLOW","risk_score":0,"safe_for_agent":true,"breaking_changes":0,"patterns":[],"requires_migration":false,"evidence_quality":"LOW","timestamp":"2026-04-05T01:55:53.822Z","framework":"openai-functions","language":"python","snippet":"import requests\nimport json\n\nCODERIFTS_PREFLIGHT = \"https://app.coderifts.com/api/v1/public/preflight\"\n\ndef execute_with_coderifts_guard(function_call, spec_url):\n    \"\"\"Check CodeRifts before executing an OpenAI function call.\"\"\"\n    resp = requests.get(\n        CODERIFTS_PREFLIGHT,\n        params={\"url\": spec_url},\n        timeout=5\n    )\n    result = resp.json()\n\n    if result.get(\"decision\") == \"BLOCK\":\n        return {\n            \"role\": \"function\",\n            \"name\": function_call.get(\"name\", \"unknown\"),\n            \"content\": json.dumps({\n                \"error\": \"CODERIFTS_BLOCK\",\n                \"message\": f\"API change detected: {result.get('patterns', [])}\",\n                \"risk_score\": result.get(\"risk_score\", 0),\n                \"safe_for_agent\": False\n            })\n        }\n\n    # Safe — execute the function normally\n    actual_result = call_function(function_call)\n    return {\n        \"role\": \"function\",\n        \"name\": function_call[\"name\"],\n        \"content\": json.dumps(actual_result)\n    }\n\n# In your chat loop:\n# if message.function_call:\n#     result = execute_with_coderifts_guard(message.function_call, spec_url)\n#     messages.append(result)","description":"Add this check before executing any function call from OpenAI","preflight_url":"https://app.coderifts.com/api/v1/public/preflight","correlation_id":"24d9f372-2d97-47b7-bf98-989ddd877314"}