/**
* std/vision — deterministic OCR helpers built on the runtime's vision builtins.
*
* Import with: import "std/vision"
*/
type VisionBox = {left: int, top: int, width: int, height: int}
type VisionToken = {
page: int,
block: int,
paragraph: int,
line: int,
word: int,
text: string,
normalized: string,
char_start: int,
char_end: int,
confidence: float?,
bbox: VisionBox,
}
type VisionLine = {
page: int,
block: int,
paragraph: int,
line: int,
text: string,
token_start: int,
token_count: int,
char_start: int,
char_end: int,
confidence: float?,
bbox: VisionBox,
}
type VisionBlock = {
page: int,
block: int,
text: string,
token_start: int,
token_count: int,
line_start: int,
line_count: int,
char_start: int,
char_end: int,
confidence: float?,
bbox: VisionBox,
}
type VisionSource = {
kind: string,
path: string?,
name: string?,
mime_type: string,
byte_len: int,
sha256: string,
}
type StructuredText = {
_type: "structured_text",
text: string,
blocks: list<VisionBlock>,
lines: list<VisionLine>,
tokens: list<VisionToken>,
source: VisionSource,
backend: {name: string},
stats: {token_count: int, line_count: int, block_count: int},
}
pub fn ocr(image, options = nil) -> StructuredText {
return vision_ocr(image, options)
}