{"id":"text-conflict-render","version":"1.0.0","description":"Render text and conflict parts as merge or diff3 conflict-marker text.","supported_operations":["text conflict render","render conflict marker blocks","emit merge or diff3 conflict text"],"unsupported_operations":["nested conflict markers","preserve marker CR/LF","git mergetool filesystem access","unicode normalization","fuzzy matching"],"semantics":["parts is an array of {type:\"text\", text} or {type:\"conflict\", ours, theirs} objects. Unknown keys on a part are rejected.","marker_style merge (default) allows conflict keys type, ours, theirs only; a base key is rejected. diff3 requires base.","Text parts are copied verbatim. Conflict parts emit LF marker lines: <<<<<<< ours_label, optional ||||||| base_label, =======, >>>>>>> theirs_label.","Nonempty ours, theirs, or base that does not already end with LF gets a trailing LF before the next marker. Empty sides stay empty.","Labels default to ours, theirs, and base. Labels are nonempty, at most 256 UTF-8 bytes, and must not contain CR or LF.","Well-formed parts whose conflict inner texts already use LF line endings round-trip with text-conflict-parse."],"limits":{"max_text_bytes":262144,"max_label_bytes":256,"max_output_bytes":1048576},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["parts"],"properties":{"parts":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"type":{"type":"string","enum":["text","conflict"]},"text":{"type":"string","maxLength":262144},"ours":{"type":"string","maxLength":262144},"theirs":{"type":"string","maxLength":262144},"base":{"type":"string","maxLength":262144}}}},"marker_style":{"type":"string","enum":["merge","diff3"]},"ours_label":{"type":"string","minLength":1,"maxLength":256},"theirs_label":{"type":"string","minLength":1,"maxLength":256},"base_label":{"type":"string","minLength":1,"maxLength":256}}},"output_schema":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","maxLength":1048576}}},"examples":[{"input":{"parts":[{"type":"text","text":"keep\n"},{"type":"conflict","ours":"aaa\n","theirs":"bbb\n"}]},"output":{"text":"keep\n<<<<<<< ours\naaa\n=======\nbbb\n>>>>>>> theirs\n"}}],"execute_url":"/v1/tools/text-conflict-render/versions/1.0.0/execute"}