Starter
Pour une équipe qui met ses premiers dépôts sous revue.
99 $/ mois
- Jusqu'à 5 dépôts
- 5 M de jetons d'analyse par mois
- Revues automatiques des pull requests
- 100 minutes de tests CI mobile par mois
Bêta privée · Espaces d'essai sur demande
Guarani AI revoit chaque pull request, route et mesure chaque appel de modèle, exécute vos parcours mobiles sur de vrais appareils, puis réunit le tout en une seule décision de release, traçable.
Résumé de l'exécution
Pipeline
Latence LLM par fournisseurp50 p95
En cours
CLEARED pour la mise en production
1 avertissement, 0 échec. Vérification publiée sur la pull request n° 1842.
Chaque module s'installe là où le travail se fait déjà : Verify sur les pull requests GitHub et GitLab, Mesh devant vos fournisseurs de modèles, Mobile CI dans GitHub Actions ou GitLab CI. Un module ou les trois : des règles de politique versionnées réunissent leurs constats en un seul verdict.
Verify construit un graphe sémantique de votre base de code et y confronte chaque pull request : règles d'architecture, contrats d'API, budgets de performance et analyse statique de sécurité (SAST). Les constats sont publiés sur la pull request avant la fusion.
Les verdicts découlent de règles de politique versionnées appliquées aux constats : les mêmes constats et la même politique produisent toujours le même verdict.
Découvrir Guarani VerifyestimateEta() appelle le service d'inventaire une fois par article, dans la boucle. Sur les grosses commandes, ces appels séquentiels font dépasser à GET /v2/orders son budget p95 de 450 ms.
Regroupez les lectures en un seul appel getAvailability() pour rester dans le budget.
- for (const item of order.items) {- const stock = await inventory.get(item.sku);- etas.push(estimate(item, stock));- }+ const skus = order.items.map((item) => item.sku);+ const stock = await inventory.getAvailability(skus);+ const etas = order.items.map((item) => estimate(item, stock[item.sku]));Champ ajouté fulfillment_eta sur GET /v2/orders. Les clients existants ne sont pas affectés : compatible avec le contrat v3.
SAST : aucun nouveau flux d'une entrée de requête vers une requête SQL, un appel shell ou un accès fichier, et aucun secret ajouté dans ce diff.
4 tests unitaires et 1 test d'intégration générés pour estimateEta(), tous réussis.
Un seul endpoint compatible OpenAI pour tous les modèles de vos équipes. Mesh route chaque requête selon la latence, le coût, la longueur de contexte et la résidence des données, bascule entre régions et fournisseurs, et mesure la dépense de chaque équipe.
| Fournisseur | Part | p50 | p95 | Dépenses / 24 h |
|---|---|---|---|---|
| Azure OpenAIeastus2, swedencentral | 38 % | 218 ms | 540 ms | 77,33 $ |
| Amazon Bedrockus-east-1, us-west-2 | 31 % | 236 ms | 575 ms | 47,32 $ |
| Gemini 4 Argon (Google Cloud)us-central1, 1M context | 21 % | 208 ms | 520 ms | 50,75 $ |
| GPU (open-weight)dedicated endpoint | 10 % | 172 ms | 390 ms | 7,00 $ |
Dépenses par équipe, budget quotidien
Exécutez vos suites d'interface et de non-régression sur de vrais appareils Android et iOS, depuis les pipelines que vous avez déjà. Chaque résultat est accompagné de sa vidéo, des logs de l'appareil et des traces réseau.
| Appareil | connexion | recherche | commande | paiement |
|---|---|---|---|---|
| Pixel 10 | réussi12,8 s | réussi13,9 s | réussi21,0 s | réussi9,7 s |
| iPhone 17 | réussi12,1 s | réussi13,2 s | réussi20,4 s | réussi9,9 s |
| Galaxy S25 | réussi13,3 s | réussi14,4 s | HOLD, relance réussie22,6 s | réussi10,2 s |
Chaque modification s'exécute comme un pipeline tracé, à travers des régions cloud managées, de l'inférence GPU et des pools d'appareils réels. Le code client est traité dans des tenants isolés et n'est jamais utilisé pour entraîner des modèles.
Webhook reçu
Une pull request sur GitHub ou GitLab notifie le plan de contrôle sur api.guarani-llc.com/v1. Le moteur de règles détermine le profil du dépôt.
Code indexé
L'orchestrateur met à jour le graphe sémantique et l'index vectoriel des fichiers modifiés, dans le tenant isolé du client.
Agents de revue lancés
Les agents d'architecture, de contrat, de performance et de sécurité (SAST) s'exécutent sur les workers d'analyse : des conteneurs sur AKS, ECS/EKS et Cloud Run.
Mesh route les appels de modèles
Chaque appel d'agent passe par Guarani Mesh. Quand Azure OpenAI se dégrade dans eastus2, le routeur marque l'appel REROUTED vers swedencentral et la trace continue.
Suites mobiles exécutées
Les parcours concernés s'exécutent sur de vrais appareils Android et iOS. Vidéo, logs et traces réseau sont conservés avec l'exécution.
CLEARED pour la mise en production
Des règles de politique versionnées marquent la strip CLEARED, le verdict est publié sur la pull request sous forme de check, et chaque étape est consignée dans une piste d'audit.
Source et CI
Plan de contrôle
api.guarani-llc.com/v1Workers d'analyse
Cloud d'appareils
Guarani Mesh
Fournisseurs de modèles
Données
Installez la CLI, ajoutez une étape à votre workflow ou appelez l'API REST. Des SDK typés pour TypeScript et Python encapsulent les mêmes endpoints.
# Install the CLI (Node.js 20 or later)
npm i -g @guarani-ai/cli
# Authenticate with your workspace access token
guarani login
# Create guarani.yml for this repository
guarani init
# Run the release profile and print a JSON report
guarani verify --repo acme/core-api --profile release --jsonname: guarani
on: pull_request
permissions:
contents: read
checks: write
pull-requests: write
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm i -g @guarani-ai/cli
- run: guarani verify --profile pull-request --report github
env:
GUARANI_TOKEN: ${{ secrets.GUARANI_TOKEN }}guarani-verify:
stage: test
image: node:20
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
script:
- npm i -g @guarani-ai/cli
- guarani verify --profile pull-request --report gitlab
# GUARANI_TOKEN is a masked CI/CD variable in the project settingscurl https://api.guarani-llc.com/v1/verifications \
-H "Authorization: Bearer $GUARANI_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 7c1d9e2a-1842-release" \
-d '{"repo": "acme/core-api", "ref": "refs/pull/1842/head", "profile": "release"}'import { Guarani } from "@guarani-ai/sdk";
const guarani = new Guarani({ token: process.env.GUARANI_TOKEN });
const run = await guarani.verifications.create({
repo: "acme/core-api",
ref: "refs/pull/1842/head",
profile: "release",
});
// Polls until the verdict is ready
const result = await guarani.verifications.wait(run.id);
console.log(result.verdict, result.findings.length);import os
from guarani_ai import Guarani
client = Guarani(token=os.environ["GUARANI_TOKEN"])
run = client.verifications.create(
repo="acme/core-api",
ref="refs/pull/1842/head",
profile="release",
)
# Polls until the verdict is ready
result = client.verifications.wait(run.id)
print(result.verdict, len(result.findings))Les paquets et endpoints présentés correspondent à l'interface bêta v1.
Les clients de la bêta privée sont publiés sur npm et PyPI. L'exécution distante nécessite un GUARANI_TOKEN délivré par un espace de travail Private Beta provisionné.
Chaque offre commence par un essai gratuit de 14 jours. Prix en dollars US, facturation mensuelle, hors taxes.
Pour une équipe qui met ses premiers dépôts sous revue.
99 $/ mois
Recommandé
Pour plusieurs équipes qui partagent budgets de modèles et minutes d'appareils.
399 $/ mois
Pour une infrastructure dédiée, une inférence GPU isolée et des preuves d'audit.
Sur mesure
Fondateur et architecte systèmes principal
Conçoit et construit la plateforme Guarani AI : le plan de contrôle, les agents de revue, la passerelle Mesh et les intégrations CI.
Directeur technique (CTO)
Dirige l'infrastructure d'inférence GPU et de CI mobile.
RLS-NEXTyour-org/your-repoAWAITING CLEARANCE
Les clients de la bêta privée sont publiés sur npm et PyPI. L'exécution distante nécessite un GUARANI_TOKEN délivré par un espace de travail Private Beta provisionné.