{"id":"rtf-to-markdown","version":"1.0.0","description":"Convert an 8 KiB ANSI-1252 RTF text subset to escaped Markdown; unsupported Word features are refused.","supported_operations":["convert rtf fragment to markdown","extract escaped markdown from rtf","turn base64 rtf into markdown text","preserve rtf bold italics in markdown","normalize rtf text into safe markdown","convert ansi rtf text subset"],"unsupported_operations":["general Word-produced RTF with font/layout/field controls","non-1252 code pages, binary data or surrogate Unicode","rendering, macros and external resources"],"semantics":["Canonical standard padded Base64, no extra fields. Encoded<=10924 and decoded1..8192 bytes. Only strict ANSI1252 RTF1 text fragment subset; no general Word compatibility.","Complete bounded lexical pass precedes supported interpretation; unknown visible controls are unsupported422. Resource cap413 terminates before excess retention, malformed structure400 overrides earlier excluded422 only within capped traversal.","Groupdepth16, totalgroups256, paragraphslots128 include omitted groups and empty slots. Scoped b/i/uc0..2; BMP non-surrogate/private-use exclusions; Unicode fallback counts complete tokens without semantics.","Literal Markdown punctuation is escaped, HTML&<> encoded, hardbreaks protected; only ASCIIspace/TAB trim/normalize. NBSP and other permitted BMP spaces remain. Omitted destinations and fixed warnings deduplicate in first encounter order.","Both tools validate identical MarkdownUTF8<=16384 and compact serialized Markdown-envelopeUTF8<=32768; own complete outputUTF8<=32768. Exact generic AppError ABI; absent details, no reflected input payload.","No network, filesystem, external loads, macros, ZIP/PDF engines, surrogate repair or layout fidelity; real WorkerCPU/preemptive memory and privacy integration remain separate qualification gates.","Visible hex-decoded CP1252 C0/DEL characters are unsupported_input; valid fallback or omitted hex controls are discarded. Raw CR/LF/TAB exceptions and structural validation stay unchanged."],"limits":{"max_base64_chars":10924,"max_decoded_bytes":8192,"max_group_depth":16,"max_groups":256,"max_paragraph_slots":128,"max_control_word_letters":32,"max_numeric_digits":10,"max_retained_text_utf8_bytes":16384,"max_markdown_utf8_bytes":16384,"max_shared_markdown_json_utf8_bytes":32768,"max_output_utf8_bytes":32768},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["bytes_base64"],"properties":{"bytes_base64":{"type":"string","minLength":4,"maxLength":10924}}},"output_schema":{"type":"object","additionalProperties":false,"required":["markdown","format","warnings"],"properties":{"markdown":{"type":"string","maxLength":16384},"format":{"const":"rtf"},"warnings":{"type":"array","items":{"type":"string","enum":["metadata_destinations_omitted","pictures_omitted","objects_omitted","starred_destinations_omitted","tabs_normalized"]},"uniqueItems":true,"maxItems":5}}},"examples":[{"input":{"bytes_base64":"e1xydGYxXGFuc2kgSGVsbG9ccGFyIFdvcmxkfQ=="},"output":{"markdown":"Hello\n\nWorld\n","format":"rtf","warnings":[]}},{"input":{"bytes_base64":"e1xydGYxXGFuc2kgQXtcYiBCfUN9"},"output":{"markdown":"A**B**C\n","format":"rtf","warnings":[]}},{"input":{"bytes_base64":"e1xydGYxXGFuc2kgQXtcZm9udHRibCBpZ25vcmVkfUJ7XHBpY3QgMDB9e1xvYmplY3Qgb21pdHRlZH17XCpccHJpdmF0ZSBoaWRkZW59fQ=="},"output":{"markdown":"AB\n","format":"rtf","warnings":["metadata_destinations_omitted","pictures_omitted","objects_omitted","starred_destinations_omitted"]}}],"execute_url":"/v1/tools/rtf-to-markdown/versions/1.0.0/execute"}