{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://velox.dev/schema/methods/download.probe.schema.json", "title": "download.probe", "description": "Ask what is at a URL without creating a task. Populates the File Info dialog. Runs a HEAD, falling back to a ranged GET when HEAD is refused, which is also how resumability is established. Never blocks the RPC loop; the dialog opens immediately and fills in when this lands.", "x-privileged": false, "x-transports": ["uds", "ws"], "x-deadlineMs": 30000, "x-errors": [-32013], "type": "object", "properties": { "params": { "type": "object", "additionalProperties": false, "required": ["url"], "properties": { "url": { "type": "string", "format": "uri" }, "headers": { "oneOf": [{ "$ref": "https://velox.dev/schema/types/Headers.schema.json" }, { "type": "null" }] }, "cookies": { "type": ["array", "null"], "items": { "$ref": "https://velox.dev/schema/types/Cookie.schema.json" } }, "referrer": { "type": ["string", "null"] }, "userAgent": { "type": ["string", "null"] } } }, "result": { "type": "object", "additionalProperties": false, "required": ["filename", "mime", "resumable", "effectiveUrl", "suggestedCategoryId"], "properties": { "filename": { "type": "string", "description": "From Content-Disposition when present, else the URL path, sanitized." }, "sizeBytes": { "type": ["integer", "null"], "minimum": 0 }, "mime": { "type": "string" }, "resumable": { "type": "boolean", "description": "Accept-Ranges: bytes and a validator (ETag or Last-Modified) are both present." }, "effectiveUrl": { "type": "string", "format": "uri" }, "suggestedCategoryId": { "type": "string", "description": "What the rules engine would pick. The dialog preselects it; the user may override." }, "suggestedSaveDir": { "type": ["string", "null"] }, "etag": { "type": ["string", "null"] }, "lastModified": { "type": ["string", "null"] }, "acceptRanges": { "type": "boolean" }, "redirectChain": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "Every hop, so the user can see where a shortener actually led." }, "requiresAuth": { "type": "boolean", "description": "The probe got a 401/407. The GUI should collect credentials before adding." } } } } }