An audit stream can contain duplicate, missing or reordered sequence numbers. Produce a report that distinguishes those cases instead of treating every discrepancy as a gap.
Build the implementation in Go 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 nonnegative integer start and sequence list of nonnegative integers. Maintain a high-water mark initially start-1 and a set of all seen sequence values. For each value: previously seen is duplicate; an unseen value at or below high-water is late; a value above high-water is accepted and records [high-water+1,value-1] as a gap if nonempty. Update high-water only for accepted values. Return gaps, duplicate_indices and late_indices. Previously reported gaps are not erased by late arrivals. Reject boolean/noninteger/negative inputs.
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.