code: func (b *Backend) PruneCache(ctx context.Context, opts types.BuildCachePruneOptions) (*types.BuildCachePruneReport, error) {
  	eg, ctx := errgroup.WithContext(ctx)
  
  	var fsCacheSize uint64
  	eg.Go(func() error {
  		var err error
  		fsCacheSize, err = b.fsCache.Prune(ctx)
  		if err != nil {
  			return errors.Wrap(err, "failed to prune fscache")
  		}
  		return nil
  	})
  
  	var buildCacheSize int64
  	var cacheIDs []string
  	eg.Go(func() error {
  		var err error
  		buildCacheSize, cacheIDs, err = b.buildkit.Prune(ctx, opts)
  		if err != nil {
  			return errors.Wrap(err, "failed to prune build cache")
  		}
  		return nil
  	})
  
  	if err := eg.Wait(); err != nil {
  		return nil, err
  	}
  
  	return &types.BuildCachePruneReport{SpaceReclaimed: fsCacheSize + uint64(buildCacheSize), CachesDeleted: cacheIDs}, nil
  }
docs: // PruneCache removes all cached build sources