{ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "ReviewDelivery": { "enum": ["inline", "detached"], "type": "string" }, "ReviewTarget": { "oneOf": [ { "description": "Review the working tree: staged, unstaged, and untracked files.", "properties": { "type": { "enum": ["uncommittedChanges"], "title": "UncommittedChangesReviewTargetType", "type": "string" } }, "required": ["type"], "title": "UncommittedChangesReviewTarget", "type": "object" }, { "description": "Review changes between the current branch and the given base branch.", "properties": { "branch": { "type": "string" }, "type": { "enum": ["baseBranch"], "title": "BaseBranchReviewTargetType", "type": "string" } }, "required": ["branch", "type"], "title": "BaseBranchReviewTarget", "type": "object" }, { "description": "Review the changes introduced by a specific commit.", "properties": { "sha": { "type": "string" }, "title": { "description": "Optional human-readable label (e.g., commit subject) for UIs.", "type": ["string", "null"] }, "type": { "enum": ["commit"], "title": "CommitReviewTargetType", "type": "string" } }, "required": ["sha", "type"], "title": "CommitReviewTarget", "type": "object" }, { "description": "Arbitrary instructions, equivalent to the old free-form prompt.", "properties": { "instructions": { "type": "string" }, "type": { "enum": ["custom"], "title": "CustomReviewTargetType", "type": "string" } }, "required": ["instructions", "type"], "title": "CustomReviewTarget", "type": "object" } ] } }, "properties": { "delivery": { "anyOf": [ { "$ref": "#/definitions/ReviewDelivery" }, { "type": "null" } ], "default": null, "description": "Where to run the review: inline (default) on the current thread or detached on a new thread (returned in `reviewThreadId`)." }, "target": { "$ref": "#/definitions/ReviewTarget" }, "threadId": { "type": "string" } }, "required": ["target", "threadId"], "title": "ReviewStartParams", "type": "object" }