{"id":"gitconfig-format","version":"1.0.0","description":"Format git config sections as canonical text with escapes and subsections.","supported_operations":["format git config sections as text","serialize a gitconfig document","write canonical git config entries","render gitconfig escapes and subsections","emit ordered git config multivars","git config text from structured sections","כתיבת קובץ הגדרות גיט מתוך המקטעים"],"unsupported_operations":["emit include or includeIf as files to read","emit deprecated dotted subsection headers","canonicalize boolean integer or path values","preserve comments and insignificant whitespace"],"semantics":["Whitespace is only SP and HT. CRLF is one line break. A lone CR, NUL, DEL, or any other C0 control except HT, LF, and BS is invalid_input. A leading U+FEFF is not skipped.","Section and variable names are ASCII case-folded. A variable must start with a letter. A subsection is case-sensitive and is not folded. A dot in the unquoted section token is unsupported_input reason dotted_section_name.","Value escapes, inside or outside quotes, are only \\\" \\\\ \\n \\t and \\b. A backslash before LF continues the value. Quotes are delimiters, so adjacent quotes concatenate. # and ; comment only outside quotes. A bare name is implicit_bool true with a null value. Explicit values stay strings: yes, no, true, false, integers, paths, and the empty string are not canonicalized.","include and includeIf headers are unsupported_input reason include_not_supported. A truncated header is invalid_input even when the partial name looks like include.","Duplicate sections are not merged. Repeated variables stay in file order.","Canonical text is LF only, with no BOM and no blank line. Each header is at column 0. Each variable has one leading tab. An explicit value uses one space on each side of =. A value is bare only when it is non-empty and every code point is ASCII 0x21-0x7E except quote, hash, semicolon, and backslash; otherwise it is double-quoted with \\\\ \\\" \\n \\t \\b. Subsection quotes escape only \\\\ and \\\". Tab and BS may appear raw inside a subsection. LF, CR, NUL, DEL, and other C0 controls in a subsection or value are invalid_input. Output bytes are the UTF-8 size of the text field. The whole input is walked for depth, nodes, and string bytes before shape checks. Parser line fields are rejected."],"limits":{"max_input_bytes":131072,"max_output_bytes":65536,"max_sections":128,"max_entries":512,"max_value_bytes":8192,"max_subsection_bytes":1024,"max_depth":8,"max_nodes":8192},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["sections"],"properties":{"sections":{"type":"array","maxItems":128,"items":{"type":"object","additionalProperties":false,"required":["name","subsection","entries"],"properties":{"name":{"type":"string","minLength":1,"maxLength":4096,"pattern":"^[A-Za-z0-9-][A-Za-z0-9-]*$"},"subsection":{"oneOf":[{"type":"string","maxLength":1024},{"type":"null"}]},"entries":{"type":"array","maxItems":512,"items":{"type":"object","additionalProperties":false,"required":["key","value","implicit_bool"],"properties":{"key":{"type":"string","minLength":1,"maxLength":4096,"pattern":"^[A-Za-z][A-Za-z0-9-]*$"},"value":{"oneOf":[{"type":"string","maxLength":8192},{"type":"null"}]},"implicit_bool":{"type":"boolean"}}}}}}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","maxLength":65536}}},"examples":[{"input":{"sections":[{"name":"core","subsection":null,"entries":[{"key":"filemode","value":"false","implicit_bool":false}]}]},"output":{"text":"[core]\n\tfilemode = false\n"}},{"input":{"sections":[{"name":"branch","subsection":"devel","entries":[{"key":"remote","value":"origin","implicit_bool":false},{"key":"merge","value":"refs/heads/devel","implicit_bool":false}]}]},"output":{"text":"[branch \"devel\"]\n\tremote = origin\n\tmerge = refs/heads/devel\n"}},{"input":{"sections":[{"name":"core","subsection":null,"entries":[{"key":"msg","value":"a\nb","implicit_bool":false}]}]},"output":{"text":"[core]\n\tmsg = \"a\\nb\"\n"}}],"execute_url":"/v1/tools/gitconfig-format/versions/1.0.0/execute"}