{"id":"tmp_storage_jq","name":"Temporary Storage jq","alias":"TmpStorageJq","aliases":[],"description_short":"Run a jq expression on a JSON or JSONL temporary upload.","description_long":"\n    Run a jq expression on a file stored in the project's temporary upload\n    storage. The file may be one JSON document or JSONL (one JSON value per\n    line), optionally gzip-compressed.\n\n    Without `slurp`, the expression is applied to each JSON value, like `jq`.\n    With `slurp`, every value is gathered into one array first, like `jq -s`.\n    When the shape is unknown, start with `keys`, or with `.[0:3]` and\n    `slurp` set, before writing a narrower expression.\n    ","description_tool_prompt":"\n    Run a jq expression on a file stored in the project's temporary upload\n    storage. The file may be one JSON document or JSONL (one JSON value per\n    line), optionally gzip-compressed.\n\n    Without `slurp`, the expression is applied to each JSON value, like `jq`.\n    With `slurp`, every value is gathered into one array first, like `jq -s`.\n    When the shape is unknown, start with `keys`, or with `.[0:3]` and\n    `slurp` set, before writing a narrower expression.\n    ","source":"Temporary project storage","conversation_examples":["On the temporary SERP upload, run .items[] | select(.type == \"organic\") | .url","Discover an uploaded JSONL file with keys, or .[0:3] when slurp is true"],"tags":["content"],"available_in_chat":true,"available_in_deepthink":true,"available_in_mcp":true,"mcp_audience":"all","config":{"type":"object","properties":{"expression":{"description":"jq expression. The file may be one JSON document or a stream of JSON values (JSONL); each value is filtered on its own unless `slurp` is true. Start with `keys` to learn the shape of one object, or `.[0:3]` with `slurp` to see the first records of a stream. Module directives (`import`, `include`) and comments (`#`) are not available.","maxLength":10000,"minLength":1,"title":"Expression","type":"string"},"slurp":{"default":false,"description":"If true, every JSON value in the file is gathered into one array before the expression runs, like `jq -s`.","title":"Slurp","type":"boolean"},"max_results":{"default":100,"description":"Maximum number of values to return.","maximum":1000,"minimum":1,"title":"Max Results","type":"integer"}},"required":["expression"]},"item":{"type":"object","properties":{"url":{"description":"Temporary upload to query. Temporary uploaded URLs on https://app.botify.com/:organization/:project/o/storage/tmp are allowed.","title":"Url","type":"string"}},"required":["url"]},"response":{"properties":{"results":{"default":[],"description":"Values produced by the jq expression, up to `max_results`","items":{},"title":"Results","type":"array"},"results_count":{"default":0,"description":"Number of values in `results`","title":"Results Count","type":"integer"},"truncated":{"default":false,"description":"True if output was cut by `max_results` or the size cap","title":"Truncated","type":"boolean"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"jq runtime error, if the expression failed on this file. `results` still holds values produced before the error. An invalid expression is rejected instead of being reported here.","title":"Error"}},"title":"TmpStorageJqProcessedItem","type":"object"},"has_canvas":false,"open_canvas_automatically":false}