+ {client.name}{client.resources === "all" ? "All Repositories" : client.resources.join(", ")}{client.scopes.includes("sessions:write") ? "Session control" : client.scopes.includes("shale:write") ? "Issue editing" : "Read only"} · Connected + setEditing(editing() === client.id ? "" : client.id)}>Edit access + showConfirmDialog({ title: "Revoke this connection?", description: `${client.name} will lose access immediately.`, confirmLabel: "Revoke", destructive: true, onConfirm: async () => { + await parseResponse(api.mcp.connections[":id"].$delete({ param: { id: client.id } })); if (editing() === client.id) setEditing(""); await refetch(); toast("Connection revoked"); + } })}>Revoke + + + {(details) => Link your Shale account to change repository access.Link account>}> + + {details().resourceError} + { + setBusy(true); + try { await parseResponse(api.mcp.connections[":id"].$post({ param: { id: client.id }, json: { resources: selection() } })); setEditing(""); await refetch(); } + catch (error) { toast(reason(error)); } + finally { setBusy(false); } + }}>Save access setEditing("")}>Cancel + } + + +