refactor: inspect routes now shows all non-deprecated APIs

the inspect API lacked any mechanism to get all
non-deprecated APIs (v1, v1alpha, v1beta)
change default to this behavior

'v1' filter can be used for user' wanting a list
of stable APIs

Signed-off-by: Nathan Weinberg <nweinber@redhat.com>
This commit is contained in:
Nathan Weinberg 2025-11-10 14:37:13 -05:00
parent 43adc23ef6
commit f1dbb5f588
5 changed files with 6 additions and 7 deletions

View file

@ -963,7 +963,7 @@ paths:
Optional filter to control which routes are returned. Can be an API level Optional filter to control which routes are returned. Can be an API level
('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level, ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level,
or 'deprecated' to show deprecated routes across all levels. If not specified, or 'deprecated' to show deprecated routes across all levels. If not specified,
returns only non-deprecated v1 routes. returns all non-deprecated routes.
required: false required: false
schema: schema:
type: string type: string

View file

@ -960,7 +960,7 @@ paths:
Optional filter to control which routes are returned. Can be an API level Optional filter to control which routes are returned. Can be an API level
('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level, ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level,
or 'deprecated' to show deprecated routes across all levels. If not specified, or 'deprecated' to show deprecated routes across all levels. If not specified,
returns only non-deprecated v1 routes. returns all non-deprecated routes.
required: false required: false
schema: schema:
type: string type: string

View file

@ -963,7 +963,7 @@ paths:
Optional filter to control which routes are returned. Can be an API level Optional filter to control which routes are returned. Can be an API level
('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level, ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level,
or 'deprecated' to show deprecated routes across all levels. If not specified, or 'deprecated' to show deprecated routes across all levels. If not specified,
returns only non-deprecated v1 routes. returns all non-deprecated routes.
required: false required: false
schema: schema:
type: string type: string

View file

@ -76,7 +76,7 @@ class Inspect(Protocol):
List all available API routes with their methods and implementing providers. List all available API routes with their methods and implementing providers.
:param api_filter: Optional filter to control which routes are returned. Can be an API level ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level, or 'deprecated' to show deprecated routes across all levels. If not specified, returns only non-deprecated v1 routes. :param api_filter: Optional filter to control which routes are returned. Can be an API level ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at that level, or 'deprecated' to show deprecated routes across all levels. If not specified, returns all non-deprecated routes.
:returns: Response containing information about all available routes. :returns: Response containing information about all available routes.
""" """
... ...

View file

@ -15,7 +15,6 @@ from llama_stack.apis.inspect import (
RouteInfo, RouteInfo,
VersionInfo, VersionInfo,
) )
from llama_stack.apis.version import LLAMA_STACK_API_V1
from llama_stack.core.datatypes import StackRunConfig from llama_stack.core.datatypes import StackRunConfig
from llama_stack.core.external import load_external_apis from llama_stack.core.external import load_external_apis
from llama_stack.core.server.routes import get_all_api_routes from llama_stack.core.server.routes import get_all_api_routes
@ -46,8 +45,8 @@ class DistributionInspectImpl(Inspect):
# Helper function to determine if a route should be included based on api_filter # Helper function to determine if a route should be included based on api_filter
def should_include_route(webmethod) -> bool: def should_include_route(webmethod) -> bool:
if api_filter is None: if api_filter is None:
# Default: only non-deprecated v1 APIs # Default: only non-deprecated APIs
return not webmethod.deprecated and webmethod.level == LLAMA_STACK_API_V1 return not webmethod.deprecated
elif api_filter == "deprecated": elif api_filter == "deprecated":
# Special filter: show deprecated routes regardless of their actual level # Special filter: show deprecated routes regardless of their actual level
return bool(webmethod.deprecated) return bool(webmethod.deprecated)