{"id":"csv-fill-defaults","version":"1.0.0","description":"Replace empty cells in named CSV columns with exact default strings.","supported_operations":["csv fill defaults","fill empty csv cells with defaults","replace empty csv cells","csv fill empty columns"],"unsupported_operations":["trim cells before filling","fill whitespace-only cells","infer defaults","fuzzy column matching","type coercion","read files","fetch urls"],"semantics":["The first CSV record is the header row.","defaults own keys must name existing headers exactly; unknown columns are rejected.","Only cells whose string length is 0 are replaced; whitespace-only cells are left unchanged.","An empty default string is a no-op and does not increment cells_filled.","Other columns and non-empty cells are preserved without trimming or type coercion.","An empty document without a header is rejected when defaults is non-empty; a header-only document yields header-only output.","The first output header name may not begin with U+FEFF because it is ambiguous with a CSV byte-order mark."],"limits":{"max_input_bytes":256000,"max_data_rows":5000,"max_columns":256,"max_header_name_bytes":256,"max_default_columns":256,"max_output_bytes":256000},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["csv","defaults"],"properties":{"csv":{"type":"string","maxLength":256000},"defaults":{"type":"object","additionalProperties":{"type":"string"},"maxProperties":256}}},"output_schema":{"type":"object","additionalProperties":false,"required":["csv","cells_filled"],"properties":{"csv":{"type":"string"},"cells_filled":{"type":"integer","minimum":0}}},"examples":[{"input":{"csv":"name,city,status\nAda,,\n,London,ok\n","defaults":{"name":"Anonymous","city":"Unknown","status":"pending"}},"output":{"csv":"name,city,status\nAda,Unknown,pending\nAnonymous,London,ok\n","cells_filled":3}}],"execute_url":"/v1/tools/csv-fill-defaults/versions/1.0.0/execute"}