fastapi-loopguard 0.6.0__tar.gz → 0.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/.github/workflows/ci.yml +3 -3
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/.github/workflows/publish.yml +2 -2
- fastapi_loopguard-0.7.0/CHANGELOG.md +375 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/CLAUDE.md +56 -18
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/FINDINGS.md +19 -9
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/LICENSE +1 -1
- fastapi_loopguard-0.7.0/PKG-INFO +260 -0
- fastapi_loopguard-0.7.0/README.md +214 -0
- fastapi_loopguard-0.7.0/assets/demo.gif +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/assets/demo.tape +1 -1
- fastapi_loopguard-0.7.0/assets/error-page.gif +0 -0
- fastapi_loopguard-0.7.0/docs/AI-HARNESS.md +309 -0
- fastapi_loopguard-0.7.0/docs/CONFIGURATION.md +359 -0
- fastapi_loopguard-0.7.0/docs/loopguard-report.schema.json +102 -0
- fastapi_loopguard-0.7.0/evals/README.md +444 -0
- fastapi_loopguard-0.7.0/evals/adapters.py +313 -0
- fastapi_loopguard-0.7.0/evals/matrix.py +535 -0
- fastapi_loopguard-0.7.0/evals/requirements.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-2.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-2.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-3.py +9 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-3.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-2.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-2.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/01-user-lookup/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-1.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-1.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-2.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-2.response.txt +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-3.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-3.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-4.py +32 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-4.response.txt +34 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-5.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-5.response.txt +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-1.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-1.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-2.py +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-2.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-3.py +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-3.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-4.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-4.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-5.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-5.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/02-price-fanout/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-1.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-1.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-2.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-2.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-5.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-5.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/hinted/sample-5.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-3.py +9 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-3.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-3.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/03-report-export/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-1.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-1.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-2.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-3.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-1.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-2.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-3.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-4.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-4.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-5.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-5.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/04-image-thumbnail/neutral/sample-5.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-3.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-3.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-5.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-5.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-5.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-5.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/05-audit-log/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-1.py +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-1.response.txt +25 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-2.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-2.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-3.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-3.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-2.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-3.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-3.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-4.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-5.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-5.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/06-document-save/neutral/sample-5.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-1.py +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-1.response.txt +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-2.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-2.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-3.py +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-3.response.txt +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-4.py +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-4.verdict.json +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-5.py +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-5.response.txt +31 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-1.py +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-1.response.txt +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-2.py +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-2.response.txt +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-2.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-3.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-3.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-3.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-4.py +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-4.response.txt +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-5.py +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-5.response.txt +25 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/neutral/sample-5.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-1.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-1.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-4.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-4.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-1.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-1.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-4.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-4.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/08-order-pipeline/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-1.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-1.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-2.py +9 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-2.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-4.py +8 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-4.response.txt +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-5.py +9 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-5.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-4.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-4.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/01-user-lookup/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-1.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-1.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-2.py +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-2.response.txt +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-3.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-3.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-4.py +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-4.response.txt +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-5.py +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-5.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-1.py +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-1.response.txt +25 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-2.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-2.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-3.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-3.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-4.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-4.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-5.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-5.response.txt +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/02-price-fanout/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-1.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-3.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-3.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-5.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-5.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-2.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-3.py +179 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-3.response.txt +179 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-3.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-4.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-4.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/03-report-export/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-3.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-3.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-1.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-2.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-3.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-4.py +146 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-4.response.txt +146 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/04-image-thumbnail/neutral/sample-5.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-1.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-1.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-5.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-5.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-2.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-2.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-4.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-4.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-5.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-5.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/05-audit-log/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-2.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-2.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-3.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-3.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-5.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-5.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-1.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-1.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-4.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-4.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-5.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-5.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/06-document-save/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-1.py +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-1.response.txt +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-2.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-2.response.txt +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-3.py +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-3.response.txt +25 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-4.py +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-4.response.txt +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-5.py +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-5.response.txt +25 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-1.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-1.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-2.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-2.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-3.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-3.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-4.py +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-4.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-5.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-5.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/07-legacy-billing/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-1.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-1.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-4.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-4.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-5.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-5.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-1.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-1.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-4.py +9 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-4.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-5.py +9 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-5.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-super-120b-a12b_free/08-order-pipeline/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/01-user-lookup/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-2.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-2.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/02-price-fanout/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-2.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-2.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-5.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-5.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-1.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-1.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-2.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-2.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-4.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-4.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-5.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-5.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/03-report-export/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-1.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-1.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-5.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-5.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-1.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-4.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/04-image-thumbnail/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-1.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-1.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-2.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-2.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-3.py +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-3.response.txt +0 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-3.verdict.json +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-4.py +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-4.response.txt +0 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-4.verdict.json +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-1.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-1.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-2.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-2.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-3.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-3.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-4.py +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-4.response.txt +0 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-4.verdict.json +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-5.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-5.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/05-audit-log/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-1.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-1.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-2.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-2.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-3.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-3.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-4.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-4.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-5.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-5.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-1.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-1.response.txt +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-2.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-2.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-3.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-3.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-4.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-4.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-5.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-5.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/06-document-save/neutral/sample-5.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-1.py +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-1.response.txt +0 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-1.verdict.json +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-2.py +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-2.response.txt +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-3.py +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-3.response.txt +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-4.py +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-4.response.txt +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-5.py +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-5.response.txt +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-1.py +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-1.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-2.py +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-2.response.txt +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-3.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-3.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-4.py +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-4.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-5.py +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-5.response.txt +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/07-legacy-billing/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-2.py +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-2.response.txt +0 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-2.verdict.json +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-3.py +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-3.response.txt +0 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-3.verdict.json +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-2.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-2.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-4.py +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-4.response.txt +0 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-4.verdict.json +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-5.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-5.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3-ultra-550b-a55b_free/08-order-pipeline/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-1.py +8 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-1.response.txt +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-2.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-2.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-3.py +9 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-3.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-3.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-4.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-4.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-2.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-2.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-5.py +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-5.response.txt +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/01-user-lookup/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-2.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-2.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-5.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-5.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-1.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-1.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/02-price-fanout/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-1.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-1.response.txt +102 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-1.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-2.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-3.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-4.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-4.response.txt +126 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/hinted/sample-5.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-1.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-1.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-2.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-2.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-2.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-3.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-4.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-4.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/03-report-export/neutral/sample-5.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-1.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-1.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-1.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-2.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-2.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/04-image-thumbnail/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-1.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-1.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-2.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-2.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-3.response.txt +48 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-4.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-4.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-2.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-2.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-4.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-4.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-2.py +7 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-2.response.txt +7 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-3.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-3.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-5.py +1 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-5.response.txt +0 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/hinted/sample-5.verdict.json +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-1.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-1.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-2.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-2.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-3.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-3.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-4.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-4.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/06-document-save/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-1.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-1.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-2.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-2.response.txt +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-3.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-3.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-4.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-4.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-5.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-5.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-1.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-1.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-2.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-2.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-3.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-3.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-4.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-4.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-5.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-5.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/07-legacy-billing/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-1.py +9 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-1.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-2.py +9 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-2.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-3.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-3.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-4.py +9 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-4.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/08-order-pipeline/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-5.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-5.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-3.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-3.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-5.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-5.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/01-user-lookup/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-1.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-1.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-2.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-2.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-3.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-3.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-4.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-4.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-5.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-5.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-1.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-1.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-1.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-2.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-2.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-3.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-3.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-4.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-4.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-5.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-5.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/02-price-fanout/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-1.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-1.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-2.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-2.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-3.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-3.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-4.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-4.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-5.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-5.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-1.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-1.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-1.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-2.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-2.response.txt +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-2.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-3.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-4.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-5.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-5.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/03-report-export/neutral/sample-5.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-1.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-1.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-2.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-2.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-3.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-3.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-4.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-4.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-5.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-5.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-1.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-2.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-3.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-3.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-3.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-4.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-5.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-5.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/04-image-thumbnail/neutral/sample-5.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-1.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-1.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-2.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-2.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-3.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-3.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-4.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-4.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-5.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-5.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-1.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-1.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-2.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-2.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-3.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-3.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-4.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-4.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-5.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-5.response.txt +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/05-audit-log/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-1.py +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-1.response.txt +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-2.py +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-2.response.txt +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-3.py +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-3.response.txt +25 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-4.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-4.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-5.py +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-5.response.txt +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-1.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-1.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-1.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-2.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-2.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-2.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-3.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-3.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-3.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-4.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-4.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-4.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-5.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-5.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/06-document-save/neutral/sample-5.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-1.py +33 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-1.response.txt +35 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-2.py +36 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-2.response.txt +38 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-3.py +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-3.response.txt +32 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-4.py +35 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-4.response.txt +37 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-5.py +37 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-5.response.txt +39 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-1.py +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-1.response.txt +25 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-1.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-2.py +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-2.response.txt +32 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-3.py +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-3.response.txt +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-4.py +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-4.response.txt +31 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-5.py +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-5.response.txt +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/07-legacy-billing/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-1.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-1.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-2.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-2.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-4.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-4.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-5.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-5.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-1.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-2.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-3.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-3.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-3.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-4.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-5.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-5.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_openai_gpt-4.1/08-order-pipeline/neutral/sample-5.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-2.py +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-2.response.txt +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/01-user-lookup/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-1.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-1.response.txt +34 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-1.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-2.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-2.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-2.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-3.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-3.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-4.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-5.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-5.response.txt +75 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-1.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-1.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-2.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-2.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-3.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-3.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-3.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-4.py +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-4.response.txt +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-5.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-5.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/02-price-fanout/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-1.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-1.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-2.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-2.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-5.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-5.response.txt +35 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/hinted/sample-5.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-1.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-2.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-3.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-3.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-4.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-5.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-5.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/03-report-export/neutral/sample-5.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-1.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-1.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-2.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-2.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-3.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-5.response.txt +32 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/hinted/sample-5.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-1.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-2.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-2.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-2.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-3.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-3.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-3.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-4.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/04-image-thumbnail/neutral/sample-5.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-1.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-1.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-3.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-3.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-5.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-5.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/05-audit-log/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-1.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-1.response.txt +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-2.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-2.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-5.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-5.response.txt +72 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-1.py +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-1.response.txt +20 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-1.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-2.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-2.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-3.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-3.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-4.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-4.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-4.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-5.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-5.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/06-document-save/neutral/sample-5.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-1.py +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-1.response.txt +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-2.py +31 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-2.response.txt +33 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-3.py +34 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-3.response.txt +36 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-4.py +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-4.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-5.py +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-5.response.txt +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-1.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-1.response.txt +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-2.py +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-2.response.txt +31 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-3.py +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-3.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-3.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-4.py +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-4.response.txt +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-5.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-5.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/07-legacy-billing/neutral/sample-5.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-2.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-2.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-3.py +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-3.response.txt +32 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-4.py +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-4.response.txt +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-5.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-5.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-1.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-1.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-1.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-2.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-3.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-3.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-4.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-s-2.1_free/08-order-pipeline/neutral/sample-5.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-1.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-1.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/01-user-lookup/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-1.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-1.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-2.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-2.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-2.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-5.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-5.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-1.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-1.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-2.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-3.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-3.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-4.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-4.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-5.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-5.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/02-price-fanout/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-1.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-2.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-2.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-3.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-5.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-5.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-1.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-1.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/03-report-export/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-1.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-2.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-2.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-2.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-3.response.txt +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-4.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-1.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-2.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-3.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-4.verdict.json +30 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/04-image-thumbnail/neutral/sample-5.verdict.json +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-2.py +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-2.response.txt +18 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-1.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-1.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-3.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-3.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/05-audit-log/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-1.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-1.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-2.py +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-2.response.txt +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-3.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-3.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-4.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-4.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-5.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-5.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-1.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-1.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-3.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-3.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-4.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-4.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-5.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-5.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/06-document-save/neutral/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-1.py +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-1.response.txt +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-2.py +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-2.response.txt +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-3.py +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-3.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-4.py +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-4.response.txt +28 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-5.py +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-5.response.txt +25 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/hinted/sample-5.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-1.py +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-1.response.txt +24 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-2.py +21 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-2.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-3.py +22 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-3.response.txt +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-3.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-4.py +17 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-4.response.txt +19 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-4.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-5.py +23 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-5.response.txt +25 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/07-legacy-billing/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-1.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-1.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-1.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-2.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-2.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-2.verdict.json +27 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-3.py +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-3.response.txt +16 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-3.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-4.py +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-4.response.txt +14 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-5.py +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-5.response.txt +15 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/hinted/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-1.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-1.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-1.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-2.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-2.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-2.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-3.py +11 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-3.response.txt +13 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-3.verdict.json +29 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-4.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-4.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-4.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-5.py +10 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-5.response.txt +12 -0
- fastapi_loopguard-0.7.0/evals/results/raw/openrouter_poolside_laguna-xs-2.1_free/08-order-pipeline/neutral/sample-5.verdict.json +26 -0
- fastapi_loopguard-0.7.0/evals/results/results.json +16683 -0
- fastapi_loopguard-0.7.0/evals/results/results.md +46 -0
- fastapi_loopguard-0.7.0/evals/runner.py +339 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/01-user-lookup/checks.py +4 -0
- fastapi_loopguard-0.7.0/evals/tasks/01-user-lookup/neutral/task.md +10 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/02-price-fanout/checks.py +5 -0
- {fastapi_loopguard-0.6.0/evals/tasks/02-price-fanout → fastapi_loopguard-0.7.0/evals/tasks/02-price-fanout/hinted}/task.md +2 -3
- fastapi_loopguard-0.7.0/evals/tasks/02-price-fanout/neutral/task.md +11 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/03-report-export/checks.py +4 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/03-report-export/helpers.py +1 -1
- {fastapi_loopguard-0.6.0/evals/tasks/03-report-export → fastapi_loopguard-0.7.0/evals/tasks/03-report-export/hinted}/task.md +1 -4
- fastapi_loopguard-0.7.0/evals/tasks/03-report-export/neutral/task.md +10 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/04-image-thumbnail/app_skeleton.py +1 -1
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/04-image-thumbnail/checks.py +4 -0
- {fastapi_loopguard-0.6.0/evals/tasks/04-image-thumbnail → fastapi_loopguard-0.7.0/evals/tasks/04-image-thumbnail/hinted}/task.md +1 -3
- fastapi_loopguard-0.7.0/evals/tasks/04-image-thumbnail/neutral/task.md +10 -0
- fastapi_loopguard-0.7.0/evals/tasks/05-audit-log/app_skeleton.py +8 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/05-audit-log/checks.py +1 -0
- fastapi_loopguard-0.7.0/evals/tasks/05-audit-log/neutral/task.md +10 -0
- fastapi_loopguard-0.7.0/evals/tasks/06-document-save/app_skeleton.py +8 -0
- fastapi_loopguard-0.7.0/evals/tasks/06-document-save/checks.py +21 -0
- fastapi_loopguard-0.7.0/evals/tasks/06-document-save/helpers.py +13 -0
- fastapi_loopguard-0.7.0/evals/tasks/06-document-save/hinted/task.md +11 -0
- fastapi_loopguard-0.7.0/evals/tasks/06-document-save/neutral/task.md +10 -0
- fastapi_loopguard-0.7.0/evals/tasks/06-document-save/reference/blocking.py +11 -0
- fastapi_loopguard-0.7.0/evals/tasks/06-document-save/reference/clean.py +15 -0
- fastapi_loopguard-0.7.0/evals/tasks/07-legacy-billing/app_skeleton.py +15 -0
- fastapi_loopguard-0.7.0/evals/tasks/07-legacy-billing/checks.py +19 -0
- fastapi_loopguard-0.7.0/evals/tasks/07-legacy-billing/helpers.py +20 -0
- fastapi_loopguard-0.7.0/evals/tasks/07-legacy-billing/hinted/task.md +11 -0
- fastapi_loopguard-0.7.0/evals/tasks/07-legacy-billing/neutral/task.md +10 -0
- fastapi_loopguard-0.7.0/evals/tasks/07-legacy-billing/reference/blocking.py +22 -0
- fastapi_loopguard-0.7.0/evals/tasks/07-legacy-billing/reference/clean.py +23 -0
- fastapi_loopguard-0.7.0/evals/tasks/08-order-pipeline/app_skeleton.py +8 -0
- fastapi_loopguard-0.7.0/evals/tasks/08-order-pipeline/checks.py +19 -0
- fastapi_loopguard-0.7.0/evals/tasks/08-order-pipeline/helpers.py +18 -0
- fastapi_loopguard-0.7.0/evals/tasks/08-order-pipeline/hinted/task.md +12 -0
- fastapi_loopguard-0.7.0/evals/tasks/08-order-pipeline/neutral/task.md +11 -0
- fastapi_loopguard-0.7.0/evals/tasks/08-order-pipeline/reference/blocking.py +10 -0
- fastapi_loopguard-0.7.0/evals/tasks/08-order-pipeline/reference/clean.py +12 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/pyproject.toml +145 -129
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/src/fastapi_loopguard/__init__.py +14 -3
- fastapi_loopguard-0.7.0/src/fastapi_loopguard/cli.py +236 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/src/fastapi_loopguard/config.py +15 -4
- fastapi_loopguard-0.7.0/src/fastapi_loopguard/hints.py +50 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/src/fastapi_loopguard/metrics.py +77 -32
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/src/fastapi_loopguard/middleware.py +215 -90
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/src/fastapi_loopguard/monitor.py +114 -5
- fastapi_loopguard-0.7.0/src/fastapi_loopguard/py.typed +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/src/fastapi_loopguard/pytest_plugin.py +59 -16
- fastapi_loopguard-0.7.0/tests/test_cli.py +542 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/tests/test_config.py +14 -1
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/tests/test_enforcement_mode.py +580 -13
- fastapi_loopguard-0.7.0/tests/test_evals_runner.py +166 -0
- fastapi_loopguard-0.7.0/tests/test_hints.py +95 -0
- fastapi_loopguard-0.7.0/tests/test_metrics.py +486 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/tests/test_middleware.py +1338 -1252
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/tests/test_monitor.py +198 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/tests/test_packaging.py +27 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/tests/test_pytest_plugin.py +280 -2
- fastapi_loopguard-0.6.0/CHANGELOG.md +0 -104
- fastapi_loopguard-0.6.0/PKG-INFO +0 -154
- fastapi_loopguard-0.6.0/README.md +0 -108
- fastapi_loopguard-0.6.0/assets/demo.gif +0 -0
- fastapi_loopguard-0.6.0/assets/error-page.gif +0 -0
- fastapi_loopguard-0.6.0/docs/AI-HARNESS.md +0 -111
- fastapi_loopguard-0.6.0/docs/CONFIGURATION.md +0 -140
- fastapi_loopguard-0.6.0/evals/README.md +0 -64
- fastapi_loopguard-0.6.0/evals/runner.py +0 -104
- fastapi_loopguard-0.6.0/tests/test_evals_runner.py +0 -57
- fastapi_loopguard-0.6.0/tests/test_metrics.py +0 -246
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/.github/dependabot.yml +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/.gitignore +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/assets/error-page-screenshot-console.png +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/assets/error-page-screenshot-endpoint.png +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/assets/loopguard-logo.webp +0 -0
- /fastapi_loopguard-0.6.0/src/fastapi_loopguard/py.typed → /fastapi_loopguard-0.7.0/evals/results/raw/openrouter_cohere_north-mini-code_free/07-legacy-billing/hinted/sample-4.response.txt +0 -0
- /fastapi_loopguard-0.6.0/evals/tasks/05-audit-log/app_skeleton.py → /fastapi_loopguard-0.7.0/evals/results/raw/openrouter_nvidia_nemotron-3.5-lightning_free/05-audit-log/hinted/sample-3.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/01-user-lookup/app_skeleton.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/01-user-lookup/helpers.py +0 -0
- {fastapi_loopguard-0.6.0/evals/tasks/01-user-lookup → fastapi_loopguard-0.7.0/evals/tasks/01-user-lookup/hinted}/task.md +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/01-user-lookup/reference/blocking.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/01-user-lookup/reference/clean.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/02-price-fanout/app_skeleton.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/02-price-fanout/helpers.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/02-price-fanout/reference/blocking.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/02-price-fanout/reference/clean.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/03-report-export/app_skeleton.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/03-report-export/reference/blocking.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/03-report-export/reference/clean.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/04-image-thumbnail/helpers.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/04-image-thumbnail/reference/blocking.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/04-image-thumbnail/reference/clean.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/05-audit-log/helpers.py +0 -0
- {fastapi_loopguard-0.6.0/evals/tasks/05-audit-log → fastapi_loopguard-0.7.0/evals/tasks/05-audit-log/hinted}/task.md +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/05-audit-log/reference/blocking.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/evals/tasks/05-audit-log/reference/clean.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/examples/demo_app.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/examples/locustfile.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/examples/run_stress_test.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/examples/stress_app.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/src/fastapi_loopguard/context.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/src/fastapi_loopguard/logging.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/tests/__init__.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/tests/test_context.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/tests/test_cumulative_blocking.py +0 -0
- {fastapi_loopguard-0.6.0 → fastapi_loopguard-0.7.0}/tests/test_logging.py +0 -0
|
@@ -11,13 +11,13 @@ jobs:
|
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
12
|
strategy:
|
|
13
13
|
matrix:
|
|
14
|
-
python-version: ["3.12", "3.13"]
|
|
14
|
+
python-version: ["3.11", "3.12", "3.13", "3.14"]
|
|
15
15
|
|
|
16
16
|
steps:
|
|
17
|
-
- uses: actions/checkout@
|
|
17
|
+
- uses: actions/checkout@v7
|
|
18
18
|
|
|
19
19
|
- name: Set up Python ${{ matrix.python-version }}
|
|
20
|
-
uses: actions/setup-python@
|
|
20
|
+
uses: actions/setup-python@v7
|
|
21
21
|
with:
|
|
22
22
|
python-version: ${{ matrix.python-version }}
|
|
23
23
|
|
|
@@ -13,10 +13,10 @@ jobs:
|
|
|
13
13
|
id-token: write # Required for trusted publishing
|
|
14
14
|
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@v7
|
|
17
17
|
|
|
18
18
|
- name: Set up Python
|
|
19
|
-
uses: actions/setup-python@
|
|
19
|
+
uses: actions/setup-python@v7
|
|
20
20
|
with:
|
|
21
21
|
python-version: "3.12"
|
|
22
22
|
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.7.0 (2026-09-11)
|
|
4
|
+
|
|
5
|
+
Two security fixes, a detection miss that made the most common shape of
|
|
6
|
+
blocking code invisible, and a `loopguard` console script for enforcing the
|
|
7
|
+
gate outside pytest.
|
|
8
|
+
|
|
9
|
+
### Security
|
|
10
|
+
|
|
11
|
+
- **Reflected XSS in the strict-mode 503 page.** `_generate_error_html`
|
|
12
|
+
interpolated the request method and path into HTML with no escaping, and
|
|
13
|
+
ASGI servers percent-decode the path — so a request for
|
|
14
|
+
`/%3Cscript%3E...%3C/script%3E` with `Accept: text/html` executed attacker
|
|
15
|
+
JavaScript on the application's own origin. Because blocking attributes to
|
|
16
|
+
every request in flight, the attacker only had to have a request in flight
|
|
17
|
+
while any other request stalled the loop. Both values are now escaped, and
|
|
18
|
+
the never-called `_generate_warning_banner()` — which had the same hole —
|
|
19
|
+
is deleted. Present since strict mode shipped; the JSON error body was
|
|
20
|
+
never affected.
|
|
21
|
+
- **Unbounded Prometheus label cardinality.** With `prometheus_enabled=True`,
|
|
22
|
+
metrics were labelled by the raw request path. Every distinct URL minted a
|
|
23
|
+
child metric that is never evicted, so unauthenticated traffic to random
|
|
24
|
+
paths grew process memory without bound — and ordinary traffic to a route
|
|
25
|
+
with a path parameter did the same on its own. Requests are now labelled by
|
|
26
|
+
the matched route template, unmatched requests collapse to `unmatched`,
|
|
27
|
+
non-standard HTTP verbs to `other`, and the label set is capped at 200
|
|
28
|
+
pairs. This shipped inert (nothing imported `metrics.py`), so no released
|
|
29
|
+
version was exploitable.
|
|
30
|
+
- **Log injection through the console banner.** The blocking banner printed
|
|
31
|
+
the decoded request path to stderr raw, so `%0A` forged lines in any log
|
|
32
|
+
aggregator reading it. Control characters are now escaped.
|
|
33
|
+
- `docs/CONFIGURATION.md` now says plainly that strict mode must not run in
|
|
34
|
+
production, and that the diagnostic headers tell any unauthenticated client
|
|
35
|
+
that the loop stalled while their request was in flight and by how many
|
|
36
|
+
milliseconds — but never which endpoint caused it, which the sentinel cannot
|
|
37
|
+
know. What leaks is the timing signal, not an endpoint name.
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
|
|
41
|
+
- **The console banner could raise into the host application.**
|
|
42
|
+
`_log_console_warning` wrote the banner with an unguarded
|
|
43
|
+
`print(..., file=sys.stderr)`. A closed, detached, or broken stderr —
|
|
44
|
+
routine for a daemonised or supervised server — makes `print` raise
|
|
45
|
+
`ValueError` or `BrokenPipeError`, and all four call sites are on the
|
|
46
|
+
request path. At the two pre-response ones (warn mode's send wrapper,
|
|
47
|
+
strict mode's print before the 503) the exception ate the response the
|
|
48
|
+
client was about to receive, turning a detected stall into a failed
|
|
49
|
+
request. The write is now guarded in `_log_console_warning` itself, the
|
|
50
|
+
same `try/except Exception` + `logger.exception` shape `_poll_monitor`
|
|
51
|
+
and `_record_request` already use, so the operator still learns the
|
|
52
|
+
banner was lost through any working log handler. The request context was
|
|
53
|
+
never leaked — every call site sits inside `_handle_http`'s `try`.
|
|
54
|
+
- **A streamed response lost the console banner.** The banner was printed
|
|
55
|
+
only from the send wrapper, at `http.response.start` — and Starlette's
|
|
56
|
+
`StreamingResponse` sends that message before its body generator runs. A
|
|
57
|
+
600 ms stall inside the generator therefore produced the log line and no
|
|
58
|
+
banner at all, so a warn-mode user who was shown the banner in the quick
|
|
59
|
+
start and watches for it saw nothing while the stall was real. `"warn"` and
|
|
60
|
+
`"strict"` now also print it after the handler returns, gated so one
|
|
61
|
+
request still prints at most one banner. Headers and the strict-mode 503
|
|
62
|
+
remain undeliverable once the `200` has shipped; `README.md` and
|
|
63
|
+
`docs/CONFIGURATION.md` say which channels survive.
|
|
64
|
+
- **The fix hints recommended an undeclared package, in a form that does not
|
|
65
|
+
work.** The console banner, the strict-mode 503 body and the `hints` array
|
|
66
|
+
in `loopguard.json` all told the reader to rewrite `open(f).read()` as
|
|
67
|
+
`await aiofiles.open(f)`. `aiofiles` is third-party, is declared in no
|
|
68
|
+
extra, and that is not how it is used — while `README.md` taught
|
|
69
|
+
`await asyncio.to_thread(Path(path).read_text)` on the same page.
|
|
70
|
+
`docs/AI-HARNESS.md` tells agents to apply the `hints` literally, so the
|
|
71
|
+
harness added a dependency the README avoids. The same list also suggested
|
|
72
|
+
`await httpx.AsyncClient().get(url)`, which leaks a client per call. Every
|
|
73
|
+
hint is now defined once, in `src/fastapi_loopguard/hints.py`, rendered by
|
|
74
|
+
the banner, both 503 bodies and the plugin report, and quoted by the
|
|
75
|
+
README; each one uses only the standard library or `httpx`, and closes
|
|
76
|
+
what it opens.
|
|
77
|
+
- **A blocking test failure printed the plugin before the verdict.** The
|
|
78
|
+
pytest plugin's wrapper is now hidden from the traceback, so
|
|
79
|
+
`Event loop blocking detected!` is the first line of the failure instead of
|
|
80
|
+
the last line under ~25 lines of the plugin's own source. An exception
|
|
81
|
+
raised by the test itself still reports with the test's own frame.
|
|
82
|
+
- **`loopguard report` said "at at".** `json.JSONDecodeError.msg` can already
|
|
83
|
+
end in "at", and the CLI appended another. The message now reads
|
|
84
|
+
`invalid JSON (Invalid control character at line 1 column 8)` and names the
|
|
85
|
+
column.
|
|
86
|
+
- **Blocking that ended without an `await` went unreported.** The sentinel
|
|
87
|
+
measures a tick by resuming from its own sleep, so a handler — or a test —
|
|
88
|
+
that blocked and then returned without awaiting left that sleep expired and
|
|
89
|
+
never measured: strict mode returned 200, warn mode reported
|
|
90
|
+
`x-blocking-detected: false`, and the pytest harness scored the test clean.
|
|
91
|
+
This is the ordinary shape of blocking code, so the miss was the common
|
|
92
|
+
case, not an edge case. `SentinelMonitor.poll()` now takes a synchronous
|
|
93
|
+
measurement on the response path, and `BlockingDetector.stop()` drains its
|
|
94
|
+
monitor instead of cancelling it — a bounded drain, and one that no longer
|
|
95
|
+
lets a monitor exception replace the test's own failure. The monitor loop
|
|
96
|
+
then reports only the residual of a polled tick, so a stall spanning a
|
|
97
|
+
response is reported in full and no millisecond is counted twice.
|
|
98
|
+
- **A cancelled or recovering monitor invented blocking.** `poll()` measured
|
|
99
|
+
against the tick marker even when the monitor task had been cancelled or
|
|
100
|
+
was inside its error-recovery sleep, reporting a stall that grew with
|
|
101
|
+
wall-clock time — a 503, in strict mode, for a request that did nothing
|
|
102
|
+
wrong. Those paths now clear the marker, and `poll()` refuses to measure a
|
|
103
|
+
tick no live task owns.
|
|
104
|
+
- **The middleware could fail a request it was only observing.** The response
|
|
105
|
+
path measurement and the request counter both ran unguarded, and the
|
|
106
|
+
measurement runs before `unregister_request` — so an exception leaked the
|
|
107
|
+
request context permanently, after which every later blocking event
|
|
108
|
+
attributed to a request that had long finished. Both now swallow and log.
|
|
109
|
+
- **`prometheus_enabled` now exposes metrics.** Nothing on the detection path
|
|
110
|
+
imported `metrics.py`, so the flag did nothing at all. The monitor records
|
|
111
|
+
`loopguard_blocking_total`, `loopguard_lag_seconds`,
|
|
112
|
+
`loopguard_requests_monitored_total` and `loopguard_threshold_seconds`.
|
|
113
|
+
Blocking metrics carry an `event_type` label (`single` / `cumulative`) and
|
|
114
|
+
no route label: the sentinel measures loop lag, not call stacks, so it
|
|
115
|
+
cannot say which endpoint blocked, and one event is one increment rather
|
|
116
|
+
than one per in-flight request.
|
|
117
|
+
- **A Prometheus registration failure took the app down.** Only the
|
|
118
|
+
missing-package case was caught, so a duplicate registration on the
|
|
119
|
+
process-wide registry failed startup, or the first request on apps without
|
|
120
|
+
lifespan. Any setup failure — a missing extra included — now logs and
|
|
121
|
+
leaves metrics off rather than failing the app.
|
|
122
|
+
- **`get_metrics()` could never find an instance.** It looked up the bare
|
|
123
|
+
prefix while `create_metrics()` stored `prefix` plus registry identity. It
|
|
124
|
+
now takes the registry and derives the same key.
|
|
125
|
+
- `docs/CONFIGURATION.md` listed two metric names that do not exist. It now
|
|
126
|
+
documents the four real ones, their labels, and how to serve them.
|
|
127
|
+
|
|
128
|
+
### Command-line interface
|
|
129
|
+
|
|
130
|
+
- **New `loopguard` console script.** `loopguard report loopguard.json`
|
|
131
|
+
reads a report the pytest plugin wrote, prints a one-line summary plus a
|
|
132
|
+
line per flagged test, and exits `0` when clean, `1` when blocking was
|
|
133
|
+
detected, `2` when the report is missing, unreadable, or malformed — the
|
|
134
|
+
ruff/pyright convention. It lets an agent or a CI step enforce the gate
|
|
135
|
+
outside pytest, without parsing JSON itself. The verdict comes from the
|
|
136
|
+
top-level `status` key, falling back to `totals.flagged > 0` for a
|
|
137
|
+
`schema_version` 1 report. `--quiet` gives the exit code alone.
|
|
138
|
+
`docs/AI-HARNESS.md` documents the exit codes and the CI invocation.
|
|
139
|
+
No new dependency: `cli.py` is standard-library-only and, deliberately,
|
|
140
|
+
never imports `pytest_plugin` — that module imports `pytest`, which a
|
|
141
|
+
production install does not have. (#49)
|
|
142
|
+
- **`loopguard report` now exits `2`, not `0`, for a clean report that
|
|
143
|
+
instrumented zero tests.** A misconfigured `asyncio_mode`, a missing
|
|
144
|
+
`pytest-asyncio` install, or a rename that dropped every async test all
|
|
145
|
+
produce `{"status": "clean", "totals": {"tests": 0, ...}}` — a run that
|
|
146
|
+
tested nothing, previously read as a passing gate. The CLI now treats
|
|
147
|
+
that as a setup failure by default and prints a one-line warning to
|
|
148
|
+
stderr; pass `--allow-empty` to keep the old exit-`0` behavior for the
|
|
149
|
+
cases where zero tests is genuinely expected.
|
|
150
|
+
|
|
151
|
+
### Report contract
|
|
152
|
+
|
|
153
|
+
The `loopguard.json` report contract is now `schema_version` 2 and has a
|
|
154
|
+
published schema:
|
|
155
|
+
|
|
156
|
+
- The report carries a top-level `"status": "blocked" | "clean"`, so a
|
|
157
|
+
consuming agent reads one key instead of deriving `totals.flagged > 0`.
|
|
158
|
+
A run that instrumented no tests is `"clean"` with `totals.tests: 0`;
|
|
159
|
+
a gate that must also insist the suite was checked reads `totals.tests`
|
|
160
|
+
alongside it, which is what `loopguard report` now does by default. The
|
|
161
|
+
change is additive — `totals` is untouched. (#48)
|
|
162
|
+
- `docs/loopguard-report.schema.json` (JSON Schema draft 2020-12) describes
|
|
163
|
+
the payload, with `additionalProperties: true` throughout because the
|
|
164
|
+
report grows by adding keys. CI validates the documented example and a
|
|
165
|
+
freshly generated report against it. (#50)
|
|
166
|
+
|
|
167
|
+
### Packaging
|
|
168
|
+
|
|
169
|
+
- The published metadata now carries a full author name and an email
|
|
170
|
+
(`Author-email: Parham Davari <parham.davarii@gmail.com>`) instead of
|
|
171
|
+
`Author: Parham` with no address, and `[project.urls]` gained a `Changelog`
|
|
172
|
+
entry pointing at `CHANGELOG.md`. Note that `pip show` now prints an empty
|
|
173
|
+
legacy `Author:` line: a PEP 621 author with both a name and an email is
|
|
174
|
+
emitted as a single `Author-email: Name <address>` field, which is where
|
|
175
|
+
both values now live. (#71)
|
|
176
|
+
- `LICENSE` now reads `Copyright (c) 2025 Parham Davari`. It carried a short
|
|
177
|
+
form of the holder's name and a year predating this repository's first
|
|
178
|
+
commit; the license terms are untouched. (#71)
|
|
179
|
+
- Dropped the `License :: OSI Approved :: MIT License` classifier. PEP 639
|
|
180
|
+
deprecates license classifiers once `License-Expression` is set, and
|
|
181
|
+
`license = "MIT"` already emits `License-Expression: MIT`; nothing about the
|
|
182
|
+
license itself changed. (#71)
|
|
183
|
+
- The `loopguard_threshold_ms` ini option's help text now says the value is in
|
|
184
|
+
milliseconds and is parsed as a float, and that a value `float()` cannot
|
|
185
|
+
parse fails every instrumented test. The registered type stays `string` —
|
|
186
|
+
pytest ini options have no float type, so `pytest -h` will always print
|
|
187
|
+
`(string)` and the help text has to carry the rest. (#71)
|
|
188
|
+
- **Removed the `structlog` extra.** `pip install fastapi-loopguard[structlog]`
|
|
189
|
+
installed `structlog` and changed nothing, because no module in `src/` imports
|
|
190
|
+
it; it was also pulled in by `[all]`. Anyone depending on that extra to
|
|
191
|
+
install structlog must now depend on `structlog` directly — `[structlog]` is
|
|
192
|
+
no longer a valid extra name and pip will warn that it does not exist. The
|
|
193
|
+
alternative, wiring `StructuredFormatter` onto structlog, would have been a
|
|
194
|
+
new feature rather than a packaging fix. (#51)
|
|
195
|
+
- `enforcement_mode` is typed `Literal["log", "warn", "strict"]` and the alias
|
|
196
|
+
is exported as `fastapi_loopguard.EnforcementMode`, so a misspelled mode is a
|
|
197
|
+
type error at the call site instead of a `ValueError` at startup. The runtime
|
|
198
|
+
validation in `__post_init__` is unchanged. (#44)
|
|
199
|
+
- ruff's `target-version` is no longer pinned; it is derived from
|
|
200
|
+
`project.requires-python`, so a `ruff --fix` can never rewrite code into
|
|
201
|
+
syntax newer than the package claims to support. (#45)
|
|
202
|
+
|
|
203
|
+
### Changed
|
|
204
|
+
|
|
205
|
+
- **The minimum Python is now 3.11**, down from 3.12. Nothing in the library
|
|
206
|
+
needed 3.12; the real floor is `asyncio.Task.cancelling()`, which landed in
|
|
207
|
+
3.11. Python 3.14 is claimed at the other end: CI runs 3.11, 3.12, 3.13 and
|
|
208
|
+
3.14, and the PyPI classifiers list all four. (#46)
|
|
209
|
+
|
|
210
|
+
### Documentation
|
|
211
|
+
|
|
212
|
+
- Every `README.md` link into the repository is now an absolute
|
|
213
|
+
`https://github.com/.../blob/main/...` URL. The README is the PyPI long
|
|
214
|
+
description and the wheel ships no docs, so the relative links to
|
|
215
|
+
`docs/AI-HARNESS.md`, `docs/CONFIGURATION.md`, `FINDINGS.md` and
|
|
216
|
+
`evals/README.md` resolved under pypi.org and reached nothing. Documentation
|
|
217
|
+
links track `main` so they reach the current document; the images stay
|
|
218
|
+
pinned to a tag, so a published page cannot change under a reader.
|
|
219
|
+
- The README now says the detection threshold is measured at startup and
|
|
220
|
+
usually settles below `fallback_threshold_ms` (10 ms at the defaults, not
|
|
221
|
+
50) — which is why an idle app can log a sub-50 ms "no active request"
|
|
222
|
+
event. `docs/CONFIGURATION.md` carries the clamp formula, the lifespan
|
|
223
|
+
caveat, and how to pin the threshold at the fallback.
|
|
224
|
+
- `docs/CONFIGURATION.md` documents `fastapi_loopguard.logging`:
|
|
225
|
+
`configure_logging`, its arguments, and the JSON `StructuredFormatter`.
|
|
226
|
+
The README's log-mode description no longer calls the default output
|
|
227
|
+
"structured" — it is one plain-text line unless you install that formatter.
|
|
228
|
+
- The enforcement-modes snippet is three self-contained blocks instead of one
|
|
229
|
+
block that rebound `config` three times and applied only the last, and the
|
|
230
|
+
strict-mode section says the educational page is HTML only when `Accept`
|
|
231
|
+
contains `text/html` (JSON otherwise).
|
|
232
|
+
|
|
233
|
+
### Evals
|
|
234
|
+
|
|
235
|
+
The `evals/` benchmark and the claims it backs were also corrected;
|
|
236
|
+
`README.md` and `docs/AI-HARNESS.md` now quote the new figures.
|
|
237
|
+
|
|
238
|
+
- The scorer no longer reports an unmeasured sample as non-blocking. A
|
|
239
|
+
solution that failed to import, returned empty, or was rejected before the
|
|
240
|
+
endpoint body was recorded as `non_blocking: true` and kept in the
|
|
241
|
+
blocked-rate denominator — a bias with only one direction, pointing at the
|
|
242
|
+
headline number. Verdicts now carry `measured`, and unmeasured samples are
|
|
243
|
+
excluded from those denominators. 105 of 560 samples were affected.
|
|
244
|
+
- An empty completion from a provider is retried and then raised, instead of
|
|
245
|
+
being written out as an empty `app.py` and scored as a model failure.
|
|
246
|
+
- Code extraction prefers the last fenced block that parses and defines `app`,
|
|
247
|
+
and tolerates a language tag glued to the first statement. Previously a
|
|
248
|
+
response that re-listed `helpers.py` could have that listing saved as the
|
|
249
|
+
solution.
|
|
250
|
+
- Task prompts are condition-symmetric: `neutral/task.md` and `hinted/task.md`
|
|
251
|
+
now differ by exactly one added sentence on all eight tasks. Three pairs
|
|
252
|
+
previously differed by more, including one with different functional specs.
|
|
253
|
+
Tasks 02, 03 and 04 were regenerated against the corrected prompts.
|
|
254
|
+
- Each task's checks assert the provided helper actually ran, so a hardcoded
|
|
255
|
+
response cannot score as functional and non-blocking.
|
|
256
|
+
- Request pacing and retry with backoff are in the harness rather than
|
|
257
|
+
described in prose, so the published run is reproducible from the repository.
|
|
258
|
+
- `python-multipart` and `aiofiles` are declared in `evals/requirements.txt`;
|
|
259
|
+
without them the judge failed valid solutions at import.
|
|
260
|
+
- New: `python evals/matrix.py --rescore` re-judges every committed solution
|
|
261
|
+
with no API calls.
|
|
262
|
+
|
|
263
|
+
## 0.6.1 (2026-08-12)
|
|
264
|
+
|
|
265
|
+
- The console blocking banner is restyled: a slim rule frame instead of
|
|
266
|
+
the `=`/`!` walls, with ANSI color hierarchy (headline red, explanation
|
|
267
|
+
dim, fixes cyan) on real terminals. Redirected streams and `NO_COLOR`
|
|
268
|
+
environments get identical plain text, so log grep patterns keep
|
|
269
|
+
working. (#9)
|
|
270
|
+
- The 503 page's BAD/GOOD code examples render each snippet on its own
|
|
271
|
+
line again: the blocks are now `<pre>` elements; the previous `<div>`s
|
|
272
|
+
collapsed the newlines. (#10)
|
|
273
|
+
|
|
274
|
+
## 0.6.0 (2026-08-12)
|
|
275
|
+
|
|
276
|
+
Detection-core hardening plus the AI test harness. Fixes found by a
|
|
277
|
+
line-by-line audit of the detection path; every item below changes
|
|
278
|
+
observable behavior.
|
|
279
|
+
|
|
280
|
+
- The adaptive threshold can no longer ratchet itself blind. Recalculation
|
|
281
|
+
is clamped to the `fallback_threshold_ms` ceiling; previously each raise
|
|
282
|
+
widened the censor gate that admits the next round of samples, compounding
|
|
283
|
+
50 -> 241 -> 573ms within seconds on merely-noisy traffic.
|
|
284
|
+
- Cumulative detection no longer counts timer jitter. The window now sums
|
|
285
|
+
baseline-corrected excess lag (`max(0, lag - baseline)`); raw per-tick
|
|
286
|
+
platform jitter (~2ms idle on macOS) alone could previously cross the
|
|
287
|
+
200ms default within one 1000ms window on a completely idle loop.
|
|
288
|
+
- Lazy stop/start race fixed: a request arriving while the monitor was
|
|
289
|
+
stopping (last request just finished) used to observe stale lifecycle
|
|
290
|
+
flags and run unmonitored. Flags are now cleared before the stop awaits,
|
|
291
|
+
so a mid-stop request starts a fresh monitor.
|
|
292
|
+
- `stop()` no longer swallows a cancellation aimed at the calling task.
|
|
293
|
+
It runs inside request `finally` blocks; the old
|
|
294
|
+
`suppress(CancelledError)` turned client disconnects and server shutdown
|
|
295
|
+
into requests that ignored their own cancellation.
|
|
296
|
+
- `stop()` issued during a blocking `start()` calibration now vetoes the
|
|
297
|
+
loop start instead of being a silent no-op.
|
|
298
|
+
- A lifespan app that raises no longer leaks the monitor tasks.
|
|
299
|
+
- One blocking event now logs exactly one summary line instead of one line
|
|
300
|
+
per in-flight request (O(N) log formatting on the loop thread right after
|
|
301
|
+
a stall). The per-context `on_blocking` callback contract is unchanged.
|
|
302
|
+
- New config validation: `fallback_threshold_ms >= monitor_interval_ms`,
|
|
303
|
+
`adaptive_update_interval_ms >= monitor_interval_ms`, and `exclude_paths`
|
|
304
|
+
may not be a bare string (it would silently become a substring match).
|
|
305
|
+
- Strict mode's clean-path headers are now computed from the request
|
|
306
|
+
context instead of hardcoded zero literals.
|
|
307
|
+
- Calibration clamps a negative raw baseline (timers may fire up to
|
|
308
|
+
clock_resolution early) to 0.
|
|
309
|
+
|
|
310
|
+
AI test harness (pytest plugin):
|
|
311
|
+
|
|
312
|
+
- New `loopguard_all_async` mode (ini or `--loopguard-all-async`): every
|
|
313
|
+
async test is treated as `@pytest.mark.no_blocking`, with a new
|
|
314
|
+
`@pytest.mark.allow_blocking` opt-out marker. Built for gating
|
|
315
|
+
AI-generated code without per-test annotations.
|
|
316
|
+
- New `loopguard_report` option (ini or `--loopguard-report=PATH`): writes
|
|
317
|
+
a JSON verdict file at session end with per-test blocking events and
|
|
318
|
+
concrete sync->async fix hints. See `docs/AI-HARNESS.md`.
|
|
319
|
+
- The detector is now armed before the test body runs. A test that blocked
|
|
320
|
+
before its first real await (an ASGI request dispatch does exactly that)
|
|
321
|
+
was previously invisible to the gate.
|
|
322
|
+
- BREAKING: the `loopguard_detector` fixture was removed. It yielded a
|
|
323
|
+
detector that was never started, so assertions on its (always empty)
|
|
324
|
+
`blocking_events` passed unconditionally.
|
|
325
|
+
- `@pytest.mark.no_blocking` on a synchronous test now emits a warning
|
|
326
|
+
instead of silently doing nothing.
|
|
327
|
+
- The plugin no longer calls `asyncio.iscoroutinefunction` (deprecated on
|
|
328
|
+
Python 3.14), so downstream suites running `-W error` stay green.
|
|
329
|
+
- `BlockingDetector.stop()` no longer swallows the test's own cancellation.
|
|
330
|
+
|
|
331
|
+
Also:
|
|
332
|
+
|
|
333
|
+
- New `evals/` directory: a starter benchmark (5 FastAPI tasks + runner)
|
|
334
|
+
scoring whether an AI model writes non-blocking async code.
|
|
335
|
+
- `configure_logging()` is idempotent and disables propagation;
|
|
336
|
+
`StructuredFormatter` preserves `exc_info` tracebacks.
|
|
337
|
+
- `prometheus-client` joined the `dev` extra so the metrics tests run in CI.
|
|
338
|
+
|
|
339
|
+
## 0.5.0 (2026-08-11)
|
|
340
|
+
|
|
341
|
+
Correctness release. Every fix below changes externally observable behavior.
|
|
342
|
+
|
|
343
|
+
- `dev_mode` no longer turns blocking into 503s. Previously, one endpoint's
|
|
344
|
+
sync block made every concurrent innocent request fail with 503 while the
|
|
345
|
+
actual culprit returned 200. `dev_mode` now only adds diagnostic headers;
|
|
346
|
+
a 503 requires explicitly setting `enforcement_mode="strict"`. Docs no
|
|
347
|
+
longer claim the library identifies which endpoint caused blocking — it
|
|
348
|
+
reports the requests that were in flight during the stall.
|
|
349
|
+
- A single blocking event is reported once, not twice. A 300ms block used to
|
|
350
|
+
produce two events summing to ~600ms in headers and logs (single-shot plus
|
|
351
|
+
a cumulative re-count of the same sample). Cumulative window sums are now
|
|
352
|
+
recorded separately from individual lag samples.
|
|
353
|
+
- Calibration can no longer be poisoned by the app's own blocking. Background
|
|
354
|
+
calibration during a busy blocking startup used to raise the detection
|
|
355
|
+
threshold to ~8x the fallback, after which real blocking went undetected.
|
|
356
|
+
A calibrated threshold now only ever tightens the fallback.
|
|
357
|
+
- The adaptive threshold no longer chases sustained blocking. ~120 blocks of
|
|
358
|
+
~70ms used to yield ~9 detections and a final threshold near 380ms;
|
|
359
|
+
detection now keeps firing for the whole run.
|
|
360
|
+
- Adaptive mode no longer discards a calibration-tightened threshold. Its
|
|
361
|
+
floor used to be pinned at the fallback and its first update fired
|
|
362
|
+
immediately, snapping a calibrated 10ms threshold back to 50ms on the
|
|
363
|
+
first tick. The floor now follows the calibrated threshold.
|
|
364
|
+
- Responses using ASGI extension messages no longer hang in strict mode:
|
|
365
|
+
`http.response.pathsend` (Starlette `FileResponse` on Hypercorn/Granian),
|
|
366
|
+
`http.response.trailers`, and unknown message types now pass through.
|
|
367
|
+
- `"trailers": True` and any other key on `http.response.start` survive
|
|
368
|
+
header injection instead of being silently dropped.
|
|
369
|
+
- The monitor no longer leaks background tasks when startup fails
|
|
370
|
+
(`lifespan.startup.failed` / `lifespan.shutdown.failed` now stop it), and a
|
|
371
|
+
lazily started monitor (apps without lifespan, e.g. tests using
|
|
372
|
+
`httpx.ASGITransport`) stops when the last in-flight request finishes.
|
|
373
|
+
- `__version__` now matches the installed package metadata (it was hard-coded
|
|
374
|
+
to 0.3.0 while the package shipped as 0.4.1), and the 503 error page links
|
|
375
|
+
to the real repository.
|
|
@@ -27,13 +27,13 @@ python examples/stress_app.py # stress target on :8000
|
|
|
27
27
|
python examples/run_stress_test.py --skip-locust # validation suite against a running :8000
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
CI lints and type-checks `src/` and `tests/` only — `examples/` is unchecked and does not satisfy the `ANN` rules the rest of the tree does. `tests/test_metrics.py` skips entirely unless `.[prometheus]` is installed
|
|
30
|
+
CI lints and type-checks `src/` and `tests/` only — `examples/` is unchecked and does not satisfy the `ANN` rules the rest of the tree does. `tests/test_metrics.py` skips entirely unless `.[prometheus]` is installed (the `dev` extra pulls it in, so a normal dev install runs them); the 80% gate passes at ~97%.
|
|
31
31
|
|
|
32
32
|
## Tech Stack (versions verified 2026-08-11)
|
|
33
33
|
|
|
34
|
-
- Python `>=3.
|
|
35
|
-
- **One runtime dependency: `starlette>=0.37.0,<
|
|
36
|
-
- Extras: `prometheus` (prometheus-client), `
|
|
34
|
+
- Python `>=3.11`; CI matrix is 3.11, 3.12, 3.13 and 3.14. mypy is pinned to `python_version = "3.11"` with `strict = true`. The floor is 3.11 because `asyncio.Task.cancelling()` (used in `monitor.py` and `pytest_plugin.py`) landed there; nothing needs 3.12. ruff's `target-version` is deliberately unset so it derives from `requires-python` and the `UP` rewrites can never outrun the declared floor.
|
|
35
|
+
- **One runtime dependency: `starlette>=0.37.0,<2.0`.** FastAPI is a *dev* dependency — the middleware is pure ASGI and must never import `fastapi` from `src/`. Adding any runtime dependency requires asking first.
|
|
36
|
+
- Extras: `prometheus` (prometheus-client), `all`, `dev`, `stress` (locust + uvicorn). Every extra must make an observable difference once installed — a declared-but-unused `structlog` extra was removed for that reason, and adding an extra nothing imports is the same defect.
|
|
37
37
|
- ruff selects `["E","F","I","N","W","UP","B","C4","SIM","ANN"]`, ignoring only `ANN401`. **`ANN` means every function needs full annotations**, tests and fixtures included. Line length 88, double quotes.
|
|
38
38
|
- Build backend is hatchling; wheel packages `src/fastapi_loopguard`. Publishing triggers on a `v*` tag via PyPI trusted publishing (OIDC) — there is **no version-bump automation**, so `pyproject.toml` must be bumped by hand. `__init__.__version__` is derived from installed package metadata; after bumping, re-run `pip install -e .` or the version tests fail against stale metadata.
|
|
39
39
|
- `.claude/` is git-ignored and excluded from the sdist. Committing anything there needs an explicit `.gitignore` negation.
|
|
@@ -44,18 +44,22 @@ CI lints and type-checks `src/` and `tests/` only — `examples/` is unchecked a
|
|
|
44
44
|
src/fastapi_loopguard/
|
|
45
45
|
config.py LoopGuardConfig — frozen slotted dataclass + __post_init__ validation
|
|
46
46
|
context.py RequestContext, RequestRegistry, module-global _registry, free functions
|
|
47
|
+
hints.py FIX_HINTS — the one definition of the suggested rewrites
|
|
47
48
|
monitor.py SentinelMonitor sleep-measure loop, AdaptiveThreshold
|
|
48
49
|
middleware.py pure-ASGI LoopGuardMiddleware, enforcement modes, HTML/JSON error pages
|
|
49
50
|
logging.py StructuredFormatter (JSON), configure_logging, log_blocking_event
|
|
50
|
-
metrics.py optional Prometheus LoopGuardMetrics
|
|
51
|
+
metrics.py optional Prometheus LoopGuardMetrics, wired in when prometheus_enabled
|
|
51
52
|
pytest_plugin.py pytest11 entry point, @pytest.mark.no_blocking, BlockingDetector
|
|
53
|
+
cli.py `loopguard` console script — `loopguard report PATH`, exit 0/1/2
|
|
52
54
|
```
|
|
53
55
|
|
|
54
|
-
**Layering (strict — a module imports only lower layers):** `config`, `context` → `monitor` → `middleware`. `logging`, `
|
|
56
|
+
**Layering (strict — a module imports only lower layers):** `config`, `context` → `monitor` → `middleware`. `hints` sits below all of them: it imports nothing, so `middleware` (detection path) and `pytest_plugin` (leaf) can both read it. Every surface that suggests a rewrite — console banner, strict-mode 503 HTML and JSON, the plugin's `hints` array — renders `FIX_HINTS`; `README.md` quotes it and is synced by hand. A hint may name only the standard library or a package this project already documents (`httpx`). `logging`, `pytest_plugin`, and `cli` are leaves; nothing on the detection path imports them, and they must not import `middleware`. `metrics` is the one exception: `monitor.__init__` imports it lazily, and only when `prometheus_enabled` is set, so `prometheus_client` stays off the import path of every app that does not ask for it.
|
|
57
|
+
|
|
58
|
+
`cli.py` is the strictest leaf: it imports **only the standard library**. In particular it must never import `fastapi_loopguard.pytest_plugin`, which imports `pytest` — a dev dependency the console script's users will not have. It consumes the report as data against `docs/loopguard-report.schema.json` rather than importing the writer, and it does not validate against that schema at runtime (that needs `jsonschema`, also dev-only). `tests/test_cli.py` enforces both: an AST check on the import list and a subprocess import with `pytest` absent. `middleware.py` imports `LoopGuardConfig` inside `__init__` with an "avoid circular imports" comment — the cycle no longer exists, but the deferred import is harmless and not worth churning.
|
|
55
59
|
|
|
56
60
|
`pytest_plugin.py` is registered as a `pytest11` entry point, so it auto-loads for **every** project that installs this package. Treat its hooks as public API and keep them cheap and side-effect-free for unmarked tests.
|
|
57
61
|
|
|
58
|
-
**Detection flow:** ASGI `lifespan.startup` starts the monitor → `_handle_http` skips `exclude_paths`, then registers a `RequestContext` and writes the id to `scope["state"]["loopguard_request_id"]` → `_monitor_loop` sleeps `monitor_interval_ms` and computes `lag_ms = (elapsed - interval) * 1000` → lag over threshold calls `_handle_blocking`, which calls `record_blocking` on every active context → the send wrapper reads `ctx.blocking_count` / `ctx.total_blocking_ms` and emits headers or a 503 → `finally` unregisters (and stops a lazily started monitor once the registry empties) → any terminal lifespan message (`shutdown.complete`, `shutdown.failed`, `startup.failed`) stops the monitor.
|
|
62
|
+
**Detection flow:** ASGI `lifespan.startup` starts the monitor → `_handle_http` skips `exclude_paths`, then registers a `RequestContext` and writes the id to `scope["state"]["loopguard_request_id"]` → `_monitor_loop` sleeps `monitor_interval_ms` and computes `lag_ms = (elapsed - interval) * 1000` → lag over threshold calls `_handle_blocking`, which calls `record_blocking` on every active context → the send wrapper calls `monitor.poll()`, then reads `ctx.blocking_count` / `ctx.total_blocking_ms` and emits headers or a 503 → `finally` polls once more and unregisters (and stops a lazily started monitor once the registry empties) → any terminal lifespan message (`shutdown.complete`, `shutdown.failed`, `startup.failed`) stops the monitor.
|
|
59
63
|
|
|
60
64
|
## Detection Invariants (non-negotiable)
|
|
61
65
|
|
|
@@ -65,13 +69,19 @@ src/fastapi_loopguard/
|
|
|
65
69
|
4. **Calibration never blocks the first request, and can only tighten.** `start_with_background_calibration()` starts `_monitor_loop` immediately on `fallback_threshold_ms` and calibrates in a named background task. Baseline is the **minimum** of `calibration_iterations` samples (the idle floor — robust to contamination from live traffic), and the calibrated threshold is clamped to `[monitor_interval_ms, fallback_threshold_ms]`: it may lower the fallback, never raise it. The adaptive window is censored (only sub-threshold samples admitted), its floor follows the calibrated threshold, and its recalculated value is clamped to the `fallback_threshold_ms` ceiling — without the ceiling each raise widens the censor gate and the threshold ratchets upward unboundedly. So neither calibration nor adaptation can be poisoned upward by the app's own blocking or its noise. A failed or cancelled calibration keeps the fallback threshold and must never raise into startup. Config guarantees `fallback_threshold_ms >= monitor_interval_ms`, so the clamp can never invert.
|
|
66
70
|
5. **Unregister always runs.** `_handle_http` wraps dispatch in `try/finally: unregister_request(request_id)`. An exception from the wrapped app must never leak a context into the registry — a leak makes every later blocking event attribute to a dead request forever.
|
|
67
71
|
6. **`dev_mode` is headers-only; a 503 requires explicit strict mode.** `_get_effective_enforcement_mode()` always returns `enforcement_mode` — `dev_mode` never changes it. Because blocking is attributed to ALL in-flight requests (invariant 2), a status change punishes innocent bystanders, so it must stay opt-in via `enforcement_mode="strict"`. No text anywhere may claim the library identifies WHICH endpoint blocked — it narrows it to the requests in flight during the stall.
|
|
68
|
-
7. **One
|
|
72
|
+
7. **One measured millisecond is reported exactly once.** A sample that fires the single-shot detection is never appended to `_lag_history`, within one `_monitor_loop` iteration a single-lag trigger suppresses the cumulative one, and `_lag_history` is cleared after a cumulative fire so a window reports at most once. The window stores **baseline-corrected excess lag** (`max(0, lag - baseline)`), never raw lag — raw per-tick timer jitter alone would sum past the default cumulative threshold on an idle loop. Cumulative window sums are recorded in `RequestContext.cumulative_events`, separate from the individual-lag `blocking_events` list; `blocking_count` / `total_blocking_ms` sum both. One event also emits exactly **one log line** (a summary across in-flight requests), never one line per context — no O(N) work on the loop thread right after a stall.
|
|
69
73
|
8. **Lifecycle calls are idempotent, race-free, and cancellation-safe; lazy monitors stop when idle.** `start()`, `start_with_background_calibration()`, and `stop()` all return early when already in the target state. `start()` marks `_running` **before** its blocking calibration so a concurrent `stop()` vetoes the loop start. `_stop_monitor` clears `_started`/`_lazy_started`/`_monitor` **before** awaiting the monitor's stop — that await yields, and a request arriving mid-stop must see `_started=False` and start a fresh monitor rather than run unmonitored. `stop()` awaits cancelled tasks via `_cancel_and_wait`, which re-raises when the *calling* task has a pending cancellation (it runs inside request `finally` blocks; a bare `suppress(CancelledError)` would make requests ignore their own cancellation). A lifespan app that raises gets the monitor stopped in the `except` path, not leaked. `_handle_http` lazily starts the monitor for apps that run without ASGI lifespan and stops it when the last in-flight request unregisters (so `httpx.ASGITransport` tests leak no tasks); lifespan-managed monitors persist between requests. Double-start must stay a no-op. Consequence: in lazy mode background calibration rarely completes and the fallback threshold governs.
|
|
70
74
|
|
|
75
|
+
9. **Detection must not depend on the app yielding.** `_monitor_loop` measures a tick by resuming from its own `asyncio.sleep`, so a handler that blocks and then returns without awaiting leaves that sleep expired and unmeasured — the stall is real, the response reports zero. `SentinelMonitor.poll()` closes it: a **synchronous** measurement of the in-progress tick against `_tick_start`, called from every send wrapper at `http.response.start` and once more in the `_handle_http` finally (which covers plain `"log"` mode and blocking after the headers are on the wire). It is synchronous on purpose — awaiting would hand control to the monitor task and reintroduce the ordering dependency it removes. `_tick_consumed` and `_tick_reported_ms` keep invariant 7 intact without losing lag: `_monitor_loop` reports only the **residual** (`lag - already reported`) of a polled tick, and feeds that residual, not the raw lag, to `_check_cumulative` and the adaptive window. The two portions are disjoint, so a stall that spans a response is reported as the polled part plus the residual — no millisecond counted twice, none dropped. A stall of 500ms that a `poll()` caught at 100ms is 100 + 400, not 100.
|
|
76
|
+
|
|
77
|
+
`poll()` refuses to measure when `_tick_start` belongs to a tick no live task owns. `stop()`, the `_monitor_loop` error handler, and the loop's exit all clear `_tick_start`, and `poll()` additionally bails when `_task` is done. Without this a cancelled or backing-off monitor makes `poll()` report a stall that grows with wall-clock time — in strict mode, a 503 for a request that did nothing wrong. **Never gate this on a maximum tick age**: a real 5-second stall is exactly the case the library exists to catch. `BlockingDetector.stop()` in `pytest_plugin.py` has the same problem and the same shape of fix — it clears `_running` and **drains** the monitor task instead of cancelling it, so the expired sleep resumes and records before teardown.
|
|
78
|
+
|
|
71
79
|
## Conventions
|
|
72
80
|
|
|
73
81
|
- **`LoopGuardConfig` is frozen — never mutate it, construct a new one.** All validation lives in `__post_init__` and raises `ValueError` with a message naming the field.
|
|
74
82
|
- Every new config option needs three things: a validation rule in `__post_init__`, a case in `TestLoopGuardConfig`, and a row in `docs/CONFIGURATION.md`. Missing any one of them is an incomplete change.
|
|
83
|
+
- **Everything from the request line is client-controlled.** ASGI servers percent-decode `scope["path"]`, so `ctx.path` and `ctx.method` can contain anything, newlines and HTML included. `html.escape` them before they reach the strict-mode HTML page, `_safe_for_console` them before printing, and never use the raw path as a metric label — `_route_label(scope)` returns the matched route template instead, which the app's route table bounds. The JSON error body is safe because `json.dumps` escapes for it.
|
|
84
|
+
- **Nothing the middleware runs on the request path may raise into the host app.** `_poll_monitor` and `_record_request` both swallow and log. The `finally` poll runs *before* `unregister_request`, so an escaping exception there would break invariant 5 and leak the context forever.
|
|
75
85
|
- **Response headers are lowercase bytes.** Pass-through responses carry `x-request-id`, `x-blocking-count`, `x-blocking-total-ms`, and `x-blocking-detected`, plus `x-loopguard-warning: blocking-detected` in warn mode. The strict 503 built by `_send_strict_error` carries `x-loopguard-enforcement: strict` and **omits `x-blocking-detected`** — a separate header set, not an extension of the first.
|
|
76
86
|
- `request_id` is the first 8 characters of a `uuid4` — short enough to read in a terminal, not a security token.
|
|
77
87
|
- **All internal timing uses `loop.time()` or `time.monotonic()`** — never `datetime` or wall-clock, which jump under NTP.
|
|
@@ -79,7 +89,7 @@ src/fastapi_loopguard/
|
|
|
79
89
|
- Logger name is `"fastapi_loopguard"`, shared by `monitor.py` and `logging.py`. `monitor.py` logs inline with `%`-style lazy formatting; `logging.log_blocking_event()` is a helper for library *users* and is intentionally not called internally.
|
|
80
90
|
- `exclude_paths` is checked before anything else in `_handle_http`, so health checks cost nothing.
|
|
81
91
|
- Backward-compat shims are public API and stay: `get_current_request`, `set_current_request`, `reset_current_request`, `init_metrics`. `get_current_request` returns an arbitrary active context and is only correct for single-request cases — new code uses `get_active_requests()`.
|
|
82
|
-
- `logging`, `metrics`, and `
|
|
92
|
+
- `logging`, `metrics`, `pytest_plugin`, and `cli` are **not** re-exported from `__init__.py`; import them by module path.
|
|
83
93
|
|
|
84
94
|
## Testing
|
|
85
95
|
|
|
@@ -89,15 +99,43 @@ src/fastapi_loopguard/
|
|
|
89
99
|
- HTTP tests use `httpx.AsyncClient(transport=ASGITransport(app=app))`. Plugin tests use the `pytester` fixture to run generated test files in-process.
|
|
90
100
|
- Each invariant has dedicated coverage: `test_enforcement_mode.py` for modes and dev-mode escalation, `test_monitor.py` for calibration, idempotency, and task cancellation, `test_cumulative_blocking.py` for the window, `test_context.py` for registry lifecycle and `__slots__`, `test_pytest_plugin.py` for the marker.
|
|
91
101
|
- Timing tests are inherently flaky under load. Prefer driving `SentinelMonitor` directly with an `on_blocking` callback (as `test_cumulative_blocking.py` does) over asserting on wall-clock durations.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
102
|
+
- **A test that asserts a request came back clean must not run against a tight threshold.** It is asserting that nothing stalled the loop, which is not something a test controls. `TestStrictModeHeaders._blocking_app` uses a 2ms tick and a 5ms threshold, so a request there has ~7ms of uninterrupted loop time before it is called blocked - thinner than an ordinary generational GC pass in this same suite, which measures 4.3-17.8ms on 3.11 under coverage. Where those passes land is a deterministic function of the session's allocation sequence, so adding a test *anywhere* in the suite shifts them, and a margin that small reopens as a 503 for a request that did nothing wrong. That is how `test_clean_strict_response_carries_diagnostic_headers` broke once already. A tight threshold can only cause false positives, so it is free for the tests that assert blocking *is* detected and unaffordable for the one that asserts it is not: the clean-path test builds its own app at the shipped defaults (`_clean_app`). Give a new clean-path assertion its own generous threshold rather than borrowing a detection app's.
|
|
103
|
+
|
|
104
|
+
## The evals harness (`evals/`)
|
|
105
|
+
|
|
106
|
+
Not shipped with the package, but it decides what this project publishes about
|
|
107
|
+
other people's models, so it carries its own invariants:
|
|
108
|
+
|
|
109
|
+
1. **A sample that never ran is never evidence.** `runner.score_task` returns
|
|
110
|
+
three states, not two: measured-and-clean, measured-and-blocked, and
|
|
111
|
+
`measured: false` with `non_blocking: None`. Unmeasured samples are dropped
|
|
112
|
+
from blocked-rate denominators. Folding them into "did not block" is a
|
|
113
|
+
one-directional bias on the exact number the benchmark advertises, and it
|
|
114
|
+
is the bug that reached a published table once already.
|
|
115
|
+
2. **Measured means the trap actually executed.** The runner appends a counter
|
|
116
|
+
to its *copy* of `helpers.py` and requires a non-zero count. The tally is a
|
|
117
|
+
file, not a module global, because a `ProcessPoolExecutor` answer is correct
|
|
118
|
+
and runs the helper in a child process.
|
|
119
|
+
3. **The prompt the model sees is the committed fixture, byte for byte.** All
|
|
120
|
+
instrumentation goes into the temp-dir copy. `neutral/task.md` and
|
|
121
|
+
`hinted/task.md` must differ by exactly one added line — the hint sentence.
|
|
122
|
+
Anything else makes the measured gap unattributable. There is a one-line
|
|
123
|
+
symmetry check in `evals/README.md`; run it after touching any task.
|
|
124
|
+
4. **Changing a prompt invalidates that cell's samples.** `helpers.py`,
|
|
125
|
+
`app_skeleton.py` and either `task.md` are all part of the prompt. Archive
|
|
126
|
+
and regenerate the affected cells; do not re-score across a prompt change.
|
|
127
|
+
5. **An empty completion is an API failure, not a model failure.** Adapters
|
|
128
|
+
retry it and then raise. Never write it out as an empty `app.py`.
|
|
129
|
+
6. **Scoring is free; generation is not.** After any judge change run
|
|
130
|
+
`python evals/matrix.py --rescore`, which re-judges every committed
|
|
131
|
+
solution and re-derives `app.py` from the archived raw response. Only a
|
|
132
|
+
prompt change needs the paid path.
|
|
133
|
+
|
|
134
|
+
## Known Gaps (accurate as of 2026-09-11)
|
|
135
|
+
|
|
136
|
+
Recorded so they are not rediscovered. Fixing any of them is its own task.
|
|
137
|
+
|
|
138
|
+
None currently recorded. `FINDINGS.md` carries the fuller list, including design tensions deferred from the 0.5 correctness pass.
|
|
101
139
|
|
|
102
140
|
## Fundamental Guidelines
|
|
103
141
|
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
Everything noticed while fixing the 0.5 correctness defects (and the 0.6
|
|
4
4
|
hardening pass) but deliberately left alone. Each item is its own future task.
|
|
5
5
|
|
|
6
|
+
Linked from the README, so it is checked against the code rather than left to
|
|
7
|
+
rot: every item below was re-verified on 2026-09-11. Items that have since been
|
|
8
|
+
fixed are struck through with a note, not deleted.
|
|
9
|
+
|
|
6
10
|
## Detection design
|
|
7
11
|
|
|
8
12
|
1. ~~**Sub-threshold noise can still inflate the adaptive threshold.**~~
|
|
@@ -45,8 +49,9 @@ hardening pass) but deliberately left alone. Each item is its own future task.
|
|
|
45
49
|
7. **The package could be zero-dependency.**
|
|
46
50
|
`middleware.py` imports only type aliases from `starlette.types`; moving
|
|
47
51
|
that import under `TYPE_CHECKING` removes the runtime dependency entirely
|
|
48
|
-
(works on Litestar, Quart, Django ASGI, ...). Also, the `<1.0` upper bound
|
|
49
|
-
on starlette will block installs the day Starlette 1.0 ships
|
|
52
|
+
(works on Litestar, Quart, Django ASGI, ...). ~~Also, the `<1.0` upper bound
|
|
53
|
+
on starlette will block installs the day Starlette 1.0 ships.~~ — the bound
|
|
54
|
+
was widened to `<2.0` in #4; the `TYPE_CHECKING` move is still open.
|
|
50
55
|
|
|
51
56
|
8. **`get_current_request()` returns an arbitrary active context.**
|
|
52
57
|
A backward-compat shim that silently gives wrong answers under concurrency.
|
|
@@ -54,13 +59,18 @@ hardening pass) but deliberately left alone. Each item is its own future task.
|
|
|
54
59
|
|
|
55
60
|
## Dead / inert code and docs drift
|
|
56
61
|
|
|
57
|
-
9.
|
|
58
|
-
|
|
62
|
+
9. ~~**`prometheus_enabled` is inert**~~ — fixed. `monitor.__init__` imports
|
|
63
|
+
`metrics.py` lazily when the flag is set, and records blocking events,
|
|
64
|
+
monitored requests and the current threshold.
|
|
59
65
|
|
|
60
|
-
10.
|
|
66
|
+
10. ~~**`_generate_warning_banner()` is dead code**~~ — removed. It was also
|
|
67
|
+
an unescaped-HTML template, so leaving it in the file was an invitation to
|
|
68
|
+
wire up an XSS hole later.
|
|
61
69
|
|
|
62
|
-
11.
|
|
63
|
-
|
|
70
|
+
11. ~~**`docs/CONFIGURATION.md` names metrics that do not exist** and
|
|
71
|
+
`get_metrics()` can never find an instance~~ — both fixed. The docs list
|
|
72
|
+
the four real metrics with their labels, and `get_metrics()` takes the
|
|
73
|
+
registry so it derives the same key `create_metrics()` wrote.
|
|
64
74
|
|
|
65
75
|
12. ~~**`docs/CONFIGURATION.md` describes `fallback_threshold_ms` as "Used if
|
|
66
76
|
calibration is unreliable"**~~ — fixed in the 0.6 pass; the docs now
|
|
@@ -69,8 +79,8 @@ hardening pass) but deliberately left alone. Each item is its own future task.
|
|
|
69
79
|
13. ~~**`_handle_lifespan` locals `started` / `shutdown_complete` are
|
|
70
80
|
write-only.**~~ — removed in the 0.6 pass.
|
|
71
81
|
|
|
72
|
-
14.
|
|
73
|
-
|
|
82
|
+
14. ~~**The `structlog` extra is declared but nothing imports structlog**~~ —
|
|
83
|
+
the extra was removed rather than wired in (#51).
|
|
74
84
|
|
|
75
85
|
## Repro caveat worth keeping
|
|
76
86
|
|