{"version":"0.20.0","name":"kanvas_pairing","description":"Paired browsers: list pairings, decide a pending pairing (approve + owner-confirmed confirm:true; syntax is not consent), revoke logs out one paired browser. Required: operation. Required fields by operation: list(sessionId); decide(sessionId,pairingId,approve,confirm); revoke(sessionId,pairingId).","inputSchema":{"type":"object","properties":{"operation":{"type":"string","enum":["list","decide","revoke"],"description":"Required operation; supply only the fields in its matching branch."},"sessionId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"pairingId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9_-]+$"},"approve":{"type":"boolean"},"interactive":{"type":"boolean"},"confirm":{"type":"boolean","const":true}},"required":["operation"],"oneOf":[{"properties":{"operation":{"const":"list"},"sessionId":{}},"required":["operation","sessionId"],"additionalProperties":false},{"properties":{"operation":{"const":"decide"},"sessionId":{},"pairingId":{},"approve":{},"interactive":{"default":false},"confirm":{}},"required":["operation","sessionId","pairingId","approve","confirm"],"additionalProperties":false,"description":"Requires pairingId, approve boolean and confirm:true after owner confirmation."},{"properties":{"operation":{"const":"revoke"},"sessionId":{},"pairingId":{}},"required":["operation","sessionId","pairingId"],"additionalProperties":false,"description":"Owner revokes one pairingId from kanvas_pairing list; other browsers remain authorized."}],"examples":[{"operation":"list","sessionId":"s"},{"operation":"decide","sessionId":"s","pairingId":"pairing-id","approve":true,"confirm":true},{"operation":"revoke","sessionId":"s","pairingId":"pairing-id"}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":true}}