{"id":"ini-win-parse","version":"1.0.0","description":"Retrieve a Windows profile string, or list section or key names, with pinned profile rules.","supported_operations":["get private profile string","read windows initialization file key","lookup profile section and key","enumerate windows profile section names","list keys in a private profile section","private profile string default value","truncate profile string to buffer size","case insensitive windows profile lookup"],"unsupported_operations":["read IniFileMapping from the registry","decode an ANSI code page","accept semicolon comments or colon separators","write a value back into the profile"],"semantics":["Grammar getprivateprofilestring-pinned-1. Lines split on LF, CR LF, or CR. Lines that are only U+0020 and U+0009 are ignored. A line whose first non-padding character is ; or # is unsupported_input. A non-section line with no = and a : is an unsupported colon separator. Other non-section lines are invalid_input.","A section header is a padding-trimmed [name] whose ] is the last character. The name is trimmed of U+0020 and U+0009. Lookup searches only the first section span whose name matches with ASCII A-Z folding.","A key splits on the first =. The key is padding-trimmed. The value keeps characters after =, including leading spaces. Trailing U+0020 blanks are removed. One enclosing pair of ASCII quotes is then removed, and trailing blanks are removed again. Backslash and an interior semicolon or colon stay literal.","The first matching key in that span wins. duplicate_key is true when a later key in the same span folds to the same name. A later duplicate section header starts a new span and is not merged.","A missing section or key copies default_value after trailing-blank removal, or the empty string when default_value is omitted. Quotes on the default are kept. The query itself is not trimmed.","buffer_chars counts Unicode code points and includes the terminating null. Value mode copies buffer_chars-1 code points when the string does not fit. Enumeration packs each name plus NUL and one extra NUL; when that image does not fit it keeps buffer_chars-2 code points of the packed body. Names are a JSON array, not an embedded-NUL string.","Limits fail before a completed result is returned. __proto__ and constructor are ordinary profile names stored in strings and arrays."],"limits":{"max_input_bytes":4096,"max_lines":200,"max_sections":32,"max_keys":128,"max_name_chars":64,"max_value_chars":512,"max_depth":8,"max_nodes":1024,"max_buffer_chars":4096,"max_default_bytes":2048,"max_output_bytes":1024},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","maxLength":4096},"section":{"type":"string","minLength":1,"maxLength":64},"key":{"type":"string","minLength":1,"maxLength":64},"default_value":{"type":"string","maxLength":512},"buffer_chars":{"type":"integer","minimum":1,"maximum":4096}}},"output_schema":{"type":"object","additionalProperties":false,"required":["grammar","mode","found","value","names","truncated","copied_chars","matched_section","matched_key","duplicate_key"],"properties":{"grammar":{"type":"string","const":"getprivateprofilestring-pinned-1"},"mode":{"type":"string","enum":["value","keys","sections"]},"found":{"type":"boolean"},"value":{"type":"string","maxLength":512},"names":{"type":"array","maxItems":128,"items":{"type":"string","maxLength":64}},"truncated":{"type":"boolean"},"copied_chars":{"type":"integer","minimum":0,"maximum":8192},"matched_section":{"type":["string","null"],"maxLength":64},"matched_key":{"type":["string","null"],"maxLength":64},"duplicate_key":{"type":"boolean"}}},"examples":[{"input":{"text":"[section]\nkey=string\n","section":"section","key":"key"},"output":{"grammar":"getprivateprofilestring-pinned-1","mode":"value","found":true,"value":"string","names":[],"truncated":false,"copied_chars":6,"matched_section":"section","matched_key":"key","duplicate_key":false}},{"input":{"text":"[section]\nkey=string\n","section":"section","key":"key","buffer_chars":4},"output":{"grammar":"getprivateprofilestring-pinned-1","mode":"value","found":true,"value":"str","names":[],"truncated":true,"copied_chars":3,"matched_section":"section","matched_key":"key","duplicate_key":false}},{"input":{"text":"[section]\nkey=string\n","section":"section","key":"other","default_value":"fallback"},"output":{"grammar":"getprivateprofilestring-pinned-1","mode":"value","found":false,"value":"fallback","names":[],"truncated":false,"copied_chars":8,"matched_section":"section","matched_key":null,"duplicate_key":false}}],"execute_url":"/v1/tools/ini-win-parse/versions/1.0.0/execute"}