Faits :
A.
A.a. Dès le mois d'avril 2014, A._ SA (ci-après: la mandante) a chargé B._ Sàrl (ci-après: la mandataire), société active dans la protection des biens et des personnes, de la protection de la famille du frère (personnalité ukrainienne exposée) de son administratrice, en particulier du fils de celui-ci et parfois de son épouse.
La mandataire a affecté à la protection de la famille en question deux agents de sécurité armés, à savoir son associé gérant, C._, et un employé, D._.
Le 21 mai 2015, la mandante a résilié le contrat avec effet au 1 er juin 2015.
A.b. Durant la période d'avril 2014 à janvier 2015, la mandataire a établi ses factures sur la base d'un tarif horaire, alors que de février à mai 2015, la mandataire a facturé un forfait, avec supplément pour les heures supplémentaires, comme proposé par elle le 16 mars 2015 et accepté par la mandante le 4 mai 2015.
Les factures adressées par la mandataire pour les mois d'avril 2014 à avril 2015 (d'un total de 316'092 fr. 93) ont été entièrement payées; si les factures d'avril à décembre 2014 ont été payées sans aucune contestation, les factures de janvier à avril 2015 n'ont, dans un premier temps, été payées qu'à 50% le 8 mai 2015 (74'730 fr.), le solde de 50% (74'730 fr.) ayant été payé le 29 mai 2015. La facture de mai 2015 du montant de 22'317 fr. 34 n'a pas été payée.
B.
La mandante a ouvert action en réduction des honoraires de la mandataire (payés à hauteur de 316'092 fr. 93) de 50% correspondant à son estimation des heures travaillées par l'agent D._ et en remboursement du trop-payé de 50% (158'046 fr. 40), sous déduction de la moitié de la facture de mai 2015 en souffrance, soit au total 146'887 fr. 73 (158'046 fr. 40 - 11'158 fr. 67 [1/2 de 22'317 fr. 34]). En bref, la mandante invoque la violation par la mandataire de ses obligations contractuelles au motif que les parties étaient convenues que le port d'une arme à feu était une condition essentielle du contrat et que la mandataire a affecté à la protection son employé, l'agent D._, qui, bien que porteur d'une arme à feu lors des missions effectuées, ne possédait pas un permis de port d'arme, ni une carte de légitimation (d'agent de sécurité). Elle estime qu'elle ne doit pas payer les heures effectuées par D._ et, par conséquent, ne doit pas le 50% des honoraires facturés pour la période d'avril 2014 à mai 2015.
De son côté, la mandataire a ouvert action en paiement de ses honoraires à 100% pour le mois de mai 2015, ainsi que d'une indemnité pour résiliation en temps inopportun. La question de cette indemnité n'est plus litigieuse.
Dans ses dernières conclusions, la mandante a conclu au paiement de 155'857 fr. 60, sous déduction de 22'317 fr. (la facture de mai 2015 pour les heures effectuées par l'agent C._ n'étant plus contestée).
Les causes ont été jointes.
Par jugement du 21 juin 2018, le Tribunal de première instance a notamment rejeté la demande de la mandante et, notamment, admis la demande de la mandataire en paiement de ses honoraires pour le mois de mai 2015 et condamné la mandante à payer à la mandataire le montant de 22'317 fr. 30.
Statuant sur l'appel de la mandante, la Chambre civile de la Cour de justice l'a rejeté et a confirmé le jugement attaqué.
En bref, elle a constaté que la mandante persistait à réclamer la réduction des honoraires de 50% (146'887 fr. 70 avec intérêts) alors que, dans ses dernières conclusions devant le tribunal de première instance, elle concluait au remboursement de 133'540 fr. 60 avec intérêts. Traitant les deux griefs soulevés par la mandante, la cour cantonale a retenu que la mandataire ne s'était pas rendue coupable d'exécution défectueuse du mandat.
Tout d'abord, il ne résultait pas de la procédure que les parties avaient convenu que les agents porteraient une arme à feu et, quoi qu'il en soit, les deux agents ayant effectué des missions étaient porteurs d'une arme à feu, même si D._ n'avait plus possédé de permis de port d'arme et de carte de légitimation valides dès le printemps 2015. L'essentiel des services avait été assuré par l'agent et associé gérant C._. La qualité et l'adéquation du travail de l'agent D._ n'avaient jamais été remises en cause par la mandataire, qui avait même envisagé de l'engager directement et qui avait acquitté les factures sans formuler de réserve quant au travail fourni.
Ensuite, elle a considéré qu'il ne pouvait être question de retrancher entièrement de la rémunération les heures travaillées par l'agent D._ puisque la prestation de celui-ci n'avait pas été totalement inutile ou inutilisable et qu'il était établi que son travail avait été effectué à la satisfaction de la mandante.
C.
Contre cet arrêt qui lui a été notifié le 12 août 2019, la mandante a interjeté un recours en matière civile au Tribunal fédéral le 16 septembre 2019, concluant à sa réforme en ce sens que la mandataire soit condamnée à lui rembourser le montant de 133'540 fr. 60 avec intérêts à 5% l'an dès le 15 octobre 2015; subsidiairement elle conclut à son annulation et au renvoi de la cause à la cour cantonale pour nouvelle décision dans le sens des considérants.
La mandataire conclut au rejet du recours, dans la mesure où il est recevable, et à la confirmation du jugement attaqué.
Les parties n'ont pas déposé d'observations complémentaires.
La cour cantonale se réfère aux considérants de son arrêt.

Considérant en droit :
1.
Interjeté en temps utile (art. 100 al. 1, 46 al. 1 let. b et 45 al. 1 LTF) par la demanderesse qui a succombé dans ses conclusions restées litigieuses en appel (<ref-law>), contre une décision finale (<ref-law>) prise par le tribunal supérieur du canton de Genève (<ref-law>), dans une affaire civile (<ref-law>) dont la valeur litigieuse est supérieure à 30'000 fr. (<ref-law>), le recours en matière civile est recevable au regard de ces dispositions.
2.
2.1. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut rectifier les constatations de l'autorité précédente que si elles sont manifestement inexactes, c'est-à-dire arbitraires (<ref-ruling> consid. 2; <ref-ruling> consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>).
La critique de l'état de fait retenu est soumise au principe strict de l'allégation énoncé par l'<ref-law> (<ref-ruling> consid. 2.3 et les références citées). La partie qui souhaite obtenir un complètement de l'état de fait doit démontrer, par des renvois précis aux pièces du dossier, qu'elle a présenté aux autorités précédentes, en conformité avec les règles de la procédure, les faits juridiquement pertinents à cet égard et les moyens de preuve adéquats (<ref-ruling> consid. 2). Si la critique ne satisfait pas à ces exigences, les allégations relatives à un état de fait qui s'écarterait de celui de la décision attaquée ne pourront pas être prises en considération (<ref-ruling> consid. 1.3.1 et les références citées).
2.2. Sous réserve de la violation des droits constitutionnels (<ref-law>), le Tribunal fédéral applique le droit d'office (<ref-law>). Il n'est toutefois lié ni par les motifs invoqués par les parties, ni par l'argumentation juridique retenue par l'autorité cantonale; il peut donc admettre le recours pour d'autres motifs que ceux invoqués par le recourant, comme il peut le rejeter en opérant une substitution de motifs (ATF <ref-ruling> consid. 1.4 et l'arrêt cité).
3.
Seule demeure litigieuse la prétention de la mandante à la " réduction " des honoraires de la mandataire pour les heures effectuées par l'agent D._, qui, bien que porteur d'une arme à feu lors des missions effectuées, n'était pas ou plus titulaire d'un permis de port d'arme et d'une carte de légitimation (d'agent de sécurité), ce qui justifierait, selon elle, une réduction de 50% des honoraires facturés pour la période d'avril 2014 à avril 2015.
3.1. Il n'est pas contesté que le contrat en cause soit soumis aux règles du mandat.
En cas de violation du mandat, il peut y avoir cumul entre le droit du mandant à la réparation du dommage causé par cette mauvaise exécution (art. 398 al. 1-2 CO) et le droit du mandant à la réduction des honoraires du mandataire (<ref-law>) (<ref-ruling> consid. 3c; arrêts 4A_89/2017 du 2 octobre 2017 consid. 5.2.2; 4A_364/2013 du 5 mars 2014 consid. 14.1).
3.2. La rémunération du mandataire est due en vertu de l'<ref-law>. En cas de violation du mandat, la jurisprudence distingue entre la totale inexécution et l'exécution défectueuse de celui-ci.
3.2.1. En cas d'inexécution totale, soit lorsque le mandataire demeure inactif ou que ses prestations se révèlent inutiles ou inutilisables ( vollständig unbrauchbar), celui-ci perd son droit à la rémunération (<ref-ruling> consid. 4a; arrêt 4A_89/2017 précité consid. 5.2.3).
3.2.2. En revanche, même en cas d'exécution défectueuse, le droit du mandataire à des honoraires subsiste, mais le montant des honoraires convenus ( Honorarforderung) peut être réduit pour rétablir l'équilibre des prestations contractuelles. En effet, la rémunération due au mandataire représente une contre-prestation pour l'activité diligente qu'il exerce dans l'affaire dont il est chargé et s'il n'agit pas avec le soin requis, il ne peut prétendre, au titre de l'<ref-law> et de la convention des parties, à l'entier des honoraires convenus, c'est-à-dire à la rémunération qui serait équitablement due à un mandataire diligent (<ref-ruling> consid. 3b, rappelant un principe généralement admis dans la jurisprudence antérieure; arrêts 4A_89/2017 précité consid. 5.2.2; 4A_287/2015 du 22 juillet 2015 consid. 2.1). Le droit du mandant à la réduction existe même lorsque les honoraires ont été fixés de manière forfaitaire (arrêt 4A_287/2015 précité consid. 2.1 in fine).
3.3. Le droit du mandant à la réparation du dommage causé par l'inexécution ou la mauvaise exécution du mandat est soumis aux conditions de l'art. 398 al. 1-2 CO.
Selon l'<ref-law>, qui renvoie à l'<ref-law>, le mandataire répond du dommage qu'il cause au mandant intentionnellement ou par négligence. Sa responsabilité est donc subordonnée aux quatre conditions suivantes, conformément au régime général de l'<ref-law> (arrêt 4A_588/2011 du 3 mai 2012 consid. 2.2.2) : (1) une violation des obligations qui lui incombent en vertu du contrat, notamment la violation de ses obligations de diligence et de fidélité (<ref-law>; <ref-ruling> consid. 3.2.2; <ref-ruling> consid. 1); (2) un dommage; (3) un rapport de causalité (naturelle et adéquate) entre la violation du contrat et le dommage; et (4) une faute. Le mandant supporte le fardeau de l'allégation objectif ( objektive Behauptungslast) et le fardeau de la preuve ( Beweislast) des trois premières conditions conformément à l'<ref-law> (arrêt 4A_588/2011 précité consid. 2.2.2); il incombe en revanche au mandataire de prouver qu'aucune faute ne lui est imputable (" à moins qu'il ne prouve... ") (arrêt 4A_89/2017 précité consid. 5.1).
Ce dommage dont le mandant peut exiger la réparation ne peut évidemment être qu'un dommage consécutif à la mauvaise exécution, car la réparation du dommage ne doit pas permettre au mandant d'obtenir une seconde indemnisation pour le même objet, c'est-à-dire une indemnisation par réduction des honoraires et en sus la même indemnisation au titre de dommage (arrêt 4A_89/2017 précité consid. 5.2.2; cf. PIERRE Tercier et al., Les contrats spéciaux, 5e éd. 2016, n. 4594). En application par analogie de l'<ref-law>, la jurisprudence a ainsi admis que si le mandataire a réparé le dommage causé, il peut être traité comme s'il avait correctement accompli son mandat et avoir droit à ses honoraires (<ref-ruling> consid. 4c in fine; arrêts 4A_89/2017 précité consid. 5.2.2; 4A_364/2013 précité consid. 14.1; 4A_124/2007 du 23 novembre 2007 consid. 6.1.1), ce qui est critiqué en doctrine ( cf. PIERRE Tercier et al., op. cit., n. 4595; FRANZ Werro, Le mandat et ses effets, thèse Fribourg 1993, n. 1069, qui estiment que les deux prétentions sont indépendantes et que, même si le mandataire a indemnisé le mandant du dommage causé par la mauvaise exécution, il doit néanmoins supporter une réduction de ses honoraires parce qu'il a manqué de diligence; cf. également les auteurs cités dans l'arrêt 4A_364/2013 précité loc. cit.).
3.4. Les créances réciproques du mandataire (en paiement de ses honoraires réduits) et du mandant (en dommages-intérêts) seront compensées à due concurrence (<ref-law>; <ref-ruling> consid. 4c; arrêt 4A_364/2013 précité consid. 14.1).
4.
4.1. En l'espèce, selon l'arrêt attaqué, les deux agents de sécurité ayant effectué des missions pour la mandante étaient porteurs d'une arme à feu. L'agent D._, dont les prestations sont seules litigieuses, était porteur d'une arme à feu de marque SIG, même s'il ne possédait plus de permis de port d'arme et de carte de légitimation valides depuis le printemps 2015. La qualité et l'adéquation du travail de ce dernier n'ont jamais été remises en cause par la mandante, celle-ci ayant même envisagé de l'engager directement à son service et ayant payé les factures jusqu'à fin avril 2015 sans formuler de réserve quant au travail fourni.
La cour cantonale a également retenu qu'il ne résultait pas de la procédure que le port d'une arme ( i.e. à feu) par les agents était une condition essentielle du contrat. Elle a relevé également que l'essentiel des services de protection avait été fourni par l'agent C._.
4.2. La mandante recourante taxe ces faits d'arbitraires sur trois points : premièrement, le port d'une arme à feu aurait été convenu par les parties; deuxièmement, l'essentiel des services n'aurait pas été fourni par l'agent C._; et, troisièmement, la mandataire n'aurait pas allégué ni prouvé que l'agent D._ disposait d'un permis de port d'arme et d'une carte de légitimation valables après le 31 octobre 2008.
Au-delà de ces questions de fait, la recourante veut obtenir la suppression totale des honoraires facturés par la mandataire pour les heures effectuées par l'agent D._ - qui était effectivement porteur d'une arme à feu -, au seul motif qu'il n'aurait pas possédé un permis de port d'arme ni une carte de légitimation (d'agent de sécurité) valides, ce qui aurait pu mettre en péril sa mission et constituerait un manque de diligence de la mandataire. Selon la recourante, cette violation constituerait une violation contractuelle, indépendamment de la survenance consécutive d'un dommage. En refusant d'en tenir compte au motif que l'agent était effectivement armé lors des missions et qu'elle-même n'avait pas remis en cause la qualité et l'adéquation de son travail, la cour cantonale aurait mélangé deux conditions, à savoir la violation du contrat et l'existence d'un dommage. Toujours, selon la recourante, la question de savoir si la violation est demeurée sans conséquence n'est pas pertinente, le mandat pouvant être violé indépendamment de la survenance consécutive d'un dommage. Elle soutient que la mandataire a violé le contrat, n'ayant pas fait preuve de la diligence requise : elle ne s'est pas assurée que l'agent D._ disposait du permis de port d'arme et a pris le risque que celui-ci ne soit pas capable de manier son arme; elle n'a pas contrôlé qu'il avait l'autorisation d'exercer le métier d'agent de sécurité, dont le coût de formation continue et de cours obligatoires est plus élevé; elle a pris le risque d'un contrôle de police ou d'une arrestation qui aurait mis en danger la sécurité des personnes qui devaient être protégées.
Puis se prévalant de la jurisprudence en matière de devis d'architecte (soit de dommage résultant de la confiance déçue), ainsi qu'en matière de responsabilité médicale (défaut de consentement éclairé), la recourante estime que ces jurisprudences rendues certes dans des contextes de fait différents apportent des réponses et permettent d'admettre un dommage en lien avec l'activité déployée par l'agent D._, car si elle avait su que l'agent D._ n'était pas titulaire de ces autorisations, elle n'aurait pas accepté qu'il soit chargé d'une partie des missions, mais aurait fait appel à une autre société de protection ou n'aurait pas accepté des honoraires aussi élevés. Les honoraires payés en relation avec l'activité déployée par l'agent D._ seraient constitutifs de son dommage.
Estimant les heures travaillées par celui-ci à la moitié des honoraires totaux, la recourante conclut à la diminution de 50% des honoraires totaux pour la période d'avril 2014 à avril 2015 et au remboursement du montant qu'elle a payé en trop.
4.3. Il n'y a pas lieu d'examiner les trois griefs de fait formulés par la recourante, dès lors que, même si ces griefs étaient admis, le recours doit de toute façon être rejeté pour un motif de droit.
4.3.1. La mandante recourante réclame la suppression totale des honoraires pour le travail effectué par l'agent D._, au motif que celui-ci ne disposait pas du permis de port d'arme et d'une carte de légitimation valides. Il s'agit-là typiquement de la question de la rémunération due au mandataire pour le travail effectué au sens de l'<ref-law>, et non d'un dommage consécutif à la violation du contrat tel que visé par l'art. 398 al. 1-2 CO.
C'est donc à tort que la recourante se prévaut de cette dernière disposition et des dispositions applicables en matière de responsabilité médicale et pour dépassement de devis de l'architecte.
4.3.2. La mandante recourante prétend avoir droit à la " réduction " des honoraires parce que telle serait la conséquence de la violation du contrat, constituée par le fait que l'agent D._ ne disposait pas des autorisations nécessaires, indépendamment de la survenance consécutive d'un préjudice. Selon elle, le seul risque que la police aurait pu interrompre la mission de protection de l'agent D._ suffirait.
Bien que la recourante parle de " réduction ", elle n'entend pas simplement la diminution des honoraires pour mauvaise exécution de son travail par l'agent D._, mais bien leur suppression totale. Si la " réduction " demandée est de 50%, c'est uniquement parce que
la mandataire a exécuté ses missions en mettant à disposition deux agents, les honoraires pour l'autre agent n'étant pas contestés.
Il est patent que la recourante méconnaît que, selon la jurisprudence, il ne pourrait y avoir inexécution totale du mandat, ce qui entraînerait la suppression des honoraires, que si l'agent D._ était demeuré totalement inactif ou si ses prestations s'étaient révélées inutiles ou inutilisables. Or, tel n'a manifestement pas été le cas, ce que la cour cantonale a constaté : l'agent D._ était porteur d'une arme à feu et il a assuré, à la satisfaction de la mandante, la protection de la famille dont il avait la charge. La recourante ne s'en prend pas à ces constatations. Sa thèse qu'un risque abstrait suffirait n'est pas conforme à la jurisprudence et doit être rejetée.
4.3.3. Il n'y a pas lieu d'entrer en matière sur la question d'une simple réduction des honoraires pour les heures effectuées par l'agent D._, dès lors que, comme l'a constaté la cour cantonale, la mandante n'a pas pris de conclusions subsidiaires chiffrées à cet égard.
De plus, pour justifier ne serait-ce qu'une réduction des honoraires facturés pour l'agent D._, la recourante devrait établir que la violation du contrat entraîne un déséquilibre entre les prestations contractuelles dues de part et d'autre. Or, même si elle affirme dans son recours que les honoraires pour un agent non titulaire d'un port d'arme à feu ne seraient pas aussi élevés, ce fait ne résulte pas des faits constatés et elle ne démontre pas où, dans ses écritures, elle aurait allégué ce fait et quels moyens de preuve elle aurait offerts pour le prouver.
5.
Il s'ensuit que le recours doit être rejeté, dans la mesure où il est recevable, pour les motifs qui précèdent, sans qu'il soit nécessaire d'examiner les griefs de fait de la recourante. Les frais et dépens de la procédure fédérale doivent être mis à la charge de la recourante qui succombe (art. 66 al. 1 et 68 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
Les frais de la procédure, arrêtés à 5'500 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'intimée une indemnité de 6'500 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice du canton de Genève Chambre civile.
Lausanne, le 21 avril 2020
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
Le greffier : Thélin