speculate
Rôle et comportement
Section intitulée « Rôle et comportement »Met en concurrence 1 à 8 candidats depuis le HEAD du checkout, chacun sur sa branche et dans sa sandbox, et sélectionne le premier que validate accepte une fois sa sandbox fermée. Renvoie le résultat de chaque candidat, l’usage partagé et une vérification de fusion du gagnant ; ne fusionne jamais. Des options invalides rejettent avec le code configuration.
Exemple complet et règles détaillées.
Paramètres et propriétés
Section intitulée « Paramètres et propriétés »optionsRequisSpeculationOptions<T>Dépôt, provider de sandbox, candidats, budget partagé et callback validate, plus les réglages de concurrence, de nettoyage et de durabilité.options.durabilityOptionnelSpeculationDurability | undefinedEnregistre la course via un Transport pour la reprendre après un plantage ou un arrêt de quota. Exige un provider doté de recover ; omettez-le pour une course en mémoire.options.cleanupMsOptionnelnumber | undefinedAttente de chaque fermeture de sandbox ou récupération de ressource, et des candidats en cours après une annulation, 30000 par défaut. Au-delà, le nettoyage reste en attente.options.observationOptionnelObservationHub | undefinedHub parent des événements de tous les candidats, délimités par clé de candidat ; il remplace l’observation propre à chaque request.options.repositoryRequisstringCheckout Git hôte. Son commit HEAD au premier démarrage de la course sert de baseline à toutes les branches candidates.options.sandboxProviderRequisSandboxProviderProvider qui alloue la sandbox de chaque candidat. Le mode durable en exige un doté de recover : Docker ou Podman en mode monté.options.candidatesRequisreadonly SpeculativeCandidate<T>[]1 à 8 candidats aux clés uniques, démarrés dans l’ordre de la liste selon concurrency.options.concurrencyOptionnelnumber | undefinedNombre maximal de candidats exécutés à la fois, de 1 à 8, 2 par défaut.options.budgetRequisWorkflowBudgetLimites partagées par tous les candidats. Chaque démarrage consomme une unité de attempts et la limite empêche tout nouveau démarrage ; atteindre une limite de tokens de usage annule les candidats en cours. Les tokens consommés dans validate ne sont pas comptés.options.signalOptionnelAbortSignal | undefinedSon annulation arrête les candidats en cours et termine la course avec le statut aborted.options.sandboxOptionnelPick<SandboxOptions, "hooks" | "storageQuota" | "limits" | "logging" | "bootstrap" | "conversationHome"> | undefinedRéglages de sandbox appliqués à chaque candidat : hooks, bootstrap, logging, limits, storageQuota et conversationHome.options.validateRequis(candidate: SpeculativeValidation<T>) => boolean | Promise<boolean>Décide si un candidat terminé est acceptable, à partir de sa sortie de dispatch et de sa sandbox active ; true l’accepte. Une exception marque le candidat failed.
Promise<SpeculationResult<T>>