# Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. import argparse from importlib.metadata import version from llama_stack.cli.stack.utils import print_subcommand_description from llama_stack.cli.subcommand import Subcommand from .build import StackBuild from .list_apis import StackListApis from .list_providers import StackListProviders from .run import StackRun class StackParser(Subcommand): def __init__(self, subparsers: argparse._SubParsersAction): super().__init__() self.parser = subparsers.add_parser( "stack", prog="llama stack", description="Operations for the Llama Stack / Distributions", formatter_class=argparse.RawTextHelpFormatter, ) self.parser.add_argument( "--version", action="version", version=f"{version('llama-stack')}", ) self.parser.set_defaults(func=lambda args: self.parser.print_help()) subparsers = self.parser.add_subparsers(title="stack_subcommands") # Add sub-commands StackBuild.create(subparsers) StackListApis.create(subparsers) StackListProviders.create(subparsers) StackRun.create(subparsers) print_subcommand_description(self.parser, subparsers)