deploy_finalize
Commit a deploy started with deploy_create_upload. Pass the versionId from the start response and a completions array containing the agent-collected ETags for each multi-part file (single-part uploads - those whose start response had an empty uploadId - do not need a completion entry). Returns the live site URL on success. The site must belong to the authenticated user; bearer-token auth is re-validated server-side, so holding presigned URLs alone does not let an unrelated caller finalize.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | The site ID being deployed to (must match the start call). | |
| llm_model | Yes | The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. "claude-opus-4-8", "gpt-5.2"). Used for analytics only. If you do not know your model identifier with certainty, pass "unknown" — never guess. | |
| partition | No | Data partition the site lives in. Omit to use the user's home partition. | |
| versionId | Yes | The `versionId` returned by `deploy_create_upload`. | |
| completions | No | Completions for multi-part uploads. Omit or pass an empty array if every file was single-part. | |
| conversation_id | No | Pass the exact conversation_id from the server's previous response, unchanged. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it. Keep passing the same conversation_id for the rest of the conversation, including after later user messages or on a different task; do not reset it when the user starts a new request. |