package bootstrap import ( "context" "fmt" "strings" "forge.lclr.dev/AI/mcp-framework/secretstore" ) var loginBitwarden = secretstore.LoginBitwarden // DefaultLoginHandler retourne un Handler qui authentifie et déverrouille // Bitwarden, persiste la session BW_SESSION, et confirme le résultat. // Utiliser comme hook Login lorsqu'aucune logique personnalisée n'est requise. func DefaultLoginHandler(binaryName string) Handler { name := strings.TrimSpace(binaryName) return func(_ context.Context, inv Invocation) error { if _, err := loginBitwarden(secretstore.BitwardenLoginOptions{ ServiceName: name, Stdin: inv.Stdin, Stdout: inv.Stdout, Stderr: inv.Stderr, }); err != nil { return err } _, err := fmt.Fprintf(inv.Stdout, "Session Bitwarden persistée pour %q.\n", name) return err } }