lightspeed-stack 0.4.1__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/PKG-INFO +261 -112
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/README.md +250 -104
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/pyproject.toml +45 -14
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/a2a_storage/in_memory_context_store.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/a2a_storage/postgres_context_store.py +3 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/a2a_storage/sqlite_context_store.py +3 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/a2a_storage/storage_factory.py +6 -7
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/database.py +6 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/README.md +12 -12
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/a2a.py +54 -41
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/authorized.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/config.py +2 -2
- lightspeed_stack-0.4.1/src/app/endpoints/conversations_v3.py → lightspeed_stack-0.5.0/src/app/endpoints/conversations_v1.py +37 -134
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/conversations_v2.py +51 -26
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/feedback.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/health.py +4 -5
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/info.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/mcp_auth.py +2 -2
- lightspeed_stack-0.5.0/src/app/endpoints/mcp_servers.py +247 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/models.py +32 -10
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/providers.py +3 -3
- lightspeed_stack-0.5.0/src/app/endpoints/query.py +322 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/rags.py +49 -8
- lightspeed_stack-0.5.0/src/app/endpoints/responses.py +765 -0
- lightspeed_stack-0.5.0/src/app/endpoints/rlsapi_v1.py +555 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/root.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/shields.py +2 -2
- lightspeed_stack-0.5.0/src/app/endpoints/stream_interrupt.py +91 -0
- lightspeed_stack-0.5.0/src/app/endpoints/streaming_query.py +1065 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/tools.py +110 -20
- lightspeed_stack-0.5.0/src/app/main.py +235 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/routers.py +26 -25
- lightspeed_stack-0.5.0/src/authentication/.ruff_cache/.gitignore +2 -0
- lightspeed_stack-0.5.0/src/authentication/.ruff_cache/0.9.1/13770435568462002823 +0 -0
- lightspeed_stack-0.5.0/src/authentication/.ruff_cache/0.9.1/2640992821107041526 +0 -0
- lightspeed_stack-0.5.0/src/authentication/.ruff_cache/0.9.1/README.md +2 -0
- lightspeed_stack-0.5.0/src/authentication/.ruff_cache/CACHEDIR.TAG +1 -0
- lightspeed_stack-0.5.0/src/authentication/.ruff_cache/README.md +2 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authentication/__init__.py +4 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authentication/api_key_token.py +4 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authentication/jwk_token.py +17 -13
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authentication/k8s.py +209 -54
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authentication/rh_identity.py +142 -38
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authentication/utils.py +1 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authorization/azure_token_manager.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authorization/middleware.py +5 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authorization/resolvers.py +6 -7
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/cache/cache_factory.py +3 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/cache/in_memory_cache.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/cache/noop_cache.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/cache/postgres_cache.py +5 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/cache/sqlite_cache.py +6 -7
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/metrics/__init__.py +3 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/metrics/utils.py +2 -2
- lightspeed_stack-0.5.0/src/models/.ruff_cache/.gitignore +2 -0
- lightspeed_stack-0.5.0/src/models/.ruff_cache/0.9.1/2435063725374233068 +0 -0
- lightspeed_stack-0.5.0/src/models/.ruff_cache/0.9.1/README.md +2 -0
- lightspeed_stack-0.5.0/src/models/.ruff_cache/CACHEDIR.TAG +1 -0
- lightspeed_stack-0.5.0/src/models/.ruff_cache/README.md +2 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/cache_entry.py +3 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/config.py +191 -18
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/context.py +15 -9
- lightspeed_stack-0.5.0/src/models/database/conversations.py +73 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/requests.py +419 -5
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/responses.py +548 -69
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/rlsapi/requests.py +47 -3
- lightspeed_stack-0.5.0/src/models/rlsapi/responses.py +93 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/observability/README.md +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/observability/__init__.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/observability/splunk.py +4 -4
- lightspeed_stack-0.5.0/src/quota/.ruff_cache/.gitignore +2 -0
- lightspeed_stack-0.5.0/src/quota/.ruff_cache/0.14.1/13216894937928385266 +0 -0
- lightspeed_stack-0.5.0/src/quota/.ruff_cache/0.14.1/README.md +2 -0
- lightspeed_stack-0.5.0/src/quota/.ruff_cache/0.9.1/11326792315657745171 +0 -0
- lightspeed_stack-0.5.0/src/quota/.ruff_cache/0.9.1/README.md +2 -0
- lightspeed_stack-0.5.0/src/quota/.ruff_cache/CACHEDIR.TAG +1 -0
- lightspeed_stack-0.5.0/src/quota/.ruff_cache/README.md +2 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/connect_pg.py +1 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/quota_exceed_error.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/quota_limiter.py +3 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/quota_limiter_factory.py +2 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/revokable_quota_limiter.py +11 -11
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/sql.py +4 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/token_usage_history.py +8 -10
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/runners/quota_scheduler.py +1 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/runners/uvicorn.py +5 -6
- lightspeed_stack-0.5.0/src/telemetry/README.md +8 -0
- lightspeed_stack-0.5.0/src/telemetry/__init__.py +7 -0
- lightspeed_stack-0.5.0/src/telemetry/configuration_snapshot.py +525 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/README.md +15 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/checks.py +2 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/common.py +4 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/connection_decorator.py +2 -1
- lightspeed_stack-0.5.0/src/utils/conversations.py +530 -0
- lightspeed_stack-0.5.0/src/utils/endpoints.py +631 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/llama_stack_version.py +47 -17
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/mcp_auth_headers.py +14 -4
- lightspeed_stack-0.5.0/src/utils/mcp_headers.py +254 -0
- lightspeed_stack-0.5.0/src/utils/mcp_oauth_probe.py +108 -0
- lightspeed_stack-0.5.0/src/utils/prompts.py +96 -0
- lightspeed_stack-0.5.0/src/utils/query.py +583 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/quota.py +12 -3
- lightspeed_stack-0.5.0/src/utils/responses.py +1650 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/schema_dumper.py +11 -4
- lightspeed_stack-0.5.0/src/utils/shields.py +284 -0
- lightspeed_stack-0.5.0/src/utils/stream_interrupts.py +142 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/suid.py +9 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/token_counter.py +3 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/tool_formatter.py +32 -5
- lightspeed_stack-0.5.0/src/utils/transcripts.py +160 -0
- lightspeed_stack-0.5.0/src/utils/types.py +381 -0
- lightspeed_stack-0.5.0/src/utils/vector_search.py +707 -0
- lightspeed_stack-0.5.0/tests/benchmarks/conftest.py +119 -0
- lightspeed_stack-0.5.0/tests/benchmarks/data_generators.py +158 -0
- lightspeed_stack-0.5.0/tests/benchmarks/db_benchmarks.py +333 -0
- lightspeed_stack-0.5.0/tests/benchmarks/test_app_database.py +761 -0
- lightspeed_stack-0.5.0/tests/benchmarks/test_app_database_comparison.py +132 -0
- lightspeed_stack-0.5.0/tests/configuration/benchmarks-postgres.yaml +47 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/run.yaml +2 -2
- lightspeed_stack-0.5.0/tests/e2e/README.md +9 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configs/run-azure.yaml +23 -5
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configs/run-ci.yaml +7 -18
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configs/run-rhaiis.yaml +21 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configs/run-rhelai.yaml +17 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configs/run-vertexai.yaml +22 -5
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configs/run-watsonx.yaml +23 -11
- lightspeed_stack-0.5.0/tests/e2e/configuration/library-mode/lightspeed-stack-auth-noop-token.yaml +41 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/library-mode/lightspeed-stack-inline-rag.yaml +40 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/library-mode/lightspeed-stack-invalid-mcp-file-auth.yaml +24 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-client-auth.yaml +24 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-file-auth.yaml +24 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-kubernetes-auth.yaml +24 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-oauth-auth.yaml +24 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/library-mode/lightspeed-stack-mcp.yaml +36 -0
- lightspeed_stack-0.4.1/tests/e2e/configuration/library-mode/lightspeed-stack-auth-noop-token.yaml → lightspeed_stack-0.5.0/tests/e2e/configuration/library-mode/lightspeed-stack-no-mcp.yaml +2 -8
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/library-mode/lightspeed-stack-rbac.yaml +1 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/library-mode/lightspeed-stack.yaml +16 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-auth-noop-token.yaml +47 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-inline-rag.yaml +41 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-invalid-mcp-file-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-auth.yaml +26 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-client-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-file-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-kubernetes-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-oauth-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-mcp.yaml +37 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-no-mcp.yaml +20 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/server-mode/lightspeed-stack-rbac.yaml +1 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack-tls.yaml +22 -0
- lightspeed_stack-0.5.0/tests/e2e/configuration/server-mode/lightspeed-stack.yaml +53 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/authorized_rh_identity.feature +6 -6
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/conversation_cache_v2.feature +9 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/conversations.feature +12 -1
- lightspeed_stack-0.5.0/tests/e2e/features/environment.py +571 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/faiss.feature +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/feedback.feature +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/info.feature +4 -22
- lightspeed_stack-0.5.0/tests/e2e/features/inline_rag.feature +69 -0
- lightspeed_stack-0.5.0/tests/e2e/features/mcp.feature +519 -0
- lightspeed_stack-0.5.0/tests/e2e/features/mcp_servers_api.feature +133 -0
- lightspeed_stack-0.5.0/tests/e2e/features/mcp_servers_api_auth.feature +30 -0
- lightspeed_stack-0.5.0/tests/e2e/features/mcp_servers_api_no_config.feature +18 -0
- lightspeed_stack-0.5.0/tests/e2e/features/models.feature +40 -0
- lightspeed_stack-0.5.0/tests/e2e/features/proxy.feature +106 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/query.feature +18 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/rbac.feature +9 -3
- lightspeed_stack-0.5.0/tests/e2e/features/responses.feature +598 -0
- lightspeed_stack-0.5.0/tests/e2e/features/responses_streaming.feature +493 -0
- lightspeed_stack-0.5.0/tests/e2e/features/rlsapi_v1.feature +89 -0
- lightspeed_stack-0.5.0/tests/e2e/features/rlsapi_v1_errors.feature +49 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/steps/README.md +18 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/steps/auth.py +1 -0
- lightspeed_stack-0.5.0/tests/e2e/features/steps/common.py +84 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/steps/common_http.py +66 -6
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/steps/conversation.py +68 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/steps/health.py +10 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/steps/info.py +2 -51
- lightspeed_stack-0.5.0/tests/e2e/features/steps/llm_query_response.py +404 -0
- lightspeed_stack-0.5.0/tests/e2e/features/steps/models.py +114 -0
- lightspeed_stack-0.5.0/tests/e2e/features/steps/place_holder.py +16 -0
- lightspeed_stack-0.5.0/tests/e2e/features/steps/proxy.py +382 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/steps/rbac.py +5 -1
- lightspeed_stack-0.5.0/tests/e2e/features/steps/responses_steps.py +80 -0
- lightspeed_stack-0.5.0/tests/e2e/features/steps/rlsapi_v1.py +65 -0
- lightspeed_stack-0.5.0/tests/e2e/features/steps/tls.py +224 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/steps/token_counters.py +2 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/streaming_query.feature +16 -1
- lightspeed_stack-0.5.0/tests/e2e/features/tls.feature +182 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/mock_jwks_server/server.py +1 -1
- lightspeed_stack-0.5.0/tests/e2e/mock_mcp_server/Dockerfile +5 -0
- lightspeed_stack-0.5.0/tests/e2e/mock_mcp_server/README.md +5 -0
- lightspeed_stack-0.5.0/tests/e2e/mock_mcp_server/server.py +123 -0
- lightspeed_stack-0.5.0/tests/e2e/mock_tls_inference_server/Dockerfile +14 -0
- lightspeed_stack-0.5.0/tests/e2e/mock_tls_inference_server/server.py +318 -0
- lightspeed_stack-0.5.0/tests/e2e/proxy/README.md +11 -0
- lightspeed_stack-0.5.0/tests/e2e/proxy/__init__.py +1 -0
- lightspeed_stack-0.5.0/tests/e2e/proxy/interception_proxy.py +215 -0
- lightspeed_stack-0.5.0/tests/e2e/proxy/tunnel_proxy.py +153 -0
- lightspeed_stack-0.5.0/tests/e2e/rag/kv_store.db +0 -0
- lightspeed_stack-0.5.0/tests/e2e/secrets/README.md +18 -0
- lightspeed_stack-0.5.0/tests/e2e/secrets/invalid-mcp-token +1 -0
- lightspeed_stack-0.5.0/tests/e2e/secrets/mcp-token +1 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/test_list.txt +9 -0
- lightspeed_stack-0.5.0/tests/e2e/utils/README.md +11 -0
- lightspeed_stack-0.5.0/tests/e2e/utils/llama_stack_utils.py +155 -0
- lightspeed_stack-0.5.0/tests/e2e/utils/prow_utils.py +252 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/utils/utils.py +129 -5
- {lightspeed_stack-0.4.1/tests/e2e/configuration/server-mode → lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs}/lightspeed-stack-auth-noop-token.yaml +1 -1
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-auth-rh-identity.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-inline-rag.yaml +38 -0
- lightspeed_stack-0.4.1/tests/e2e-prow/rhoai/configs/lightspeed-stack.yaml → lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-invalid-feedback-storage.yaml +2 -2
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-invalid-mcp-file-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-mcp-client-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-mcp-file-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-mcp-kubernetes-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-mcp-oauth-auth.yaml +25 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-mcp.yaml +30 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-no-cache.yaml +27 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-rbac.yaml +94 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs/lightspeed-stack-tls.yaml +22 -0
- {lightspeed_stack-0.4.1/tests/e2e/configuration/server-mode → lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/configs}/lightspeed-stack.yaml +9 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/configs/run.yaml +47 -28
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/manifests/lightspeed/lightspeed-stack.yaml +65 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-openai.yaml +168 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack.yaml +27 -1
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/manifests/lightspeed/mcp-mock-server.yaml +68 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/manifests/lightspeed/mock-jwks.yaml +56 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/vllm/vllm-runtime-cpu.yaml +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/vllm/vllm-runtime-gpu.yaml +2 -2
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/pipeline-konflux.sh +394 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/pipeline-services-konflux.sh +41 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/pipeline-services.sh +4 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/pipeline.sh +152 -57
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/run-tests.sh +68 -0
- lightspeed_stack-0.5.0/tests/e2e-prow/rhoai/scripts/e2e-ops.sh +538 -0
- lightspeed_stack-0.5.0/tests/integration/README.md +422 -0
- lightspeed_stack-0.5.0/tests/integration/conftest.py +478 -0
- lightspeed_stack-0.5.0/tests/integration/endpoints/README.md +44 -0
- lightspeed_stack-0.5.0/tests/integration/endpoints/test_authorized_endpoint.py +34 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/endpoints/test_config_integration.py +5 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/endpoints/test_health_integration.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/endpoints/test_info_integration.py +6 -5
- lightspeed_stack-0.5.0/tests/integration/endpoints/test_model_list.py +256 -0
- lightspeed_stack-0.5.0/tests/integration/endpoints/test_query_byok_integration.py +1085 -0
- lightspeed_stack-0.4.1/tests/integration/endpoints/test_query_v2_integration.py → lightspeed_stack-0.5.0/tests/integration/endpoints/test_query_integration.py +389 -183
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/endpoints/test_rlsapi_v1_integration.py +137 -6
- lightspeed_stack-0.5.0/tests/integration/endpoints/test_root_endpoint.py +72 -0
- lightspeed_stack-0.5.0/tests/integration/endpoints/test_stream_interrupt_integration.py +66 -0
- lightspeed_stack-0.5.0/tests/integration/endpoints/test_streaming_query_byok_integration.py +1072 -0
- lightspeed_stack-0.5.0/tests/integration/endpoints/test_streaming_query_integration.py +350 -0
- lightspeed_stack-0.5.0/tests/integration/endpoints/test_tools_integration.py +112 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/test_configuration.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/test_openapi_json.py +49 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/test_rh_identity_integration.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/test_version.py +2 -2
- lightspeed_stack-0.5.0/tests/profiles/empty.py +1 -0
- lightspeed_stack-0.5.0/tests/profiles/syntax_error.py +3 -0
- lightspeed_stack-0.5.0/tests/profiles/test_four/profile.py +49 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/test_results/.coverage.integration +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/test_results/.coverage.unit +0 -0
- lightspeed_stack-0.5.0/tests/test_results/coverage_integration.json +1 -0
- lightspeed_stack-0.5.0/tests/test_results/coverage_unit.json +1 -0
- lightspeed_stack-0.5.0/tests/test_results/junit_integration.xml +1 -0
- lightspeed_stack-0.5.0/tests/test_results/junit_unit.xml +1 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/__init__.py +2 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/a2a_storage/test_storage_factory.py +19 -13
- lightspeed_stack-0.5.0/tests/unit/app/.ruff_cache/.gitignore +2 -0
- lightspeed_stack-0.5.0/tests/unit/app/.ruff_cache/0.9.1/10631576872848856737 +0 -0
- lightspeed_stack-0.5.0/tests/unit/app/.ruff_cache/0.9.1/README.md +2 -0
- lightspeed_stack-0.5.0/tests/unit/app/.ruff_cache/CACHEDIR.TAG +1 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/README.md +1 -1
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/.ruff_cache/.gitignore +2 -0
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/.ruff_cache/0.9.1/15310180828563549007 +0 -0
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/.ruff_cache/0.9.1/README.md +2 -0
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/.ruff_cache/CACHEDIR.TAG +1 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/README.md +12 -6
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/conftest.py +41 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_a2a.py +83 -87
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_conversations.py +972 -389
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_conversations_v2.py +267 -176
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_feedback.py +0 -5
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/test_mcp_servers.py +437 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_metrics.py +0 -1
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/test_models.py +474 -0
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/test_query.py +814 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_rags.py +143 -0
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/test_responses.py +1374 -0
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/test_rlsapi_v1.py +1018 -0
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/test_stream_interrupt.py +150 -0
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/test_streaming_query.py +2807 -0
- lightspeed_stack-0.5.0/tests/unit/app/endpoints/test_tools.py +1137 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/test_database.py +4 -3
- lightspeed_stack-0.5.0/tests/unit/app/test_main_middleware.py +177 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/test_routers.py +37 -32
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authentication/test_auth.py +2 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authentication/test_jwk_token.py +10 -11
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authentication/test_k8s.py +416 -21
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authentication/test_noop.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authentication/test_noop_with_token.py +2 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authentication/test_rh_identity.py +317 -35
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authentication/test_utils.py +1 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authorization/test_azure_token_manager.py +14 -6
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authorization/test_resolvers.py +5 -6
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/cache/test_cache_factory.py +9 -11
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/cache/test_postgres_cache.py +3 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/cache/test_sqlite_cache.py +7 -10
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/conftest.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/metrics/test_utis.py +0 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/README.md +3 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_a2a_state_configuration.py +1 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_authentication_configuration.py +50 -29
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_byok_rag.py +30 -15
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_conversation_history.py +2 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_database_configuration.py +2 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_dump_configuration.py +62 -8
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_jwt_role_rule.py +1 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_llama_stack_configuration.py +3 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_model_context_protocol_server.py +51 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_postgresql_database_configuration.py +2 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_quota_scheduler_config.py +0 -1
- lightspeed_stack-0.5.0/tests/unit/models/config/test_rag_configuration.py +91 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_service_configuration.py +22 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_splunk_configuration.py +3 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_tls_configuration.py +1 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/requests/test_feedback_request.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/requests/test_query_request.py +0 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/responses/README.md +7 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/responses/test_error_responses.py +11 -5
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/responses/test_query_response.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/responses/test_rag_chunk.py +91 -17
- lightspeed_stack-0.5.0/tests/unit/models/responses/test_response_types.py +83 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/responses/test_successful_responses.py +141 -8
- lightspeed_stack-0.5.0/tests/unit/models/responses/test_types.py +83 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/rlsapi/test_requests.py +200 -37
- lightspeed_stack-0.5.0/tests/unit/observability/formats/test_rlsapi.py +75 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/observability/test_splunk.py +55 -47
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/quota/test_connect_pg.py +3 -4
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/quota/test_quota_limiter_factory.py +3 -5
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/runners/test_uvicorn_runner.py +80 -1
- lightspeed_stack-0.5.0/tests/unit/telemetry/README.md +11 -0
- lightspeed_stack-0.5.0/tests/unit/telemetry/__init__.py +1 -0
- lightspeed_stack-0.5.0/tests/unit/telemetry/conftest.py +388 -0
- lightspeed_stack-0.5.0/tests/unit/telemetry/test_configuration_snapshot.py +711 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/test_client.py +4 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/test_configuration.py +343 -25
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/test_llama_stack_configuration.py +267 -23
- lightspeed_stack-0.5.0/tests/unit/test_log.py +155 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/utils/README.md +16 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/utils/test_checks.py +61 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/utils/test_common.py +18 -12
- lightspeed_stack-0.5.0/tests/unit/utils/test_conversations.py +857 -0
- lightspeed_stack-0.5.0/tests/unit/utils/test_endpoints.py +710 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/utils/test_llama_stack_version.py +48 -14
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/utils/test_mcp_auth_headers.py +9 -1
- lightspeed_stack-0.5.0/tests/unit/utils/test_mcp_headers.py +455 -0
- lightspeed_stack-0.5.0/tests/unit/utils/test_prompts.py +335 -0
- lightspeed_stack-0.5.0/tests/unit/utils/test_query.py +854 -0
- lightspeed_stack-0.5.0/tests/unit/utils/test_responses.py +3170 -0
- lightspeed_stack-0.5.0/tests/unit/utils/test_shields.py +616 -0
- lightspeed_stack-0.5.0/tests/unit/utils/test_tool_formatter.py +76 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/utils/test_transcripts.py +46 -58
- lightspeed_stack-0.5.0/tests/unit/utils/test_types.py +274 -0
- lightspeed_stack-0.5.0/tests/unit/utils/test_vector_search.py +660 -0
- lightspeed_stack-0.4.1/src/app/endpoints/conversations.py +0 -390
- lightspeed_stack-0.4.1/src/app/endpoints/query.py +0 -579
- lightspeed_stack-0.4.1/src/app/endpoints/query_v2.py +0 -860
- lightspeed_stack-0.4.1/src/app/endpoints/rlsapi_v1.py +0 -340
- lightspeed_stack-0.4.1/src/app/endpoints/streaming_query.py +0 -726
- lightspeed_stack-0.4.1/src/app/endpoints/streaming_query_v2.py +0 -478
- lightspeed_stack-0.4.1/src/app/main.py +0 -187
- lightspeed_stack-0.4.1/src/models/database/conversations.py +0 -38
- lightspeed_stack-0.4.1/src/models/rlsapi/responses.py +0 -54
- lightspeed_stack-0.4.1/src/utils/endpoints.py +0 -828
- lightspeed_stack-0.4.1/src/utils/mcp_headers.py +0 -92
- lightspeed_stack-0.4.1/src/utils/query.py +0 -121
- lightspeed_stack-0.4.1/src/utils/responses.py +0 -56
- lightspeed_stack-0.4.1/src/utils/shields.py +0 -157
- lightspeed_stack-0.4.1/src/utils/transcripts.py +0 -122
- lightspeed_stack-0.4.1/src/utils/types.py +0 -212
- lightspeed_stack-0.4.1/tests/benchmarks/test_app_database.py +0 -513
- lightspeed_stack-0.4.1/tests/e2e/README.md +0 -11
- lightspeed_stack-0.4.1/tests/e2e/features/environment.py +0 -295
- lightspeed_stack-0.4.1/tests/e2e/features/steps/common.py +0 -38
- lightspeed_stack-0.4.1/tests/e2e/features/steps/llm_query_response.py +0 -199
- lightspeed_stack-0.4.1/tests/e2e/rag/kv_store.db +0 -0
- lightspeed_stack-0.4.1/tests/e2e/utils/README.md +0 -5
- lightspeed_stack-0.4.1/tests/e2e-prow/rhoai/manifests/lightspeed/lightspeed-stack.yaml +0 -25
- lightspeed_stack-0.4.1/tests/e2e-prow/rhoai/manifests/test-pod/spin-up.yaml +0 -30
- lightspeed_stack-0.4.1/tests/e2e-prow/rhoai/run-tests.sh +0 -17
- lightspeed_stack-0.4.1/tests/integration/README.md +0 -23
- lightspeed_stack-0.4.1/tests/integration/conftest.py +0 -159
- lightspeed_stack-0.4.1/tests/integration/endpoints/README.md +0 -20
- lightspeed_stack-0.4.1/tests/test_results/coverage_integration.json +0 -1
- lightspeed_stack-0.4.1/tests/test_results/coverage_unit.json +0 -1
- lightspeed_stack-0.4.1/tests/test_results/junit_integration.xml +0 -1
- lightspeed_stack-0.4.1/tests/test_results/junit_unit.xml +0 -1
- lightspeed_stack-0.4.1/tests/unit/app/endpoints/test_models.py +0 -224
- lightspeed_stack-0.4.1/tests/unit/app/endpoints/test_query.py +0 -486
- lightspeed_stack-0.4.1/tests/unit/app/endpoints/test_query_v2.py +0 -1016
- lightspeed_stack-0.4.1/tests/unit/app/endpoints/test_rlsapi_v1.py +0 -520
- lightspeed_stack-0.4.1/tests/unit/app/endpoints/test_streaming_query.py +0 -654
- lightspeed_stack-0.4.1/tests/unit/app/endpoints/test_streaming_query_v2.py +0 -627
- lightspeed_stack-0.4.1/tests/unit/app/endpoints/test_tools.py +0 -630
- lightspeed_stack-0.4.1/tests/unit/app/test_main_middleware.py +0 -74
- lightspeed_stack-0.4.1/tests/unit/observability/formats/test_rlsapi.py +0 -74
- lightspeed_stack-0.4.1/tests/unit/test_log.py +0 -14
- lightspeed_stack-0.4.1/tests/unit/utils/test_endpoints.py +0 -600
- lightspeed_stack-0.4.1/tests/unit/utils/test_mcp_headers.py +0 -192
- lightspeed_stack-0.4.1/tests/unit/utils/test_responses.py +0 -260
- lightspeed_stack-0.4.1/tests/unit/utils/test_shields.py +0 -344
- lightspeed_stack-0.4.1/tests/unit/utils/test_types.py +0 -58
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/LICENSE +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/a2a_storage/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/a2a_storage/__init__.py +3 -3
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/a2a_storage/context_store.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/app/endpoints/metrics.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authentication/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authentication/interface.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authentication/noop.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authentication/noop_with_token.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authorization/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/authorization/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/cache/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/cache/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/cache/cache.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/cache/cache_error.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/metrics/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/database/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/database/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/database/base.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/rlsapi/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/models/rlsapi/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/observability/formats/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/observability/formats/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/observability/formats/rlsapi.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/cluster_quota_limiter.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/connect_sqlite.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/quota/user_quota_limiter.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/runners/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/runners/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/src/utils/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/benchmarks/README.md +0 -0
- lightspeed_stack-0.4.1/tests/configuration/benchmarks-lightspeed-stack.yaml → lightspeed_stack-0.5.0/tests/configuration/benchmarks-sqlite.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/lightspeed-stack-proper-name.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/lightspeed-stack.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/minimal-stack.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/multiline_system_prompt.txt +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/password +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/rag.txt +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/rh-identity-config.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/server.crt +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/server.key +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/configuration/system_prompt.txt +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/.pdm-python +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configs/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/library-mode/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/library-mode/lightspeed-stack-auth-rh-identity.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/library-mode/lightspeed-stack-invalid-feedback-storage.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/library-mode/lightspeed-stack-no-cache.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/server-mode/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/server-mode/lightspeed-stack-auth-rh-identity.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/server-mode/lightspeed-stack-invalid-feedback-storage.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/configuration/server-mode/lightspeed-stack-no-cache.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/authorized_noop.feature +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/authorized_noop_token.feature +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/health.feature +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/rest_api.feature +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/smoketests.feature +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/steps/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/features/steps/feedback.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/gen_scenario_list.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/mock_jwks_server/Dockerfile +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/mock_jwks_server/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/mock_jwks_server/generate_tokens.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/rag/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e/test_api.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/gpu/cluster-policy.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/gpu/create-nfd.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/namespaces/nfd.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/namespaces/nvidia-operator.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/operators/ds-cluster.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/operators/operatorgroup.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/operators/operators.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/vllm/vllm-inference-service-cpu.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/manifests/vllm/vllm-inference-service-gpu.yaml +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/pipeline-test-pod.sh +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/pipeline-vllm.sh +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/scripts/bootstrap.sh +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/scripts/deploy-vllm.sh +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/scripts/fetch-vllm-image.sh +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/scripts/get-vllm-pod-info.sh +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/e2e-prow/rhoai/scripts/gpu-setup.sh +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/endpoints/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/integration/test_middleware_integration.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/profiles/test/profile.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/profiles/test_three/profile.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/profiles/test_two/test.txt +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/a2a_storage/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/a2a_storage/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/a2a_storage/test_in_memory_context_store.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/a2a_storage/test_sqlite_context_store.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_authorized.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_config.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_health.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_info.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_mcp_auth.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_providers.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_root.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/app/endpoints/test_shields.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authentication/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authentication/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authentication/test_api_key_token.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authorization/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authorization/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/authorization/test_middleware.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/cache/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/cache/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/cache/test_noop_cache.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/metrics/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/metrics/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_cors.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_customization.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_inference_configuration.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_quota_handlers_config.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_quota_limiter_config.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/config/test_user_data_collection.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/requests/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/requests/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/requests/test_attachment.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/requests/test_feedback_status_update_request.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/responses/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/responses/test_authorized_response.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/rlsapi/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/rlsapi/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/models/rlsapi/test_responses.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/observability/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/observability/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/observability/formats/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/observability/formats/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/quota/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/quota/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/quota/test_cluster_quota_limiter.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/quota/test_connect_sqlite.py +1 -1
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/quota/test_quota_exceed_error.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/quota/test_user_quota_limiter.py +2 -2
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/runners/README.md +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/runners/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/test_configuration_unknown_fields.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/test_lightspeed_stack.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/utils/__init__.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/utils/auth_helpers.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/utils/test_connection_decorator.py +0 -0
- {lightspeed_stack-0.4.1 → lightspeed_stack-0.5.0}/tests/unit/utils/test_suid.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lightspeed-stack
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: LLM tooling stack
|
|
5
5
|
Keywords: LLM,RAG
|
|
6
6
|
Maintainer-Email: =?utf-8?b?UGF2ZWwgVGnFoW5vdnNrw70=?= <tisnik@centrum.cz>
|
|
@@ -218,13 +218,14 @@ Requires-Python: <3.14,>=3.12
|
|
|
218
218
|
Requires-Dist: fastapi>=0.115.12
|
|
219
219
|
Requires-Dist: uvicorn>=0.34.3
|
|
220
220
|
Requires-Dist: kubernetes>=30.1.0
|
|
221
|
-
Requires-Dist: llama-stack==0.
|
|
222
|
-
Requires-Dist: llama-stack-client==0.
|
|
221
|
+
Requires-Dist: llama-stack==0.5.2
|
|
222
|
+
Requires-Dist: llama-stack-client==0.5.2
|
|
223
|
+
Requires-Dist: llama-stack-api==0.5.2
|
|
223
224
|
Requires-Dist: rich>=14.0.0
|
|
224
225
|
Requires-Dist: cachetools>=6.1.0
|
|
225
226
|
Requires-Dist: prometheus-client>=0.22.1
|
|
226
227
|
Requires-Dist: starlette>=0.47.1
|
|
227
|
-
Requires-Dist: aiohttp>=3.
|
|
228
|
+
Requires-Dist: aiohttp>=3.13.3
|
|
228
229
|
Requires-Dist: authlib>=1.6.0
|
|
229
230
|
Requires-Dist: a2a-sdk<0.4.0,>=0.3.4
|
|
230
231
|
Requires-Dist: email-validator>=2.2.0
|
|
@@ -235,13 +236,15 @@ Requires-Dist: asyncpg>=0.31.0
|
|
|
235
236
|
Requires-Dist: semver<4.0.0
|
|
236
237
|
Requires-Dist: jsonpath-ng>=1.6.1
|
|
237
238
|
Requires-Dist: psycopg2-binary>=2.9.10
|
|
238
|
-
Requires-Dist: litellm
|
|
239
|
-
Requires-Dist: urllib3
|
|
239
|
+
Requires-Dist: litellm<=1.82.6,>=1.75.5.post1
|
|
240
|
+
Requires-Dist: urllib3>=2.6.3
|
|
240
241
|
Requires-Dist: PyYAML>=6.0.0
|
|
241
242
|
Requires-Dist: einops>=0.8.1
|
|
242
243
|
Requires-Dist: azure-core>=1.38.0
|
|
243
|
-
Requires-Dist: azure-identity
|
|
244
|
-
Requires-Dist: pyasn1>=0.6.
|
|
244
|
+
Requires-Dist: azure-identity>=1.21.0
|
|
245
|
+
Requires-Dist: pyasn1>=0.6.3
|
|
246
|
+
Requires-Dist: jinja2>=3.1.0
|
|
247
|
+
Requires-Dist: requests>=2.33.0
|
|
245
248
|
Description-Content-Type: text/markdown
|
|
246
249
|
|
|
247
250
|
# lightspeed-stack
|
|
@@ -252,7 +255,7 @@ Description-Content-Type: text/markdown
|
|
|
252
255
|
[](https://github.com/lightspeed-core/lightspeed-stack/blob/main/LICENSE)
|
|
253
256
|
[](https://www.python.org/)
|
|
254
257
|
[](https://www.python.org/)
|
|
255
|
-
[](https://github.com/lightspeed-core/lightspeed-stack/releases/tag/0.
|
|
258
|
+
[](https://github.com/lightspeed-core/lightspeed-stack/releases/tag/0.5.0)
|
|
256
259
|
|
|
257
260
|
Lightspeed Core Stack (LCS) is an AI-powered assistant that provides answers to product questions using backend LLM services, agents, and RAG databases.
|
|
258
261
|
|
|
@@ -261,95 +264,99 @@ The service includes comprehensive user data collection capabilities for various
|
|
|
261
264
|
|
|
262
265
|
<!-- vim-markdown-toc GFM -->
|
|
263
266
|
|
|
264
|
-
* [lightspeed-stack](#lightspeed-stack)
|
|
265
|
-
* [About The Project](#about-the-project)
|
|
266
267
|
* [Architecture](#architecture)
|
|
267
268
|
* [Prerequisites](#prerequisites)
|
|
268
269
|
* [Installation](#installation)
|
|
269
270
|
* [Run LCS locally](#run-lcs-locally)
|
|
270
271
|
* [Configuration](#configuration)
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
* [
|
|
296
|
-
* [System
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
* [
|
|
303
|
-
|
|
272
|
+
* [LLM Compatibility](#llm-compatibility)
|
|
273
|
+
* [Set LLM provider and model](#set-llm-provider-and-model)
|
|
274
|
+
* [Selecting provider and model](#selecting-provider-and-model)
|
|
275
|
+
* [Provider and model selection in REST API request](#provider-and-model-selection-in-rest-api-request)
|
|
276
|
+
* [Default provider and model](#default-provider-and-model)
|
|
277
|
+
* [Supported providers](#supported-providers)
|
|
278
|
+
* [Integration with Llama Stack](#integration-with-llama-stack)
|
|
279
|
+
* [Llama Stack as separate server](#llama-stack-as-separate-server)
|
|
280
|
+
* [MCP Server and Tool Configuration](#mcp-server-and-tool-configuration)
|
|
281
|
+
* [Configuring MCP Servers](#configuring-mcp-servers)
|
|
282
|
+
* [Configuring MCP Server Authentication](#configuring-mcp-server-authentication)
|
|
283
|
+
* [1. Static Tokens from Files (Recommended for Service Credentials)](#1-static-tokens-from-files-recommended-for-service-credentials)
|
|
284
|
+
* [2. Kubernetes Service Account Tokens (For K8s Deployments)](#2-kubernetes-service-account-tokens-for-k8s-deployments)
|
|
285
|
+
* [3. Client-Provided Tokens (For Per-User Authentication)](#3-client-provided-tokens-for-per-user-authentication)
|
|
286
|
+
* [4. OAuth (For MCP Servers Requiring OAuth)](#4-oauth-for-mcp-servers-requiring-oauth)
|
|
287
|
+
* [5. Automatic Header Propagation (For Gateway-Injected Headers)](#5-automatic-header-propagation-for-gateway-injected-headers)
|
|
288
|
+
* [Client-Authenticated MCP Servers Discovery](#client-authenticated-mcp-servers-discovery)
|
|
289
|
+
* [Combining Authentication Methods](#combining-authentication-methods)
|
|
290
|
+
* [Authentication Method Comparison](#authentication-method-comparison)
|
|
291
|
+
* [Important: Automatic Server Skipping](#important-automatic-server-skipping)
|
|
292
|
+
* [Llama Stack project and configuration](#llama-stack-project-and-configuration)
|
|
293
|
+
* [Check connection to Llama Stack](#check-connection-to-llama-stack)
|
|
294
|
+
* [Llama Stack as client library](#llama-stack-as-client-library)
|
|
295
|
+
* [Llama Stack version check](#llama-stack-version-check)
|
|
296
|
+
* [User data collection](#user-data-collection)
|
|
297
|
+
* [System prompt](#system-prompt)
|
|
298
|
+
* [System Prompt Path](#system-prompt-path)
|
|
299
|
+
* [System Prompt Literal](#system-prompt-literal)
|
|
300
|
+
* [Custom Profile](#custom-profile)
|
|
301
|
+
* [Control model/provider overrides via authorization](#control-modelprovider-overrides-via-authorization)
|
|
302
|
+
* [Safety Shields](#safety-shields)
|
|
303
|
+
* [Authentication](#authentication)
|
|
304
|
+
* [CORS](#cors)
|
|
305
|
+
* [Default values](#default-values)
|
|
306
|
+
* [Allow credentials](#allow-credentials)
|
|
304
307
|
* [RAG Configuration](#rag-configuration)
|
|
305
|
-
|
|
308
|
+
* [Example configurations for inference](#example-configurations-for-inference)
|
|
306
309
|
* [Usage](#usage)
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
* [
|
|
311
|
-
|
|
312
|
-
* [
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
310
|
+
* [CLI options](#cli-options)
|
|
311
|
+
* [Dumping configuration](#dumping-configuration)
|
|
312
|
+
* [Dumping configuration schema](#dumping-configuration-schema)
|
|
313
|
+
* [Make targets](#make-targets)
|
|
314
|
+
* [Running Linux container image](#running-linux-container-image)
|
|
315
|
+
* [Building Container Images](#building-container-images)
|
|
316
|
+
* [Llama-Stack as Separate Service (Server Mode)](#llama-stack-as-separate-service-server-mode)
|
|
317
|
+
* [macOS (arm64)](#macos-arm64)
|
|
318
|
+
* [Llama-Stack as Library (Library Mode)](#llama-stack-as-library-library-mode)
|
|
319
|
+
* [macOS](#macos)
|
|
320
|
+
* [Verify it's running properly](#verify-its-running-properly)
|
|
321
|
+
* [Custom Container Image](#custom-container-image)
|
|
316
322
|
* [Endpoints](#endpoints)
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
323
|
+
* [OpenAPI specification](#openapi-specification)
|
|
324
|
+
* [Readiness Endpoint](#readiness-endpoint)
|
|
325
|
+
* [Liveness Endpoint](#liveness-endpoint)
|
|
326
|
+
* [Models endpoint](#models-endpoint)
|
|
320
327
|
* [Database structure](#database-structure)
|
|
321
328
|
* [Publish the service as Python package on PyPI](#publish-the-service-as-python-package-on-pypi)
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
329
|
+
* [Generate distribution archives to be uploaded into Python registry](#generate-distribution-archives-to-be-uploaded-into-python-registry)
|
|
330
|
+
* [Upload distribution archives into selected Python registry](#upload-distribution-archives-into-selected-python-registry)
|
|
331
|
+
* [Packages on PyPI and Test PyPI](#packages-on-pypi-and-test-pypi)
|
|
325
332
|
* [Contributing](#contributing)
|
|
326
333
|
* [Testing](#testing)
|
|
327
334
|
* [License](#license)
|
|
328
335
|
* [Additional tools](#additional-tools)
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
+
* [Utility to generate OpenAPI schema](#utility-to-generate-openapi-schema)
|
|
337
|
+
* [Path](#path)
|
|
338
|
+
* [Usage](#usage-1)
|
|
339
|
+
* [Makefile target to generate OpenAPI specification](#makefile-target-to-generate-openapi-specification)
|
|
340
|
+
* [Utility to generate documentation from source code](#utility-to-generate-documentation-from-source-code)
|
|
341
|
+
* [Path](#path-1)
|
|
342
|
+
* [Usage](#usage-2)
|
|
336
343
|
* [Data Export Integration](#data-export-integration)
|
|
337
|
-
|
|
338
|
-
|
|
344
|
+
* [Quick Integration](#quick-integration)
|
|
345
|
+
* [Documentation](#documentation)
|
|
339
346
|
* [Project structure](#project-structure)
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
347
|
+
* [Configuration classes](#configuration-classes)
|
|
348
|
+
* [REST API](#rest-api)
|
|
349
|
+
* [Sequence diagrams](#sequence-diagrams)
|
|
350
|
+
* [Query endpoint REST API handler](#query-endpoint-rest-api-handler)
|
|
351
|
+
* [Streaming query endpoint REST API handler](#streaming-query-endpoint-rest-api-handler)
|
|
352
|
+
* [Versioning](#versioning)
|
|
346
353
|
* [Development Tools](#development-tools)
|
|
347
|
-
|
|
354
|
+
* [MCP Mock Server](#mcp-mock-server)
|
|
348
355
|
* [Konflux](#konflux)
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
356
|
+
* [Updating Dependencies for Hermetic Builds](#updating-dependencies-for-hermetic-builds)
|
|
357
|
+
* [When to Update Dependency Files](#when-to-update-dependency-files)
|
|
358
|
+
* [Updating Python Dependencies](#updating-python-dependencies)
|
|
359
|
+
* [Updating RPM Dependencies](#updating-rpm-dependencies)
|
|
353
360
|
|
|
354
361
|
<!-- vim-markdown-toc -->
|
|
355
362
|
|
|
@@ -373,14 +380,14 @@ Lightspeed Core Stack is based on the FastAPI framework (Uvicorn). The service i
|
|
|
373
380
|
|
|
374
381
|
Lightspeed Stack supports multiple LLM providers.
|
|
375
382
|
|
|
376
|
-
| Provider
|
|
377
|
-
|
|
378
|
-
| OpenAI
|
|
379
|
-
| Azure OpenAI
|
|
380
|
-
| Google VertexAI| https://cloud.google.com/vertex-ai
|
|
381
|
-
| IBM WatsonX
|
|
382
|
-
| RHOAI (vLLM)
|
|
383
|
-
| RHEL AI (vLLM)
|
|
383
|
+
| Provider | Setup Documentation |
|
|
384
|
+
|-----------------|-----------------------------------------------------------------------|
|
|
385
|
+
| OpenAI | https://platform.openai.com |
|
|
386
|
+
| Azure OpenAI | https://azure.microsoft.com/en-us/products/ai-services/openai-service |
|
|
387
|
+
| Google VertexAI | https://cloud.google.com/vertex-ai |
|
|
388
|
+
| IBM WatsonX | https://www.ibm.com/products/watsonx |
|
|
389
|
+
| RHOAI (vLLM) | See tests/e2e-prow/rhoai/configs/run.yaml |
|
|
390
|
+
| RHEL AI (vLLM) | See tests/e2e/configs/run-rhelai.yaml |
|
|
384
391
|
|
|
385
392
|
See `docs/providers.md` for configuration details.
|
|
386
393
|
|
|
@@ -443,17 +450,17 @@ To quickly get hands on LCS, we can run it using the default configurations prov
|
|
|
443
450
|
Lightspeed Core Stack (LCS) provides support for Large Language Model providers. The models listed in the table below represent specific examples that have been tested within LCS.
|
|
444
451
|
__Note__: Support for individual models is dependent on the specific inference provider's implementation within the currently supported version of Llama Stack.
|
|
445
452
|
|
|
446
|
-
| Provider
|
|
447
|
-
|
|
448
|
-
| OpenAI
|
|
449
|
-
| OpenAI
|
|
450
|
-
| RHOAI (vLLM)| meta-llama/Llama-3.2-1B-Instruct
|
|
451
|
-
| RHAIIS (vLLM)| meta-llama/Llama-3.1-8B-Instruct
|
|
452
|
-
| RHEL AI (vLLM)| meta-llama/Llama-3.1-8B-Instruct
|
|
453
|
-
| Azure
|
|
454
|
-
| Azure
|
|
455
|
-
| VertexAI
|
|
456
|
-
| WatsonX
|
|
453
|
+
| Provider | Model | Tool Calling | provider_type | Example |
|
|
454
|
+
|----------------|------------------------------------------------------------------------------|---------------|------------------|----------------------------------------------------------------------------|
|
|
455
|
+
| OpenAI | gpt-5, gpt-4o, gpt-4-turbo, gpt-4.1, o1, o3, o4 | Yes | remote::openai | [1](examples/openai-faiss-run.yaml) [2](examples/openai-pgvector-run.yaml) |
|
|
456
|
+
| OpenAI | gpt-3.5-turbo, gpt-4 | No | remote::openai | |
|
|
457
|
+
| RHOAI (vLLM) | meta-llama/Llama-3.2-1B-Instruct | Yes | remote::vllm | [1](tests/e2e-prow/rhoai/configs/run.yaml) |
|
|
458
|
+
| RHAIIS (vLLM) | meta-llama/Llama-3.1-8B-Instruct | Yes | remote::vllm | [1](tests/e2e/configs/run-rhaiis.yaml) |
|
|
459
|
+
| RHEL AI (vLLM) | meta-llama/Llama-3.1-8B-Instruct | Yes | remote::vllm | [1](tests/e2e/configs/run-rhelai.yaml) |
|
|
460
|
+
| Azure | gpt-5, gpt-5-mini, gpt-5-nano, gpt-4o-mini, o3-mini, o4-mini, o1 | Yes | remote::azure | [1](examples/azure-run.yaml) |
|
|
461
|
+
| Azure | gpt-5-chat, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o1-mini | No or limited | remote::azure | |
|
|
462
|
+
| VertexAI | google/gemini-2.0-flash, google/gemini-2.5-flash, google/gemini-2.5-pro [^1] | Yes | remote::vertexai | [1](examples/vertexai-run.yaml) |
|
|
463
|
+
| WatsonX | meta-llama/llama-3-3-70b-instruct | Yes | remote::watsonx | [1](examples/watsonx-run.yaml) |
|
|
457
464
|
|
|
458
465
|
[^1]: List of models is limited by design in llama-stack, future versions will probably allow to use more models (see [here](https://github.com/llamastack/llama-stack/blob/release-0.3.x/llama_stack/providers/remote/inference/vertexai/vertexai.py#L54))
|
|
459
466
|
|
|
@@ -573,6 +580,15 @@ user_data_collection:
|
|
|
573
580
|
|
|
574
581
|
**Important**: Only MCP servers defined in the `lightspeed-stack.yaml` configuration are available to the agents. Tools configured in the llama-stack `run.yaml` are not accessible to lightspeed-core agents.
|
|
575
582
|
|
|
583
|
+
Besides configuring the MCP Servers in `lightspeed-stack.yaml` we also need to enable the appropriate tool in llama-stack's `run.yaml` file under the `tool_runtime` section. Here's an example using the default `provider_id` name used by lightspeed-stack for MCPs:
|
|
584
|
+
|
|
585
|
+
```yaml
|
|
586
|
+
tool_runtime:
|
|
587
|
+
- provider_id: model-context-protocol
|
|
588
|
+
provider_type: remote::model-context-protocol
|
|
589
|
+
config: {}
|
|
590
|
+
```
|
|
591
|
+
|
|
576
592
|
#### Configuring MCP Servers
|
|
577
593
|
|
|
578
594
|
MCP (Model Context Protocol) servers provide tools and capabilities to the AI agents. These are configured in the `mcp_servers` section of your `lightspeed-stack.yaml`.
|
|
@@ -583,8 +599,9 @@ Each MCP server requires two fields:
|
|
|
583
599
|
- `name`: Unique identifier for the MCP server
|
|
584
600
|
- `url`: The endpoint where the MCP server is running
|
|
585
601
|
|
|
586
|
-
And
|
|
602
|
+
And optional fields:
|
|
587
603
|
- `provider_id`: MCP provider identification (defaults to `"model-context-protocol"`)
|
|
604
|
+
- `headers`: List of HTTP header names to automatically forward from the incoming request to this MCP server (see [Automatic Header Propagation](#5-automatic-header-propagation-for-gateway-injected-headers))
|
|
588
605
|
|
|
589
606
|
**Minimal Example:**
|
|
590
607
|
|
|
@@ -600,7 +617,7 @@ In addition to the basic configuration above, you can configure authentication h
|
|
|
600
617
|
|
|
601
618
|
#### Configuring MCP Server Authentication
|
|
602
619
|
|
|
603
|
-
Lightspeed Core Stack supports
|
|
620
|
+
Lightspeed Core Stack supports four methods for authenticating with MCP servers, each suited for different use cases:
|
|
604
621
|
|
|
605
622
|
##### 1. Static Tokens from Files (Recommended for Service Credentials)
|
|
606
623
|
|
|
@@ -619,7 +636,7 @@ The secret files should contain only the header value (tokens are automatically
|
|
|
619
636
|
|
|
620
637
|
```bash
|
|
621
638
|
# /var/secrets/api-token
|
|
622
|
-
|
|
639
|
+
sk-abc123def456...
|
|
623
640
|
|
|
624
641
|
# /var/secrets/api-key
|
|
625
642
|
my-api-key-value
|
|
@@ -637,7 +654,7 @@ mcp_servers:
|
|
|
637
654
|
Authorization: "kubernetes" # Uses user's k8s token from request auth
|
|
638
655
|
```
|
|
639
656
|
|
|
640
|
-
**Note:** Kubernetes token-based MCP authorization only works when Lightspeed Core Stack is configured with Kubernetes authentication (`authentication.k8s`)
|
|
657
|
+
**Note:** Kubernetes token-based MCP authorization only works when Lightspeed Core Stack is configured with Kubernetes authentication (`authentication.module` is `k8s`) or `noop-with-token`. For any other authentication types, MCP servers configured with `Authorization: "kubernetes"` are removed from the available MCP servers list.
|
|
641
658
|
|
|
642
659
|
##### 3. Client-Provided Tokens (For Per-User Authentication)
|
|
643
660
|
|
|
@@ -665,6 +682,55 @@ curl -X POST "http://localhost:8080/v1/query" \
|
|
|
665
682
|
|
|
666
683
|
**Structure**: `MCP-HEADERS: {"<server-name>": {"<header-name>": "<header-value>", ...}, ...}`
|
|
667
684
|
|
|
685
|
+
##### 4. OAuth (For MCP Servers Requiring OAuth)
|
|
686
|
+
|
|
687
|
+
Use the special `"oauth"` keyword when the MCP server requires OAuth and the client will supply a token (e.g. via `MCP-HEADERS` after obtaining it from an OAuth flow):
|
|
688
|
+
|
|
689
|
+
```yaml
|
|
690
|
+
mcp_servers:
|
|
691
|
+
- name: "oauth-protected-service"
|
|
692
|
+
url: "https://mcp.example.com"
|
|
693
|
+
authorization_headers:
|
|
694
|
+
Authorization: "oauth" # Token provided via MCP-HEADERS (from OAuth flow)
|
|
695
|
+
```
|
|
696
|
+
|
|
697
|
+
When no token is provided for an OAuth-configured server, the service may respond with **401 Unauthorized** and a **`WWW-Authenticate`** header (probed from the MCP server). Clients can use this to drive an OAuth flow and then retry with the token in `MCP-HEADERS`.
|
|
698
|
+
|
|
699
|
+
##### 5. Automatic Header Propagation (For Gateway-Injected Headers)
|
|
700
|
+
|
|
701
|
+
Use the `headers` field to automatically forward specific headers from the incoming HTTP request to an MCP server. This is designed for environments where infrastructure components (e.g. API gateways) inject headers that MCP servers need but clients cannot provide.
|
|
702
|
+
|
|
703
|
+
**HCC Use Case:** In Hybrid Cloud Console (HCC), the gateway strips the client's `Authorization` header and replaces it with `x-rh-identity` (a base64-encoded user identity). Backend services use `x-rh-identity` to identify users. Since clients never see this header, the existing `MCP-HEADERS` mechanism cannot be used. Instead, configure `headers` to automatically forward it:
|
|
704
|
+
|
|
705
|
+
```yaml
|
|
706
|
+
mcp_servers:
|
|
707
|
+
- name: "rbac"
|
|
708
|
+
url: "http://rbac-service:8080"
|
|
709
|
+
headers:
|
|
710
|
+
- x-rh-identity
|
|
711
|
+
- x-rh-insights-request-id
|
|
712
|
+
```
|
|
713
|
+
|
|
714
|
+
When a request arrives at Lightspeed with these headers, they are automatically extracted and forwarded to the `rbac` MCP server. No client-side configuration is needed.
|
|
715
|
+
|
|
716
|
+
**Key behaviors:**
|
|
717
|
+
|
|
718
|
+
- **Case-insensitive matching**: Header names in the allowlist are matched case-insensitively against the incoming request.
|
|
719
|
+
- **Missing headers are skipped**: If a header in the allowlist is not present on the incoming request, it is silently skipped. The MCP server is **not** skipped (unlike `authorization_headers` behavior).
|
|
720
|
+
- **Additive with other methods**: Propagated headers can be combined with `authorization_headers` and `MCP-HEADERS`. If the same header name appears in both `authorization_headers` and `headers`, the `authorization_headers` value takes precedence.
|
|
721
|
+
|
|
722
|
+
**Combined example:**
|
|
723
|
+
|
|
724
|
+
```yaml
|
|
725
|
+
mcp_servers:
|
|
726
|
+
- name: "notifications"
|
|
727
|
+
url: "http://notifications-service:8080"
|
|
728
|
+
headers:
|
|
729
|
+
- x-rh-identity # From incoming request
|
|
730
|
+
authorization_headers:
|
|
731
|
+
X-API-Key: "/var/secrets/notifications-key" # Static service credential
|
|
732
|
+
```
|
|
733
|
+
|
|
668
734
|
##### Client-Authenticated MCP Servers Discovery
|
|
669
735
|
|
|
670
736
|
To help clients determine which MCP servers require client-provided tokens, use the **MCP Client Auth Options** endpoint:
|
|
@@ -721,11 +787,13 @@ mcp_servers:
|
|
|
721
787
|
|
|
722
788
|
##### Authentication Method Comparison
|
|
723
789
|
|
|
724
|
-
| Method
|
|
725
|
-
|
|
726
|
-
| **Static File**
|
|
727
|
-
| **Kubernetes**
|
|
728
|
-
| **Client**
|
|
790
|
+
| Method | Use Case | Configuration | Token Scope | Example |
|
|
791
|
+
|------------------------|----------------------------------|----------------------------------|------------------------------------|-------------------------------|
|
|
792
|
+
| **Static File** | Service tokens, API keys | File path in config | Global (all users) | `"/var/secrets/token"` |
|
|
793
|
+
| **Kubernetes** | K8s service accounts | `"kubernetes"` keyword | Per-user (from auth) | `"kubernetes"` |
|
|
794
|
+
| **Client** | User-specific tokens | `"client"` keyword + HTTP header | Per-request | `"client"` |
|
|
795
|
+
| **OAuth** | OAuth-protected MCP servers | `"oauth"` keyword + HTTP header | Per-request (from OAuth flow) | `"oauth"` |
|
|
796
|
+
| **Header Propagation** | Gateway-injected headers (HCC) | `headers` list | Per-request (from incoming request)| `headers: [x-rh-identity]` |
|
|
729
797
|
|
|
730
798
|
##### Important: Automatic Server Skipping
|
|
731
799
|
|
|
@@ -734,6 +802,7 @@ mcp_servers:
|
|
|
734
802
|
**Examples:**
|
|
735
803
|
- A server with `Authorization: "kubernetes"` will be skipped if the user's request doesn't include a Kubernetes token
|
|
736
804
|
- A server with `Authorization: "client"` will be skipped if no `MCP-HEADERS` are provided in the request
|
|
805
|
+
- A server with `Authorization: "oauth"` and no token in `MCP-HEADERS` may cause the API to return **401 Unauthorized** with a **`WWW-Authenticate`** header (so the client can perform OAuth and retry)
|
|
737
806
|
- A server with multiple headers will be skipped if **any** required header cannot be resolved
|
|
738
807
|
|
|
739
808
|
Skipped servers are logged as warnings. Check Lightspeed Core logs to see which servers were skipped and why.
|
|
@@ -902,6 +971,13 @@ utilized:
|
|
|
902
971
|
1. If the `shield_id` starts with `inout_`, it will be used both for input and output.
|
|
903
972
|
1. Otherwise, it will be used for input only.
|
|
904
973
|
|
|
974
|
+
Additionally, an optional list parameter `shield_ids` can be specified in `/query` and `/streaming_query` endpoints to override which shields are applied. You can use this config to disable shield overrides:
|
|
975
|
+
|
|
976
|
+
```yaml
|
|
977
|
+
customization:
|
|
978
|
+
disable_shield_ids_override: true
|
|
979
|
+
```
|
|
980
|
+
|
|
905
981
|
## Authentication
|
|
906
982
|
|
|
907
983
|
See [authentication and authorization](docs/auth.md).
|
|
@@ -979,6 +1055,22 @@ options:
|
|
|
979
1055
|
|
|
980
1056
|
```
|
|
981
1057
|
|
|
1058
|
+
## CLI options
|
|
1059
|
+
|
|
1060
|
+
### Dumping configuration
|
|
1061
|
+
|
|
1062
|
+
If `--dump-configuration` CLI option is provided, LCORE writes the active
|
|
1063
|
+
configuration to a file named `configuration.json` and exits (exits with status
|
|
1064
|
+
1 on failure).
|
|
1065
|
+
|
|
1066
|
+
### Dumping configuration schema
|
|
1067
|
+
|
|
1068
|
+
If `--dump-schema` CLI option is provided, LCORE writes the active
|
|
1069
|
+
configuration schema to a file named `schema.json` and exits (exits with status
|
|
1070
|
+
1 on failure).
|
|
1071
|
+
|
|
1072
|
+
|
|
1073
|
+
|
|
982
1074
|
## Make targets
|
|
983
1075
|
|
|
984
1076
|
```
|
|
@@ -987,7 +1079,6 @@ Usage: make <OPTIONS> ... <TARGETS>
|
|
|
987
1079
|
Available targets are:
|
|
988
1080
|
|
|
989
1081
|
run Run the service locally
|
|
990
|
-
help Show this help screen
|
|
991
1082
|
run-llama-stack Start Llama Stack with enriched config (for local service mode)
|
|
992
1083
|
test-unit Run the unit tests
|
|
993
1084
|
test-integration Run integration tests tests
|
|
@@ -1000,7 +1091,6 @@ format Format the code into unified format
|
|
|
1000
1091
|
schema Generate OpenAPI schema file
|
|
1001
1092
|
openapi-doc Generate OpenAPI documentation
|
|
1002
1093
|
generate-documentation Generate documentation
|
|
1003
|
-
requirements.txt Generate requirements.txt file containing hashes for all non-devel packages
|
|
1004
1094
|
doc Generate documentation for developers
|
|
1005
1095
|
docs/config.puml Generate PlantUML class diagram for configuration
|
|
1006
1096
|
docs/config.png Generate an image with configuration graph
|
|
@@ -1014,10 +1104,13 @@ ruff Check source code using Ruff linter
|
|
|
1014
1104
|
verify Run all linters
|
|
1015
1105
|
distribution-archives Generate distribution archives to be uploaded into Python registry
|
|
1016
1106
|
upload-distribution-archives Upload distribution archives into Python registry
|
|
1017
|
-
konflux-requirements
|
|
1018
|
-
konflux-rpm-lock
|
|
1107
|
+
konflux-requirements Generate hermetic requirements.*.txt file for konflux build
|
|
1108
|
+
konflux-rpm-lock Generate rpm.lock.yaml file for konflux build
|
|
1109
|
+
help Show this help screen
|
|
1019
1110
|
```
|
|
1020
1111
|
|
|
1112
|
+
|
|
1113
|
+
|
|
1021
1114
|
## Running Linux container image
|
|
1022
1115
|
|
|
1023
1116
|
Stable release images are tagged with versions like `0.1.0`. Tag `latest` always points to latest stable release.
|
|
@@ -1257,6 +1350,62 @@ The liveness endpoint performs a basic health check to verify the service is ali
|
|
|
1257
1350
|
}
|
|
1258
1351
|
```
|
|
1259
1352
|
|
|
1353
|
+
## Models endpoint
|
|
1354
|
+
|
|
1355
|
+
**Endpoint:** `GET /v1/models`
|
|
1356
|
+
|
|
1357
|
+
Process GET requests and returns a list of available models from the Llama
|
|
1358
|
+
Stack service. It is possible to specify "model_type" query parameter that is
|
|
1359
|
+
used as a filter. For example, if model type is set to "llm", only LLM models
|
|
1360
|
+
will be returned:
|
|
1361
|
+
|
|
1362
|
+
```bash
|
|
1363
|
+
curl http://localhost:8080/v1/models?model_type=llm
|
|
1364
|
+
```
|
|
1365
|
+
|
|
1366
|
+
The "model_type" query parameter is optional. When not specified, all models
|
|
1367
|
+
will be returned.
|
|
1368
|
+
|
|
1369
|
+
**Response Body:**
|
|
1370
|
+
```json
|
|
1371
|
+
{
|
|
1372
|
+
"models": [
|
|
1373
|
+
{
|
|
1374
|
+
"identifier": "sentence-transformers/.llama",
|
|
1375
|
+
"metadata": {
|
|
1376
|
+
"embedding_dimension": 384
|
|
1377
|
+
},
|
|
1378
|
+
"api_model_type": "embedding",
|
|
1379
|
+
"provider_id": "sentence-transformers",
|
|
1380
|
+
"type": "model",
|
|
1381
|
+
"provider_resource_id": ".llama",
|
|
1382
|
+
"model_type": "embedding"
|
|
1383
|
+
},
|
|
1384
|
+
{
|
|
1385
|
+
"identifier": "openai/gpt-4o-mini",
|
|
1386
|
+
"metadata": {},
|
|
1387
|
+
"api_model_type": "llm",
|
|
1388
|
+
"provider_id": "openai",
|
|
1389
|
+
"type": "model",
|
|
1390
|
+
"provider_resource_id": "gpt-4o-mini",
|
|
1391
|
+
"model_type": "llm"
|
|
1392
|
+
},
|
|
1393
|
+
{
|
|
1394
|
+
"identifier": "sentence-transformers/nomic-ai/nomic-embed-text-v1.5",
|
|
1395
|
+
"metadata": {
|
|
1396
|
+
"embedding_dimension": 768
|
|
1397
|
+
},
|
|
1398
|
+
"api_model_type": "embedding",
|
|
1399
|
+
"provider_id": "sentence-transformers",
|
|
1400
|
+
"type": "model",
|
|
1401
|
+
"provider_resource_id": "nomic-ai/nomic-embed-text-v1.5",
|
|
1402
|
+
"model_type": "embedding"
|
|
1403
|
+
}
|
|
1404
|
+
]
|
|
1405
|
+
}
|
|
1406
|
+
```
|
|
1407
|
+
|
|
1408
|
+
|
|
1260
1409
|
# Database structure
|
|
1261
1410
|
|
|
1262
1411
|
Database structure is described on [this page](https://lightspeed-core.github.io/lightspeed-stack/DB/index.html)
|