{"api_version":"1","product_id":"docs-pack","product_version":"0.1.1","criteria":{"criteria_version":"1","rule_language":"agenttoolbox-predicate-v1","evaluation":"Output must pass the published output_schema, then every predicate below. These expressions are also evaluated by the server handler.","rules":[{"id":"sources_present","test":{"gt":[{"count":{"path":"sources"}},0]}},{"id":"all_sources_matched_with_exact_offsets","test":{"every":{"source":{"path":"sources"},"as":"source","test":{"and":[{"eq":[{"path":"source.status"},200]},{"every":{"source":{"path":"source.excerpts"},"as":"excerpt","test":{"and":[{"gt":[{"count":{"path":"excerpt.matched_terms"}},0]},{"eq":[{"subtract":[{"path":"excerpt.end_char"},{"path":"excerpt.start_char"}]},{"count":{"path":"excerpt.text"}}]}]}}}]}}}},{"id":"requested_excerpt_budget","test":{"lte":[{"path":"excerpt_chars"},{"path":"max_excerpt_chars"}]}}],"failure":{"before_settlement":["invalid_input","output_schema_invalid","predicate_false","execution_error","output_bound_exceeded","durable_result_write_failed"],"settlement":"One attempt only after durable validated output; unknown or unconfirmed settlement withholds output and requires reconciliation."},"scope":"Deterministic bounded checks, not usefulness, truth, certification or independent live-payment proof."},"limits":{"max_urls":5,"max_source_bytes":262144,"max_excerpt_chars":6000,"max_output_bytes":14000,"deadline_seconds":12,"redirects_per_source":2,"supported_hosts":["developers.cloudflare.com","docs.payai.network","docs.x402.org","docs.python.org","nodejs.org","developer.mozilla.org","docs.github.com","www.typescriptlang.org"],"formats":["UTF-8 Markdown","UTF-8 plain text","static HTML with readable body/main/article"],"unsupported":["credentials, ports or query strings in URLs","private or unlisted hosts","login, bot challenges, JavaScript rendering, PDFs, crawling","semantic relevance or completeness guarantees"]},"canonicalization":{"id":"agenttoolbox-json-v1","encoding":"UTF-8 without BOM or trailing newline","object_keys":"Recursively sorted by unsigned UTF-16 code units (ECMAScript default string sort).","arrays":"Preserve order; no holes or additional properties.","strings":"ECMAScript JSON.stringify escaping; reject lone UTF-16 surrogates; no Unicode normalization.","numbers":"Finite IEEE-754 binary64 only; ECMAScript JSON.stringify serialization, including -0 as 0. Monetary atomic units remain decimal strings.","values":"JSON null, booleans, strings, finite numbers, arrays and plain objects only. Reject undefined, functions, symbols, bigint, accessors, cycles and non-enumerable object properties.","whitespace":"No insignificant whitespace.","payment_requirements":"Hash the complete PaymentRequirements object in accepts, including extra. Preserve address/string case and array order; do not hash the challenge envelope, header base64 or payment signature."},"canonical_json":"{\"criteria\":{\"criteria_version\":\"1\",\"evaluation\":\"Output must pass the published output_schema, then every predicate below. These expressions are also evaluated by the server handler.\",\"failure\":{\"before_settlement\":[\"invalid_input\",\"output_schema_invalid\",\"predicate_false\",\"execution_error\",\"output_bound_exceeded\",\"durable_result_write_failed\"],\"settlement\":\"One attempt only after durable validated output; unknown or unconfirmed settlement withholds output and requires reconciliation.\"},\"rule_language\":\"agenttoolbox-predicate-v1\",\"rules\":[{\"id\":\"sources_present\",\"test\":{\"gt\":[{\"count\":{\"path\":\"sources\"}},0]}},{\"id\":\"all_sources_matched_with_exact_offsets\",\"test\":{\"every\":{\"as\":\"source\",\"source\":{\"path\":\"sources\"},\"test\":{\"and\":[{\"eq\":[{\"path\":\"source.status\"},200]},{\"every\":{\"as\":\"excerpt\",\"source\":{\"path\":\"source.excerpts\"},\"test\":{\"and\":[{\"gt\":[{\"count\":{\"path\":\"excerpt.matched_terms\"}},0]},{\"eq\":[{\"subtract\":[{\"path\":\"excerpt.end_char\"},{\"path\":\"excerpt.start_char\"}]},{\"count\":{\"path\":\"excerpt.text\"}}]}]}}}]}}}},{\"id\":\"requested_excerpt_budget\",\"test\":{\"lte\":[{\"path\":\"excerpt_chars\"},{\"path\":\"max_excerpt_chars\"}]}}],\"scope\":\"Deterministic bounded checks, not usefulness, truth, certification or independent live-payment proof.\"},\"format\":\"agenttoolbox-success-contract-v1\",\"input_schema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"additionalProperties\":false,\"properties\":{\"max_excerpt_chars\":{\"default\":4000,\"maximum\":6000,\"minimum\":1000,\"type\":\"integer\"},\"query\":{\"maxLength\":120,\"minLength\":2,\"type\":\"string\"},\"urls\":{\"items\":{\"maxLength\":512,\"type\":\"string\"},\"maxItems\":5,\"minItems\":1,\"type\":\"array\"}},\"required\":[\"urls\",\"query\",\"max_excerpt_chars\"],\"type\":\"object\"},\"limits\":{\"deadline_seconds\":12,\"formats\":[\"UTF-8 Markdown\",\"UTF-8 plain text\",\"static HTML with readable body/main/article\"],\"max_excerpt_chars\":6000,\"max_output_bytes\":14000,\"max_source_bytes\":262144,\"max_urls\":5,\"redirects_per_source\":2,\"supported_hosts\":[\"developers.cloudflare.com\",\"docs.payai.network\",\"docs.x402.org\",\"docs.python.org\",\"nodejs.org\",\"developer.mozilla.org\",\"docs.github.com\",\"www.typescriptlang.org\"],\"unsupported\":[\"credentials, ports or query strings in URLs\",\"private or unlisted hosts\",\"login, bot challenges, JavaScript rendering, PDFs, crawling\",\"semantic relevance or completeness guarantees\"]},\"output_schema\":{\"$schema\":\"https://json-schema.org/draft/2020-12/schema\",\"additionalProperties\":false,\"properties\":{\"excerpt_chars\":{\"maximum\":6000,\"minimum\":1,\"type\":\"integer\"},\"fetched_at\":{\"type\":\"string\"},\"match_method\":{\"const\":\"case-insensitive literal terms; ranked by distinct term coverage\",\"type\":\"string\"},\"max_excerpt_chars\":{\"maximum\":9007199254740991,\"minimum\":-9007199254740991,\"type\":\"integer\"},\"query\":{\"type\":\"string\"},\"source_content\":{\"const\":\"untrusted_data\",\"type\":\"string\"},\"sources\":{\"items\":{\"additionalProperties\":false,\"properties\":{\"code_blocks_omitted\":{\"maximum\":9007199254740991,\"minimum\":0,\"type\":\"integer\"},\"content_type\":{\"type\":\"string\"},\"excerpts\":{\"items\":{\"additionalProperties\":false,\"properties\":{\"anchor\":{\"anyOf\":[{\"maxLength\":512,\"type\":\"string\"},{\"type\":\"null\"}]},\"end_char\":{\"maximum\":9007199254740991,\"minimum\":1,\"type\":\"integer\"},\"heading\":{\"anyOf\":[{\"maxLength\":180,\"type\":\"string\"},{\"type\":\"null\"}]},\"matched_terms\":{\"items\":{\"type\":\"string\"},\"maxItems\":8,\"minItems\":1,\"type\":\"array\"},\"start_char\":{\"maximum\":9007199254740991,\"minimum\":0,\"type\":\"integer\"},\"text\":{\"maxLength\":1800,\"minLength\":1,\"type\":\"string\"}},\"required\":[\"text\",\"start_char\",\"end_char\",\"heading\",\"anchor\",\"matched_terms\"],\"type\":\"object\"},\"maxItems\":2,\"minItems\":1,\"type\":\"array\"},\"final_url\":{\"format\":\"uri\",\"type\":\"string\"},\"selection_status\":{\"const\":\"matched\",\"type\":\"string\"},\"source_bytes\":{\"exclusiveMinimum\":0,\"maximum\":262144,\"type\":\"integer\"},\"source_sha256\":{\"pattern\":\"^[a-f0-9]{64}$\",\"type\":\"string\"},\"status\":{\"const\":200,\"type\":\"number\"},\"text_chars\":{\"exclusiveMinimum\":0,\"maximum\":9007199254740991,\"type\":\"integer\"},\"text_sha256\":{\"pattern\":\"^[a-f0-9]{64}$\",\"type\":\"string\"},\"title\":{\"maxLength\":180,\"type\":\"string\"},\"url\":{\"format\":\"uri\",\"type\":\"string\"}},\"required\":[\"url\",\"final_url\",\"status\",\"selection_status\",\"content_type\",\"source_bytes\",\"source_sha256\",\"text_sha256\",\"title\",\"text_chars\",\"code_blocks_omitted\",\"excerpts\"],\"type\":\"object\"},\"maxItems\":5,\"minItems\":1,\"type\":\"array\"}},\"required\":[\"query\",\"fetched_at\",\"source_content\",\"sources\",\"excerpt_chars\",\"max_excerpt_chars\",\"match_method\"],\"type\":\"object\"},\"product_id\":\"docs-pack\",\"product_version\":\"0.1.1\",\"success_criterion\":\"Every requested source returns HTTP 200 and at least one literal query-term match; excerpts respect the requested character budget and preserve complete fenced code blocks. The full output passes its schema and 14,000-byte product bound.\"}","sha256":"5ebbc39c57b931cce25c404ab51ce2879cb4bf7e55c9fcb9be2bbc1b7923e142","input_schema_url":"/v1/products/docs-pack","output_schema_url":"/v1/products/docs-pack"}