diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml
index 6a1f464e5..7958843df 100644
--- a/.github/workflows/e2e_tests.yaml
+++ b/.github/workflows/e2e_tests.yaml
@@ -152,7 +152,7 @@ jobs:
echo "Models: $(grep -c "model_id:" run.yaml)"
echo ""
echo "=== lightspeed-stack.yaml ==="
- grep -A 3 "llama_stack:" lightspeed-stack.yaml
+ grep -A 3 "ogx:" lightspeed-stack.yaml
- name: Cache HuggingFace embedding model
uses: actions/cache@v4
diff --git a/.github/workflows/e2e_tests_lightspeed_evaluation.yaml b/.github/workflows/e2e_tests_lightspeed_evaluation.yaml
index df8b6399c..07b345881 100644
--- a/.github/workflows/e2e_tests_lightspeed_evaluation.yaml
+++ b/.github/workflows/e2e_tests_lightspeed_evaluation.yaml
@@ -96,7 +96,7 @@ jobs:
echo "Models: $(grep -c "model_id:" run.yaml)"
echo ""
echo "=== lightspeed-stack.yaml ==="
- grep -A 3 "llama_stack:" lightspeed-stack.yaml
+ grep -A 3 "ogx:" lightspeed-stack.yaml
- name: Run services (Library Mode)
env:
diff --git a/.github/workflows/e2e_tests_providers.yaml b/.github/workflows/e2e_tests_providers.yaml
index 83d1f5fe9..3d988e2b3 100644
--- a/.github/workflows/e2e_tests_providers.yaml
+++ b/.github/workflows/e2e_tests_providers.yaml
@@ -204,7 +204,7 @@ jobs:
echo "Models: $(grep -c "model_id:" run.yaml)"
echo ""
echo "=== lightspeed-stack.yaml ==="
- grep -A 3 "llama_stack:" lightspeed-stack.yaml
+ grep -A 3 "ogx:" lightspeed-stack.yaml
- name: Cache HuggingFace embedding model
uses: actions/cache@v4
diff --git a/docs/basic_info/getting_started.md b/docs/basic_info/getting_started.md
index b454fd32e..0b17e6e7f 100644
--- a/docs/basic_info/getting_started.md
+++ b/docs/basic_info/getting_started.md
@@ -128,7 +128,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
# Unified mode (recommended): the run.yaml created above is consumed as
# the synthesis profile. The legacy library_client_config_path setup is
diff --git a/docs/devel_doc/openapi.json b/docs/devel_doc/openapi.json
index 3acfb04fe..21f1aff51 100644
--- a/docs/devel_doc/openapi.json
+++ b/docs/devel_doc/openapi.json
@@ -6835,11 +6835,6 @@
"default_model": "gpt-4-turbo",
"default_provider": "openai"
},
- "llama_stack": {
- "api_key": "*****",
- "url": "http://localhost:8321",
- "use_as_library_client": false
- },
"mcp_servers": [
{
"name": "server1",
@@ -6857,6 +6852,11 @@
"OTEL_SERVICE_NAME": ""
}
},
+ "ogx": {
+ "api_key": "*****",
+ "url": "http://localhost:8321",
+ "use_as_library_client": false
+ },
"quota_handlers": {
"enable_token_history": false,
"limiters": [],
@@ -13073,14 +13073,14 @@
}
],
"title": "Configuration format version",
- "description": "Optional explicit marker of the configuration format. When set, it must agree with the shape detected from the configuration body: 'unified' requires a synthesis input (a non-empty inference.providers, a non-empty vector_store.providers, or a llama_stack.config block), 'legacy' requires no synthesis input. Reserved as the lever for a future breaking change of the unified schema (R11)."
+ "description": "Optional explicit marker of the configuration format. When set, it must agree with the shape detected from the configuration body: 'unified' requires a synthesis input (a non-empty inference.providers, a non-empty vector_store.providers, or an ogx.config block), 'legacy' requires no synthesis input. Reserved as the lever for a future breaking change of the unified schema (R11)."
},
"service": {
"$ref": "#/components/schemas/ServiceConfiguration",
"title": "Service configuration",
"description": "This section contains Lightspeed Core Stack service configuration."
},
- "llama_stack": {
+ "ogx": {
"$ref": "#/components/schemas/OgxConfiguration",
"title": "OGX configuration",
"description": "This section contains OGX configuration. Lightspeed Core Stack service can call OGX in library mode or in server mode."
@@ -13254,7 +13254,7 @@
"required": [
"name",
"service",
- "llama_stack",
+ "ogx",
"user_data_collection"
],
"title": "Configuration",
@@ -13292,11 +13292,6 @@
"default_model": "gpt-4-turbo",
"default_provider": "openai"
},
- "llama_stack": {
- "api_key": "*****",
- "url": "http://localhost:8321",
- "use_as_library_client": false
- },
"mcp_servers": [
{
"name": "server1",
@@ -13314,6 +13309,11 @@
"OTEL_SERVICE_NAME": ""
}
},
+ "ogx": {
+ "api_key": "*****",
+ "url": "http://localhost:8321",
+ "use_as_library_client": false
+ },
"quota_handlers": {
"enable_token_history": false,
"limiters": [],
diff --git a/docs/user_doc/config.html b/docs/user_doc/config.html
index aa33ab656..49bc28710 100644
--- a/docs/user_doc/config.html
+++ b/docs/user_doc/config.html
@@ -629,7 +629,7 @@
- | llama_stack |
+ ogx |
|
This section contains OGX configuration. Lightspeed Core
Stack service can call OGX in library mode or in server
diff --git a/docs/user_doc/config.json b/docs/user_doc/config.json
index d678147b8..aeab6b3bf 100644
--- a/docs/user_doc/config.json
+++ b/docs/user_doc/config.json
@@ -440,7 +440,7 @@
"type": "string",
"nullable": true,
"default": null,
- "description": "Optional explicit marker of the configuration format. When set, it must agree with the shape detected from the configuration body: 'unified' requires a synthesis input (a non-empty inference.providers, a non-empty vector_store.providers, or a llama_stack.config block), 'legacy' requires no synthesis input. Reserved as the lever for a future breaking change of the unified schema (R11).",
+ "description": "Optional explicit marker of the configuration format. When set, it must agree with the shape detected from the configuration body: 'unified' requires a synthesis input (a non-empty inference.providers, a non-empty vector_store.providers, or an ogx.config block), 'legacy' requires no synthesis input. Reserved as the lever for a future breaking change of the unified schema (R11).",
"title": "Configuration format version"
},
"service": {
@@ -448,7 +448,7 @@
"description": "This section contains Lightspeed Core Stack service configuration.",
"title": "Service configuration"
},
- "llama_stack": {
+ "ogx": {
"$ref": "`#/components/schemas/`LlamaStackConfiguration",
"description": "This section contains OGX configuration. Lightspeed Core Stack service can call OGX in library mode or in server mode.",
"title": "OGX configuration"
@@ -625,7 +625,7 @@
"required": [
"name",
"service",
- "llama_stack",
+ "ogx",
"user_data_collection"
],
"title": "Configuration",
diff --git a/docs/user_doc/config.md b/docs/user_doc/config.md
index c53d079ac..936247f5d 100644
--- a/docs/user_doc/config.md
+++ b/docs/user_doc/config.md
@@ -224,9 +224,9 @@ Global service configuration.
| Field | Type | Description |
|------------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| name | string | Name of the service. That value will be used in REST API endpoints. |
-| config_format_version | string | Optional explicit marker of the configuration format. When set, it must agree with the shape detected from the configuration body: 'unified' requires a synthesis input (a non-empty inference.providers, a non-empty vector_store.providers, or a llama_stack.config block), 'legacy' requires no synthesis input. Reserved as the lever for a future breaking change of the unified schema (R11). |
+| config_format_version | string | Optional explicit marker of the configuration format. When set, it must agree with the shape detected from the configuration body: 'unified' requires a synthesis input (a non-empty inference.providers, a non-empty vector_store.providers, or a ogx.config block), 'legacy' requires no synthesis input. Reserved as the lever for a future breaking change of the unified schema (R11). |
| service | | This section contains Lightspeed Core Stack service configuration. |
-| llama_stack | | This section contains OGX configuration. Lightspeed Core Stack service can call OGX in library mode or in server mode. |
+| ogx | | This section contains OGX configuration. Lightspeed Core Stack service can call OGX in library mode or in server mode. |
| user_data_collection | | This section contains configuration for subsystem that collects user data(transcription history and feedbacks). |
| database | | Configuration for database to store conversation IDs and other runtime data |
| mcp_servers | array | MCP (Model Context Protocol) servers provide tools and capabilities to the AI agents. These are configured in this section. Only MCP servers defined in the lightspeed-stack.yaml configuration are available to the agents. Tools configured in the OGX run.yaml are not accessible to lightspeed-core agents. |
diff --git a/docs/user_doc/config.puml b/docs/user_doc/config.puml
index 8e941855b..22ff4d458 100644
--- a/docs/user_doc/config.puml
+++ b/docs/user_doc/config.puml
@@ -94,7 +94,7 @@ class "Configuration" as src.models.config.Configuration {
database
deployment_environment : str
inference
- llama_stack
+ ogx
mcp_servers : list[ModelContextProtocolServer]
name : str
okp
@@ -106,6 +106,7 @@ class "Configuration" as src.models.config.Configuration {
skills : Optional[SkillsConfiguration]
splunk : Optional[SplunkConfiguration]
user_data_collection
+ accept_llama_stack_section_alias(data: Any) -> Any
check_unified_vs_legacy() -> Self
dump(filename: str | Path) -> None
validate_mcp_auth_headers() -> Self
@@ -370,7 +371,7 @@ src.models.config.DatabaseConfiguration --* src.models.config.Configuration : da
src.models.config.InferenceConfiguration --* src.models.config.Configuration : inference
src.models.config.JsonPathOperator --* src.models.config.JwtRoleRule : operator
src.models.config.JwtConfiguration --* src.models.config.JwkConfiguration : jwt_configuration
-src.models.config.LlamaStackConfiguration --* src.models.config.Configuration : llama_stack
+src.models.config.LlamaStackConfiguration --* src.models.config.Configuration : ogx
src.models.config.OkpConfiguration --* src.models.config.Configuration : okp
src.models.config.QuotaHandlersConfiguration --* src.models.config.Configuration : quota_handlers
src.models.config.QuotaSchedulerConfiguration --* src.models.config.QuotaHandlersConfiguration : scheduler
diff --git a/docs/user_doc/config.svg b/docs/user_doc/config.svg
index 7755e9f3b..9b0884399 100644
--- a/docs/user_doc/config.svg
+++ b/docs/user_doc/config.svg
@@ -186,7 +186,7 @@
database
deployment_environment : str
inference
- llama_stack
+ ogx
mcp_servers : list[ModelContextProtocolServer]
name : str
okp
@@ -909,7 +909,7 @@
- llama_stack
+ ogx
diff --git a/examples/lightspeed-stack-a2a-state-pg.yaml b/examples/lightspeed-stack-a2a-state-pg.yaml
index 0c003a670..6a6bfa7f4 100644
--- a/examples/lightspeed-stack-a2a-state-pg.yaml
+++ b/examples/lightspeed-stack-a2a-state-pg.yaml
@@ -7,7 +7,7 @@ service:
workers: 4
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
library_client_config_path: run.yaml
user_data_collection:
diff --git a/examples/lightspeed-stack-a2a-state-sqlite.yaml b/examples/lightspeed-stack-a2a-state-sqlite.yaml
index fd800f966..adff530ba 100644
--- a/examples/lightspeed-stack-a2a-state-sqlite.yaml
+++ b/examples/lightspeed-stack-a2a-state-sqlite.yaml
@@ -7,7 +7,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
library_client_config_path: run.yaml
user_data_collection:
diff --git a/examples/lightspeed-stack-api-key-auth.yaml b/examples/lightspeed-stack-api-key-auth.yaml
index 29efd001c..dbb9d2b45 100644
--- a/examples/lightspeed-stack-api-key-auth.yaml
+++ b/examples/lightspeed-stack-api-key-auth.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
authentication:
diff --git a/examples/lightspeed-stack-azure-entraid-lib.yaml b/examples/lightspeed-stack-azure-entraid-lib.yaml
index a18fba97a..7256cb035 100644
--- a/examples/lightspeed-stack-azure-entraid-lib.yaml
+++ b/examples/lightspeed-stack-azure-entraid-lib.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Uses a remote OGX service
# The instance would have already been started with an `ogx-run.yaml` file
# use_as_library_client: false
diff --git a/examples/lightspeed-stack-azure-entraid-service.yaml b/examples/lightspeed-stack-azure-entraid-service.yaml
index a2fef23e8..f3f1a3186 100644
--- a/examples/lightspeed-stack-azure-entraid-service.yaml
+++ b/examples/lightspeed-stack-azure-entraid-service.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Uses a remote OGX service
# The instance would have already been started with an `ogx-run.yaml` file
use_as_library_client: false
diff --git a/examples/lightspeed-stack-byok-okp-rag.yaml b/examples/lightspeed-stack-byok-okp-rag.yaml
index e764e87b2..156038dba 100644
--- a/examples/lightspeed-stack-byok-okp-rag.yaml
+++ b/examples/lightspeed-stack-byok-okp-rag.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: xyzzy
diff --git a/examples/lightspeed-stack-conversation-cache-pg.yaml b/examples/lightspeed-stack-conversation-cache-pg.yaml
index 4ad044341..aecbe728b 100644
--- a/examples/lightspeed-stack-conversation-cache-pg.yaml
+++ b/examples/lightspeed-stack-conversation-cache-pg.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
library_client_config_path: run.yaml
user_data_collection:
diff --git a/examples/lightspeed-stack-conversation-cache-sqlite.yaml b/examples/lightspeed-stack-conversation-cache-sqlite.yaml
index 20f16c89a..1e766febd 100644
--- a/examples/lightspeed-stack-conversation-cache-sqlite.yaml
+++ b/examples/lightspeed-stack-conversation-cache-sqlite.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
library_client_config_path: run.yaml
user_data_collection:
diff --git a/examples/lightspeed-stack-lls-external.yaml b/examples/lightspeed-stack-lls-external.yaml
index e38f2dd62..67306669b 100644
--- a/examples/lightspeed-stack-lls-external.yaml
+++ b/examples/lightspeed-stack-lls-external.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: xyzzy
diff --git a/examples/lightspeed-stack-lls-library.yaml b/examples/lightspeed-stack-lls-library.yaml
index 331d23183..89dab69fc 100644
--- a/examples/lightspeed-stack-lls-library.yaml
+++ b/examples/lightspeed-stack-lls-library.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
# Unified mode: the run.yaml next to this file is consumed as the
# synthesis profile (legacy library_client_config_path is deprecated,
diff --git a/examples/lightspeed-stack-mcp-servers.yaml b/examples/lightspeed-stack-mcp-servers.yaml
index 34c39c777..c1ad21321 100644
--- a/examples/lightspeed-stack-mcp-servers.yaml
+++ b/examples/lightspeed-stack-mcp-servers.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: xyzzy
diff --git a/examples/lightspeed-stack-quota-limiter-pg.yaml b/examples/lightspeed-stack-quota-limiter-pg.yaml
index 889f1ce44..437641d4a 100644
--- a/examples/lightspeed-stack-quota-limiter-pg.yaml
+++ b/examples/lightspeed-stack-quota-limiter-pg.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: xyzzy
diff --git a/examples/lightspeed-stack-quota-limiter-sqlite.yaml b/examples/lightspeed-stack-quota-limiter-sqlite.yaml
index f222ab43f..c06a27620 100644
--- a/examples/lightspeed-stack-quota-limiter-sqlite.yaml
+++ b/examples/lightspeed-stack-quota-limiter-sqlite.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: xyzzy
diff --git a/examples/lightspeed-stack-rh-identity.yaml b/examples/lightspeed-stack-rh-identity.yaml
index 5d1fecb90..15b5cd809 100644
--- a/examples/lightspeed-stack-rh-identity.yaml
+++ b/examples/lightspeed-stack-rh-identity.yaml
@@ -22,7 +22,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
authentication:
diff --git a/examples/lightspeed-stack-rlsapi-cla.yaml b/examples/lightspeed-stack-rlsapi-cla.yaml
index 0a62ae35d..5a969df5e 100644
--- a/examples/lightspeed-stack-rlsapi-cla.yaml
+++ b/examples/lightspeed-stack-rlsapi-cla.yaml
@@ -11,7 +11,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
inference:
diff --git a/examples/lightspeed-stack-shields.yaml b/examples/lightspeed-stack-shields.yaml
index fd671fc55..f626d7709 100644
--- a/examples/lightspeed-stack-shields.yaml
+++ b/examples/lightspeed-stack-shields.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
library_client_config_path: run.yaml
user_data_collection:
diff --git a/examples/lightspeed-stack-skills.yaml b/examples/lightspeed-stack-skills.yaml
index 3f33488b2..f40fd1b2f 100644
--- a/examples/lightspeed-stack-skills.yaml
+++ b/examples/lightspeed-stack-skills.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
library_client_config_path: run.yaml
user_data_collection:
diff --git a/examples/quota-limiter-configuration-pg.yaml b/examples/quota-limiter-configuration-pg.yaml
index 147728aad..dfe7e8502 100644
--- a/examples/quota-limiter-configuration-pg.yaml
+++ b/examples/quota-limiter-configuration-pg.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Uses a remote OGX service
# The instance would have already been started with a llama-stack-run.yaml file
use_as_library_client: false
diff --git a/examples/quota-limiter-configuration-sqlite.yaml b/examples/quota-limiter-configuration-sqlite.yaml
index a30f07978..757182436 100644
--- a/examples/quota-limiter-configuration-sqlite.yaml
+++ b/examples/quota-limiter-configuration-sqlite.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Uses a remote OGX service
# The instance would have already been started with a llama-stack-run.yaml file
use_as_library_client: false
diff --git a/lightspeed-stack.yaml b/lightspeed-stack.yaml
index 834ec8b31..62af987bb 100644
--- a/lightspeed-stack.yaml
+++ b/lightspeed-stack.yaml
@@ -12,7 +12,7 @@ service:
# This llama_stack section controls where lightspeed-core connects to OGX.
# To use a different port: override with 'make run LLAMA_STACK_PORT=' and update the url below,
# or run ogx manually and don't use 'make run'.
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
# api_key: custom-key # Uncomment if your OGX requires authentication
diff --git a/scripts/generate_openapi_schema.py b/scripts/generate_openapi_schema.py
index 9af01289c..c518ee5c3 100644
--- a/scripts/generate_openapi_schema.py
+++ b/scripts/generate_openapi_schema.py
@@ -18,7 +18,7 @@
# OGX client needs to be loaded before REST API is fully initialized
import asyncio # noqa: E402 pylint: disable=C0411,C0413
-asyncio.run(AsyncOgxClientHolder().load(configuration.configuration.llama_stack))
+asyncio.run(AsyncOgxClientHolder().load(configuration.configuration.ogx))
from app.main import app # noqa: E402 pylint: disable=C0413
diff --git a/src/app/main.py b/src/app/main.py
index ee58a6ea9..ef0d05f69 100644
--- a/src/app/main.py
+++ b/src/app/main.py
@@ -83,7 +83,7 @@ async def lifespan(_app: FastAPI) -> AsyncIterator[None]:
initialize_sentry()
- ogx_config = configuration.configuration.llama_stack
+ ogx_config = configuration.configuration.ogx
await AsyncOgxClientHolder().load(ogx_config)
client: AsyncOgxClient = AsyncOgxClientHolder().get_client()
logger.debug("OGX client initialized, trying to connect to OGX")
@@ -105,7 +105,7 @@ async def lifespan(_app: FastAPI) -> AsyncIterator[None]:
ogx_url = ogx_config.url
logger.error(
"Failed to connect to OGX at '%s'. "
- "Please verify that the 'llama_stack.url' configuration is correct "
+ "Please verify that the 'ogx.url' configuration is correct "
"and that the OGX service is running and accessible. "
"Original error: %s",
ogx_url,
diff --git a/src/configuration.py b/src/configuration.py
index ce55fc1b2..23498e7cb 100644
--- a/src/configuration.py
+++ b/src/configuration.py
@@ -51,7 +51,7 @@ def replace_env_vars_preserving_native_override(
LCORE resolves environment-variable references throughout
lightspeed-stack.yaml so typed fields receive concrete values. But
- ``llama_stack.config.native_override`` is raw OGX schema that OGX
+ ``ogx.config.native_override`` is raw OGX schema that OGX
resolves itself, in memory, at its own startup. Resolving it eagerly
here would (a) defeat the ${env.*} pattern LCORE recommends for secrets and
(b) pull resolved secrets into the loaded Configuration model, which is
@@ -70,8 +70,10 @@ def replace_env_vars_preserving_native_override(
if not isinstance(config_dict, dict):
return replace_env_vars(config_dict)
- llama_stack = config_dict.get("llama_stack")
- ls_config = llama_stack.get("config") if isinstance(llama_stack, dict) else None
+ ogx_section = config_dict.get("ogx")
+ if ogx_section is None:
+ ogx_section = config_dict.get("llama_stack")
+ ls_config = ogx_section.get("config") if isinstance(ogx_section, dict) else None
if not (isinstance(ls_config, dict) and "native_override" in ls_config):
return replace_env_vars(config_dict)
@@ -79,9 +81,11 @@ def replace_env_vars_preserving_native_override(
ls_config["native_override"] = {} # keep secrets out of env resolution
resolved = replace_env_vars(config_dict)
ls_config["native_override"] = raw_override # restore source dict if reused
- resolved_ls = (resolved.get("llama_stack") or {}).get("config")
- if isinstance(resolved_ls, dict):
- resolved_ls["native_override"] = raw_override
+ resolved_ogx = (resolved.get("ogx") or resolved.get("llama_stack") or {}).get(
+ "config"
+ )
+ if isinstance(resolved_ogx, dict):
+ resolved_ogx["native_override"] = raw_override
return resolved
@@ -184,7 +188,7 @@ def ogx_configuration(self) -> OgxConfiguration:
"""
if self._configuration is None:
raise LogicError("logic error: configuration is not loaded")
- return self._configuration.llama_stack
+ return self._configuration.ogx
@property
def user_data_collection_configuration(self) -> UserDataCollection:
diff --git a/src/lightspeed_stack.py b/src/lightspeed_stack.py
index aefe6defa..937369c58 100644
--- a/src/lightspeed_stack.py
+++ b/src/lightspeed_stack.py
@@ -110,7 +110,7 @@ def create_argument_parser() -> ArgumentParser:
dest="migrate_config",
help="migrate a legacy two-file config to a unified single file and "
"exit. Lifts the run.yaml given by --run-yaml into the "
- "llama_stack.config.native_override of the -c lightspeed-stack.yaml "
+ "ogx.config.native_override of the -c lightspeed-stack.yaml "
"and writes the result to --migrate-output. Replace literal secrets "
"with ${env.VAR} references before or after migrating.",
action="store_true",
@@ -193,7 +193,7 @@ def main() -> None:
if configuration.ogx_configuration.library_client_config_path is not None:
logger.warning(
"DEPRECATED: the two-file configuration "
- "(llama_stack.library_client_config_path + external run.yaml) is "
+ "(ogx.library_client_config_path + external run.yaml) is "
"deprecated and will be removed in release 0.8. Migrate to the "
"unified lightspeed-stack.yaml: https://lightspeed-core.github.io"
"/lightspeed-stack/design/llama-stack-config-merge"
diff --git a/src/llama_stack_configuration.py b/src/llama_stack_configuration.py
index df62ae97d..c4b7f882c 100644
--- a/src/llama_stack_configuration.py
+++ b/src/llama_stack_configuration.py
@@ -34,6 +34,27 @@
logger = get_logger(__name__)
+
+def ogx_config_section(lcs_config: dict[str, Any]) -> dict[str, Any]:
+ """Return the OGX section from a raw lightspeed-stack.yaml dict.
+
+ Accepts the canonical ``ogx`` key and the deprecated ``llama_stack`` alias.
+
+ Parameters:
+ lcs_config: Parsed lightspeed-stack.yaml contents.
+
+ Returns:
+ The OGX configuration mapping, or an empty dict when absent.
+ """
+ ogx = lcs_config.get("ogx")
+ if isinstance(ogx, dict):
+ return ogx
+ llama_stack = lcs_config.get("llama_stack")
+ if isinstance(llama_stack, dict):
+ return llama_stack
+ return {}
+
+
# Maps a UnifiedInferenceProvider.type (canonical, backend-agnostic vocabulary)
# to the OGX provider_type emitted by apply_high_level_inference. The
# completeness of this map against UnifiedInferenceProvider.type is asserted by
@@ -1226,7 +1247,7 @@ def synthesize_configuration( # pylint: disable=too-many-locals
Returns:
dict[str, Any]: The synthesized OGX configuration.
"""
- unified = (lcs_config.get("llama_stack") or {}).get("config")
+ unified = ogx_config_section(lcs_config).get("config")
# 1-2. Select the baseline.
baseline_was_empty = False
@@ -1264,7 +1285,7 @@ def synthesize_configuration( # pylint: disable=too-many-locals
else:
logger.warning(
"DEPRECATED: the built-in OpenAI inference provider in "
- "llama_stack.config.baseline 'default' is deprecated and will "
+ "ogx.config.baseline 'default' is deprecated and will "
"be removed in release 0.8. Set baseline to 'byo-llm' and "
"declare your LLM providers under inference.providers: "
"https://lightspeed-core.github.io/lightspeed-stack/design"
@@ -1362,7 +1383,7 @@ def migrate_config_dumb(
"""Migrate a legacy two-file config to a unified single file (dumb mode).
"Dumb" lift-and-shift: the operator's ``lightspeed-stack.yaml`` is kept
- verbatim except for its ``llama_stack`` section, where
+ verbatim except for its ``ogx`` section, where
``library_client_config_path`` is dropped and replaced by a unified
``config`` block that lifts the *entire* legacy ``run.yaml`` body into
``native_override`` with ``baseline: empty``. Synthesizing the result then
@@ -1404,15 +1425,15 @@ def migrate_config_dumb(
if not isinstance(run_yaml, dict):
raise ValueError(f"{run_yaml_path} did not parse to a mapping; cannot migrate.")
- # Preserve the whole lightspeed-stack.yaml; only rewrite the llama_stack
- # section: drop the legacy path, add the unified config block.
- llama_stack = dict(lcs_config.get("llama_stack") or {})
- llama_stack.pop("library_client_config_path", None)
- llama_stack["config"] = {
+ # Preserve the whole lightspeed-stack.yaml; only rewrite the ogx section.
+ ogx_section = dict(ogx_config_section(lcs_config))
+ ogx_section.pop("library_client_config_path", None)
+ ogx_section["config"] = {
"baseline": "empty",
"native_override": run_yaml,
}
- lcs_config["llama_stack"] = llama_stack
+ lcs_config.pop("llama_stack", None)
+ lcs_config["ogx"] = ogx_section
logger.info(
"Migrating legacy config (%s + %s) to unified %s",
@@ -1489,7 +1510,7 @@ def has_synthesis_input(lcs_config: dict[str, Any]) -> bool:
Mirrors the unified-vs-legacy detection of the root ``Configuration``
model (``check_unified_vs_legacy``) for callers that work with the raw
YAML dict, such as the CLI: a non-empty top-level ``inference.providers``,
- a non-empty ``vector_store.providers``, or a ``llama_stack.config`` block
+ a non-empty ``vector_store.providers``, or an ``ogx.config`` block
signal unified mode (R11).
Parameters:
@@ -1500,11 +1521,11 @@ def has_synthesis_input(lcs_config: dict[str, Any]) -> bool:
"""
inference = lcs_config.get("inference") or {}
vector_store = lcs_config.get("vector_store") or {}
- llama_stack = lcs_config.get("llama_stack") or {}
+ ogx_section = ogx_config_section(lcs_config)
return (
bool(inference.get("providers"))
or bool(vector_store.get("providers"))
- or llama_stack.get("config") is not None
+ or ogx_section.get("config") is not None
)
diff --git a/src/models/api/responses/successful/configuration.py b/src/models/api/responses/successful/configuration.py
index d33d1a4bc..c97374a6b 100644
--- a/src/models/api/responses/successful/configuration.py
+++ b/src/models/api/responses/successful/configuration.py
@@ -40,7 +40,7 @@ class ConfigurationResponse(AbstractSuccessfulResponse):
"allow_headers": ["*"],
},
},
- "llama_stack": {
+ "ogx": {
"url": "http://localhost:8321",
"api_key": "*****",
"use_as_library_client": False,
diff --git a/src/models/config.py b/src/models/config.py
index 0dda225eb..86c272c87 100644
--- a/src/models/config.py
+++ b/src/models/config.py
@@ -3123,6 +3123,33 @@ class RedactionShieldConfiguration(ConfigurationBase):
class Configuration(ConfigurationBase):
"""Global service configuration."""
+ @model_validator(mode="before")
+ @classmethod
+ def accept_llama_stack_section_alias(cls, data: Any) -> Any:
+ """Map deprecated ``llama_stack`` YAML key to ``ogx``.
+
+ Parameters:
+ data: Raw configuration mapping from YAML/JSON.
+
+ Returns:
+ Normalized mapping with the OGX section under ``ogx``.
+ """
+ if not isinstance(data, dict):
+ return data
+ if data.get("ogx") is not None:
+ return data
+ llama_stack = data.get("llama_stack")
+ if llama_stack is None:
+ return data
+ logger.warning(
+ "The 'llama_stack' configuration key is deprecated and will be "
+ "removed in a future release; use 'ogx' instead."
+ )
+ data = dict(data)
+ data["ogx"] = llama_stack
+ data.pop("llama_stack")
+ return data
+
name: str = Field(
...,
title="Service name",
@@ -3136,7 +3163,7 @@ class Configuration(ConfigurationBase):
"When set, it must agree with the shape detected from the "
"configuration body: 'unified' requires a synthesis input (a "
"non-empty inference.providers, a non-empty vector_store.providers, "
- "or a llama_stack.config block), 'legacy' requires no synthesis "
+ "or an ogx.config block), 'legacy' requires no synthesis "
"input. Reserved as the lever for a future breaking change of the "
"unified schema (R11).",
)
@@ -3147,7 +3174,7 @@ class Configuration(ConfigurationBase):
description="This section contains Lightspeed Core Stack service configuration.",
)
- llama_stack: OgxConfiguration = Field(
+ ogx: OgxConfiguration = Field(
...,
title="OGX configuration",
description="This section contains OGX configuration. Lightspeed Core Stack service can "
@@ -3455,8 +3482,8 @@ def check_unified_vs_legacy(self) -> Self:
Unified-mode *synthesis inputs* span the configuration root: a non-empty
top-level ``inference.providers`` (Decision S5), a non-empty
- ``vector_store.providers``, and/or a ``llama_stack.config`` block. The
- legacy path is ``llama_stack.library_client_config_path`` pointing at an
+ ``vector_store.providers``, and/or an ``ogx.config`` block. The
+ legacy path is ``ogx.library_client_config_path`` pointing at an
external run.yaml. Both checks live here on the root model rather than
on ``OgxConfiguration`` (which cannot see root-level provider
lists):
@@ -3465,7 +3492,7 @@ def check_unified_vs_legacy(self) -> Self:
single file must pick one shape.
- Library mode needs *some* run source — a synthesis input or the
legacy path. ``inference.providers`` or ``vector_store.providers``
- alone is sufficient; no ``llama_stack.config`` block is required.
+ alone is sufficient; no ``ogx.config`` block is required.
- An explicit ``config_format_version``, when set, must agree with
the detected shape (R11): ``unified`` requires a synthesis input,
``legacy`` requires its absence (remote-only configs count as
@@ -3484,28 +3511,24 @@ def check_unified_vs_legacy(self) -> Self:
synthesis_input = (
bool(self.inference.providers)
or bool(self.vector_store.providers)
- or self.llama_stack.config is not None
+ or self.ogx.config is not None
)
- legacy_input = self.llama_stack.library_client_config_path is not None
+ legacy_input = self.ogx.library_client_config_path is not None
if synthesis_input and legacy_input:
raise ValueError(
"OGX configuration is ambiguous: unified synthesis "
"inputs (a non-empty inference.providers, a non-empty "
- "vector_store.providers, or a llama_stack.config block) are "
+ "vector_store.providers, or an ogx.config block) are "
"mutually exclusive with the legacy "
- "llama_stack.library_client_config_path. Use one or the other. "
+ "ogx.library_client_config_path. Use one or the other. "
"To convert a legacy two-file setup to unified mode, run "
"`lightspeed-stack --migrate-config`."
)
- if (
- self.llama_stack.use_as_library_client
- and not synthesis_input
- and not legacy_input
- ):
+ if self.ogx.use_as_library_client and not synthesis_input and not legacy_input:
raise ValueError(
"OGX library mode requires a run-configuration source: "
"set a non-empty inference.providers, a non-empty "
- "vector_store.providers, a llama_stack.config block, or "
+ "vector_store.providers, an ogx.config block, or "
"library_client_config_path."
)
if self.config_format_version is not None:
@@ -3516,7 +3539,7 @@ def check_unified_vs_legacy(self) -> Self:
f"but the configuration body is {detected}-shaped: a "
"unified configuration carries a synthesis input (a "
"non-empty inference.providers, a non-empty "
- "vector_store.providers, or a llama_stack.config block), "
+ "vector_store.providers, or an ogx.config block), "
"a legacy one does not. Fix config_format_version or the "
"configuration body."
)
diff --git a/src/telemetry/configuration_snapshot.py b/src/telemetry/configuration_snapshot.py
index 537edb9bd..fe647e984 100644
--- a/src/telemetry/configuration_snapshot.py
+++ b/src/telemetry/configuration_snapshot.py
@@ -100,17 +100,17 @@ class ListFieldSpec:
FieldSpec("service.cors.allow_methods", MaskingType.PASSTHROUGH),
FieldSpec("service.cors.allow_headers", MaskingType.PASSTHROUGH),
# LLM Integration Architecture
- FieldSpec("llama_stack.use_as_library_client", MaskingType.PASSTHROUGH),
- FieldSpec("llama_stack.url", MaskingType.SENSITIVE),
- FieldSpec("llama_stack.api_key", MaskingType.SENSITIVE),
- FieldSpec("llama_stack.library_client_config_path", MaskingType.SENSITIVE),
- FieldSpec("llama_stack.timeout", MaskingType.PASSTHROUGH),
- FieldSpec("llama_stack.max_retries", MaskingType.PASSTHROUGH),
- FieldSpec("llama_stack.retry_delay", MaskingType.PASSTHROUGH),
- FieldSpec("llama_stack.allow_degraded_mode", MaskingType.PASSTHROUGH),
- FieldSpec("llama_stack.config.baseline", MaskingType.PASSTHROUGH),
- FieldSpec("llama_stack.config.profile", MaskingType.SENSITIVE),
- FieldSpec("llama_stack.config.native_override", MaskingType.SENSITIVE),
+ FieldSpec("ogx.use_as_library_client", MaskingType.PASSTHROUGH),
+ FieldSpec("ogx.url", MaskingType.SENSITIVE),
+ FieldSpec("ogx.api_key", MaskingType.SENSITIVE),
+ FieldSpec("ogx.library_client_config_path", MaskingType.SENSITIVE),
+ FieldSpec("ogx.timeout", MaskingType.PASSTHROUGH),
+ FieldSpec("ogx.max_retries", MaskingType.PASSTHROUGH),
+ FieldSpec("ogx.retry_delay", MaskingType.PASSTHROUGH),
+ FieldSpec("ogx.allow_degraded_mode", MaskingType.PASSTHROUGH),
+ FieldSpec("ogx.config.baseline", MaskingType.PASSTHROUGH),
+ FieldSpec("ogx.config.profile", MaskingType.SENSITIVE),
+ FieldSpec("ogx.config.native_override", MaskingType.SENSITIVE),
FieldSpec("inference.default_model", MaskingType.PASSTHROUGH),
FieldSpec("inference.default_provider", MaskingType.PASSTHROUGH),
FieldSpec("inference.context_windows", MaskingType.PASSTHROUGH),
@@ -781,10 +781,10 @@ async def build_configuration_snapshot(
Returns:
-------
- A dict with 'lightspeed_stack' and 'llama_stack' keys containing
+ A dict with 'lightspeed_stack' and 'ogx' keys containing
the respective masked snapshots, ready for JSON serialization.
"""
return {
"lightspeed_stack": build_lightspeed_stack_snapshot(config),
- "llama_stack": await build_llama_stack_snapshot(llama_stack_config_path),
+ "ogx": await build_llama_stack_snapshot(llama_stack_config_path),
}
diff --git a/tests/configuration/benchmarks-postgres.yaml b/tests/configuration/benchmarks-postgres.yaml
index c50956ac3..ab94a7d59 100644
--- a/tests/configuration/benchmarks-postgres.yaml
+++ b/tests/configuration/benchmarks-postgres.yaml
@@ -7,7 +7,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Uses a remote OGX service
# The instance would have already been started with a llama-stack-run.yaml file
use_as_library_client: false
diff --git a/tests/configuration/benchmarks-sqlite.yaml b/tests/configuration/benchmarks-sqlite.yaml
index de5c648b8..63ea9d925 100644
--- a/tests/configuration/benchmarks-sqlite.yaml
+++ b/tests/configuration/benchmarks-sqlite.yaml
@@ -7,7 +7,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Uses a remote OGX service
# The instance would have already been started with a llama-stack-run.yaml file
use_as_library_client: false
diff --git a/tests/configuration/lightspeed-stack-proper-name.yaml b/tests/configuration/lightspeed-stack-proper-name.yaml
index ec5c642ae..60add8957 100644
--- a/tests/configuration/lightspeed-stack-proper-name.yaml
+++ b/tests/configuration/lightspeed-stack-proper-name.yaml
@@ -20,7 +20,7 @@ service:
- foo_header
- bar_header
- baz_header
-llama_stack:
+ogx:
# Uses a remote OGX service
# The instance would have already been started with a llama-stack-run.yaml file
use_as_library_client: false
diff --git a/tests/configuration/lightspeed-stack.yaml b/tests/configuration/lightspeed-stack.yaml
index 6653fd514..b548c96fe 100644
--- a/tests/configuration/lightspeed-stack.yaml
+++ b/tests/configuration/lightspeed-stack.yaml
@@ -20,7 +20,7 @@ service:
- foo_header
- bar_header
- baz_header
-llama_stack:
+ogx:
# Uses a remote OGX service
# The instance would have already been started with a llama-stack-run.yaml file
use_as_library_client: false
diff --git a/tests/configuration/rh-identity-config.yaml b/tests/configuration/rh-identity-config.yaml
index 368b69f90..d28ea3034 100644
--- a/tests/configuration/rh-identity-config.yaml
+++ b/tests/configuration/rh-identity-config.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
user_data_collection:
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-authorized.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-authorized.yaml
index eff7078a6..8702c2b5b 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-authorized.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-authorized.yaml
@@ -14,7 +14,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
# is consumed as the synthesis profile instead of the legacy two-file path.
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-byok-pdf.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-byok-pdf.yaml
index 6f7eee72a..2ee300367 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-byok-pdf.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-byok-pdf.yaml
@@ -9,7 +9,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
# is consumed as the synthesis profile instead of the legacy two-file path.
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-default.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-default.yaml
index e04b72c87..778c04d94 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-default.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-default.yaml
@@ -11,7 +11,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
# is consumed as the synthesis profile instead of the legacy two-file path.
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-api-auth.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-api-auth.yaml
index 149d3ed37..83b0a2097 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-api-auth.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-api-auth.yaml
@@ -10,7 +10,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Library mode - embeds OGX as library
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-client-auth.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-client-auth.yaml
index 70e8f2e45..c366d41cd 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-client-auth.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-client-auth.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Library mode - embeds OGX as library
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-file-auth.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-file-auth.yaml
index eb01ca8ba..f0af0e665 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-file-auth.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-file-auth.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Library mode - embeds OGX as library
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-invalid.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-invalid.yaml
index ac0b3df25..4a23e546e 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-invalid.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-invalid.yaml
@@ -9,7 +9,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Library mode - embeds OGX as library
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-kubernetes-auth.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-kubernetes-auth.yaml
index 429ac3301..e849cbeb6 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-kubernetes-auth.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-kubernetes-auth.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Library mode - embeds OGX as library
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-oauth-auth.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-oauth-auth.yaml
index e440e20e8..9bbf19f55 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-oauth-auth.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp-oauth-auth.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Library mode - embeds OGX as library
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp.yaml
index e2c22aef8..d814048de 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-mcp.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-mcp.yaml
@@ -12,7 +12,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Library mode - embeds OGX as library
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-negative.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-negative.yaml
index c8fb98607..ce88d0eb2 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-negative.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-negative.yaml
@@ -11,7 +11,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
# is consumed as the synthesis profile instead of the legacy two-file path.
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-rbac.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-rbac.yaml
index 0352e842d..ba03b7329 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-rbac.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-rbac.yaml
@@ -9,7 +9,7 @@ service:
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
# is consumed as the synthesis profile instead of the legacy two-file path.
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-rh-identity.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-rh-identity.yaml
index ba4ebd482..ddfa68794 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-rh-identity.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-rh-identity.yaml
@@ -8,7 +8,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
# is consumed as the synthesis profile instead of the legacy two-file path.
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-skills-directory.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-skills-directory.yaml
index 06aad9fcc..e7cd3668e 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-skills-directory.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-skills-directory.yaml
@@ -8,7 +8,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Library mode - embeds OGX as library
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack-skills.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack-skills.yaml
index 0c8c53fd3..cf6dd64b0 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack-skills.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack-skills.yaml
@@ -9,7 +9,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Library mode - embeds OGX as library
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
diff --git a/tests/e2e/configuration/library-mode/lightspeed-stack.yaml b/tests/e2e/configuration/library-mode/lightspeed-stack.yaml
index 12c2ca2f3..a6e135306 100644
--- a/tests/e2e/configuration/library-mode/lightspeed-stack.yaml
+++ b/tests/e2e/configuration/library-mode/lightspeed-stack.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Library mode - embeds OGX as library
use_as_library_client: true
# Unified mode: run.yaml (materialized per provider by CI/the harness)
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-authorized.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-authorized.yaml
index 91f192988..b39110c29 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-authorized.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-authorized.yaml
@@ -10,7 +10,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Uses a remote OGX service
# The instance would have already been started with a llama-stack-run.yaml file
use_as_library_client: false
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-default.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-default.yaml
index 2bef27d11..12ff8fcca 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-default.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-default.yaml
@@ -11,7 +11,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
api_key: xyzzy
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-degraded.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-degraded.yaml
index 291055df1..11d276e5d 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-degraded.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-degraded.yaml
@@ -8,7 +8,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-api-auth.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-api-auth.yaml
index f9842f40c..373717732 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-api-auth.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-api-auth.yaml
@@ -8,7 +8,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-client-auth.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-client-auth.yaml
index 2ac49bb46..25cbdf836 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-client-auth.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-client-auth.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-file-auth.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-file-auth.yaml
index d37ef83b2..ca60006c9 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-file-auth.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-file-auth.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-invalid.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-invalid.yaml
index f0888db59..976a51853 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-invalid.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-invalid.yaml
@@ -9,7 +9,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-kubernetes-auth.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-kubernetes-auth.yaml
index 3a4ff7b32..39b61ef3a 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-kubernetes-auth.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-kubernetes-auth.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-oauth-auth.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-oauth-auth.yaml
index b544b840b..9237b6019 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-oauth-auth.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp-oauth-auth.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp.yaml
index c79d8861d..837d44aab 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-mcp.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-mcp.yaml
@@ -12,7 +12,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-negative.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-negative.yaml
index f83778144..d7a22b5ee 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-negative.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-negative.yaml
@@ -11,7 +11,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Uses a remote OGX service
# The instance would have already been started with a llama-stack-run.yaml file
use_as_library_client: false
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-rbac.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-rbac.yaml
index 8cfae52ee..7135cd05f 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-rbac.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-rbac.yaml
@@ -9,7 +9,7 @@ service:
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
api_key: xyzzy
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-rh-identity.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-rh-identity.yaml
index 0853969fe..f6959cd97 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-rh-identity.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-rh-identity.yaml
@@ -8,7 +8,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
api_key: xyzzy
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-rhelai.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-rhelai.yaml
index ba69f6049..c1294a5b0 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-rhelai.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-rhelai.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-rhoai.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-rhoai.yaml
index ba69f6049..c1294a5b0 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-rhoai.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-rhoai.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-skills-directory.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-skills-directory.yaml
index ac805e937..02da39f40 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-skills-directory.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-skills-directory.yaml
@@ -7,7 +7,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-skills.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-skills.yaml
index 0a8cae923..93f100ebe 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-skills.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-skills.yaml
@@ -7,7 +7,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack-tls.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack-tls.yaml
index a1e73fe77..24a0817b8 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack-tls.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack-tls.yaml
@@ -8,7 +8,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
api_key: xyzzy
diff --git a/tests/e2e/configuration/server-mode/lightspeed-stack.yaml b/tests/e2e/configuration/server-mode/lightspeed-stack.yaml
index be687c613..680552574 100644
--- a/tests/e2e/configuration/server-mode/lightspeed-stack.yaml
+++ b/tests/e2e/configuration/server-mode/lightspeed-stack.yaml
@@ -6,7 +6,7 @@ service:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
# Server mode - connects to separate OGX service
use_as_library_client: false
url: http://${env.E2E_LLAMA_HOSTNAME}:8321
diff --git a/tests/e2e/features/environment.py b/tests/e2e/features/environment.py
index 273d80ec9..79f820731 100644
--- a/tests/e2e/features/environment.py
+++ b/tests/e2e/features/environment.py
@@ -508,7 +508,7 @@ def after_feature(context: Context, feature: Feature) -> None:
"""
# Restore OGX FIRST (before any lightspeed-stack restart).
# Read from module-level state — Behave clears custom context attributes
- # between scenarios, so context.llama_stack_was_running is unreliable here.
+ # between scenarios, so context.ogx_was_running is unreliable here.
if get_llama_stack_was_running():
_restore_llama_stack()
reset_llama_stack_was_running()
diff --git a/tests/e2e/features/steps/health.py b/tests/e2e/features/steps/health.py
index 76413182b..2930e1d7a 100644
--- a/tests/e2e/features/steps/health.py
+++ b/tests/e2e/features/steps/health.py
@@ -57,7 +57,7 @@ def llama_stack_connection_broken(context: Context) -> None:
Checks whether the Docker container named "llama-stack" is running; if it
is, stops the container, waits briefly for the disruption to take effect,
- and sets `context.llama_stack_was_running` to True so callers can restore
+ and sets `context.ogx_was_running` to True so callers can restore
state later. If the container is not running, the flag remains False. On
failure to run Docker commands, prints a warning message describing the
error.
@@ -75,14 +75,14 @@ def llama_stack_connection_broken(context: Context) -> None:
# Store original state for restoration (only on the real disruption path).
# Write to both context (backward compat) and module-level dict (survives
# Behave's per-scenario context clearing).
- context.llama_stack_was_running = False
+ context.ogx_was_running = False
_llama_stack_was_running["value"] = False
if is_prow_environment():
from tests.e2e.utils.prow_utils import disrupt_llama_stack_pod
was_running = disrupt_llama_stack_pod()
- context.llama_stack_was_running = was_running
+ context.ogx_was_running = was_running
_llama_stack_was_running["value"] = was_running
_llama_stack_disrupt_once["applied"] = True
_force_lightspeed_restart_after_llama_disrupt(context)
@@ -98,7 +98,7 @@ def llama_stack_connection_broken(context: Context) -> None:
)
if result.stdout.strip():
- context.llama_stack_was_running = True
+ context.ogx_was_running = True
_llama_stack_was_running["value"] = True
subprocess.run(
["docker", "stop", "llama-stack"], check=True, capture_output=True
diff --git a/tests/integration/test_configuration.py b/tests/integration/test_configuration.py
index 46e8ab38b..0dc5a6365 100644
--- a/tests/integration/test_configuration.py
+++ b/tests/integration/test_configuration.py
@@ -26,7 +26,7 @@ def test_loading_proper_configuration(configuration_filename: str) -> None:
Validate that loading the given configuration YAML populates all expected sections and values.
Loads configuration from the provided file and asserts presence and
- correctness of top-level sections (configuration, service, llama_stack,
+ correctness of top-level sections (configuration, service, ogx,
user_data_collection, mcp_servers) and selected field values including
service host and flags, CORS settings, OGX URL and API key secret,
user data collection settings, and three MCP server entries.
@@ -67,7 +67,7 @@ def test_loading_proper_configuration(configuration_filename: str) -> None:
assert cors_config.allow_methods == ["foo_method", "bar_method", "baz_method"]
assert cors_config.allow_headers == ["foo_header", "bar_header", "baz_header"]
- # check 'llama_stack' section
+ # check 'ogx' section
ls_config = cfg.ogx_configuration
assert ls_config.use_as_library_client is False
assert str(ls_config.url) == "http://localhost:8321/"
diff --git a/tests/integration/test_unified_synthesis.py b/tests/integration/test_unified_synthesis.py
index 277d97fba..f8e0d685e 100644
--- a/tests/integration/test_unified_synthesis.py
+++ b/tests/integration/test_unified_synthesis.py
@@ -219,7 +219,7 @@ def test_synthesis_parity_with_legacy_enrichment(
run_path = tmp_path / "run.yaml" # written by _legacy_enriched
unified_cfg: dict[str, Any] = {
- "llama_stack": {
+ "ogx": {
"use_as_library_client": True,
"config": {"profile": str(run_path)},
},
@@ -240,7 +240,7 @@ def test_synthesis_parity_holds_through_real_config_load(tmp_path: Path) -> None
legacy = _legacy_enriched(tmp_path, _BYOK_INPUTS)
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {
+ lcs_dict["ogx"] = {
"use_as_library_client": True,
"config": {"profile": "run.yaml"}, # relative to the config file dir
}
@@ -258,7 +258,7 @@ def test_synthesis_parity_holds_through_real_config_load(tmp_path: Path) -> None
def test_default_baseline_through_real_load(tmp_path: Path) -> None:
"""baseline: default synthesizes from the shipped src/data/default_run.yaml."""
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {
+ lcs_dict["ogx"] = {
"use_as_library_client": True,
"config": {"baseline": "default"},
}
@@ -274,7 +274,7 @@ def test_default_baseline_through_real_load(tmp_path: Path) -> None:
def test_byo_llm_baseline_through_real_load(tmp_path: Path) -> None:
"""baseline: byo-llm synthesizes from default_run.yaml without the OpenAI row."""
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {
+ lcs_dict["ogx"] = {
"use_as_library_client": True,
"config": {"baseline": "byo-llm"},
}
@@ -305,7 +305,7 @@ def test_empty_baseline_with_native_override_through_real_load(
) -> None:
"""baseline: empty + native_override reproduces the override exactly (T7)."""
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {
+ lcs_dict["ogx"] = {
"use_as_library_client": True,
"config": {
"baseline": "empty",
@@ -329,7 +329,7 @@ def test_profile_baseline_through_real_load_gets_mcp_ensured(
_write_yaml(tmp_path / "my-profile.yaml", profile)
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {
+ lcs_dict["ogx"] = {
"use_as_library_client": True,
"config": {"profile": "my-profile.yaml"},
}
@@ -362,7 +362,7 @@ def test_native_override_deep_merge_through_real_load(tmp_path: Path) -> None:
_write_yaml(tmp_path / "my-profile.yaml", profile)
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {
+ lcs_dict["ogx"] = {
"use_as_library_client": True,
"config": {
"profile": "my-profile.yaml",
@@ -395,7 +395,7 @@ def test_native_override_deep_merge_through_real_load(tmp_path: Path) -> None:
def test_synthesized_file_written_owner_only(tmp_path: Path) -> None:
"""The synthesized run.yaml lands on disk with mode 0600 (R10)."""
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {
+ lcs_dict["ogx"] = {
"use_as_library_client": True,
"config": {"baseline": "empty", "native_override": {"version": 2}},
}
@@ -418,7 +418,7 @@ def _migrate_then_synthesize(
"""
run_path = _write_yaml(tmp_path / "run.yaml", run_yaml)
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {
+ lcs_dict["ogx"] = {
"use_as_library_client": True,
"library_client_config_path": str(run_path),
}
@@ -482,7 +482,7 @@ def test_load_rejects_config_block_and_legacy_path_together(
) -> None:
"""A llama_stack.config block plus a legacy path fails the real load (R3)."""
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {
+ lcs_dict["ogx"] = {
"use_as_library_client": True,
"library_client_config_path": "tests/configuration/run.yaml",
"config": {"baseline": "default"},
@@ -497,7 +497,7 @@ def test_load_rejects_inference_providers_and_legacy_path_together(
) -> None:
"""Top-level inference.providers plus a legacy path fails the real load."""
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {
+ lcs_dict["ogx"] = {
"use_as_library_client": True,
"library_client_config_path": "tests/configuration/run.yaml",
}
@@ -512,7 +512,7 @@ def test_load_rejects_inference_providers_and_legacy_path_together(
def test_load_rejects_library_mode_without_run_source(tmp_path: Path) -> None:
"""Library mode with neither synthesis input nor legacy path fails."""
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {"use_as_library_client": True}
+ lcs_dict["ogx"] = {"use_as_library_client": True}
cfg_path = _write_yaml(tmp_path / "lightspeed-stack.yaml", lcs_dict)
with pytest.raises(ValidationError, match="requires a run-configuration source"):
configuration.load_configuration(str(cfg_path))
@@ -521,7 +521,7 @@ def test_load_rejects_library_mode_without_run_source(tmp_path: Path) -> None:
def test_load_accepts_minimal_unified_config(tmp_path: Path) -> None:
"""A minimal unified config (inference.providers only) loads cleanly."""
lcs_dict = _base_config_dict()
- lcs_dict["llama_stack"] = {"use_as_library_client": True}
+ lcs_dict["ogx"] = {"use_as_library_client": True}
lcs_dict["inference"] = {
"providers": [{"type": "openai", "api_key_env": "OPENAI_API_KEY"}]
}
@@ -529,5 +529,5 @@ def test_load_accepts_minimal_unified_config(tmp_path: Path) -> None:
configuration.load_configuration(str(cfg_path))
loaded = configuration.configuration
- assert loaded.llama_stack.config is None
+ assert loaded.ogx.config is None
assert loaded.inference.providers[0].type == "openai"
diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py
index 0801a7c25..835b0cd3b 100644
--- a/tests/unit/__init__.py
+++ b/tests/unit/__init__.py
@@ -14,7 +14,7 @@
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_a2a.py b/tests/unit/app/endpoints/test_a2a.py
index ce3bd4ab7..b6c919ee2 100644
--- a/tests/unit/app/endpoints/test_a2a.py
+++ b/tests/unit/app/endpoints/test_a2a.py
@@ -87,7 +87,7 @@ def setup_configuration_fixture(mocker: MockerFixture) -> AppConfig:
"auth_enabled": False,
"base_url": "http://localhost:8080",
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -138,7 +138,7 @@ def setup_minimal_configuration_fixture(mocker: MockerFixture) -> AppConfig:
"host": "localhost",
"port": 8080,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -407,7 +407,7 @@ def test_get_agent_card_with_custom_protocol_version(
"auth_enabled": False,
"base_url": "http://localhost:8080",
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_conversations.py b/tests/unit/app/endpoints/test_conversations.py
index b3639d1d4..877070905 100644
--- a/tests/unit/app/endpoints/test_conversations.py
+++ b/tests/unit/app/endpoints/test_conversations.py
@@ -269,7 +269,7 @@ def setup_configuration_fixture() -> AppConfig:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_info.py b/tests/unit/app/endpoints/test_info.py
index b501c2bc9..25adfa3bc 100644
--- a/tests/unit/app/endpoints/test_info.py
+++ b/tests/unit/app/endpoints/test_info.py
@@ -34,7 +34,7 @@ async def test_info_endpoint(mocker: MockerFixture) -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -106,7 +106,7 @@ async def test_info_endpoint_connection_error(mocker: MockerFixture) -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -170,7 +170,7 @@ async def test_emits_span_on_success(
{
"name": "test-service",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "k",
"url": "http://x:1234",
"use_as_library_client": False,
@@ -215,7 +215,7 @@ async def test_span_records_error_on_connection_failure(
{
"name": "test-service",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "k",
"url": "http://x:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_mcp_auth.py b/tests/unit/app/endpoints/test_mcp_auth.py
index 41132a415..5cc34f451 100644
--- a/tests/unit/app/endpoints/test_mcp_auth.py
+++ b/tests/unit/app/endpoints/test_mcp_auth.py
@@ -29,7 +29,7 @@ def mock_configuration_with_client_auth() -> Configuration:
return Configuration( # type: ignore[call-arg]
name="test",
service=ServiceConfiguration(), # type: ignore[call-arg]
- llama_stack=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
+ ogx=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
user_data_collection=UserDataCollection(feedback_enabled=False), # type: ignore[call-arg]
mcp_servers=[
ModelContextProtocolServer(
@@ -57,7 +57,7 @@ def mock_configuration_mixed_auth() -> Configuration:
return Configuration( # type: ignore[call-arg]
name="test",
service=ServiceConfiguration(), # type: ignore[call-arg]
- llama_stack=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
+ ogx=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
user_data_collection=UserDataCollection(feedback_enabled=False), # type: ignore[call-arg]
mcp_servers=[
ModelContextProtocolServer(
@@ -88,7 +88,7 @@ def mock_configuration_no_client_auth() -> Configuration:
return Configuration( # type: ignore[call-arg]
name="test",
service=ServiceConfiguration(), # type: ignore[call-arg]
- llama_stack=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
+ ogx=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
user_data_collection=UserDataCollection(feedback_enabled=False), # type: ignore[call-arg]
mcp_servers=[
ModelContextProtocolServer(
@@ -215,7 +215,7 @@ async def test_get_mcp_client_auth_options_empty_config(
mock_config = Configuration( # type: ignore[call-arg]
name="test",
service=ServiceConfiguration(), # type: ignore[call-arg]
- llama_stack=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
+ ogx=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
user_data_collection=UserDataCollection(feedback_enabled=False), # type: ignore[call-arg]
mcp_servers=[],
) # type: ignore[call-arg]
@@ -249,7 +249,7 @@ async def test_get_mcp_client_auth_options_whitespace_handling(
mock_config = Configuration( # type: ignore[call-arg]
name="test",
service=ServiceConfiguration(), # type: ignore[call-arg]
- llama_stack=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
+ ogx=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
user_data_collection=UserDataCollection(feedback_enabled=False), # type: ignore[call-arg]
mcp_servers=[
ModelContextProtocolServer(
@@ -297,7 +297,7 @@ async def test_get_mcp_client_auth_options_multiple_headers_single_server(
mock_config = Configuration( # type: ignore[call-arg]
name="test",
service=ServiceConfiguration(), # type: ignore[call-arg]
- llama_stack=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
+ ogx=OgxConfiguration(url="http://localhost:8321"), # type: ignore[call-arg]
user_data_collection=UserDataCollection(feedback_enabled=False), # type: ignore[call-arg]
mcp_servers=[
ModelContextProtocolServer(
diff --git a/tests/unit/app/endpoints/test_mcp_servers.py b/tests/unit/app/endpoints/test_mcp_servers.py
index 3fd244530..937ba531e 100644
--- a/tests/unit/app/endpoints/test_mcp_servers.py
+++ b/tests/unit/app/endpoints/test_mcp_servers.py
@@ -58,7 +58,7 @@ def mock_configuration() -> Configuration:
access_log=True,
root_path="/.",
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
url=AnyHttpUrl("http://localhost:8321"),
api_key=SecretStr("xyzzy"),
use_as_library_client=False,
diff --git a/tests/unit/app/endpoints/test_models.py b/tests/unit/app/endpoints/test_models.py
index 4a0ad7903..3daab509c 100644
--- a/tests/unit/app/endpoints/test_models.py
+++ b/tests/unit/app/endpoints/test_models.py
@@ -92,7 +92,7 @@ async def test_models_endpoint_handler_configuration_loaded(
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -149,7 +149,7 @@ async def test_models_endpoint_handler_unable_to_retrieve_models_list(
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -206,7 +206,7 @@ async def test_models_endpoint_handler_model_type_query_parameter(
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -262,7 +262,7 @@ async def test_models_endpoint_handler_model_list_retrieved(
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -336,7 +336,7 @@ async def test_models_endpoint_handler_model_list_retrieved_with_query_parameter
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -431,7 +431,7 @@ async def test_models_endpoint_llama_stack_connection_error(
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_query.py b/tests/unit/app/endpoints/test_query.py
index 7af630713..6fbd731d0 100644
--- a/tests/unit/app/endpoints/test_query.py
+++ b/tests/unit/app/endpoints/test_query.py
@@ -72,7 +72,7 @@ def setup_configuration_fixture() -> AppConfig:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_rags.py b/tests/unit/app/endpoints/test_rags.py
index d32243853..ed2b89119 100644
--- a/tests/unit/app/endpoints/test_rags.py
+++ b/tests/unit/app/endpoints/test_rags.py
@@ -265,7 +265,7 @@ def _make_byok_config(tmp_path: Any) -> AppConfig:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_responses.py b/tests/unit/app/endpoints/test_responses.py
index 9b1e60368..f1a0f04a3 100644
--- a/tests/unit/app/endpoints/test_responses.py
+++ b/tests/unit/app/endpoints/test_responses.py
@@ -273,7 +273,7 @@ def minimal_config_fixture() -> AppConfig:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -1754,7 +1754,7 @@ async def test_configured_system_prompt_used_when_no_client_instructions(
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -1817,7 +1817,7 @@ async def test_client_instructions_rejected_when_disabled(
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_responses_otel.py b/tests/unit/app/endpoints/test_responses_otel.py
index 256d68502..d0b816c6e 100644
--- a/tests/unit/app/endpoints/test_responses_otel.py
+++ b/tests/unit/app/endpoints/test_responses_otel.py
@@ -55,7 +55,7 @@ def minimal_config_fixture() -> AppConfig:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_responses_splunk.py b/tests/unit/app/endpoints/test_responses_splunk.py
index d89364b87..7ee15dcf2 100644
--- a/tests/unit/app/endpoints/test_responses_splunk.py
+++ b/tests/unit/app/endpoints/test_responses_splunk.py
@@ -81,7 +81,7 @@ def minimal_config_fixture() -> AppConfig:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_saved_prompts.py b/tests/unit/app/endpoints/test_saved_prompts.py
index b746d56a6..5f23f3ce4 100644
--- a/tests/unit/app/endpoints/test_saved_prompts.py
+++ b/tests/unit/app/endpoints/test_saved_prompts.py
@@ -59,7 +59,7 @@ def config_with_custom_saved_prompts_fixture() -> AppConfig:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_shields.py b/tests/unit/app/endpoints/test_shields.py
index da535725e..d3869d188 100644
--- a/tests/unit/app/endpoints/test_shields.py
+++ b/tests/unit/app/endpoints/test_shields.py
@@ -29,7 +29,7 @@ def _base_config_dict() -> dict[str, Any]:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_streaming_query.py b/tests/unit/app/endpoints/test_streaming_query.py
index 990772194..4335edb60 100644
--- a/tests/unit/app/endpoints/test_streaming_query.py
+++ b/tests/unit/app/endpoints/test_streaming_query.py
@@ -57,7 +57,7 @@ def setup_configuration_fixture() -> AppConfig:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/app/endpoints/test_tools.py b/tests/unit/app/endpoints/test_tools.py
index a9da0e598..1a0e9ff41 100644
--- a/tests/unit/app/endpoints/test_tools.py
+++ b/tests/unit/app/endpoints/test_tools.py
@@ -84,7 +84,7 @@ def mock_configuration() -> Configuration:
access_log=True,
root_path="/.",
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
url=AnyHttpUrl("http://localhost:8321"),
api_key=SecretStr("xyzzy"),
use_as_library_client=False,
diff --git a/tests/unit/app/endpoints/test_vector_stores.py b/tests/unit/app/endpoints/test_vector_stores.py
index ffd9e0e6a..de20e8901 100644
--- a/tests/unit/app/endpoints/test_vector_stores.py
+++ b/tests/unit/app/endpoints/test_vector_stores.py
@@ -119,7 +119,7 @@ def get_test_config() -> dict[str, Any]:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/authentication/test_k8s.py b/tests/unit/authentication/test_k8s.py
index 94e0eb633..0f98488e7 100644
--- a/tests/unit/authentication/test_k8s.py
+++ b/tests/unit/authentication/test_k8s.py
@@ -260,7 +260,7 @@ async def test_auth_dependency_no_token_readiness_liveness_endpoints_1(
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -335,7 +335,7 @@ async def test_auth_dependency_no_token_readiness_liveness_endpoints_2(
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -421,7 +421,7 @@ async def test_auth_dependency_no_token_normal_endpoints(
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -499,7 +499,7 @@ async def test_auth_dependency_no_token_metrics_endpoint_skip_enabled(
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -567,7 +567,7 @@ async def test_auth_dependency_no_token_metrics_endpoint_skip_disabled(
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/authentication/test_trusted_proxy.py b/tests/unit/authentication/test_trusted_proxy.py
index e3d374d2d..f4e1dff3a 100644
--- a/tests/unit/authentication/test_trusted_proxy.py
+++ b/tests/unit/authentication/test_trusted_proxy.py
@@ -329,7 +329,7 @@ async def test_health_probe_skip_enabled(mocker: MockerFixture) -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -385,7 +385,7 @@ async def test_health_probe_skip_disabled(mocker: MockerFixture) -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -438,7 +438,7 @@ async def test_metrics_skip_enabled(mocker: MockerFixture) -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py
index caee1967a..f0da40648 100644
--- a/tests/unit/conftest.py
+++ b/tests/unit/conftest.py
@@ -133,7 +133,7 @@ def minimal_config_fixture() -> AppConfig:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/models/config/test_approvals_configuration.py b/tests/unit/models/config/test_approvals_configuration.py
index 94f753cc0..80a6e00d8 100644
--- a/tests/unit/models/config/test_approvals_configuration.py
+++ b/tests/unit/models/config/test_approvals_configuration.py
@@ -107,7 +107,7 @@ def test_root_configuration_default_includes_approvals() -> None:
cfg = Configuration(
name="test",
service=ServiceConfiguration(),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
),
diff --git a/tests/unit/models/config/test_authentication_configuration.py b/tests/unit/models/config/test_authentication_configuration.py
index 0e8c80c99..b20c1028b 100644
--- a/tests/unit/models/config/test_authentication_configuration.py
+++ b/tests/unit/models/config/test_authentication_configuration.py
@@ -307,7 +307,7 @@ def test_authentication_configuration_in_config_noop() -> None:
workers=1,
root_path="/.",
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
url=AnyHttpUrl("http://localhost"),
@@ -347,7 +347,7 @@ def test_authentication_configuration_skip_readiness_probe() -> None:
workers=1,
root_path="/.",
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
url=AnyHttpUrl("http://localhost"),
@@ -403,7 +403,7 @@ def test_authentication_configuration_in_config_k8s() -> None:
workers=1,
root_path="/.",
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
url=AnyHttpUrl("http://localhost"),
@@ -461,7 +461,7 @@ def test_authentication_configuration_in_config_rh_identity() -> None:
workers=1,
root_path="/.",
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
url=AnyHttpUrl("http://localhost"),
@@ -509,7 +509,7 @@ def test_authentication_configuration_in_config_jwktoken() -> None:
workers=1,
root_path="/.",
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
url=AnyHttpUrl("http://localhost"),
diff --git a/tests/unit/models/config/test_dump_configuration.py b/tests/unit/models/config/test_dump_configuration.py
index ce5d6fe0f..2751378e5 100644
--- a/tests/unit/models/config/test_dump_configuration.py
+++ b/tests/unit/models/config/test_dump_configuration.py
@@ -97,7 +97,7 @@ def test_dump_configuration_minimal_cfg(tmp_path: Path) -> None:
),
cors=CORSConfiguration(),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -118,7 +118,7 @@ def test_dump_configuration_minimal_cfg(tmp_path: Path) -> None:
# all sections must exists
assert "name" in content
assert "service" in content
- assert "llama_stack" in content
+ assert "ogx" in content
assert "user_data_collection" in content
assert "mcp_servers" in content
assert "authentication" in content
@@ -162,7 +162,7 @@ def test_dump_configuration_minimal_cfg(tmp_path: Path) -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"use_as_library_client": True,
"api_key": "**********",
@@ -302,7 +302,7 @@ def test_dump_configuration_valid_values(tmp_path: Path) -> None:
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -341,7 +341,7 @@ def test_dump_configuration_valid_values(tmp_path: Path) -> None:
# all sections must exists
assert "name" in content
assert "service" in content
- assert "llama_stack" in content
+ assert "ogx" in content
assert "user_data_collection" in content
assert "mcp_servers" in content
assert "authentication" in content
@@ -391,7 +391,7 @@ def test_dump_configuration_valid_values(tmp_path: Path) -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"use_as_library_client": True,
"api_key": "**********",
@@ -532,7 +532,7 @@ def test_dump_configuration_with_one_mcp_server(tmp_path: Path) -> None:
cfg = Configuration(
name="test_name",
service=ServiceConfiguration(),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
),
@@ -584,7 +584,7 @@ def test_dump_configuration_with_more_mcp_servers(tmp_path: Path) -> None:
cfg = Configuration(
name="test_name",
service=ServiceConfiguration(),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
),
@@ -658,7 +658,7 @@ def test_dump_configuration_with_quota_limiters(tmp_path: Path) -> None:
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -717,7 +717,7 @@ def test_dump_configuration_with_quota_limiters(tmp_path: Path) -> None:
# all sections must exists
assert "name" in content
assert "service" in content
- assert "llama_stack" in content
+ assert "ogx" in content
assert "user_data_collection" in content
assert "mcp_servers" in content
assert "authentication" in content
@@ -767,7 +767,7 @@ def test_dump_configuration_with_quota_limiters(tmp_path: Path) -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"use_as_library_client": True,
"api_key": "**********",
@@ -931,7 +931,7 @@ def test_dump_configuration_with_quota_limiters_different_values(
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -994,7 +994,7 @@ def test_dump_configuration_with_quota_limiters_different_values(
# all sections must exists
assert "name" in content
assert "service" in content
- assert "llama_stack" in content
+ assert "ogx" in content
assert "user_data_collection" in content
assert "mcp_servers" in content
assert "authentication" in content
@@ -1042,7 +1042,7 @@ def test_dump_configuration_with_quota_limiters_different_values(
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"use_as_library_client": True,
"api_key": "**********",
@@ -1194,7 +1194,7 @@ def test_dump_configuration_with_vector_store(tmp_path: Path) -> None:
),
cors=CORSConfiguration(),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
config=UnifiedOgxConfig(baseline="default"),
api_key=SecretStr("whatever"),
@@ -1255,7 +1255,7 @@ def test_dump_configuration_byok(tmp_path: Path) -> None:
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -1306,7 +1306,7 @@ def test_dump_configuration_byok(tmp_path: Path) -> None:
# all sections must exists
assert "name" in content
assert "service" in content
- assert "llama_stack" in content
+ assert "ogx" in content
assert "user_data_collection" in content
assert "mcp_servers" in content
assert "authentication" in content
@@ -1354,7 +1354,7 @@ def test_dump_configuration_byok(tmp_path: Path) -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"use_as_library_client": True,
"api_key": "**********",
@@ -1519,7 +1519,7 @@ def test_dump_configuration_pg_namespace(tmp_path: Path) -> None:
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -1559,7 +1559,7 @@ def test_dump_configuration_pg_namespace(tmp_path: Path) -> None:
# all sections must exists
assert "name" in content
assert "service" in content
- assert "llama_stack" in content
+ assert "ogx" in content
assert "user_data_collection" in content
assert "mcp_servers" in content
assert "authentication" in content
@@ -1607,7 +1607,7 @@ def test_dump_configuration_pg_namespace(tmp_path: Path) -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"use_as_library_client": True,
"api_key": "**********",
@@ -1753,7 +1753,7 @@ def test_dump_configuration_with_one_skill(tmp_path: Path) -> None:
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -1828,7 +1828,7 @@ def test_dump_configuration_with_skills(tmp_path: Path) -> None:
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -1912,7 +1912,7 @@ def test_dump_configuration_allow_degraded_mode(tmp_path: Path) -> None:
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=False,
url="http://localhost",
api_key=SecretStr("whatever"),
@@ -1952,7 +1952,7 @@ def test_dump_configuration_allow_degraded_mode(tmp_path: Path) -> None:
# all sections must exists
assert "name" in content
assert "service" in content
- assert "llama_stack" in content
+ assert "ogx" in content
assert "user_data_collection" in content
assert "mcp_servers" in content
assert "authentication" in content
@@ -2002,7 +2002,7 @@ def test_dump_configuration_allow_degraded_mode(tmp_path: Path) -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": "http://localhost/",
"use_as_library_client": False,
"api_key": "**********",
@@ -2153,7 +2153,7 @@ def test_dump_configuration_max_retries_settings(tmp_path: Path) -> None:
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -2193,7 +2193,7 @@ def test_dump_configuration_max_retries_settings(tmp_path: Path) -> None:
# all sections must exists
assert "name" in content
assert "service" in content
- assert "llama_stack" in content
+ assert "ogx" in content
assert "user_data_collection" in content
assert "mcp_servers" in content
assert "authentication" in content
@@ -2243,7 +2243,7 @@ def test_dump_configuration_max_retries_settings(tmp_path: Path) -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"use_as_library_client": True,
"api_key": "**********",
@@ -2394,7 +2394,7 @@ def test_dump_configuration_retry_count_settings(tmp_path: Path) -> None:
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -2434,7 +2434,7 @@ def test_dump_configuration_retry_count_settings(tmp_path: Path) -> None:
# all sections must exists
assert "name" in content
assert "service" in content
- assert "llama_stack" in content
+ assert "ogx" in content
assert "user_data_collection" in content
assert "mcp_servers" in content
assert "authentication" in content
@@ -2484,7 +2484,7 @@ def test_dump_configuration_retry_count_settings(tmp_path: Path) -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"use_as_library_client": True,
"api_key": "**********",
@@ -2635,7 +2635,7 @@ def test_dump_configuration_specific_compaction_values(tmp_path: Path) -> None:
allow_headers=["foo_header", "bar_header", "baz_header"],
),
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
api_key=SecretStr("whatever"),
@@ -2681,7 +2681,7 @@ def test_dump_configuration_specific_compaction_values(tmp_path: Path) -> None:
# all sections must exists
assert "name" in content
assert "service" in content
- assert "llama_stack" in content
+ assert "ogx" in content
assert "user_data_collection" in content
assert "mcp_servers" in content
assert "authentication" in content
@@ -2732,7 +2732,7 @@ def test_dump_configuration_specific_compaction_values(tmp_path: Path) -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"use_as_library_client": True,
"api_key": "**********",
diff --git a/tests/unit/models/config/test_llama_stack_configuration.py b/tests/unit/models/config/test_llama_stack_configuration.py
index 9d62a50d6..93183f77b 100644
--- a/tests/unit/models/config/test_llama_stack_configuration.py
+++ b/tests/unit/models/config/test_llama_stack_configuration.py
@@ -238,7 +238,7 @@ def test_unified_config_accepts_byo_llm_baseline() -> None:
def test_root_rejects_config_and_legacy_path_together() -> None:
"""A llama_stack.config block and a legacy path in one file fail at load (R3)."""
config_dict = _base_config_dict()
- config_dict["llama_stack"] = {
+ config_dict["ogx"] = {
"use_as_library_client": True,
"library_client_config_path": "tests/configuration/run.yaml",
"config": {"baseline": "default"},
@@ -250,7 +250,7 @@ def test_root_rejects_config_and_legacy_path_together() -> None:
def test_root_rejects_inference_providers_and_legacy_path_together() -> None:
"""Top-level inference.providers plus a legacy path fail at load (R3)."""
config_dict = _base_config_dict()
- config_dict["llama_stack"] = {
+ config_dict["ogx"] = {
"use_as_library_client": True,
"library_client_config_path": "tests/configuration/run.yaml",
}
@@ -264,7 +264,7 @@ def test_root_rejects_inference_providers_and_legacy_path_together() -> None:
def test_root_rejects_vector_store_providers_and_legacy_path_together() -> None:
"""Non-empty vector_store.providers plus a legacy path fail at load."""
config_dict = _base_config_dict()
- config_dict["llama_stack"] = {
+ config_dict["ogx"] = {
"use_as_library_client": True,
"library_client_config_path": "tests/configuration/run.yaml",
}
@@ -287,7 +287,7 @@ def test_root_rejects_vector_store_providers_and_legacy_path_together() -> None:
def test_root_accepts_vector_store_providers_only_no_config_block() -> None:
"""Library mode driven by vector_store.providers alone is valid."""
config_dict = _base_config_dict()
- config_dict["llama_stack"] = {"use_as_library_client": True}
+ config_dict["ogx"] = {"use_as_library_client": True}
config_dict["inference"] = {"providers": []}
config_dict["vector_store"] = {
"default_provider": "notebooks",
@@ -303,7 +303,7 @@ def test_root_accepts_vector_store_providers_only_no_config_block() -> None:
}
cfg = Configuration(**config_dict)
# pylint: disable=no-member
- assert cfg.llama_stack.config is None
+ assert cfg.ogx.config is None
assert cfg.vector_store.default_provider == "notebooks"
assert len(cfg.vector_store.providers) == 1
@@ -311,7 +311,7 @@ def test_root_accepts_vector_store_providers_only_no_config_block() -> None:
def test_root_accepts_unified_library_config() -> None:
"""A unified library-mode config (no legacy path) loads cleanly (R1)."""
config_dict = _base_config_dict()
- config_dict["llama_stack"] = {
+ config_dict["ogx"] = {
"use_as_library_client": True,
"config": {"baseline": "default"},
}
@@ -320,7 +320,7 @@ def test_root_accepts_unified_library_config() -> None:
}
cfg = Configuration(**config_dict)
# pylint: disable=no-member
- assert cfg.llama_stack.config is not None
+ assert cfg.ogx.config is not None
assert cfg.inference.providers[0].type == "openai"
@@ -331,20 +331,20 @@ def test_root_accepts_inference_providers_only_no_config_block() -> None:
non-empty top-level inference.providers is a sufficient synthesis input.
"""
config_dict = _base_config_dict()
- config_dict["llama_stack"] = {"use_as_library_client": True}
+ config_dict["ogx"] = {"use_as_library_client": True}
config_dict["inference"] = {
"providers": [{"type": "openai", "api_key_env": "OPENAI_API_KEY"}]
}
cfg = Configuration(**config_dict)
# pylint: disable=no-member
- assert cfg.llama_stack.config is None
+ assert cfg.ogx.config is None
assert cfg.inference.providers[0].type == "openai"
def test_root_rejects_library_mode_without_run_source() -> None:
"""Library mode with no synthesis input and no legacy path fails at load."""
config_dict = _base_config_dict()
- config_dict["llama_stack"] = {"use_as_library_client": True}
+ config_dict["ogx"] = {"use_as_library_client": True}
config_dict["inference"] = {"providers": []}
with pytest.raises(ValidationError, match="requires a run-configuration source"):
Configuration(**config_dict)
@@ -353,13 +353,13 @@ def test_root_rejects_library_mode_without_run_source() -> None:
def test_root_accepts_remote_url_with_unified_config() -> None:
"""url + unified config (server mode) is allowed — url is orthogonal (R11)."""
config_dict = _base_config_dict()
- config_dict["llama_stack"] = {
+ config_dict["ogx"] = {
"use_as_library_client": False,
"url": "http://localhost:8321",
"config": {"baseline": "default"},
}
cfg = Configuration(**config_dict)
- assert cfg.llama_stack.config is not None # pylint: disable=no-member
+ assert cfg.ogx.config is not None # pylint: disable=no-member
# ---------------------------------------------------------------------------
@@ -369,7 +369,7 @@ def test_root_accepts_remote_url_with_unified_config() -> None:
def _unified_body(config_dict: dict[str, Any]) -> dict[str, Any]:
"""Give the base config a unified shape (synthesis input present)."""
- config_dict["llama_stack"] = {"use_as_library_client": True}
+ config_dict["ogx"] = {"use_as_library_client": True}
config_dict["inference"] = {
"providers": [{"type": "openai", "api_key_env": "OPENAI_API_KEY"}]
}
@@ -390,7 +390,7 @@ def _clear_synthesis_inputs(config_dict: dict[str, Any]) -> dict[str, Any]:
def _legacy_body(config_dict: dict[str, Any]) -> dict[str, Any]:
"""Give the base config a legacy shape (external run.yaml path)."""
config_dict = _clear_synthesis_inputs(config_dict)
- config_dict["llama_stack"] = {
+ config_dict["ogx"] = {
"use_as_library_client": True,
"library_client_config_path": "tests/configuration/run.yaml",
}
@@ -400,7 +400,7 @@ def _legacy_body(config_dict: dict[str, Any]) -> dict[str, Any]:
def _remote_body(config_dict: dict[str, Any]) -> dict[str, Any]:
"""Give the base config a remote shape (url only, no synthesis input)."""
config_dict = _clear_synthesis_inputs(config_dict)
- config_dict["llama_stack"] = {
+ config_dict["ogx"] = {
"use_as_library_client": False,
"url": "http://localhost:8321",
}
@@ -472,7 +472,7 @@ def test_root_rejects_unknown_config_format_version_value() -> None:
def test_root_accepts_unified_marker_with_vector_store_providers_body() -> None:
"""'unified' agrees with a body whose only synthesis input is vector_store."""
config_dict = _base_config_dict()
- config_dict["llama_stack"] = {"use_as_library_client": True}
+ config_dict["ogx"] = {"use_as_library_client": True}
config_dict["inference"] = {"providers": []}
config_dict["vector_store"] = {
"default_provider": "notebooks",
@@ -494,7 +494,7 @@ def test_root_accepts_unified_marker_with_vector_store_providers_body() -> None:
def test_root_accepts_unified_marker_with_config_block_body() -> None:
"""'unified' agrees with a body whose only synthesis input is llama_stack.config."""
config_dict = _clear_synthesis_inputs(_base_config_dict())
- config_dict["llama_stack"] = {
+ config_dict["ogx"] = {
"use_as_library_client": True,
"config": {"baseline": "default"},
}
@@ -510,7 +510,7 @@ def test_missing_run_source_error_precedes_marker_check() -> None:
but the missing-run-source check runs first and its error must win.
"""
config_dict = _clear_synthesis_inputs(_base_config_dict())
- config_dict["llama_stack"] = {"use_as_library_client": True}
+ config_dict["ogx"] = {"use_as_library_client": True}
config_dict["config_format_version"] = "unified"
with pytest.raises(ValidationError, match="requires a run-configuration source"):
Configuration(**config_dict)
@@ -524,9 +524,20 @@ def test_mutual_exclusion_error_precedes_marker_check() -> None:
--migrate-config guidance must win.
"""
config_dict = _unified_body(_base_config_dict())
- config_dict["llama_stack"][
- "library_client_config_path"
- ] = "tests/configuration/run.yaml"
+ config_dict["ogx"]["library_client_config_path"] = "tests/configuration/run.yaml"
config_dict["config_format_version"] = "legacy"
with pytest.raises(ValidationError, match="mutually exclusive"):
Configuration(**config_dict)
+
+
+def test_root_accepts_deprecated_llama_stack_yaml_key(
+ caplog: pytest.LogCaptureFixture,
+) -> None:
+ """Deprecated ``llama_stack`` top-level key loads as ``ogx`` with a warning."""
+ config_dict = _remote_body(_base_config_dict())
+ ogx_section = config_dict.pop("ogx")
+ config_dict["llama_stack"] = ogx_section
+ with caplog.at_level("WARNING"):
+ cfg = Configuration(**config_dict)
+ assert "deprecated" in caplog.text.lower()
+ assert str(cfg.ogx.url) == "http://localhost:8321/" # pylint: disable=no-member
diff --git a/tests/unit/models/config/test_model_context_protocol_server.py b/tests/unit/models/config/test_model_context_protocol_server.py
index 1dd01dfbc..0ac0e7366 100644
--- a/tests/unit/models/config/test_model_context_protocol_server.py
+++ b/tests/unit/models/config/test_model_context_protocol_server.py
@@ -106,7 +106,7 @@ def test_configuration_empty_mcp_servers() -> None:
cfg = Configuration(
name="test_name",
service=ServiceConfiguration(),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
),
@@ -131,7 +131,7 @@ def test_configuration_single_mcp_server() -> None:
cfg = Configuration(
name="test_name",
service=ServiceConfiguration(),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
),
@@ -163,7 +163,7 @@ def test_configuration_multiple_mcp_servers() -> None:
cfg = Configuration(
name="test_name",
service=ServiceConfiguration(),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
),
@@ -283,7 +283,7 @@ def test_configuration_mcp_servers_with_mixed_auth_headers(tmp_path: Path) -> No
cfg = Configuration(
name="test_name",
service=ServiceConfiguration(),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
),
diff --git a/tests/unit/models/config/test_rlsapi_v1_configuration.py b/tests/unit/models/config/test_rlsapi_v1_configuration.py
index f6edef64e..235600781 100644
--- a/tests/unit/models/config/test_rlsapi_v1_configuration.py
+++ b/tests/unit/models/config/test_rlsapi_v1_configuration.py
@@ -66,7 +66,7 @@ def _build_config_dict(**overrides: Any) -> dict[str, Any]:
base: dict[str, Any] = {
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/models/config/test_shields_configuration.py b/tests/unit/models/config/test_shields_configuration.py
index 5859f2caf..6cfa857d5 100644
--- a/tests/unit/models/config/test_shields_configuration.py
+++ b/tests/unit/models/config/test_shields_configuration.py
@@ -103,7 +103,7 @@ def _minimal_configuration_kwargs() -> dict:
return {
"name": "test",
"service": ServiceConfiguration(),
- "llama_stack": OgxConfiguration(
+ "ogx": OgxConfiguration(
use_as_library_client=True,
library_client_config_path="tests/configuration/run.yaml",
),
diff --git a/tests/unit/models/responses/test_successful_responses.py b/tests/unit/models/responses/test_successful_responses.py
index a29ab2fdd..b80801382 100644
--- a/tests/unit/models/responses/test_successful_responses.py
+++ b/tests/unit/models/responses/test_successful_responses.py
@@ -1102,7 +1102,7 @@ def test_constructor(self) -> None:
access_log=True,
root_path="/.",
),
- llama_stack=OgxConfiguration(
+ ogx=OgxConfiguration(
url=AnyHttpUrl("http://localhost:8321"),
use_as_library_client=False,
api_key=None,
diff --git a/tests/unit/models/test_saved_prompts_config.py b/tests/unit/models/test_saved_prompts_config.py
index c97664678..7e0687fdc 100644
--- a/tests/unit/models/test_saved_prompts_config.py
+++ b/tests/unit/models/test_saved_prompts_config.py
@@ -170,7 +170,7 @@ def _build_config_dict(**overrides: Any) -> dict[str, Any]:
base: dict[str, Any] = {
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/telemetry/conftest.py b/tests/unit/telemetry/conftest.py
index 7f7f04cbb..8e971dfc7 100644
--- a/tests/unit/telemetry/conftest.py
+++ b/tests/unit/telemetry/conftest.py
@@ -336,7 +336,7 @@ def build_fully_populated_config() -> Configuration:
allow_headers=["Authorization", "Content-Type"],
),
),
- llama_stack=OgxConfiguration.model_construct(
+ ogx=OgxConfiguration.model_construct(
url=PII_LLAMA_URL,
api_key=SecretStr(PII_API_KEY),
use_as_library_client=False,
@@ -685,7 +685,7 @@ def build_minimal_config() -> Configuration:
allow_headers=["*"],
),
),
- llama_stack=OgxConfiguration.model_construct(
+ ogx=OgxConfiguration.model_construct(
url=None,
api_key=None,
use_as_library_client=True,
diff --git a/tests/unit/telemetry/test_configuration_snapshot.py b/tests/unit/telemetry/test_configuration_snapshot.py
index 9985cafb1..4b9a1c29f 100644
--- a/tests/unit/telemetry/test_configuration_snapshot.py
+++ b/tests/unit/telemetry/test_configuration_snapshot.py
@@ -436,9 +436,9 @@ def test_sensitive_fields_masked(self) -> None:
assert snapshot["service"]["tls_config"]["tls_key_path"] == CONFIGURED
assert snapshot["service"]["tls_config"]["tls_key_password"] == CONFIGURED
assert snapshot["service"]["cors"]["allow_origins"] == CONFIGURED
- assert snapshot["llama_stack"]["url"] == CONFIGURED
- assert snapshot["llama_stack"]["api_key"] == CONFIGURED
- assert snapshot["llama_stack"]["library_client_config_path"] == CONFIGURED
+ assert snapshot["ogx"]["url"] == CONFIGURED
+ assert snapshot["ogx"]["api_key"] == CONFIGURED
+ assert snapshot["ogx"]["library_client_config_path"] == CONFIGURED
assert snapshot["authentication"]["k8s_cluster_api"] == CONFIGURED
assert snapshot["authentication"]["k8s_ca_cert_path"] == CONFIGURED
assert snapshot["authentication"]["jwk_config"]["url"] == CONFIGURED
@@ -464,7 +464,7 @@ def test_passthrough_fields_preserved(self) -> None:
assert snapshot["service"]["access_log"] is False
assert snapshot["service"]["cors"]["allow_credentials"] is True
assert snapshot["service"]["cors"]["allow_methods"] == ["GET", "POST"]
- assert snapshot["llama_stack"]["use_as_library_client"] is False
+ assert snapshot["ogx"]["use_as_library_client"] is False
assert snapshot["inference"]["default_model"] == "gpt-4o-mini"
assert snapshot["inference"]["default_provider"] == "openai"
assert snapshot["authentication"]["module"] == "jwk_token"
@@ -477,8 +477,8 @@ def test_optional_none_fields(self) -> None:
snapshot["service"]["tls_config"]["tls_certificate_path"] == NOT_CONFIGURED
)
assert snapshot["service"]["tls_config"]["tls_key_path"] == NOT_CONFIGURED
- assert snapshot["llama_stack"]["url"] == NOT_CONFIGURED
- assert snapshot["llama_stack"]["api_key"] == NOT_CONFIGURED
+ assert snapshot["ogx"]["url"] == NOT_CONFIGURED
+ assert snapshot["ogx"]["api_key"] == NOT_CONFIGURED
assert snapshot["authentication"]["jwk_config"]["url"] == NOT_CONFIGURED
assert snapshot["customization"]["system_prompt"] == NOT_CONFIGURED
assert snapshot["database"]["postgres"]["host"] == NOT_CONFIGURED
@@ -556,44 +556,44 @@ def test_service_root_path_masked(self) -> None:
def test_llama_stack_timeout_passthrough(self) -> None:
"""Test llama_stack timeout passes through."""
snapshot = build_lightspeed_stack_snapshot(build_fully_populated_config())
- assert snapshot["llama_stack"]["timeout"] == 180
+ assert snapshot["ogx"]["timeout"] == 180
def test_llama_stack_max_retries_passthrough(self) -> None:
"""Test llama_stack max_retries passes through."""
snapshot = build_lightspeed_stack_snapshot(build_fully_populated_config())
- assert snapshot["llama_stack"]["max_retries"] == 5
+ assert snapshot["ogx"]["max_retries"] == 5
def test_llama_stack_retry_delay_passthrough(self) -> None:
"""Test llama_stack retry_delay passes through."""
snapshot = build_lightspeed_stack_snapshot(build_fully_populated_config())
- assert snapshot["llama_stack"]["retry_delay"] == 2
+ assert snapshot["ogx"]["retry_delay"] == 2
def test_llama_stack_allow_degraded_mode_passthrough(self) -> None:
"""Test llama_stack allow_degraded_mode passes through."""
snapshot = build_lightspeed_stack_snapshot(build_fully_populated_config())
- assert snapshot["llama_stack"]["allow_degraded_mode"] is True
+ assert snapshot["ogx"]["allow_degraded_mode"] is True
def test_llama_stack_config_baseline_passthrough(self) -> None:
"""Test llama_stack config baseline passes through."""
snapshot = build_lightspeed_stack_snapshot(build_fully_populated_config())
- assert snapshot["llama_stack"]["config"]["baseline"] == "default"
+ assert snapshot["ogx"]["config"]["baseline"] == "default"
def test_llama_stack_config_profile_masked(self) -> None:
"""Test llama_stack config profile is masked as sensitive."""
snapshot = build_lightspeed_stack_snapshot(build_fully_populated_config())
- assert snapshot["llama_stack"]["config"]["profile"] == CONFIGURED
+ assert snapshot["ogx"]["config"]["profile"] == CONFIGURED
def test_llama_stack_config_native_override_masked(self) -> None:
"""Test llama_stack config native_override is masked as sensitive."""
snapshot = build_lightspeed_stack_snapshot(build_fully_populated_config())
- assert snapshot["llama_stack"]["config"]["native_override"] == CONFIGURED
+ assert snapshot["ogx"]["config"]["native_override"] == CONFIGURED
def test_llama_stack_config_none(self) -> None:
"""Test llama_stack config fields when config is None."""
snapshot = build_lightspeed_stack_snapshot(build_minimal_config())
- assert snapshot["llama_stack"]["config"]["baseline"] is None
- assert snapshot["llama_stack"]["config"]["profile"] == NOT_CONFIGURED
- assert snapshot["llama_stack"]["config"]["native_override"] == NOT_CONFIGURED
+ assert snapshot["ogx"]["config"]["baseline"] is None
+ assert snapshot["ogx"]["config"]["profile"] == NOT_CONFIGURED
+ assert snapshot["ogx"]["config"]["native_override"] == NOT_CONFIGURED
def test_inference_context_windows_passthrough(self) -> None:
"""Test inference context_windows passes through."""
@@ -1161,8 +1161,8 @@ async def test_combines_both_sources(self) -> None:
"""Test that snapshot contains both lightspeed_stack and llama_stack."""
result = await build_configuration_snapshot(build_minimal_config(), None)
assert "lightspeed_stack" in result
- assert "llama_stack" in result
- assert result["llama_stack"] == {"status": NOT_AVAILABLE}
+ assert "ogx" in result
+ assert result["ogx"] == {"status": NOT_AVAILABLE}
assert result["lightspeed_stack"]["name"] == "minimal"
@pytest.mark.asyncio
@@ -1172,7 +1172,7 @@ async def test_with_llama_stack_config(self, llama_stack_config_file: str) -> No
build_minimal_config(), llama_stack_config_file
)
assert result["lightspeed_stack"]["name"] == "minimal"
- assert result["llama_stack"]["version"] == 2
+ assert result["ogx"]["version"] == 2
# =============================================================================
diff --git a/tests/unit/test_configuration.py b/tests/unit/test_configuration.py
index 659401e6f..f9977893e 100644
--- a/tests/unit/test_configuration.py
+++ b/tests/unit/test_configuration.py
@@ -154,7 +154,7 @@ def test_init_from_dict() -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -262,7 +262,7 @@ def test_init_from_dict_with_shields() -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -323,7 +323,7 @@ def test_init_from_dict_with_mcp_servers() -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -376,7 +376,7 @@ def test_init_from_dict_with_authorization_configuration() -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "xyzzy",
"url": "http://x.y.com:1234",
"use_as_library_client": False,
@@ -414,7 +414,7 @@ def test_load_proper_configuration(tmpdir: Path) -> None:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: xyzzy
@@ -444,7 +444,7 @@ def test_load_configuration_with_mcp_servers(tmpdir: Path) -> None:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: test-key
@@ -482,7 +482,7 @@ def test_mcp_servers_property_empty() -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://localhost:8321",
"use_as_library_client": False,
@@ -513,7 +513,7 @@ def test_mcp_servers_property_with_servers() -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://localhost:8321",
"use_as_library_client": False,
@@ -613,7 +613,7 @@ def test_load_configuration_with_customization_system_prompt_path(tmpdir: Path)
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: test-key
@@ -651,7 +651,7 @@ def test_load_configuration_with_customization_system_prompt(tmpdir: Path) -> No
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: test-key
@@ -694,7 +694,7 @@ def test_configuration_with_profile_customization(tmpdir: Path) -> None:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: test-key
@@ -735,7 +735,7 @@ def test_configuration_with_all_customizations(tmpdir: Path) -> None:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: test-key
@@ -772,7 +772,7 @@ def test_configuration_with_sqlite_conversation_cache(tmpdir: Path) -> None:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: test-key
@@ -809,7 +809,7 @@ def test_configuration_with_in_memory_conversation_cache(tmpdir: Path) -> None:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: test-key
@@ -846,7 +846,7 @@ def test_configuration_with_quota_handlers_no_storage(tmpdir: Path) -> None:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: test-key
@@ -898,7 +898,7 @@ def test_configuration_with_token_history_no_storage(tmpdir: Path) -> None:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: test-key
@@ -936,7 +936,7 @@ def test_configuration_with_quota_handlers(tmpdir: Path) -> None:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: test-key
@@ -1001,7 +1001,7 @@ def test_load_configuration_with_azure_entra_id(tmpdir: Path) -> None:
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
api_key: test-key
url: http://localhost:8321
use_as_library_client: false
@@ -1036,7 +1036,7 @@ def test_load_configuration_with_incomplete_azure_entra_id_raises(tmpdir: Path)
workers: 1
color_log: true
access_log: true
-llama_stack:
+ogx:
api_key: test-key
url: http://localhost:8321
use_as_library_client: false
@@ -1066,7 +1066,7 @@ def test_rag_id_mapping_includes_solr_when_okp_in_inline() -> None:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "k",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -1094,7 +1094,7 @@ def test_rag_id_mapping_includes_solr_when_okp_in_tool() -> None:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "k",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -1124,7 +1124,7 @@ def test_rag_id_mapping_with_byok(tmp_path: Path) -> None:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "k",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -1156,7 +1156,7 @@ def test_rag_id_mapping_with_byok_and_okp(tmp_path: Path) -> None:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "k",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -1221,7 +1221,7 @@ def test_score_multiplier_mapping_with_byok_defaults(tmp_path: Path) -> None:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "k",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -1255,7 +1255,7 @@ def test_score_multiplier_mapping_with_custom_values(tmp_path: Path) -> None:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "k",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -1307,7 +1307,7 @@ def test_relevance_cutoff_mapping_with_byok_defaults(tmp_path: Path) -> None:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "k",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -1343,7 +1343,7 @@ def test_relevance_cutoff_mapping_with_custom_values(tmp_path: Path) -> None:
{
"name": "test",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"api_key": "k",
"url": "http://test.com:1234",
"use_as_library_client": False,
@@ -1412,7 +1412,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": "https://www.west.com/",
"api_key": "api_key",
"use_as_library_client": False,
@@ -1638,7 +1638,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
"allow_headers": ["At professor seek hospital eat."],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"api_key": None,
"use_as_library_client": None,
@@ -1930,7 +1930,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": "http://www.cameron.com/",
"api_key": "xyzzy",
"use_as_library_client": False,
@@ -2123,7 +2123,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
"allow_headers": ["Experience east herself outside."],
},
},
- "llama_stack": {
+ "ogx": {
"url": "https://www.savage.com/",
"api_key": "xyzzy",
"use_as_library_client": False,
@@ -2357,7 +2357,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"api_key": "xyzzy",
"use_as_library_client": True,
@@ -2570,7 +2570,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"api_key": "xyzzy",
"use_as_library_client": None,
@@ -2850,7 +2850,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": "http://fowler-webb.com/",
"api_key": "xyzzy",
"use_as_library_client": None,
@@ -3093,7 +3093,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"api_key": "xyzzy",
"use_as_library_client": True,
@@ -3307,7 +3307,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
"allow_headers": ["Form figure letter far."],
},
},
- "llama_stack": {
+ "ogx": {
"url": "https://murphy-thomas.com/",
"api_key": None,
"use_as_library_client": False,
@@ -3515,7 +3515,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
"allow_headers": ["Site build professor affect consider."],
},
},
- "llama_stack": {
+ "ogx": {
"url": None,
"api_key": "xyzzy",
"use_as_library_client": False,
@@ -3750,7 +3750,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": "http://willis-jensen.com/",
"api_key": "xyzzy",
"use_as_library_client": None,
@@ -3984,7 +3984,7 @@ def test_relevance_cutoff_mapping_not_loaded() -> None:
],
},
},
- "llama_stack": {
+ "ogx": {
"url": "https://carroll.com/",
"api_key": "/",
"use_as_library_client": None,
@@ -4189,7 +4189,7 @@ def test_native_override_env_refs_not_resolved(
monkeypatch.setenv("LCORE_TEST_MODEL", "gpt-4o-mini")
config_dict = {
"inference": {"default_model": "${env.LCORE_TEST_MODEL}"},
- "llama_stack": {
+ "ogx": {
"config": {
"baseline": "empty",
"native_override": {
@@ -4206,13 +4206,41 @@ def test_native_override_env_refs_not_resolved(
resolved = replace_env_vars_preserving_native_override(config_dict)
# native_override keeps the reference verbatim — the secret never resolved
+ override_api_key = resolved["ogx"]["config"]["native_override"]["providers"][
+ "inference"
+ ][0]["config"]["api_key"]
+ assert override_api_key == "${env.LCORE_TEST_SECRET}"
+ assert "supersecret" not in str(resolved["ogx"])
+ # everything outside native_override still resolves
+ assert resolved["inference"]["default_model"] == "gpt-4o-mini"
+
+
+def test_replace_env_vars_preserves_native_override_under_deprecated_llama_stack_key(
+ monkeypatch: pytest.MonkeyPatch,
+) -> None:
+ """Deprecated ``llama_stack`` key is treated like ``ogx`` for env resolution."""
+ monkeypatch.setenv("LCORE_TEST_SECRET", "supersecret")
+ config_dict = {
+ "llama_stack": {
+ "config": {
+ "native_override": {
+ "providers": {
+ "inference": [
+ {"config": {"api_key": "${env.LCORE_TEST_SECRET}"}}
+ ]
+ }
+ }
+ }
+ }
+ }
+
+ resolved = replace_env_vars_preserving_native_override(config_dict)
+
override_api_key = resolved["llama_stack"]["config"]["native_override"][
"providers"
]["inference"][0]["config"]["api_key"]
assert override_api_key == "${env.LCORE_TEST_SECRET}"
assert "supersecret" not in str(resolved["llama_stack"])
- # everything outside native_override still resolves
- assert resolved["inference"]["default_model"] == "gpt-4o-mini"
def test_replace_env_vars_without_native_override_resolves_all(
diff --git a/tests/unit/test_lightspeed_stack.py b/tests/unit/test_lightspeed_stack.py
index ae8a31445..e2da56084 100644
--- a/tests/unit/test_lightspeed_stack.py
+++ b/tests/unit/test_lightspeed_stack.py
@@ -72,7 +72,7 @@ def test_main_migrate_config_writes_unified_file(
yaml.dump(
{
"name": "LCS",
- "llama_stack": {
+ "ogx": {
"use_as_library_client": True,
"library_client_config_path": "run.yaml",
},
@@ -98,9 +98,9 @@ def test_main_migrate_config_writes_unified_file(
main() # returns early, never starts uvicorn
migrated = yaml.safe_load(out_path.read_text(encoding="utf-8"))
- assert "library_client_config_path" not in migrated["llama_stack"]
- assert migrated["llama_stack"]["config"]["baseline"] == "empty"
- assert migrated["llama_stack"]["config"]["native_override"] == {
+ assert "library_client_config_path" not in migrated["ogx"]
+ assert migrated["ogx"]["config"]["baseline"] == "empty"
+ assert migrated["ogx"]["config"]["native_override"] == {
"version": 2,
"apis": ["inference"],
}
@@ -148,7 +148,7 @@ def test_main_warns_on_legacy_two_file_config(
run_yaml = tmp_path / "run.yaml"
run_yaml.write_text("version: 2\n", encoding="utf-8")
config_yaml = COMMON_CONFIG_SECTIONS + f"""
-llama_stack:
+ogx:
use_as_library_client: true
library_client_config_path: {run_yaml}
"""
@@ -170,7 +170,7 @@ def test_main_does_not_warn_in_unified_mode(
) -> None:
"""A unified-mode config (llama_stack.config) emits no deprecation WARN."""
config_yaml = COMMON_CONFIG_SECTIONS + """
-llama_stack:
+ogx:
use_as_library_client: true
config:
baseline: default
@@ -187,7 +187,7 @@ def test_main_does_not_warn_in_server_mode(
) -> None:
"""A server-mode config (url, no legacy fields) emits no deprecation WARN."""
config_yaml = COMMON_CONFIG_SECTIONS + """
-llama_stack:
+ogx:
use_as_library_client: false
url: http://localhost:8321
api_key: xyzzy
diff --git a/tests/unit/test_llama_stack_configuration.py b/tests/unit/test_llama_stack_configuration.py
index 27c1137db..947a076e5 100644
--- a/tests/unit/test_llama_stack_configuration.py
+++ b/tests/unit/test_llama_stack_configuration.py
@@ -713,7 +713,7 @@ def test_generate_configuration_with_pydantic_model(tmp_path: Path) -> None:
cfg = Configuration( # type: ignore[call-arg]
name="test",
service=ServiceConfiguration(), # type: ignore[call-arg]
- llama_stack=OgxConfiguration( # type: ignore[call-arg]
+ ogx=OgxConfiguration( # type: ignore[call-arg]
use_as_library_client=True,
library_client_config_path="run.yaml",
),
diff --git a/tests/unit/test_llama_stack_synthesize.py b/tests/unit/test_llama_stack_synthesize.py
index a59672df2..e94efa828 100644
--- a/tests/unit/test_llama_stack_synthesize.py
+++ b/tests/unit/test_llama_stack_synthesize.py
@@ -560,7 +560,7 @@ def test_synthesize_default_baseline_ensures_mcp() -> None:
},
}
lcs_config = {
- "llama_stack": {"config": {"baseline": "default"}},
+ "ogx": {"config": {"baseline": "default"}},
"inference": {"providers": []},
}
result = synthesize_configuration(lcs_config, default_baseline=default_baseline)
@@ -571,7 +571,7 @@ def test_synthesize_default_baseline_ensures_mcp() -> None:
def test_synthesize_empty_baseline_skips_mcp_ensure() -> None:
"""baseline: empty must not assume MCP."""
lcs_config = {
- "llama_stack": {
+ "ogx": {
"config": {
"baseline": "empty",
"native_override": {
@@ -590,7 +590,7 @@ def test_synthesize_empty_baseline_skips_mcp_ensure() -> None:
def test_synthesize_empty_baseline_keeps_mcp_from_override() -> None:
"""MCP already in native_override is preserved when ensure is skipped."""
lcs_config = {
- "llama_stack": {
+ "ogx": {
"config": {
"baseline": "empty",
"native_override": {
@@ -618,7 +618,7 @@ def test_synthesize_native_override_can_opt_out_of_mcp() -> None:
"providers": {"tool_runtime": []},
}
lcs_config = {
- "llama_stack": {
+ "ogx": {
"config": {
"baseline": "default",
"native_override": {
@@ -654,7 +654,7 @@ def test_synthesize_profile_missing_mcp_gets_ensure(
encoding="utf-8",
)
lcs_config = {
- "llama_stack": {"config": {"profile": str(profile)}},
+ "ogx": {"config": {"profile": str(profile)}},
}
result = synthesize_configuration(lcs_config)
assert "tool_runtime" in result["apis"]
@@ -666,7 +666,7 @@ def test_synthesize_empty_profile_still_ensures_mcp(tmp_path: Path) -> None:
profile = tmp_path / "empty-profile.yaml"
profile.write_text("{}\n", encoding="utf-8")
lcs_config = {
- "llama_stack": {"config": {"profile": str(profile)}},
+ "ogx": {"config": {"profile": str(profile)}},
}
result = synthesize_configuration(lcs_config)
assert "tool_runtime" in result["apis"]
@@ -676,7 +676,7 @@ def test_synthesize_empty_profile_still_ensures_mcp(tmp_path: Path) -> None:
def test_synthesize_from_empty_baseline_only_native_override() -> None:
"""baseline: empty starts from {} so native_override is the whole output."""
lcs = {
- "llama_stack": {
+ "ogx": {
"config": {
"baseline": "empty",
"native_override": {"version": 2, "apis": ["inference"]},
@@ -690,7 +690,7 @@ def test_synthesize_from_empty_baseline_only_native_override() -> None:
def test_synthesize_from_default_baseline_applies_inference_and_override() -> None:
"""Default baseline + high-level inference + native_override compose (R1/R5)."""
lcs = {
- "llama_stack": {
+ "ogx": {
"config": {
"baseline": "default",
"native_override": {"safety": {"default_shield_id": "custom"}},
@@ -717,7 +717,7 @@ def test_synthesize_vllm_appends_and_keeps_conditional_openai(
monkeypatch.delenv("OPENAI_API_KEY", raising=False)
monkeypatch.setenv("VLLM_API_KEY", "vllm-test-key")
lcs = {
- "llama_stack": {"config": {"baseline": "default"}},
+ "ogx": {"config": {"baseline": "default"}},
"inference": {
"providers": [
{
@@ -756,8 +756,8 @@ def _byo_llm_deprecation_warnings(caplog: pytest.LogCaptureFixture) -> list[str]
@pytest.mark.parametrize(
"lcs",
[
- {"llama_stack": {"config": {"baseline": "default"}}},
- {"llama_stack": {"config": {}}},
+ {"ogx": {"config": {"baseline": "default"}}},
+ {"ogx": {"config": {}}},
{},
],
)
@@ -781,7 +781,7 @@ def test_synthesize_default_path_keeps_conditional_openai(
def test_synthesize_byo_llm_strips_openai(caplog: pytest.LogCaptureFixture) -> None:
"""byo-llm drops the OpenAI row, keeps the embedder, and does not warn."""
- lcs = {"llama_stack": {"config": {"baseline": "byo-llm"}}}
+ lcs = {"ogx": {"config": {"baseline": "byo-llm"}}}
with caplog.at_level(
"WARNING", logger="lightspeed_stack.llama_stack_configuration"
):
@@ -796,7 +796,7 @@ def test_synthesize_byo_llm_strips_openai(caplog: pytest.LogCaptureFixture) -> N
def test_synthesize_byo_llm_with_vllm_appends_without_openai() -> None:
"""byo-llm + high-level vLLM appends vLLM and does not restore OpenAI."""
lcs = {
- "llama_stack": {"config": {"baseline": "byo-llm"}},
+ "ogx": {"config": {"baseline": "byo-llm"}},
"inference": {
"providers": [
{
@@ -821,7 +821,7 @@ def test_synthesize_byo_llm_with_vllm_appends_without_openai() -> None:
def test_synthesize_byo_llm_with_openai_appends_one_row() -> None:
"""byo-llm + high-level openai appends a single openai row."""
lcs = {
- "llama_stack": {"config": {"baseline": "byo-llm"}},
+ "ogx": {"config": {"baseline": "byo-llm"}},
"inference": {
"providers": [{"type": "openai", "api_key_env": "OPENAI_API_KEY"}]
},
@@ -838,7 +838,7 @@ def test_synthesize_empty_baseline_does_not_strip_openai(
) -> None:
"""baseline: empty is unchanged: no OpenAI strip and no deprecation WARN."""
lcs = {
- "llama_stack": {
+ "ogx": {
"config": {
"baseline": "empty",
"native_override": {"version": 2, "apis": ["inference"]},
@@ -873,7 +873,7 @@ def test_synthesize_profile_ignores_byo_llm(
}
(tmp_path / "my-profile.yaml").write_text(yaml.dump(profile), encoding="utf-8")
lcs = {
- "llama_stack": {
+ "ogx": {
"config": {
"profile": "my-profile.yaml",
"baseline": "byo-llm",
@@ -895,14 +895,14 @@ def test_synthesize_loads_profile_relative_to_config_dir(tmp_path: Path) -> None
"""A relative profile: resolves against the config file's directory (R8)."""
profile = {"version": 2, "apis": ["inference"], "marker": "from-profile"}
(tmp_path / "my-profile.yaml").write_text(yaml.dump(profile), encoding="utf-8")
- lcs = {"llama_stack": {"config": {"profile": "my-profile.yaml"}}}
+ lcs = {"ogx": {"config": {"profile": "my-profile.yaml"}}}
result = synthesize_configuration(lcs, config_file_dir=str(tmp_path))
assert result["marker"] == "from-profile"
def test_synthesize_uses_provided_default_baseline() -> None:
"""An explicit default_baseline arg is used without touching the shipped one."""
- lcs: dict[str, Any] = {"llama_stack": {"config": {"baseline": "default"}}}
+ lcs: dict[str, Any] = {"ogx": {"config": {"baseline": "default"}}}
result = synthesize_configuration(lcs, default_baseline={"marker": "injected"})
assert result["marker"] == "injected"
@@ -910,7 +910,7 @@ def test_synthesize_uses_provided_default_baseline() -> None:
def test_synthesize_enriches_byok_rag_like_legacy() -> None:
"""BYOK RAG enrichment runs during synthesis for legacy parity (R7)."""
lcs = {
- "llama_stack": {"config": {"baseline": "empty"}},
+ "ogx": {"config": {"baseline": "empty"}},
"rag": {
"byok": {
"stores": [
@@ -933,7 +933,7 @@ def test_synthesize_enriches_byok_rag_like_legacy() -> None:
def test_synthesize_includes_vector_store() -> None:
"""vector_store enrichment runs during unified synthesis."""
lcs_config = {
- "llama_stack": {
+ "ogx": {
"use_as_library_client": True,
"config": {"baseline": "default"},
},
@@ -967,9 +967,7 @@ def test_synthesize_includes_vector_store() -> None:
def test_synthesize_to_file_writes_mode_0600(tmp_path: Path) -> None:
"""The synthesized file is written owner-only (R10) and round-trips."""
out = tmp_path / "nested" / "run.yaml"
- lcs = {
- "llama_stack": {"config": {"baseline": "empty", "native_override": {"v": 2}}}
- }
+ lcs = {"ogx": {"config": {"baseline": "empty", "native_override": {"v": 2}}}}
synthesize_to_file(lcs, str(out), str(tmp_path))
assert out.exists()
assert stat.S_IMODE(os.stat(out).st_mode) == 0o600
@@ -981,9 +979,7 @@ def test_synthesize_to_file_tightens_perms_on_overwrite(tmp_path: Path) -> None:
out = tmp_path / "run.yaml"
out.write_text("stale", encoding="utf-8")
os.chmod(out, 0o644)
- lcs = {
- "llama_stack": {"config": {"baseline": "empty", "native_override": {"v": 3}}}
- }
+ lcs = {"ogx": {"config": {"baseline": "empty", "native_override": {"v": 3}}}}
synthesize_to_file(lcs, str(out), str(tmp_path))
assert stat.S_IMODE(os.stat(out).st_mode) == 0o600
assert yaml.safe_load(out.read_text(encoding="utf-8")) == {"v": 3}
@@ -1025,7 +1021,7 @@ def _write_legacy_pair(tmp_path: Path) -> tuple[str, str]:
lcs = {
"name": "LCS",
"service": {"host": "localhost", "port": 8080},
- "llama_stack": {
+ "ogx": {
"use_as_library_client": True,
"library_client_config_path": "run.yaml",
},
@@ -1046,11 +1042,11 @@ def test_migrate_config_dumb_structure(tmp_path: Path) -> None:
assert migrated["name"] == "LCS"
assert migrated["service"] == {"host": "localhost", "port": 8080}
# legacy path dropped; use_as_library_client preserved
- assert "library_client_config_path" not in migrated["llama_stack"]
- assert migrated["llama_stack"]["use_as_library_client"] is True
+ assert "library_client_config_path" not in migrated["ogx"]
+ assert migrated["ogx"]["use_as_library_client"] is True
# whole run.yaml lifted into native_override with an empty baseline
- assert migrated["llama_stack"]["config"]["baseline"] == "empty"
- assert migrated["llama_stack"]["config"]["native_override"] == _LEGACY_RUN_YAML
+ assert migrated["ogx"]["config"]["baseline"] == "empty"
+ assert migrated["ogx"]["config"]["native_override"] == _LEGACY_RUN_YAML
def test_migrate_then_synthesize_reproduces_run_yaml(tmp_path: Path) -> None:
@@ -1105,7 +1101,7 @@ def test_reference_profiles_exist() -> None:
@pytest.mark.parametrize("profile_path", REFERENCE_PROFILES, ids=lambda p: p.name)
def test_reference_profile_loads_via_synthesizer(profile_path: Path) -> None:
"""Every examples/profiles/*.yaml loads cleanly as a synthesis baseline."""
- lcs = {"llama_stack": {"config": {"profile": profile_path.name}}}
+ lcs = {"ogx": {"config": {"profile": profile_path.name}}}
result = synthesize_configuration(lcs, config_file_dir=str(profile_path.parent))
# The profile drives the baseline: run.yaml-shaped keys survive synthesis.
assert result["version"] == 2
@@ -1120,16 +1116,14 @@ def test_reference_profile_loads_via_synthesizer(profile_path: Path) -> None:
def test_has_synthesis_input_detection() -> None:
"""The raw-dict detection mirrors the root-model synthesis-input check."""
- assert has_synthesis_input({"llama_stack": {"config": {"baseline": "default"}}})
+ assert has_synthesis_input({"ogx": {"config": {"baseline": "default"}}})
assert has_synthesis_input({"inference": {"providers": [{"type": "openai"}]}})
assert has_synthesis_input({"vector_store": {"providers": [{"id": "nb"}]}})
assert not has_synthesis_input({})
- assert not has_synthesis_input(
- {"llama_stack": {"library_client_config_path": "run.yaml"}}
- )
+ assert not has_synthesis_input({"ogx": {"library_client_config_path": "run.yaml"}})
# empty provider lists and null sections are not synthesis inputs
assert not has_synthesis_input({"inference": {"providers": []}})
- assert not has_synthesis_input({"inference": None, "llama_stack": None})
+ assert not has_synthesis_input({"inference": None, "ogx": None})
def _run_main(monkeypatch: pytest.MonkeyPatch, argv: list[str]) -> None:
@@ -1148,7 +1142,7 @@ def test_main_unified_config_synthesizes_without_input_file(
to exist.
"""
lcs = {
- "llama_stack": {
+ "ogx": {
"config": {
"baseline": "empty",
"native_override": {"version": 2, "marker": "synthesized"},
@@ -1185,7 +1179,7 @@ def test_main_unified_config_resolves_relative_profile(
"""A relative profile: in the config resolves against the config's dir (R8)."""
profile = {"version": 2, "apis": ["inference"], "marker": "from-profile"}
(tmp_path / "my-profile.yaml").write_text(yaml.dump(profile), encoding="utf-8")
- lcs = {"llama_stack": {"config": {"profile": "my-profile.yaml"}}}
+ lcs = {"ogx": {"config": {"profile": "my-profile.yaml"}}}
cfg_path = tmp_path / "lightspeed-stack.yaml"
cfg_path.write_text(yaml.dump(lcs), encoding="utf-8")
out_path = tmp_path / "generated-run.yaml"
@@ -1205,7 +1199,7 @@ def test_main_legacy_config_enriches_input_file(
run_path = tmp_path / "run.yaml"
run_path.write_text(yaml.dump(run_yaml), encoding="utf-8")
lcs = {
- "llama_stack": {"library_client_config_path": str(run_path)},
+ "ogx": {"library_client_config_path": str(run_path)},
"rag": {
"byok": {
"stores": [
diff --git a/tests/unit/utils/test_models_dumper.py b/tests/unit/utils/test_models_dumper.py
index 77d55530f..124134943 100644
--- a/tests/unit/utils/test_models_dumper.py
+++ b/tests/unit/utils/test_models_dumper.py
@@ -871,7 +871,7 @@ def test_dump_models(tmpdir: Path) -> None:
"description": "This section contains Lightspeed Core Stack service configuration.",
"title": "Service configuration"
},
- "llama_stack": {
+ "ogx": {
"$ref": "`#/components/schemas/`OgxConfiguration",
"description": "This section contains OGX configuration. Lightspeed Core Stack service can call OGX in library mode or in server mode.",
"title": "OGX configuration"
@@ -1066,7 +1066,7 @@ def test_dump_models(tmpdir: Path) -> None:
"required": [
"name",
"service",
- "llama_stack",
+ "ogx",
"user_data_collection"
],
"title": "Configuration",
@@ -1102,7 +1102,7 @@ def test_dump_models(tmpdir: Path) -> None:
"default_model": "gpt-4-turbo",
"default_provider": "openai"
},
- "llama_stack": {
+ "ogx": {
"api_key": "*****",
"library_client_config_path": null,
"url": "http://localhost:8321",
diff --git a/tests/unit/utils/test_prompts.py b/tests/unit/utils/test_prompts.py
index 6b25f7055..e7f45dab1 100644
--- a/tests/unit/utils/test_prompts.py
+++ b/tests/unit/utils/test_prompts.py
@@ -130,7 +130,7 @@ def setup_configuration_fixture() -> AppConfig:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
diff --git a/tests/unit/utils/test_transcripts.py b/tests/unit/utils/test_transcripts.py
index 767503752..fced39ace 100644
--- a/tests/unit/utils/test_transcripts.py
+++ b/tests/unit/utils/test_transcripts.py
@@ -27,7 +27,7 @@ def test_construct_transcripts_path(mocker: MockerFixture) -> None:
"color_log": True,
"access_log": True,
},
- "llama_stack": {
+ "ogx": {
"api_key": "test-key",
"url": "http://test.com:1234",
"use_as_library_client": False,
|