lightspeed-stack 0.6.0rc1__tar.gz → 0.6.0rc2__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.
Files changed (615) hide show
  1. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/PKG-INFO +65 -19
  2. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/README.md +64 -18
  3. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/pyproject.toml +2 -2
  4. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/conversations_v2.py +1 -1
  5. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/query.py +1 -2
  6. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/responses.py +3 -9
  7. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/responses_telemetry.py +1 -1
  8. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/rlsapi_v1.py +16 -2
  9. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/streaming_query.py +2 -3
  10. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/main.py +20 -13
  11. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/api_key_token.py +19 -1
  12. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/jwk_token.py +20 -2
  13. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/k8s.py +2 -2
  14. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authorization/azure_token_manager.py +26 -5
  15. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/cache/README.md +3 -0
  16. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/cache/cache.py +71 -1
  17. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/cache/in_memory_cache.py +70 -1
  18. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/cache/noop_cache.py +64 -1
  19. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/cache/postgres_cache.py +184 -1
  20. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/cache/sqlite_cache.py +178 -3
  21. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/README.md +0 -9
  22. lightspeed_stack-0.6.0rc2/src/models/__init__.py +11 -0
  23. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/README.md +3 -0
  24. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/requests/__init__.py +14 -0
  25. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/requests/responses_openai.py +1 -4
  26. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/README.md +3 -0
  27. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/__init__.py +6 -0
  28. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/query.py +32 -2
  29. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/responses/README.md +2 -2
  30. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/responses/__init__.py +5 -1
  31. lightspeed_stack-0.6.0rc1/src/models/common/responses/responses_context.py → lightspeed_stack-0.6.0rc2/src/models/common/responses/contexts.py +49 -1
  32. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/responses/responses_api_params.py +6 -21
  33. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/responses/types.py +24 -1
  34. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/turn_summary.py +6 -0
  35. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/config.py +202 -3
  36. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/observability/README.md +1 -1
  37. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/llama_stack_version.py +10 -12
  38. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/query.py +1 -54
  39. lightspeed_stack-0.6.0rc2/src/utils/reranker.py +205 -0
  40. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/responses.py +29 -8
  41. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/vector_search.py +182 -45
  42. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configs/run-azure.yaml +1 -1
  43. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/environment.py +2 -2
  44. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/info.feature +1 -1
  45. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/proxy.feature +9 -7
  46. lightspeed_stack-0.6.0rc2/tests/e2e/features/skills.feature +631 -0
  47. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/common_http.py +17 -0
  48. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/proxy.py +219 -56
  49. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/tls.py +7 -8
  50. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/proxy/interception_proxy.py +99 -7
  51. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/proxy/tunnel_proxy.py +90 -1
  52. lightspeed_stack-0.6.0rc2/tests/e2e/utils/llama_config_utils.py +103 -0
  53. lightspeed_stack-0.6.0rc2/tests/e2e/utils/llama_prow_utils.py +41 -0
  54. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/utils/prow_utils.py +52 -22
  55. lightspeed_stack-0.6.0rc2/tests/e2e-prow/rhoai/.e2e_exit_code +1 -0
  56. lightspeed_stack-0.6.0rc2/tests/e2e-prow/rhoai/manifests/lightspeed/e2e-interception-proxy.yaml +77 -0
  57. lightspeed_stack-0.6.0rc2/tests/e2e-prow/rhoai/manifests/lightspeed/e2e-tunnel-proxy.yaml +69 -0
  58. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-openai.yaml +11 -7
  59. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/lightspeed/llama-stack-prow.yaml +2 -7
  60. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/pipeline-konflux.sh +9 -0
  61. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/pipeline.sh +2 -2
  62. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/scripts/e2e-ops.sh +187 -8
  63. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_conversations_v2_integration.py +1 -1
  64. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_query_byok_integration.py +4 -0
  65. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_query_integration.py +1 -1
  66. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_rlsapi_v1_integration.py +4 -4
  67. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/test_results/.coverage.unit +0 -0
  68. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/test_results/coverage_unit.json +1 -1
  69. lightspeed_stack-0.6.0rc2/tests/test_results/junit_unit.xml +225 -0
  70. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/conftest.py +1 -1
  71. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_authorized.py +4 -4
  72. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_config.py +2 -2
  73. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_conversations.py +62 -35
  74. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_conversations_v2.py +12 -7
  75. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_query.py +7 -16
  76. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_responses.py +29 -14
  77. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_rlsapi_v1.py +4 -4
  78. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_streaming_query.py +6 -8
  79. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authorization/test_azure_token_manager.py +22 -7
  80. lightspeed_stack-0.6.0rc2/tests/unit/cache/test_in_memory_cache.py +70 -0
  81. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/cache/test_noop_cache.py +41 -1
  82. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/cache/test_postgres_cache.py +232 -4
  83. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/cache/test_sqlite_cache.py +215 -4
  84. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/README.md +3 -0
  85. lightspeed_stack-0.6.0rc2/tests/unit/models/config/test_approvals_configuration.py +121 -0
  86. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_dump_configuration.py +799 -12
  87. lightspeed_stack-0.6.0rc2/tests/unit/models/config/test_in_memory_cache_configuration.py +31 -0
  88. lightspeed_stack-0.6.0rc2/tests/unit/models/config/test_llama_stack_configuration.py +194 -0
  89. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_model_context_protocol_server.py +39 -0
  90. lightspeed_stack-0.6.0rc2/tests/unit/models/config/test_postgresql_database_configuration.py +311 -0
  91. lightspeed_stack-0.6.0rc2/tests/unit/models/config/test_reranker_configuration.py +53 -0
  92. lightspeed_stack-0.6.0rc2/tests/unit/models/config/test_skills_configuration.py +49 -0
  93. lightspeed_stack-0.6.0rc2/tests/unit/models/config/test_tls_configuration.py +229 -0
  94. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_user_data_collection.py +15 -14
  95. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/requests/test_vector_store_requests.py +8 -4
  96. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/responses/test_successful_responses.py +5 -1
  97. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/rlsapi/test_requests.py +1 -1
  98. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/rlsapi/test_responses.py +1 -1
  99. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/observability/formats/test_rlsapi.py +2 -2
  100. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/quota/test_quota_limiter_factory.py +5 -3
  101. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/test_client.py +61 -27
  102. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/test_configuration.py +1341 -0
  103. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/test_llama_stack_configuration.py +81 -3
  104. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_query.py +1 -99
  105. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_responses.py +139 -10
  106. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_shields.py +7 -7
  107. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_types.py +8 -14
  108. lightspeed_stack-0.6.0rc2/tests/unit/utils/test_vector_search.py +1384 -0
  109. lightspeed_stack-0.6.0rc1/src/models/__init__.py +0 -1
  110. lightspeed_stack-0.6.0rc1/src/models/context.py +0 -55
  111. lightspeed_stack-0.6.0rc1/src/models/rlsapi/README.md +0 -11
  112. lightspeed_stack-0.6.0rc1/src/models/rlsapi/__init__.py +0 -1
  113. lightspeed_stack-0.6.0rc1/tests/test_results/junit_unit.xml +0 -1
  114. lightspeed_stack-0.6.0rc1/tests/unit/models/config/test_llama_stack_configuration.py +0 -134
  115. lightspeed_stack-0.6.0rc1/tests/unit/models/config/test_postgresql_database_configuration.py +0 -123
  116. lightspeed_stack-0.6.0rc1/tests/unit/models/config/test_tls_configuration.py +0 -120
  117. lightspeed_stack-0.6.0rc1/tests/unit/utils/test_vector_search.py +0 -721
  118. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/LICENSE +0 -0
  119. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/a2a_storage/README.md +0 -0
  120. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/a2a_storage/__init__.py +0 -0
  121. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/a2a_storage/context_store.py +0 -0
  122. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/a2a_storage/in_memory_context_store.py +0 -0
  123. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/a2a_storage/postgres_context_store.py +0 -0
  124. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/a2a_storage/sqlite_context_store.py +0 -0
  125. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/a2a_storage/storage_factory.py +0 -0
  126. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/README.md +0 -0
  127. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/__init__.py +0 -0
  128. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/database.py +0 -0
  129. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/README.md +0 -0
  130. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/TODO +0 -0
  131. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/__init__.py +0 -0
  132. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/a2a.py +0 -0
  133. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/a2a_openapi.py +0 -0
  134. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/authorized.py +0 -0
  135. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/config.py +0 -0
  136. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/conversations_v1.py +0 -0
  137. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/feedback.py +0 -0
  138. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/health.py +0 -0
  139. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/info.py +0 -0
  140. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/mcp_auth.py +0 -0
  141. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/mcp_servers.py +0 -0
  142. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/metrics.py +0 -0
  143. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/models.py +0 -0
  144. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/prompts.py +0 -0
  145. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/providers.py +0 -0
  146. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/rags.py +0 -0
  147. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/root.py +0 -0
  148. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/shields.py +0 -0
  149. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/stream_interrupt.py +0 -0
  150. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/tools.py +0 -0
  151. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/endpoints/vector_stores.py +0 -0
  152. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/app/routers.py +0 -0
  153. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/.ruff_cache/.gitignore +0 -0
  154. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/.ruff_cache/0.9.1/13770435568462002823 +0 -0
  155. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/.ruff_cache/0.9.1/2640992821107041526 +0 -0
  156. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/.ruff_cache/0.9.1/README.md +0 -0
  157. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/.ruff_cache/CACHEDIR.TAG +0 -0
  158. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/.ruff_cache/README.md +0 -0
  159. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/README.md +0 -0
  160. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/__init__.py +0 -0
  161. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/interface.py +0 -0
  162. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/noop.py +0 -0
  163. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/noop_with_token.py +0 -0
  164. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/rh_identity.py +0 -0
  165. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authentication/utils.py +0 -0
  166. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authorization/README.md +0 -0
  167. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authorization/__init__.py +0 -0
  168. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authorization/middleware.py +0 -0
  169. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/authorization/resolvers.py +0 -0
  170. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/cache/__init__.py +0 -0
  171. {lightspeed_stack-0.6.0rc1/src/models → lightspeed_stack-0.6.0rc2/src/cache}/cache_entry.py +0 -0
  172. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/cache/cache_error.py +0 -0
  173. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/cache/cache_factory.py +0 -0
  174. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/metrics/README.md +0 -0
  175. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/metrics/__init__.py +0 -0
  176. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/metrics/recording.py +0 -0
  177. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/metrics/utils.py +0 -0
  178. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/.ruff_cache/.gitignore +0 -0
  179. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/.ruff_cache/0.9.1/2435063725374233068 +0 -0
  180. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/.ruff_cache/0.9.1/README.md +0 -0
  181. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/.ruff_cache/CACHEDIR.TAG +0 -0
  182. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/.ruff_cache/README.md +0 -0
  183. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/__init__.py +0 -0
  184. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/requests/catalog.py +0 -0
  185. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/requests/conversations.py +0 -0
  186. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/requests/feedback.py +0 -0
  187. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/requests/mcp_servers.py +0 -0
  188. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/requests/prompts.py +0 -0
  189. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/requests/query.py +0 -0
  190. /lightspeed_stack-0.6.0rc1/src/models/rlsapi/requests.py → /lightspeed_stack-0.6.0rc2/src/models/api/requests/rlsapi.py +0 -0
  191. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/requests/vector_stores.py +0 -0
  192. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/README.md +0 -0
  193. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/__init__.py +0 -0
  194. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/constants.py +0 -0
  195. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/README.md +0 -0
  196. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/__init__.py +0 -0
  197. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/bad_request.py +0 -0
  198. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/bases.py +0 -0
  199. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/conflict.py +0 -0
  200. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/content_too_large.py +0 -0
  201. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/forbidden.py +0 -0
  202. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/internal.py +0 -0
  203. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/not_found.py +0 -0
  204. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/service_unavailable.py +0 -0
  205. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/too_many_requests.py +0 -0
  206. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/unauthorized.py +0 -0
  207. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/error/unprocessable_entity.py +0 -0
  208. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/bases.py +0 -0
  209. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/catalog.py +0 -0
  210. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/configuration.py +0 -0
  211. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/conversations.py +0 -0
  212. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/feedback.py +0 -0
  213. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/mcp_servers.py +0 -0
  214. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/probes.py +0 -0
  215. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/prompts.py +0 -0
  216. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/query.py +0 -0
  217. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/responses_openai.py +0 -0
  218. /lightspeed_stack-0.6.0rc1/src/models/rlsapi/responses.py → /lightspeed_stack-0.6.0rc2/src/models/api/responses/successful/rlsapi.py +0 -0
  219. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/api/responses/successful/vector_stores.py +0 -0
  220. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/README.md +0 -0
  221. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/__init__.py +0 -0
  222. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/conversation.py +0 -0
  223. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/feedback.py +0 -0
  224. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/health.py +0 -0
  225. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/mcp.py +0 -0
  226. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/moderation.py +0 -0
  227. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/responses/responses_conversation_context.py +0 -0
  228. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/common/transcripts.py +0 -0
  229. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/compaction.py +0 -0
  230. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/database/README.md +0 -0
  231. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/database/__init__.py +0 -0
  232. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/database/base.py +0 -0
  233. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/models/database/conversations.py +0 -0
  234. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/observability/__init__.py +0 -0
  235. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/observability/formats/README.md +0 -0
  236. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/observability/formats/__init__.py +0 -0
  237. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/observability/formats/responses.py +0 -0
  238. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/observability/formats/rlsapi.py +0 -0
  239. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/observability/splunk.py +0 -0
  240. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/.ruff_cache/.gitignore +0 -0
  241. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/.ruff_cache/0.14.1/13216894937928385266 +0 -0
  242. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/.ruff_cache/0.14.1/README.md +0 -0
  243. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/.ruff_cache/0.9.1/11326792315657745171 +0 -0
  244. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/.ruff_cache/0.9.1/README.md +0 -0
  245. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/.ruff_cache/CACHEDIR.TAG +0 -0
  246. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/.ruff_cache/README.md +0 -0
  247. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/README.md +0 -0
  248. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/__init__.py +0 -0
  249. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/cluster_quota_limiter.py +0 -0
  250. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/connect_pg.py +0 -0
  251. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/connect_sqlite.py +0 -0
  252. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/quota_exceed_error.py +0 -0
  253. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/quota_limiter.py +0 -0
  254. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/quota_limiter_factory.py +0 -0
  255. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/revokable_quota_limiter.py +0 -0
  256. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/sql.py +0 -0
  257. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/token_usage_history.py +0 -0
  258. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/quota/user_quota_limiter.py +0 -0
  259. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/runners/README.md +0 -0
  260. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/runners/__init__.py +0 -0
  261. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/runners/quota_scheduler.py +0 -0
  262. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/runners/uvicorn.py +0 -0
  263. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/telemetry/README.md +0 -0
  264. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/telemetry/__init__.py +0 -0
  265. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/telemetry/configuration_snapshot.py +0 -0
  266. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/README.md +0 -0
  267. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/__init__.py +0 -0
  268. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/checks.py +0 -0
  269. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/common.py +0 -0
  270. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/compaction.py +0 -0
  271. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/connection_decorator.py +0 -0
  272. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/conversations.py +0 -0
  273. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/endpoints.py +0 -0
  274. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/mcp_auth_headers.py +0 -0
  275. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/mcp_headers.py +0 -0
  276. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/mcp_oauth_probe.py +0 -0
  277. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/prompts.py +0 -0
  278. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/quota.py +0 -0
  279. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/rh_identity.py +0 -0
  280. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/schema_dumper.py +0 -0
  281. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/shields.py +0 -0
  282. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/stream_interrupts.py +0 -0
  283. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/suid.py +0 -0
  284. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/token_counter.py +0 -0
  285. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/token_estimator.py +0 -0
  286. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/tool_formatter.py +0 -0
  287. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/transcripts.py +0 -0
  288. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/src/utils/types.py +0 -0
  289. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/__init__.py +0 -0
  290. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/benchmarks/README.md +0 -0
  291. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/benchmarks/conftest.py +0 -0
  292. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/benchmarks/data_generators.py +0 -0
  293. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/benchmarks/db_benchmarks.py +0 -0
  294. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/benchmarks/test_app_database.py +0 -0
  295. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/benchmarks/test_app_database_comparison.py +0 -0
  296. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/benchmarks-postgres.yaml +0 -0
  297. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/benchmarks-sqlite.yaml +0 -0
  298. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/lightspeed-stack-proper-name.yaml +0 -0
  299. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/lightspeed-stack.yaml +0 -0
  300. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/minimal-stack.yaml +0 -0
  301. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/multiline_system_prompt.txt +0 -0
  302. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/password +0 -0
  303. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/rag.txt +0 -0
  304. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/rh-identity-config.yaml +0 -0
  305. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/run.yaml +0 -0
  306. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/server.crt +0 -0
  307. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/server.key +0 -0
  308. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/configuration/system_prompt.txt +0 -0
  309. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/.pdm-python +0 -0
  310. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/README.md +0 -0
  311. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/__init__.py +0 -0
  312. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configs/README.md +0 -0
  313. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configs/run-bedrock.yaml +0 -0
  314. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configs/run-ci.yaml +0 -0
  315. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configs/run-rhaiis.yaml +0 -0
  316. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configs/run-rhelai.yaml +0 -0
  317. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configs/run-vertexai.yaml +0 -0
  318. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configs/run-watsonx.yaml +0 -0
  319. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/README.md +0 -0
  320. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/README.md +0 -0
  321. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-auth-noop-token.yaml +0 -0
  322. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-auth-rh-identity.yaml +0 -0
  323. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-inline-rag.yaml +0 -0
  324. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-invalid-feedback-storage.yaml +0 -0
  325. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-invalid-mcp-file-auth.yaml +0 -0
  326. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-auth.yaml +0 -0
  327. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-client-auth.yaml +0 -0
  328. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-file-auth.yaml +0 -0
  329. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-kubernetes-auth.yaml +0 -0
  330. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-oauth-auth.yaml +0 -0
  331. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-mcp.yaml +0 -0
  332. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-no-cache.yaml +0 -0
  333. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack-rbac.yaml +0 -0
  334. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/library-mode/lightspeed-stack.yaml +0 -0
  335. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/README.md +0 -0
  336. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-auth-noop-token.yaml +0 -0
  337. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-auth-rh-identity.yaml +0 -0
  338. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-inline-rag.yaml +0 -0
  339. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-invalid-feedback-storage.yaml +0 -0
  340. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-invalid-mcp-file-auth.yaml +0 -0
  341. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-auth.yaml +0 -0
  342. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-client-auth.yaml +0 -0
  343. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-file-auth.yaml +0 -0
  344. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-kubernetes-auth.yaml +0 -0
  345. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-oauth-auth.yaml +0 -0
  346. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-mcp.yaml +0 -0
  347. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-no-cache.yaml +0 -0
  348. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-rbac.yaml +0 -0
  349. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack-tls.yaml +0 -0
  350. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/configuration/server-mode/lightspeed-stack.yaml +0 -0
  351. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/README.md +0 -0
  352. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/authorized_noop.feature +0 -0
  353. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/authorized_noop_token.feature +0 -0
  354. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/authorized_rh_identity.feature +0 -0
  355. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/conversation_cache_v2.feature +0 -0
  356. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/conversations.feature +0 -0
  357. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/faiss.feature +0 -0
  358. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/feedback.feature +0 -0
  359. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/health.feature +0 -0
  360. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/http_401_unauthorized.feature +0 -0
  361. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/inline_rag.feature +0 -0
  362. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/llama_stack_disrupted.feature +0 -0
  363. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/mcp.feature +0 -0
  364. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/mcp_servers_api.feature +0 -0
  365. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/mcp_servers_api_auth.feature +0 -0
  366. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/mcp_servers_api_no_config.feature +0 -0
  367. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/models.feature +0 -0
  368. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/opentelemetry.feature +0 -0
  369. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/query.feature +0 -0
  370. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/rbac.feature +0 -0
  371. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/responses.feature +0 -0
  372. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/responses_streaming.feature +0 -0
  373. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/rest_api.feature +0 -0
  374. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/rlsapi_v1.feature +0 -0
  375. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/rlsapi_v1_errors.feature +0 -0
  376. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/smoketests.feature +0 -0
  377. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/README.md +0 -0
  378. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/__init__.py +0 -0
  379. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/auth.py +0 -0
  380. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/common.py +0 -0
  381. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/conversation.py +0 -0
  382. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/feedback.py +0 -0
  383. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/health.py +0 -0
  384. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/info.py +0 -0
  385. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/llm_query_response.py +0 -0
  386. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/models.py +0 -0
  387. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/place_holder.py +0 -0
  388. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/rbac.py +0 -0
  389. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/responses_steps.py +0 -0
  390. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/rlsapi_v1.py +0 -0
  391. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/shields.py +0 -0
  392. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/steps/token_counters.py +0 -0
  393. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/streaming_query.feature +0 -0
  394. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/features/tls.feature +0 -0
  395. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/gen_scenario_list.py +0 -0
  396. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/mock_jwks_server/Dockerfile +0 -0
  397. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/mock_jwks_server/README.md +0 -0
  398. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/mock_jwks_server/generate_tokens.py +0 -0
  399. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/mock_jwks_server/server.py +0 -0
  400. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/mock_mcp_server/Dockerfile +0 -0
  401. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/mock_mcp_server/README.md +0 -0
  402. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/mock_mcp_server/server.py +0 -0
  403. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/mock_tls_inference_server/Dockerfile +0 -0
  404. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/mock_tls_inference_server/README.md +0 -0
  405. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/mock_tls_inference_server/server.py +0 -0
  406. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/patches/README.md +0 -0
  407. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/patches/docker-compose-mcp-volumes-selinux.patch +0 -0
  408. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/proxy/README.md +0 -0
  409. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/proxy/__init__.py +0 -0
  410. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/rag/README.md +0 -0
  411. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/rag/kv_store.db +0 -0
  412. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/secrets/README.md +0 -0
  413. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/secrets/invalid-mcp-token +0 -0
  414. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/secrets/mcp-token +0 -0
  415. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/test_api.py +0 -0
  416. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/test_list.txt +0 -0
  417. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/utils/README.md +0 -0
  418. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/utils/llama_stack_utils.py +0 -0
  419. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e/utils/utils.py +0 -0
  420. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/configs/run.yaml +0 -0
  421. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/gpu/cluster-policy.yaml +0 -0
  422. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/gpu/create-nfd.yaml +0 -0
  423. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/lightspeed/lightspeed-stack.yaml +0 -0
  424. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/lightspeed/mock-jwks.yaml +0 -0
  425. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/lightspeed/mock-mcp.yaml +0 -0
  426. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/namespaces/nfd.yaml +0 -0
  427. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/namespaces/nvidia-operator.yaml +0 -0
  428. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/operators/ds-cluster.yaml +0 -0
  429. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/operators/operatorgroup.yaml +0 -0
  430. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/operators/operators.yaml +0 -0
  431. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/vllm/vllm-inference-service-cpu.yaml +0 -0
  432. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/vllm/vllm-inference-service-gpu.yaml +0 -0
  433. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/vllm/vllm-runtime-cpu.yaml +0 -0
  434. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/manifests/vllm/vllm-runtime-gpu.yaml +0 -0
  435. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/pipeline-services-konflux.sh +0 -0
  436. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/pipeline-services.sh +0 -0
  437. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/pipeline-test-pod.sh +0 -0
  438. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/pipeline-vllm.sh +0 -0
  439. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/run-tests.sh +0 -0
  440. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/scripts/bootstrap.sh +0 -0
  441. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/scripts/deploy-vllm.sh +0 -0
  442. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/scripts/fetch-vllm-image.sh +0 -0
  443. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/scripts/get-vllm-pod-info.sh +0 -0
  444. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/e2e-prow/rhoai/scripts/gpu-setup.sh +0 -0
  445. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/README.md +0 -0
  446. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/__init__.py +0 -0
  447. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/conftest.py +0 -0
  448. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/README.md +0 -0
  449. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/__init__.py +0 -0
  450. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_authorized_endpoint.py +0 -0
  451. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_config_integration.py +0 -0
  452. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_conversations_v1_integration.py +0 -0
  453. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_health_integration.py +0 -0
  454. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_info_integration.py +0 -0
  455. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_model_list.py +0 -0
  456. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_root_endpoint.py +0 -0
  457. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_stream_interrupt_integration.py +0 -0
  458. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_streaming_query_byok_integration.py +0 -0
  459. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_streaming_query_integration.py +0 -0
  460. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/endpoints/test_tools_integration.py +0 -0
  461. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/test_configuration.py +0 -0
  462. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/test_middleware_integration.py +0 -0
  463. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/test_openapi_json.py +0 -0
  464. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/test_rh_identity_integration.py +0 -0
  465. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/integration/test_version.py +0 -0
  466. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/profiles/empty.py +0 -0
  467. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/profiles/syntax_error.py +0 -0
  468. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/profiles/test/profile.py +0 -0
  469. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/profiles/test_four/profile.py +0 -0
  470. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/profiles/test_three/profile.py +0 -0
  471. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/profiles/test_two/test.txt +0 -0
  472. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/test_results/.coverage.integration +0 -0
  473. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/test_results/coverage_integration.json +0 -0
  474. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/test_results/junit_integration.xml +0 -0
  475. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/README.md +0 -0
  476. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/__init__.py +0 -0
  477. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/a2a_storage/README.md +0 -0
  478. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/a2a_storage/__init__.py +0 -0
  479. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/a2a_storage/test_in_memory_context_store.py +0 -0
  480. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/a2a_storage/test_sqlite_context_store.py +0 -0
  481. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/a2a_storage/test_storage_factory.py +0 -0
  482. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/.ruff_cache/.gitignore +0 -0
  483. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/.ruff_cache/0.9.1/10631576872848856737 +0 -0
  484. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/.ruff_cache/0.9.1/README.md +0 -0
  485. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/.ruff_cache/CACHEDIR.TAG +0 -0
  486. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/README.md +0 -0
  487. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/__init__.py +0 -0
  488. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/.ruff_cache/.gitignore +0 -0
  489. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/.ruff_cache/0.9.1/15310180828563549007 +0 -0
  490. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/.ruff_cache/0.9.1/README.md +0 -0
  491. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/.ruff_cache/CACHEDIR.TAG +0 -0
  492. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/README.md +0 -0
  493. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/__init__.py +0 -0
  494. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_a2a.py +0 -0
  495. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_feedback.py +0 -0
  496. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_health.py +0 -0
  497. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_info.py +0 -0
  498. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_mcp_auth.py +0 -0
  499. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_mcp_servers.py +0 -0
  500. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_metrics.py +0 -0
  501. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_models.py +0 -0
  502. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_prompts.py +0 -0
  503. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_providers.py +0 -0
  504. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_rags.py +0 -0
  505. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_responses_splunk.py +0 -0
  506. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_root.py +0 -0
  507. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_shields.py +0 -0
  508. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_stream_interrupt.py +0 -0
  509. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_tools.py +0 -0
  510. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/endpoints/test_vector_stores.py +0 -0
  511. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/test_database.py +0 -0
  512. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/test_main_middleware.py +0 -0
  513. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/app/test_routers.py +0 -0
  514. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authentication/README.md +0 -0
  515. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authentication/__init__.py +0 -0
  516. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authentication/test_api_key_token.py +0 -0
  517. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authentication/test_auth.py +0 -0
  518. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authentication/test_jwk_token.py +0 -0
  519. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authentication/test_k8s.py +0 -0
  520. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authentication/test_noop.py +0 -0
  521. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authentication/test_noop_with_token.py +0 -0
  522. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authentication/test_rh_identity.py +0 -0
  523. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authentication/test_utils.py +0 -0
  524. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authorization/README.md +0 -0
  525. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authorization/__init__.py +0 -0
  526. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authorization/test_middleware.py +0 -0
  527. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/authorization/test_resolvers.py +0 -0
  528. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/cache/README.md +0 -0
  529. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/cache/__init__.py +0 -0
  530. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/cache/test_cache_factory.py +0 -0
  531. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/conftest.py +0 -0
  532. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/metrics/README.md +0 -0
  533. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/metrics/__init__.py +0 -0
  534. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/metrics/test_recording.py +0 -0
  535. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/metrics/test_utis.py +0 -0
  536. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/README.md +0 -0
  537. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/__init__.py +0 -0
  538. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/__init__.py +0 -0
  539. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_a2a_state_configuration.py +0 -0
  540. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_authentication_configuration.py +0 -0
  541. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_byok_rag.py +0 -0
  542. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_compaction_configuration.py +0 -0
  543. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_conversation_history.py +0 -0
  544. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_cors.py +0 -0
  545. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_customization.py +0 -0
  546. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_database_configuration.py +0 -0
  547. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_inference_configuration.py +0 -0
  548. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_jwt_role_rule.py +0 -0
  549. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_quota_handlers_config.py +0 -0
  550. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_quota_limiter_config.py +0 -0
  551. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_quota_scheduler_config.py +0 -0
  552. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_rag_configuration.py +0 -0
  553. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_rlsapi_v1_configuration.py +0 -0
  554. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_service_configuration.py +0 -0
  555. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/config/test_splunk_configuration.py +0 -0
  556. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/requests/README.md +0 -0
  557. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/requests/__init__.py +0 -0
  558. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/requests/test_attachment.py +0 -0
  559. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/requests/test_feedback_request.py +0 -0
  560. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/requests/test_feedback_status_update_request.py +0 -0
  561. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/requests/test_query_request.py +0 -0
  562. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/requests/test_responses_request.py +0 -0
  563. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/responses/README.md +0 -0
  564. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/responses/__init__.py +0 -0
  565. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/responses/test_authorized_response.py +0 -0
  566. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/responses/test_error_responses.py +0 -0
  567. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/responses/test_query_response.py +0 -0
  568. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/responses/test_rag_chunk.py +0 -0
  569. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/responses/test_response_types.py +0 -0
  570. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/responses/test_types.py +0 -0
  571. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/rlsapi/README.md +0 -0
  572. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/rlsapi/__init__.py +0 -0
  573. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/models/test_compaction.py +0 -0
  574. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/observability/README.md +0 -0
  575. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/observability/__init__.py +0 -0
  576. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/observability/formats/README.md +0 -0
  577. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/observability/formats/__init__.py +0 -0
  578. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/observability/formats/test_responses.py +0 -0
  579. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/observability/test_splunk.py +0 -0
  580. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/quota/README.md +0 -0
  581. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/quota/__init__.py +0 -0
  582. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/quota/test_cluster_quota_limiter.py +0 -0
  583. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/quota/test_connect_pg.py +0 -0
  584. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/quota/test_connect_sqlite.py +0 -0
  585. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/quota/test_quota_exceed_error.py +0 -0
  586. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/quota/test_user_quota_limiter.py +0 -0
  587. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/runners/README.md +0 -0
  588. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/runners/__init__.py +0 -0
  589. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/runners/test_uvicorn_runner.py +0 -0
  590. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/telemetry/README.md +0 -0
  591. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/telemetry/__init__.py +0 -0
  592. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/telemetry/conftest.py +0 -0
  593. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/telemetry/test_configuration_snapshot.py +0 -0
  594. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/test_configuration_unknown_fields.py +0 -0
  595. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/test_lightspeed_stack.py +0 -0
  596. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/test_log.py +0 -0
  597. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/test_sentry.py +0 -0
  598. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/README.md +0 -0
  599. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/__init__.py +0 -0
  600. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/auth_helpers.py +0 -0
  601. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_checks.py +0 -0
  602. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_common.py +0 -0
  603. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_compaction.py +0 -0
  604. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_connection_decorator.py +0 -0
  605. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_conversations.py +0 -0
  606. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_endpoints.py +0 -0
  607. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_llama_stack_version.py +0 -0
  608. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_mcp_auth_headers.py +0 -0
  609. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_mcp_headers.py +0 -0
  610. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_prompts.py +0 -0
  611. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_rh_identity.py +0 -0
  612. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_suid.py +0 -0
  613. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_token_estimator.py +0 -0
  614. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_tool_formatter.py +0 -0
  615. {lightspeed_stack-0.6.0rc1 → lightspeed_stack-0.6.0rc2}/tests/unit/utils/test_transcripts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lightspeed-stack
