Add internal cataloger capability descriptions #4317
                
     Draft
            
            
          
      
        
          +16,637
        
        
          −40
        
        
          
        
      
    
  
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
This adds the ability, when
SYFT_EXP_CAPABILITIES=true, to use an internalsyft cataloger infocommand to describe cataloger capabilities such as:This is available via an ascii table and JSON output.
Caution
This is an experimental feature and can change without warning and could be removed entirely. Do not depend on this command in production.
The way the capabilities are tracked is described in depth in the internal tooling's readme.
A quick summary is that we use the source code and test observations as a basis for what catalogers exist, how they are configured, and what they output. These things are then used to cross-validate a pseudo-generated
packages.yaml(some auto generated items, some manually filled in items) with a set of completion tests (tests that ensure the full universe of things are defined and self-consistent) and then used to drive thecataloger infocommand.