{"api_version":"1","fixture_version":"1","product_id":"quote-proof","version":"0.1.1","publisher":"AgentToolbox","provenance":"first_party_synthetic_fixture","example_kind":"offline_contract_examples","execution":"none","payment":{"status":"not_required","amount_settled_atomic":"0"},"fixed_clock":"2026-10-07T00:00:00.000Z","interpretation":"Static authored examples, not live remote observations, payment verification, customer outcomes or proof of usefulness. Fixture URLs identify mocked responses; do not invoke the live service with these fixture inputs.","expected_format":"input_valid means the complete handler input validation passed, including runtime restrictions such as supported hosts, schema keywords and a valid seed. It is not just validation against the published JSON Schema, which cannot express every runtime restriction. outcome_qualifies tests the handler success predicate, not a payment. checks compare exact values at RFC 6901 JSON Pointers into the output; unlisted fields are not asserted. failure_reason names the handler failure code when no output is returned.","contract_path":"/v1/products/quote-proof","criteria_path":"/v1/products/quote-proof/criteria","purpose":"Distinguish exact, whitespace-normalized, missing, repeated and unknown quotations with independently checkable positions.","independent_check":"Use ordinary case-sensitive substring search after collapsing whitespace; slice the original UTF-16 string at each evidence offset and compute its SHA-256. A textual match does not prove a claim true.","real_input_preview":{"supported":false,"path":null,"scope":"A real-input verdict is the paid output. These offline fixtures are not a source-fetch dry run."},"cases":[{"id":"quotation_boundaries","description":"Five fixed quotes show exact text, whitespace folding, absence, ambiguity and UTF-16 emoji offsets.","input":{"urls":["https://docs.python.org/3/agenttoolbox-fixture.txt"],"quotes":[{"source_index":0,"quote":"Exact phrase"},{"source_index":0,"quote":"Alpha beta"},{"source_index":0,"quote":"missing"},{"source_index":0,"quote":"again"},{"source_index":0,"quote":"😀 end"}]},"fixture":{"kind":"http_responses","responses":[{"url":"https://docs.python.org/robots.txt","status":200,"headers":{"Content-Type":"text/plain"},"body":"User-agent: *\nAllow: /"},{"url":"https://docs.python.org/3/agenttoolbox-fixture.txt","status":200,"headers":{"Content-Type":"text/plain"},"body":"Alpha\n beta. Exact phrase. again again. 😀 end."}]},"expected":{"input_valid":true,"outcome_qualifies":true,"checks":[{"pointer":"/scope","value":"textual_quotation_not_truth"},{"pointer":"/summary","value":{"decisive":5,"unknown":0}},{"pointer":"/sources/0/content_sha256","value":"73ffdf97403c6fc406b2dbd9f52ab0e2767299c1056db09c86b0279ce6185c39"},{"pointer":"/sources/0/extraction","value":"complete_plain_text"},{"pointer":"/results","value":[{"quote_index":0,"source_index":0,"status":"exact_match","reason":"single_occurrence","occurrences":"1","evidence":[{"start_char":13,"end_char":25,"anchor_fragment":null,"context":{"text":"Alpha\n beta. Exact phrase. again again. 😀 end.","start_char":0,"end_char":47}}]},{"quote_index":1,"source_index":0,"status":"whitespace_normalized_match","reason":"single_occurrence","occurrences":"1","evidence":[{"start_char":0,"end_char":11,"anchor_fragment":null,"context":{"text":"Alpha\n beta. Exact phrase. again again. 😀 end.","start_char":0,"end_char":47}}]},{"quote_index":2,"source_index":0,"status":"absent","reason":"complete_text","occurrences":"0","evidence":[]},{"quote_index":3,"source_index":0,"status":"ambiguous","reason":"repeated_occurrence","occurrences":"2_or_more","evidence":[{"start_char":27,"end_char":32,"anchor_fragment":null,"context":{"text":"Alpha\n beta. Exact phrase. again again. 😀 end.","start_char":0,"end_char":47}},{"start_char":33,"end_char":38,"anchor_fragment":null,"context":{"text":"Alpha\n beta. Exact phrase. again again. 😀 end.","start_char":0,"end_char":47}}]},{"quote_index":4,"source_index":0,"status":"exact_match","reason":"single_occurrence","occurrences":"1","evidence":[{"start_char":40,"end_char":46,"anchor_fragment":null,"context":{"text":"Alpha\n beta. Exact phrase. again again. 😀 end.","start_char":0,"end_char":47}}]}]}]}},{"id":"robots_denied","description":"An inaccessible source yields unknown, not absence. An all-unknown result does not qualify for payment.","input":{"urls":["https://docs.python.org/3/agenttoolbox-fixture.txt"],"quotes":[{"source_index":0,"quote":"Exact phrase"}]},"fixture":{"kind":"http_responses","responses":[{"url":"https://docs.python.org/robots.txt","status":200,"headers":{"Content-Type":"text/plain"},"body":"User-agent: *\nDisallow: /"},{"url":"https://docs.python.org/3/agenttoolbox-fixture.txt","status":200,"headers":{"Content-Type":"text/plain"},"body":"Alpha\n beta. Exact phrase. again again. 😀 end."}]},"expected":{"input_valid":true,"outcome_qualifies":false,"checks":[{"pointer":"/summary","value":{"decisive":0,"unknown":1}},{"pointer":"/results","value":[{"quote_index":0,"source_index":0,"status":"unknown","reason":"source_disallows_access","occurrences":"unknown","evidence":[]}]}]}},{"id":"invalid_source_index","description":"A quotation must refer to one of the supplied URLs.","input":{"urls":["https://docs.python.org/3/agenttoolbox-fixture.txt"],"quotes":[{"source_index":1,"quote":"Exact phrase"}]},"fixture":{"kind":"none"},"expected":{"input_valid":false,"outcome_qualifies":false,"checks":[]}}]}