changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "oneOf": [
+ {
+ "not": {
+ "required": [
+ "markdown"
+ ]
+ },
+ "properties": {
+ "format": {
+ "const": "text"
+ },
+ "hashFormat": {
+ "const": "text"
+ }
+ },
+ "required": [
+ "text"
+ ]
+ },
+ {
+ "not": {
+ "required": [
+ "text"
+ ]
+ },
+ "properties": {
+ "format": {
+ "const": "markdown"
+ },
+ "hashFormat": {
+ "const": "markdown"
+ }
+ },
+ "required": [
+ "markdown"
+ ]
+ },
+ {
+ "properties": {
+ "format": {
+ "const": "both"
+ },
+ "hashFormat": {
+ "const": "text"
+ }
+ },
+ "required": [
+ "text",
+ "markdown"
+ ]
+ }
+ ],
+ "properties": {
+ "canonical": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "codeBlocks": {
+ "items": {
+ "properties": {
+ "language": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "text": {
+ "maxLength": 20000,
+ "type": "string"
+ },
+ "truncated": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "language",
+ "text",
+ "truncated"
+ ],
+ "type": "object"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "contentHash": {
+ "pattern": "^sha256:[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "contentSelection": {
+ "enum": [
+ "main",
+ "article",
+ "body",
+ "plain"
+ ]
+ },
+ "contentType": {
+ "type": "string"
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fetchedAt": {
+ "type": "string"
+ },
+ "finalUrl": {
+ "type": "string"
+ },
+ "format": {
+ "enum": [
+ "text",
+ "markdown",
+ "both"
+ ]
+ },
+ "hashFormat": {
+ "enum": [
+ "text",
+ "markdown"
+ ]
+ },
+ "headings": {
+ "items": {
+ "properties": {
+ "id": {
+ "description": "Source HTML heading ID or direct child anchor ID, when present and supported; not a generated slug.",
+ "maxLength": 500,
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "level": {
+ "maximum": 6,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "level",
+ "text",
+ "id"
+ ],
+ "type": "object"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "lang": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "linkBaseUrl": {
+ "description": "Effective source-derived HTTP(S) base for links: the first supported HTML base href outside inert/foreign subtrees, otherwise finalUrl. Credentials and non-HTTP(S) base values are ignored with a warning. HTML links/canonical use this base; raw Markdown keeps relative syntax and can be resolved using this field. No linked resource is fetched. This static interpretation does not evaluate scripts or Content Security Policy.",
+ "type": "string"
+ },
+ "links": {
+ "items": {
+ "properties": {
+ "href": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "href",
+ "text"
+ ],
+ "type": "object"
+ },
+ "maxItems": 200,
+ "type": "array"
+ },
+ "markdown": {
+ "maxLength": 100000,
+ "type": "string"
+ },
+ "section": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "properties": {
+ "headingLevel": {
+ "maximum": 6,
+ "minimum": 1,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "id": {
+ "maxLength": 500,
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "heading",
+ "container"
+ ]
+ },
+ "title": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "title",
+ "kind",
+ "headingLevel"
+ ],
+ "type": "object"
+ }
+ ],
+ "description": "Null for full primary-content reading. Otherwise the explicitly requested scope; title/description/canonical remain page-level metadata. Heading scope ends before the next same/higher-level heading, including nested subsections; container scope is its subtree."
+ },
+ "sourceFormat": {
+ "description": "Source interpretation. Markdown is identified by text/markdown, or a .md/.markdown final path served as text/plain (warned). Markdown syntax is retained verbatim within the cap, not converted to HTML or parsed for structured details; text also retains that syntax. HTML section IDs are unsupported for Markdown/plain text.",
+ "enum": [
+ "html",
+ "markdown",
+ "plain"
+ ]
+ },
+ "sourceMetadata": {
+ "description": "Page-level source declarations, not verified authorship or freshness. Head author/Open Graph date tags and bounded direct Schema.org JSON-LD Article/WebPage-like nodes only; exact-URL matches preferred, otherwise only one identity-free candidate. Author @id references resolve only to unambiguous local Person/Organization names, with both paths recorded. No external context/reference fetching or general JSON-LD expansion. Separate 2000-character value+provenance budget; 5 authors/10 dates. Original date strings are not normalized. Empty for Markdown/plain sources; unrelated entities and ambiguous nodes are omitted with warnings.",
+ "properties": {
+ "authors": {
+ "items": {
+ "properties": {
+ "source": {
+ "maxLength": 256,
+ "type": "string"
+ },
+ "value": {
+ "maxLength": 256,
+ "type": "string"
+ }
+ },
+ "required": [
+ "value",
+ "source"
+ ],
+ "type": "object"
+ },
+ "maxItems": 5,
+ "type": "array"
+ },
+ "dates": {
+ "items": {
+ "properties": {
+ "kind": {
+ "enum": [
+ "published",
+ "modified"
+ ]
+ },
+ "source": {
+ "maxLength": 256,
+ "type": "string"
+ },
+ "value": {
+ "maxLength": 128,
+ "type": "string"
+ }
+ },
+ "required": [
+ "value",
+ "source",
+ "kind"
+ ],
+ "type": "object"
+ },
+ "maxItems": 10,
+ "type": "array"
+ },
+ "truncated": {
+ "type": "boolean"
+ },
+ "verification": {
+ "const": "not_verified"
+ }
+ },
+ "required": [
+ "verification",
+ "authors",
+ "dates",
+ "truncated"
+ ],
+ "type": "object"
+ },
+ "status": {
+ "type": "integer"
+ },
+ "tables": {
+ "items": {
+ "properties": {
+ "caption": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "hasSpans": {
+ "type": "boolean"
+ },
+ "headerRows": {
+ "items": {
+ "maximum": 99,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "rows": {
+ "items": {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "truncated": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "caption",
+ "rows",
+ "headerRows",
+ "hasSpans",
+ "truncated"
+ ],
+ "type": "object"
+ },
+ "maxItems": 20,
+ "type": "array"
+ },
+ "text": {
+ "maxLength": 100000,
+ "type": "string"
+ },
+ "textLength": {
+ "description": "Full extracted text length before the character cap, within the input limit.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "title": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "truncated": {
+ "description": "Input or requested primary representation is incomplete. Structured detail limits are reported separately in warnings.",
+ "type": "boolean"
+ },
+ "url": {
+ "type": "string"
+ },
+ "warnings": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "url",
+ "finalUrl",
+ "status",
+ "contentType",
+ "sourceFormat",
+ "linkBaseUrl",
+ "sourceMetadata",
+ "title",
+ "description",
+ "lang",
+ "canonical",
+ "headings",
+ "section",
+ "links",
+ "codeBlocks",
+ "tables",
+ "contentSelection",
+ "warnings",
+ "format",
+ "textLength",
+ "truncated",
+ "contentHash",
+ "hashFormat",
+ "fetchedAt"
+ ],
+ "type": "object"
+}