3
- Version: 0.6.0rc1
3
+ Version: 0.6.0rc2
4
4
  Summary: LLM tooling stack
5
5
  Keywords: LLM,RAG
6
6
  Maintainer-Email: =?utf-8?b?UGF2ZWwgVGnFoW5vdnNrw70=?= <tisnik@centrum.cz>
@@ -259,7 +259,7 @@ Description-Content-Type: text/markdown
259
259
  [![License](https://img.shields.io/badge/license-Apache-blue)](https://github.com/lightspeed-core/lightspeed-stack/blob/main/LICENSE)
260
260
  [![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/)
261
261
  [![Required Python version](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Flightspeed-core%2Flightspeed-stack%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)](https://www.python.org/)
262
- [![Tag](https://img.shields.io/github/v/tag/lightspeed-core/lightspeed-stack)](https://github.com/lightspeed-core/lightspeed-stack/releases/tag/0.5.0)
262
+ [![Tag](https://img.shields.io/github/v/tag/lightspeed-core/lightspeed-stack)](https://github.com/lightspeed-core/lightspeed-stack/releases/tag/0.6.0rc2)
263
263
 
264
264
  Lightspeed Core Stack (LCS) is an AI-powered assistant that provides answers to product questions using backend LLM services, agents, and RAG databases.
265
265
 
@@ -272,7 +272,9 @@ The service includes comprehensive user data collection capabilities for various
272
272
  * [Prerequisites](#prerequisites)
273
273
  * [Installation](#installation)
274
274
  * [Run LCS locally](#run-lcs-locally)
275
+ * [Container Runtime Requirements](#container-runtime-requirements)
275
276
  * [Configuration](#configuration)
277
+ * [Agentic Capabilities](#agentic-capabilities)
276
278
  * [LLM Compatibility](#llm-compatibility)
277
279
  * [Set LLM provider and model](#set-llm-provider-and-model)
278
280
  * [Selecting provider and model](#selecting-provider-and-model)
@@ -281,6 +283,7 @@ The service includes comprehensive user data collection capabilities for various
281
283
  * [Supported providers](#supported-providers)
282
284
  * [Integration with Llama Stack](#integration-with-llama-stack)
283
285
  * [Llama Stack as separate server](#llama-stack-as-separate-server)
286
+ * [Degraded mode](#degraded-mode)
284
287
  * [MCP Server and Tool Configuration](#mcp-server-and-tool-configuration)
285
288
  * [Configuring MCP Servers](#configuring-mcp-servers)
286
289
  * [Configuring MCP Server Authentication](#configuring-mcp-server-authentication)
@@ -303,6 +306,7 @@ The service includes comprehensive user data collection capabilities for various
303
306
  * [System Prompt Literal](#system-prompt-literal)
304
307
  * [Custom Profile](#custom-profile)
305
308
  * [Control model/provider overrides via authorization](#control-modelprovider-overrides-via-authorization)
309
+ * [Agent Skills (Upcoming)](#agent-skills-upcoming)
306
310
  * [Safety Shields](#safety-shields)
307
311
  * [Authentication](#authentication)
308
312
  * [CORS](#cors)
@@ -335,6 +339,7 @@ The service includes comprehensive user data collection capabilities for various
335
339
  * [Packages on PyPI and Test PyPI](#packages-on-pypi-and-test-pypi)
336
340
  * [Contributing](#contributing)
337
341
  * [Testing](#testing)
342
+ * [Releasing](#releasing)
338
343
  * [License](#license)
339
344
  * [Additional tools](#additional-tools)
340
345
  * [Utility to generate OpenAPI schema](#utility-to-generate-openapi-schema)
@@ -430,24 +435,39 @@ To quickly get hands on LCS, we can run it using the default configurations prov
430
435
  ```bash
431
436
  export OPENAI_API_KEY=sk-xxxxx
432
437
  ```
433
- 3. start Llama stack server
438
+ 3. start LCS server
434
439
  ```bash
435
- uv run llama stack run local-run.yaml
436
- ```
437
- 4. [Optional] If you're new to Llama stack, run through a quick tutorial to learn the basics of what the server is used for, by running the interactive tutorial script
438
- ```bash
439
- ./scripts/llama_stack_tutorial.sh
440
- ```
441
- 5. check the LCS settings in [lightspeed-stack.yaml](lightspeed-stack.yaml). `llama_stack.url` should be `url: http://localhost:8321`
442
- 6. start LCS server
443
- ```
444
440
  make run
445
- ```
446
- 7. access LCS web UI at [http://localhost:8080/](http://localhost:8080/)
441
+ ```
442
+ 4. access LCS web UI at [http://localhost:8080/](http://localhost:8080/)
443
+
444
+ **Note**: `make run` uses containerized llama-stack (service mode). To run llama-stack manually instead, see the [Llama Stack as separate server](#llama-stack-as-separate-server) section below.
445
+
446
+ ## Container Runtime Requirements
447
+
448
+ The Makefile requires either Podman or Docker to launch the Llama Stack container:
449
+
450
+ - **Podman** (recommended for RHEL/Fedora): `sudo dnf install podman`
451
+ - **Docker**: Install from [docker.com](https://docs.docker.com/get-docker/)
452
+
453
+ The Makefile will auto-detect which runtime is available.
447
454
 
448
455
 
449
456
  # Configuration
450
457
 
458
+ ## Agentic Capabilities
459
+
460
+ Lightspeed Core Stack supports the following agentic features:
461
+
462
+ | Capability | Status | Description |
463
+ |------------|--------|-------------|
464
+ | MCP Tools | Supported | External tool integration via [Model Context Protocol](https://modelcontextprotocol.io) servers |
465
+ | RAG | Supported | Retrieval-Augmented Generation with vector stores ([RAG Guide](docs/rag_guide.md)) |
466
+ | A2A Protocol (Client) | Supported | Agent-to-Agent communication as client ([A2A Protocol](docs/a2a_protocol.md)) |
467
+ | Conversation History | Supported | Persistent conversation context across requests |
468
+ | Human-in-the-Loop | Upcoming | Interactive approval or confirmation steps |
469
+ | Agent Skills | Upcoming (Q2) | Domain-specific instructions loaded on demand ([Agent Skills Guide](docs/skills_guide.md)) |
470
+
451
471
  ## LLM Compatibility
452
472
 
453
473
  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.
@@ -578,6 +598,20 @@ user_data_collection:
578
598
  transcripts_storage: "/tmp/data/transcripts"
579
599
  ```
580
600
 
601
+ ### Degraded mode
602
+
603
+ Lightspeed core is able to continue operating in a _degraded but safe_ mode if the LLS service is not started or fails to start. When degraded, the `/health` endpoint report the LLS status and any relevant impacts so operators and automation can detect and respond.
604
+
605
+ Degraded mode need to be enabled in `lightspeed-stack.yaml` configuration file:
606
+
607
+ ```yaml
608
+ allow_degraded_mode = true
609
+ ```
610
+
611
+ [NOTE] Ability to run in degraded mode is disabled by default.
612
+
613
+
614
+
581
615
  ### MCP Server and Tool Configuration
582
616
 
583
617
  **Note**: The `run.yaml` configuration is currently an implementation detail. In the future, all configuration will be available directly from the lightspeed-core config.
@@ -964,6 +998,15 @@ customization:
964
998
 
965
999
  By default, clients may specify `model` and `provider` in `/v1/query` and `/v1/streaming_query`. Override is permitted only to callers granted the `MODEL_OVERRIDE` action via the authorization rules. Requests that include `model` or `provider` without this permission are rejected with HTTP 403.
966
1000
 
1001
+ ## Agent Skills (Upcoming)
1002
+
1003
+ > [!NOTE]
1004
+ > Agent Skills is an upcoming feature. The documentation below describes the planned design.
1005
+
1006
+ Agent Skills will allow product teams to extend Lightspeed Core with specialized instructions and domain knowledge that the LLM can load on demand. Skills follow the [Agent Skills open standard](https://agentskills.io) and are packaged as portable directories containing a `SKILL.md` file.
1007
+
1008
+ For the planned configuration guide, skill authoring instructions, and examples, see the [Agent Skills Guide](docs/skills_guide.md).
1009
+
967
1010
  ## Safety Shields
968
1011
 
969
1012
  A single Llama Stack configuration file can include multiple safety shields, which are utilized in agent
@@ -1083,7 +1126,6 @@ Usage: make <OPTIONS> ... <TARGETS>
1083
1126
  Available targets are:
1084
1127
 
1085
1128
  run Run the service locally
1086
- run-llama-stack Start Llama Stack with enriched config (for local service mode)
1087
1129
  test-unit Run the unit tests
1088
1130
  test-integration Run integration tests tests
1089
1131
  test-e2e Run end to end tests for the service
@@ -1189,7 +1231,7 @@ docker compose up --build
1189
1231
 
1190
1232
  ### Llama-Stack as Library (Library Mode)
1191
1233
 
1192
- When embedding llama-stack directly in the container, use the existing `Containerfile` directly (this will not build the llama stack service in a separate container). First modify the `lightspeed-stack.yaml` config to use llama stack in library mode.
1234
+ When embedding llama-stack directly in the container, use the existing `deploy/lightspeed-stack/Containerfile` directly (this will not build the llama stack service in a separate container). First modify the `lightspeed-stack.yaml` config to use llama stack in library mode.
1193
1235
 
1194
1236
  **Configuration** (`lightspeed-stack.yaml`):
1195
1237
  ```yaml
@@ -1201,7 +1243,7 @@ llama_stack:
1201
1243
  **Build and run**:
1202
1244
  ```bash
1203
1245
  # Build lightspeed-core with embedded llama-stack
1204
- podman build -f Containerfile -t my-lightspeed-core:latest .
1246
+ podman build -f deploy/lightspeed-stack/Containerfile -t my-lightspeed-core:latest .
1205
1247
 
1206
1248
  # Run with embedded llama-stack
1207
1249
  podman run \
@@ -1254,7 +1296,7 @@ dependencies = [
1254
1296
  ]
1255
1297
  ```
1256
1298
 
1257
- 2. Create `Containerfile` in top-level directory like following. Update it as needed:
1299
+ 2. Create a `Containerfile` in your repository root like the following (see `deploy/lightspeed-stack/Containerfile` in this repo for the upstream image definition). Update it as needed:
1258
1300
  ```
1259
1301
  # Latest dev image built from the git main branch (consider pinning a digest for reproducibility)
1260
1302
  FROM quay.io/lightspeed-core/lightspeed-stack:dev-latest
@@ -1474,6 +1516,10 @@ If this configuration file does not exist, you will be prompted to specify API t
1474
1516
 
1475
1517
 
1476
1518
 
1519
+ # Releasing
1520
+
1521
+ * See [releasing](docs/releasing.md) guide.
1522
+
1477
1523
  # License
1478
1524
 
1479
1525
  Published under the Apache 2.0 License
@@ -1581,7 +1627,7 @@ Konflux builds run in **hermetic mode** (air-gapped from the internet), so all d
1581
1627
 
1582
1628
  Update these files when you:
1583
1629
  - Add/remove/update Python packages in the project
1584
- - Add/remove/update RPM packages in the Containerfile
1630
+ - Add/remove/update RPM packages in `deploy/lightspeed-stack/Containerfile`
1585
1631
  - Change the base image version
1586
1632
 
1587
1633
  ### Updating Python Dependencies
@@ -6,7 +6,7 @@
6
6
  [![License](https://img.shields.io/badge/license-Apache-blue)](https://github.com/lightspeed-core/lightspeed-stack/blob/main/LICENSE)
7
7
  [![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/)
8
8
  [![Required Python version](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Flightspeed-core%2Flightspeed-stack%2Frefs%2Fheads%2Fmain%2Fpyproject.toml)](https://www.python.org/)
9
- [![Tag](https://img.shields.io/github/v/tag/lightspeed-core/lightspeed-stack)](https://github.com/lightspeed-core/lightspeed-stack/releases/tag/0.5.0)
9
+ [![Tag](https://img.shields.io/github/v/tag/lightspeed-core/lightspeed-stack)](https://github.com/lightspeed-core/lightspeed-stack/releases/tag/0.6.0rc2)
10
10
 
11
11
  Lightspeed Core Stack (LCS) is an AI-powered assistant that provides answers to product questions using backend LLM services, agents, and RAG databases.
12
12
 
@@ -19,7 +19,9 @@ The service includes comprehensive user data collection capabilities for various
19
19
  * [Prerequisites](#prerequisites)
20
20
  * [Installation](#installation)
21
21
  * [Run LCS locally](#run-lcs-locally)
22
+ * [Container Runtime Requirements](#container-runtime-requirements)
22
23
  * [Configuration](#configuration)
24
+ * [Agentic Capabilities](#agentic-capabilities)
23
25
  * [LLM Compatibility](#llm-compatibility)
24
26
  * [Set LLM provider and model](#set-llm-provider-and-model)
25
27
  * [Selecting provider and model](#selecting-provider-and-model)
@@ -28,6 +30,7 @@ The service includes comprehensive user data collection capabilities for various
28
30
  * [Supported providers](#supported-providers)
29
31
  * [Integration with Llama Stack](#integration-with-llama-stack)
30
32
  * [Llama Stack as separate server](#llama-stack-as-separate-server)
33
+ * [Degraded mode](#degraded-mode)
31
34
  * [MCP Server and Tool Configuration](#mcp-server-and-tool-configuration)
32
35
  * [Configuring MCP Servers](#configuring-mcp-servers)
33
36
  * [Configuring MCP Server Authentication](#configuring-mcp-server-authentication)
@@ -50,6 +53,7 @@ The service includes comprehensive user data collection capabilities for various
50
53
  * [System Prompt Literal](#system-prompt-literal)
51
54
  * [Custom Profile](#custom-profile)
52
55
  * [Control model/provider overrides via authorization](#control-modelprovider-overrides-via-authorization)
56
+ * [Agent Skills (Upcoming)](#agent-skills-upcoming)
53
57
  * [Safety Shields](#safety-shields)
54
58
  * [Authentication](#authentication)
55
59
  * [CORS](#cors)
@@ -82,6 +86,7 @@ The service includes comprehensive user data collection capabilities for various
82
86
  * [Packages on PyPI and Test PyPI](#packages-on-pypi-and-test-pypi)
83
87
  * [Contributing](#contributing)
84
88
  * [Testing](#testing)
89
+ * [Releasing](#releasing)
85
90
  * [License](#license)
86
91
  * [Additional tools](#additional-tools)
87
92
  * [Utility to generate OpenAPI schema](#utility-to-generate-openapi-schema)
@@ -177,24 +182,39 @@ To quickly get hands on LCS, we can run it using the default configurations prov
177
182
  ```bash
178
183
  export OPENAI_API_KEY=sk-xxxxx
179
184
  ```
180
- 3. start Llama stack server
185
+ 3. start LCS server
181
186
  ```bash
182
- uv run llama stack run local-run.yaml
183
- ```
184
- 4. [Optional] If you're new to Llama stack, run through a quick tutorial to learn the basics of what the server is used for, by running the interactive tutorial script
185
- ```bash
186
- ./scripts/llama_stack_tutorial.sh
187
- ```
188
- 5. check the LCS settings in [lightspeed-stack.yaml](lightspeed-stack.yaml). `llama_stack.url` should be `url: http://localhost:8321`
189
- 6. start LCS server
190
- ```
191
187
  make run
192
- ```
193
- 7. access LCS web UI at [http://localhost:8080/](http://localhost:8080/)
188
+ ```
189
+ 4. access LCS web UI at [http://localhost:8080/](http://localhost:8080/)
190
+
191
+ **Note**: `make run` uses containerized llama-stack (service mode). To run llama-stack manually instead, see the [Llama Stack as separate server](#llama-stack-as-separate-server) section below.
192
+
193
+ ## Container Runtime Requirements
194
+
195
+ The Makefile requires either Podman or Docker to launch the Llama Stack container:
196
+
197
+ - **Podman** (recommended for RHEL/Fedora): `sudo dnf install podman`
198
+ - **Docker**: Install from [docker.com](https://docs.docker.com/get-docker/)
199
+
200
+ The Makefile will auto-detect which runtime is available.
194
201
 
195
202
 
196
203
  # Configuration
197
204
 
205
+ ## Agentic Capabilities
206
+
207
+ Lightspeed Core Stack supports the following agentic features:
208
+
209
+ | Capability | Status | Description |
210
+ |------------|--------|-------------|
211
+ | MCP Tools | Supported | External tool integration via [Model Context Protocol](https://modelcontextprotocol.io) servers |
212
+ | RAG | Supported | Retrieval-Augmented Generation with vector stores ([RAG Guide](docs/rag_guide.md)) |
213
+ | A2A Protocol (Client) | Supported | Agent-to-Agent communication as client ([A2A Protocol](docs/a2a_protocol.md)) |
214
+ | Conversation History | Supported | Persistent conversation context across requests |
215
+ | Human-in-the-Loop | Upcoming | Interactive approval or confirmation steps |
216
+ | Agent Skills | Upcoming (Q2) | Domain-specific instructions loaded on demand ([Agent Skills Guide](docs/skills_guide.md)) |
217
+
198
218
  ## LLM Compatibility
199
219
 
200
220
  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.
@@ -325,6 +345,20 @@ user_data_collection:
325
345
  transcripts_storage: "/tmp/data/transcripts"
326
346
  ```
327
347
 
348
+ ### Degraded mode
349
+
350
+ Lightspeed core is able to continue operating in a _degraded but safe_ mode if the LLS service is not started or fails to start. When degraded, the `/health` endpoint report the LLS status and any relevant impacts so operators and automation can detect and respond.
351
+
352
+ Degraded mode need to be enabled in `lightspeed-stack.yaml` configuration file:
353
+
354
+ ```yaml
355
+ allow_degraded_mode = true
356
+ ```
357
+
358
+ [NOTE] Ability to run in degraded mode is disabled by default.
359
+
360
+
361
+
328
362
  ### MCP Server and Tool Configuration
329
363
 
330
364
  **Note**: The `run.yaml` configuration is currently an implementation detail. In the future, all configuration will be available directly from the lightspeed-core config.
@@ -711,6 +745,15 @@ customization:
711
745
 
712
746
  By default, clients may specify `model` and `provider` in `/v1/query` and `/v1/streaming_query`. Override is permitted only to callers granted the `MODEL_OVERRIDE` action via the authorization rules. Requests that include `model` or `provider` without this permission are rejected with HTTP 403.
713
747
 
748
+ ## Agent Skills (Upcoming)
749
+
750
+ > [!NOTE]
751
+ > Agent Skills is an upcoming feature. The documentation below describes the planned design.
752
+
753
+ Agent Skills will allow product teams to extend Lightspeed Core with specialized instructions and domain knowledge that the LLM can load on demand. Skills follow the [Agent Skills open standard](https://agentskills.io) and are packaged as portable directories containing a `SKILL.md` file.
754
+
755
+ For the planned configuration guide, skill authoring instructions, and examples, see the [Agent Skills Guide](docs/skills_guide.md).
756
+
714
757
  ## Safety Shields
715
758
 
716
759
  A single Llama Stack configuration file can include multiple safety shields, which are utilized in agent
@@ -830,7 +873,6 @@ Usage: make <OPTIONS> ... <TARGETS>
830
873
  Available targets are:
831
874
 
832
875
  run Run the service locally
833
- run-llama-stack Start Llama Stack with enriched config (for local service mode)
834
876
  test-unit Run the unit tests
835
877
  test-integration Run integration tests tests
836
878
  test-e2e Run end to end tests for the service
@@ -936,7 +978,7 @@ docker compose up --build
936
978
 
937
979
  ### Llama-Stack as Library (Library Mode)
938
980
 
939
- When embedding llama-stack directly in the container, use the existing `Containerfile` directly (this will not build the llama stack service in a separate container). First modify the `lightspeed-stack.yaml` config to use llama stack in library mode.
981
+ When embedding llama-stack directly in the container, use the existing `deploy/lightspeed-stack/Containerfile` directly (this will not build the llama stack service in a separate container). First modify the `lightspeed-stack.yaml` config to use llama stack in library mode.
940
982
 
941
983
  **Configuration** (`lightspeed-stack.yaml`):
942
984
  ```yaml
@@ -948,7 +990,7 @@ llama_stack:
948
990
  **Build and run**:
949
991
  ```bash
950
992
  # Build lightspeed-core with embedded llama-stack
951
- podman build -f Containerfile -t my-lightspeed-core:latest .
993
+ podman build -f deploy/lightspeed-stack/Containerfile -t my-lightspeed-core:latest .
952
994
 
953
995
  # Run with embedded llama-stack
954
996
  podman run \
@@ -1001,7 +1043,7 @@ dependencies = [
1001
1043
  ]
1002
1044
  ```
1003
1045
 
1004
- 2. Create `Containerfile` in top-level directory like following. Update it as needed:
1046
+ 2. Create a `Containerfile` in your repository root like the following (see `deploy/lightspeed-stack/Containerfile` in this repo for the upstream image definition). Update it as needed:
1005
1047
  ```
1006
1048
  # Latest dev image built from the git main branch (consider pinning a digest for reproducibility)
1007
1049
  FROM quay.io/lightspeed-core/lightspeed-stack:dev-latest
@@ -1221,6 +1263,10 @@ If this configuration file does not exist, you will be prompted to specify API t
1221
1263
 
1222
1264
 
1223
1265
 
1266
+ # Releasing
1267
+
1268
+ * See [releasing](docs/releasing.md) guide.
1269
+
1224
1270
  # License
1225
1271
 
1226
1272
  Published under the Apache 2.0 License
@@ -1328,7 +1374,7 @@ Konflux builds run in **hermetic mode** (air-gapped from the internet), so all d
1328
1374
 
1329
1375
  Update these files when you:
1330
1376
  - Add/remove/update Python packages in the project
1331
- - Add/remove/update RPM packages in the Containerfile
1377
+ - Add/remove/update RPM packages in `deploy/lightspeed-stack/Containerfile`
1332
1378
  - Change the base image version
1333
1379
 
1334
1380
  ### Updating Python Dependencies
@@ -56,7 +56,7 @@ dependencies = [
56
56
  "python-dotenv>=1.2.2",
57
57
  "tiktoken>=0.8.0",
58
58
  ]
59
- version = "0.6.0rc1"
59
+ version = "0.6.0rc2"
60
60
 
61
61
  [project.license]
62
62
  file = "LICENSE"
@@ -174,7 +174,7 @@ dev = [
174
174
  "pytest-subtests>=0.14.2",
175
175
  "bandit>=1.8.6",
176
176
  "pybuild-deps>=0.5.0",
177
- "pip==24.3.1",
177
+ "pip==26.1",
178
178
  "pytest-benchmark>=5.2.3",
179
179
  ]
180
180
  llslibdev = [
@@ -6,6 +6,7 @@ from fastapi import APIRouter, Depends, HTTPException, Request
6
6
 
7
7
  from authentication import get_auth_dependency
8
8
  from authorization.middleware import authorize
9
+ from cache.cache_entry import CacheEntry
9
10
  from configuration import configuration
10
11
  from log import get_logger
11
12
  from models.api.requests import ConversationUpdateRequest
@@ -24,7 +25,6 @@ from models.api.responses.successful import (
24
25
  ConversationsListResponseV2,
25
26
  ConversationUpdateResponse,
26
27
  )
27
- from models.cache_entry import CacheEntry
28
28
  from models.common import (
29
29
  ConversationTurn,
30
30
  Message,
@@ -54,7 +54,6 @@ from utils.query import (
54
54
  is_context_length_error,
55
55
  prepare_input,
56
56
  store_query_results,
57
- update_azure_token,
58
57
  validate_attachments_metadata,
59
58
  validate_model_provider_override,
60
59
  )
@@ -204,7 +203,7 @@ async def query_endpoint_handler(
204
203
  and AzureEntraIDManager().is_token_expired
205
204
  and AzureEntraIDManager().refresh_token()
206
205
  ):
207
- client = await update_azure_token(client)
206
+ client = await AsyncLlamaStackClientHolder().update_azure_token()
208
207
 
209
208
  # Retrieve response using Responses API
210
209
  turn_summary = await retrieve_response(
@@ -60,8 +60,8 @@ from models.api.responses.error import (
60
60
  )
61
61
  from models.api.responses.successful import ResponsesResponse
62
62
  from models.common.moderation import ShieldModerationBlocked
63
+ from models.common.responses.contexts import ResponsesContext
63
64
  from models.common.responses.responses_api_params import ResponsesApiParams
64
- from models.common.responses.responses_context import ResponsesContext
65
65
  from models.common.turn_summary import TurnSummary
66
66
  from models.config import Action
67
67
  from utils.conversations import append_turn_items_to_conversation
@@ -78,7 +78,6 @@ from utils.query import (
78
78
  handle_known_apistatus_errors,
79
79
  is_context_length_error,
80
80
  store_query_results,
81
- update_azure_token,
82
81
  validate_model_provider_override,
83
82
  )
84
83
  from utils.quota import check_tokens_available, get_available_quotas
@@ -405,7 +404,7 @@ async def responses_endpoint_handler(
405
404
  and AzureEntraIDManager().is_token_expired
406
405
  and AzureEntraIDManager().refresh_token()
407
406
  ):
408
- client = await update_azure_token(client)
407
+ client = await AsyncLlamaStackClientHolder().update_azure_token()
409
408
 
410
409
  input_text = (
411
410
  original_request.input
@@ -455,12 +454,7 @@ async def responses_endpoint_handler(
455
454
  original_request.input, inline_rag_context.context_text
456
455
  )
457
456
 
458
- api_params = ResponsesApiParams.model_validate(
459
- {
460
- **updated_request.model_dump(exclude={"tools"}),
461
- "tools": updated_request.tools,
462
- }
463
- )
457
+ api_params = ResponsesApiParams.model_validate(updated_request.model_dump())
464
458
  context = ResponsesContext(
465
459
  client=client,
466
460
  auth=auth,
@@ -10,8 +10,8 @@ from typing import Optional
10
10
  from fastapi import BackgroundTasks
11
11
 
12
12
  from log import get_logger
13
+ from models.common.responses.contexts import ResponsesContext
13
14
  from models.common.responses.responses_api_params import ResponsesApiParams
14
- from models.common.responses.responses_context import ResponsesContext
15
15
  from models.common.turn_summary import TurnSummary
16
16
  from observability import ResponsesEventData, build_responses_event
17
17
  from observability.splunk import dispatch_splunk_event
@@ -20,12 +20,14 @@ from openai._exceptions import APIStatusError as OpenAIAPIStatusError
20
20
  import constants
21
21
  from authentication import get_auth_dependency
22
22
  from authentication.interface import AuthTuple
23
+ from authorization.azure_token_manager import AzureEntraIDManager
23
24
  from authorization.middleware import authorize
24
25
  from client import AsyncLlamaStackClientHolder
25
26
  from configuration import configuration
26
27
  from constants import ENDPOINT_PATH_INFER
27
28
  from log import get_logger
28
29
  from metrics import recording
30
+ from models.api.requests.rlsapi import RlsapiV1InferRequest, RlsapiV1SystemInfo
29
31
  from models.api.responses.constants import UNAUTHORIZED_OPENAPI_EXAMPLES
30
32
  from models.api.responses.error import (
31
33
  ForbiddenResponse,
@@ -37,9 +39,11 @@ from models.api.responses.error import (
37
39
  UnauthorizedResponse,
38
40
  UnprocessableEntityResponse,
39
41
  )
42
+ from models.api.responses.successful.rlsapi import (
43
+ RlsapiV1InferData,
44
+ RlsapiV1InferResponse,
45
+ )
40
46
  from models.config import Action
41
- from models.rlsapi.requests import RlsapiV1InferRequest, RlsapiV1SystemInfo
42
- from models.rlsapi.responses import RlsapiV1InferData, RlsapiV1InferResponse
43
47
  from observability import InferenceEventData, build_inference_event, send_splunk_event
44
48
  from utils.endpoints import check_configuration_loaded
45
49
  from utils.query import (
@@ -327,6 +331,16 @@ async def _call_llm(
327
331
  """
328
332
  client = AsyncLlamaStackClientHolder().get_client()
329
333
  resolved_model_id = model_id or await _get_default_model_id()
334
+
335
+ # Handle Azure token refresh if needed
336
+ if (
337
+ resolved_model_id.startswith("azure")
338
+ and AzureEntraIDManager().is_entra_id_configured
339
+ and AzureEntraIDManager().is_token_expired
340
+ and AzureEntraIDManager().refresh_token()
341
+ ):
342
+ client = await AsyncLlamaStackClientHolder().update_azure_token()
343
+
330
344
  logger.debug("Using model %s for rlsapi v1 inference", resolved_model_id)
331
345
 
332
346
  response = await client.responses.create(
@@ -74,10 +74,10 @@ from models.api.responses.error import (
74
74
  UnprocessableEntityResponse,
75
75
  )
76
76
  from models.api.responses.successful import StreamingQueryResponse
77
+ from models.common.responses.contexts import ResponseGeneratorContext
77
78
  from models.common.responses.responses_api_params import ResponsesApiParams
78
79
  from models.common.turn_summary import ReferencedDocument, TurnSummary
79
80
  from models.config import Action
80
- from models.context import ResponseGeneratorContext
81
81
  from utils.conversations import append_turn_items_to_conversation
82
82
  from utils.endpoints import (
83
83
  check_configuration_loaded,
@@ -92,7 +92,6 @@ from utils.query import (
92
92
  is_context_length_error,
93
93
  prepare_input,
94
94
  store_query_results,
95
- update_azure_token,
96
95
  update_conversation_topic_summary,
97
96
  validate_attachments_metadata,
98
97
  validate_model_provider_override,
@@ -262,7 +261,7 @@ async def streaming_query_endpoint_handler( # pylint: disable=too-many-locals
262
261
  and AzureEntraIDManager().is_token_expired
263
262
  and AzureEntraIDManager().refresh_token()
264
263
  ):
265
- client = await update_azure_token(client)
264
+ client = await AsyncLlamaStackClientHolder().update_azure_token()
266
265
 
267
266
  request_id = get_suid()
268
267
 
@@ -9,7 +9,7 @@ import sentry_sdk # pyright: ignore[reportMissingImports]
9
9
  from fastapi import FastAPI, HTTPException
10
10
  from fastapi.middleware.cors import CORSMiddleware
11
11
  from fastapi.responses import JSONResponse
12
- from llama_stack_client import APIConnectionError
12
+ from llama_stack_client import APIConnectionError, AsyncLlamaStackClient
13
13
  from starlette.routing import Mount, Route, WebSocketRoute
14
14
  from starlette.types import ASGIApp, Message, Receive, Scope, Send
15
15
 
@@ -77,22 +77,21 @@ async def lifespan(_app: FastAPI) -> AsyncIterator[None]:
77
77
 
78
78
  initialize_sentry()
79
79
 
80
- azure_config = configuration.configuration.azure_entra_id
81
- if azure_config is not None:
82
- AzureEntraIDManager().set_config(azure_config)
83
- if not AzureEntraIDManager().refresh_token():
84
- logger.warning(
85
- "Failed to refresh Azure token at startup. "
86
- "Token refresh will be retried on next Azure request."
87
- )
88
-
89
80
  llama_stack_config = configuration.configuration.llama_stack
90
81
  await AsyncLlamaStackClientHolder().load(llama_stack_config)
91
- client = AsyncLlamaStackClientHolder().get_client()
82
+ client: AsyncLlamaStackClient = AsyncLlamaStackClientHolder().get_client()
83
+ logger.debug("Llama Stack client initialized, trying to connect to Llama Stack")
92
84
  # check if the Llama Stack version is supported by the service
93
85
  try:
94
- await check_llama_stack_version(client)
86
+ llama_stack_version = await check_llama_stack_version(
87
+ client, llama_stack_config.max_retries, llama_stack_config.retry_delay
88
+ )
89
+ if llama_stack_version is None:
90
+ logger.error("Cannot retrieve Llama Stack version, check connection")
91
+ else:
92
+ logger.debug("Llama Stack version: %s", llama_stack_version)
95
93
  except APIConnectionError as e:
94
+ # if degraded mode is allowed, simply ignore the exception
96
95
  llama_stack_url = llama_stack_config.url
97
96
  logger.error(
98
97
  "Failed to connect to Llama Stack at '%s'. "
@@ -102,8 +101,16 @@ async def lifespan(_app: FastAPI) -> AsyncIterator[None]:
102
101
  llama_stack_url,
103
102
  e,
104
103
  )
105
- raise
104
+ if llama_stack_config.allow_degraded_mode:
105
+ logger.info("Entering degraded mode: LCORE running w/o Llama Stack")
106
+ else:
107
+ raise
106
108
 
109
+ azure_entra_id_config = configuration.configuration.azure_entra_id
110
+ if azure_entra_id_config is not None:
111
+ AzureEntraIDManager().set_config(azure_entra_id_config)
112
+ azure_base_url = await AsyncLlamaStackClientHolder().get_azure_base_url()
113
+ AzureEntraIDManager().set_base_url(azure_base_url)
107
114
  logger.info("Registering MCP servers")
108
115
  await register_mcp_servers_async(logger, configuration.configuration)
109
116
  logger.info("App startup complete")
@@ -10,8 +10,9 @@ import secrets
10
10
 
11
11
  from fastapi import HTTPException, Request, status
12
12
 
13
- from authentication.interface import AuthInterface, AuthTuple
13
+ from authentication.interface import NO_AUTH_TUPLE, AuthInterface, AuthTuple
14
14
  from authentication.utils import extract_user_token
15
+ from configuration import configuration
15
16
  from constants import (
16
17
  DEFAULT_USER_NAME,
17
18
  DEFAULT_USER_UID,
@@ -23,6 +24,19 @@ from models.config import APIKeyTokenConfiguration
23
24
  logger = get_logger(__name__)
24
25
 
25
26
 
27
+ def _should_skip_auth(request: Request) -> bool:
28
+ """Check if auth should be skipped for health probe or metrics endpoints."""
29
+ auth_config = configuration.authentication_configuration
30
+ if auth_config.skip_for_health_probes and request.url.path in (
31
+ "/readiness",
32
+ "/liveness",
33
+ ):
34
+ return True
35
+ if auth_config.skip_for_metrics and request.url.path in ("/metrics",):
36
+ return True
37
+ return False
38
+
39
+
26
40
  class APIKeyTokenAuthDependency(
27
41
  AuthInterface
28
42
  ): # pylint: disable=too-few-public-methods
@@ -59,6 +73,10 @@ class APIKeyTokenAuthDependency(
59
73
  HTTPException: If the bearer token is missing or
60
74
  doesn't match the configured API key (HTTP 401).
61
75
  """
76
+ if not request.headers.get("Authorization"):
77
+ if _should_skip_auth(request):
78
+ return NO_AUTH_TUPLE
79
+
62
80
  # try to extract user token from request
63
81
  user_token = extract_user_token(request.headers)
64
82