addedInput schema / additionalProperties
Added value: +false
addedInput schema / properties / contextLength / default
Added value: +30
addedInput schema / properties / contextLength / description
Added value: +"Characters of context to capture on each side of a match when includeContext is true (clamped to the 10-200 range)."
addedInput schema / properties / contextLength / maximum
Added value: +200
addedInput schema / properties / contextLength / minimum
Added value: +10
addedInput schema / properties / extractDomains / default
Added value: +false
addedInput schema / properties / extractDomains / description
Added value: +"Also return a deduplicated list of the domains that appear in the matched addresses."
addedInput schema / properties / extractionMode / default
Added value: +"standard"
addedInput schema / properties / extractionMode / description
Added value: +"Regex strictness. standard is a balanced pattern, strict requires well-formed local and domain parts, permissive matches the widest RFC-style character set."
addedInput schema / properties / extractionMode / enum
Added value: +[
+ "standard",
+ "strict",
+ "permissive"
+]
addedInput schema / properties / includeContext / default
Added value: +false
addedInput schema / properties / includeContext / description
Added value: +"Include a snippet of surrounding text around each match in the context field."
addedInput schema / properties / removeDuplicates / default
Added value: +true
addedInput schema / properties / removeDuplicates / description
Added value: +"Collapse repeated addresses (case-insensitive) so each email appears once."
addedInput schema / properties / sortResults / default
Added value: +false
addedInput schema / properties / sortResults / description
Added value: +"Sort the returned emails (and domains) alphabetically instead of by position of first appearance."
addedInput schema / properties / text / description
Added value: +"Source text to scan for email addresses. Must not be blank."
changedInput schema / required
Previous value: -[
- "text",
- "extractionMode",
- "removeDuplicates",
- "sortResults",
- "includeContext",
- "contextLength",
- "extractDomains"
-]New value: +[
+ "text"
+]
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "domains": {
+ "description": "Deduplicated domain list (present only when extractDomains is true and matches exist).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "emails": {
+ "description": "The matched email addresses, lowercased.",
+ "items": {
+ "properties": {
+ "context": {
+ "description": "Surrounding text snippet (empty unless includeContext is true).",
+ "type": "string"
+ },
+ "domain": {
+ "description": "Domain part after the at-sign.",
+ "type": "string"
+ },
+ "email": {
+ "description": "The matched address, lowercased.",
+ "type": "string"
+ },
+ "line": {
+ "description": "One-based line number where the match occurs.",
+ "type": "integer"
+ },
+ "position": {
+ "description": "Zero-based character offset of the match in the source text.",
+ "type": "integer"
+ },
+ "tld": {
+ "description": "Top-level domain of the address.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "options": {
+ "description": "The effective options after defaults were applied.",
+ "properties": {
+ "contextLength": {
+ "description": "Context window size used.",
+ "type": "integer"
+ },
+ "extractDomains": {
+ "description": "Whether the domain list was returned.",
+ "type": "boolean"
+ },
+ "extractionMode": {
+ "description": "Matching mode used.",
+ "type": "string"
+ },
+ "includeContext": {
+ "description": "Whether context snippets were captured.",
+ "type": "boolean"
+ },
+ "removeDuplicates": {
+ "description": "Whether duplicates were collapsed.",
+ "type": "boolean"
+ },
+ "sortResults": {
+ "description": "Whether results were sorted alphabetically.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "stats": {
+ "description": "Statistics about the source text and the extraction.",
+ "properties": {
+ "extraction": {
+ "description": "Match tallies and per-domain breakdowns.",
+ "properties": {
+ "domainStats": {
+ "description": "Map of domain to occurrence count, sorted by count.",
+ "type": "object"
+ },
+ "duplicatesRemoved": {
+ "description": "Count of matches dropped as duplicates.",
+ "type": "integer"
+ },
+ "extractionMode": {
+ "description": "The matching mode that was applied.",
+ "type": "string"
+ },
+ "topLevelDomains": {
+ "description": "Map of TLD to occurrence count, sorted by count.",
+ "type": "object"
+ },
+ "totalFound": {
+ "description": "Total matches before deduplication.",
+ "type": "integer"
+ },
+ "uniqueEmails": {
+ "description": "Distinct addresses returned.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "original": {
+ "description": "Metrics for the submitted text.",
+ "properties": {
+ "characters": {
+ "description": "Character count of the source text.",
+ "type": "integer"
+ },
+ "lines": {
+ "description": "Line count of the source text.",
+ "type": "integer"
+ },
+ "text": {
+ "description": "The submitted text, echoed back.",
+ "type": "string"
+ },
+ "words": {
+ "description": "Alphabetic word count of the source text.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "success": {
+ "description": "Whether extraction succeeded.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+}