The service simulator needs to stop requests after repeated failures and allow a controlled recovery trial. Finish the state transitions so the cooldown boundary and trial result affect later requests correctly.
Build the implementation in Java 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 has positive integer threshold and cooldown plus ordered calls with nondecreasing integer time and success boolean. Start closed; successful calls reset the failure count. Reaching threshold opens until time+cooldown. Calls before expiry are rejected and their outcomes ignored. At or after expiry allow a trial: success closes/reset, failure reopens immediately. Return accepted and state (closed/open after processing) for each call. Reject invalid policy, clock or outcome.
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.