The ranking report needs binary AUC without treating equal scores as fully correct or fully wrong. Implement the calculation with the defined half-credit rule for ties.
Build the implementation in Python under /app, with /app/run.sh as its entry point. Read one JSON request from standard input and write one JSON result to standard output. Input is a list of score/label records. Scores must be finite numbers and labels exactly integer 0 or 1. Compare every positive-negative pair: score 1 for higher positive score, 0.5 for a tie, otherwise 0. Return the mean rounded to six decimals. Require at least one positive and one negative; reject invalid samples.
Reject inputs that violate an explicit validation rule with exit status 2, no standard output, and {"error":"invalid_input"} on standard error. For valid input, exit with status 0. Keep the implementation reusable for new inputs; it must work offline and must not depend on the example data being the only data it receives.
Repair or replace the unfinished /app/run.sh and add source files under /app. Malformed JSON must use the same invalid-input response. Do not read /tests or /oracle from the application.