From 1b00bdc49d747869f3e370e7a97ccfb1d2ba6751 Mon Sep 17 00:00:00 2001 From: Adil Hafeez Date: Wed, 11 Feb 2026 20:39:53 -0800 Subject: [PATCH] Fix remaining arch references found in second pass MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - config/docker-compose.dev.yaml: ARCH_CONFIG_FILE → PLANO_CONFIG_FILE, arch_config.yaml → plano_config.yaml, archgw_logs → plano_logs - config/test_passthrough.yaml: container mount path - tests/e2e/docker-compose.yaml: source file path (was still arch_config.yaml) - cli/planoai/core.py: comment and log message - crates/brightstaff/src/tracing/constants.rs: doc comment - tests/{e2e,archgw}/common.py: get_arch_messages → get_plano_messages, arch_state/arch_messages variables renamed - tests/{e2e,archgw}/test_prompt_gateway.py: updated imports and usages - demos/shared/test_runner/{common,test_demos}.py: same renames - tests/e2e/test_model_alias_routing.py: docstring - .dockerignore: archgw_modelserver → plano_modelserver - demos/use_cases/claude_code_router/pretty_model_resolution.sh: container name Note: x-arch-* HTTP header values and Rust constant names intentionally preserved for backwards compatibility with existing deployments. Co-Authored-By: Claude Opus 4.6 --- .dockerignore | 4 ++-- cli/planoai/core.py | 4 ++-- config/docker-compose.dev.yaml | 6 ++--- config/test_passthrough.yaml | 2 +- crates/brightstaff/src/tracing/constants.rs | 2 +- demos/shared/test_runner/common.py | 22 +++++++++---------- demos/shared/test_runner/test_demos.py | 10 ++++----- .../pretty_model_resolution.sh | 2 +- tests/archgw/common.py | 22 +++++++++---------- tests/archgw/test_prompt_gateway.py | 10 ++++----- tests/e2e/common.py | 22 +++++++++---------- tests/e2e/docker-compose.yaml | 2 +- tests/e2e/test_model_alias_routing.py | 2 +- tests/e2e/test_prompt_gateway.py | 20 ++++++++--------- 14 files changed, 65 insertions(+), 65 deletions(-) diff --git a/.dockerignore b/.dockerignore index 8ce695aa..ad3fa1a4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -33,8 +33,8 @@ cli/__pycache__/ cli/planoai/__pycache__/ # Python model server -archgw_modelserver/ -arch_tools/ +plano_modelserver/ +plano_tools/ # Misc *.md diff --git a/cli/planoai/core.py b/cli/planoai/core.py index 238aa648..b7195f46 100644 --- a/cli/planoai/core.py +++ b/cli/planoai/core.py @@ -167,7 +167,7 @@ def start_cli_agent(plano_config_file=None, settings_json="{}"): env = os.environ.copy() env.update( { - "ANTHROPIC_AUTH_TOKEN": "test", # Use test token for arch + "ANTHROPIC_AUTH_TOKEN": "test", # Use test token for plano "ANTHROPIC_API_KEY": "", "ANTHROPIC_BASE_URL": f"http://{host}:{port}", "NO_PROXY": host, @@ -220,7 +220,7 @@ def start_cli_agent(plano_config_file=None, settings_json="{}"): # Use claude from PATH claude_path = "claude" - log.info(f"Connecting Claude Code Agent to Arch at {host}:{port}") + log.info(f"Connecting Claude Code Agent to Plano at {host}:{port}") try: subprocess.run([claude_path] + claude_args, env=env, check=True) diff --git a/config/docker-compose.dev.yaml b/config/docker-compose.dev.yaml index 2e061939..15d75a62 100644 --- a/config/docker-compose.dev.yaml +++ b/config/docker-compose.dev.yaml @@ -8,14 +8,14 @@ services: - "12000:12000" - "19901:9901" volumes: - - ${ARCH_CONFIG_FILE:-../demos/samples_python/weather_forecast/arch_config.yaml}:/app/arch_config.yaml + - ${PLANO_CONFIG_FILE:-../demos/samples_python/weather_forecast/plano_config.yaml}:/app/plano_config.yaml - /etc/ssl/cert.pem:/etc/ssl/cert.pem - ./envoy.template.yaml:/app/envoy.template.yaml - - ./arch_config_schema.yaml:/app/arch_config_schema.yaml + - ./plano_config_schema.yaml:/app/plano_config_schema.yaml - ../cli/planoai/config_generator.py:/app/planoai/config_generator.py - ../crates/target/wasm32-wasip1/release/llm_gateway.wasm:/etc/envoy/proxy-wasm-plugins/llm_gateway.wasm - ../crates/target/wasm32-wasip1/release/prompt_gateway.wasm:/etc/envoy/proxy-wasm-plugins/prompt_gateway.wasm - - ~/archgw_logs:/var/log/ + - ~/plano_logs:/var/log/ extra_hosts: - "host.docker.internal:host-gateway" environment: diff --git a/config/test_passthrough.yaml b/config/test_passthrough.yaml index 7e59370e..b9c74ae8 100644 --- a/config/test_passthrough.yaml +++ b/config/test_passthrough.yaml @@ -7,7 +7,7 @@ # # To test: # docker build -t plano-passthrough-test . -# docker run -d -p 10000:10000 -v $(pwd)/config/test_passthrough.yaml:/app/arch_config.yaml plano-passthrough-test +# docker run -d -p 10000:10000 -v $(pwd)/config/test_passthrough.yaml:/app/plano_config.yaml plano-passthrough-test # # curl http://localhost:10000/v1/chat/completions \ # -H "Authorization: Bearer sk-your-virtual-key" \ diff --git a/crates/brightstaff/src/tracing/constants.rs b/crates/brightstaff/src/tracing/constants.rs index 6be7f02f..15e3cf57 100644 --- a/crates/brightstaff/src/tracing/constants.rs +++ b/crates/brightstaff/src/tracing/constants.rs @@ -182,7 +182,7 @@ pub mod signals { // Operation Names // ============================================================================= -/// Canonical operation name components for Arch Gateway +/// Canonical operation name components for Plano Gateway pub mod operation_component { /// Inbound request handling pub const INBOUND: &str = "plano(inbound)"; diff --git a/demos/shared/test_runner/common.py b/demos/shared/test_runner/common.py index dda66350..ae906c82 100644 --- a/demos/shared/test_runner/common.py +++ b/demos/shared/test_runner/common.py @@ -19,17 +19,17 @@ def get_data_chunks(stream, n=1): return chunks -def get_arch_messages(response_json): - arch_messages = [] +def get_plano_messages(response_json): + plano_messages = [] if response_json and "metadata" in response_json: - # load arch_state from metadata - arch_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") - # parse arch_state into json object - arch_state = json.loads(arch_state_str) - # load messages from arch_state - arch_messages_str = arch_state.get("messages", "[]") + # load plano_state from metadata + plano_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") + # parse plano_state into json object + plano_state = json.loads(plano_state_str) + # load messages from plano_state + plano_messages_str = plano_state.get("messages", "[]") # parse messages into json object - arch_messages = json.loads(arch_messages_str) - # append messages from Plano gateway to history - return arch_messages + plano_messages = json.loads(plano_messages_str) + # append messages from plano gateway to history + return plano_messages return [] diff --git a/demos/shared/test_runner/test_demos.py b/demos/shared/test_runner/test_demos.py index 1c071a51..53d612e4 100644 --- a/demos/shared/test_runner/test_demos.py +++ b/demos/shared/test_runner/test_demos.py @@ -1,6 +1,6 @@ import json import os -from common import get_arch_messages +from common import get_plano_messages import pytest import requests from deepdiff import DeepDiff @@ -46,10 +46,10 @@ def test_demos(test_data): assert choices[0]["message"]["role"] == "assistant" assert expected_output_contains.lower() in choices[0]["message"]["content"].lower() - # now verify arch_messages (tool call and api response) that are sent as response metadata - arch_messages = get_arch_messages(response_json) - assert len(arch_messages) == 2 - tool_calls_message = arch_messages[0] + # now verify plano_messages (tool call and api response) that are sent as response metadata + plano_messages = get_plano_messages(response_json) + assert len(plano_messages) == 2 + tool_calls_message = plano_messages[0] tool_calls = tool_calls_message.get("tool_calls", []) assert len(tool_calls) > 0 diff --git a/demos/use_cases/claude_code_router/pretty_model_resolution.sh b/demos/use_cases/claude_code_router/pretty_model_resolution.sh index 7d01c8d1..b6187e65 100644 --- a/demos/use_cases/claude_code_router/pretty_model_resolution.sh +++ b/demos/use_cases/claude_code_router/pretty_model_resolution.sh @@ -7,7 +7,7 @@ # - colors resolved_model magenta # - removes provider and streaming -docker logs -f archgw 2>&1 \ +docker logs -f plano 2>&1 \ | awk ' /MODEL_RESOLUTION:/ && $0 !~ /Arch-Router/ { # extract timestamp between first [ and ] diff --git a/tests/archgw/common.py b/tests/archgw/common.py index f87f6403..20eb0aaf 100644 --- a/tests/archgw/common.py +++ b/tests/archgw/common.py @@ -99,17 +99,17 @@ def get_data_chunks(stream, n=1): return chunks -def get_arch_messages(response_json): - arch_messages = [] +def get_plano_messages(response_json): + plano_messages = [] if response_json and "metadata" in response_json: - # load arch_state from metadata - arch_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") - # parse arch_state into json object - arch_state = json.loads(arch_state_str) - # load messages from arch_state - arch_messages_str = arch_state.get("messages", "[]") + # load plano_state from metadata + plano_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") + # parse plano_state into json object + plano_state = json.loads(plano_state_str) + # load messages from plano_state + plano_messages_str = plano_state.get("messages", "[]") # parse messages into json object - arch_messages = json.loads(arch_messages_str) - # append messages from arch gateway to history - return arch_messages + plano_messages = json.loads(plano_messages_str) + # append messages from plano gateway to history + return plano_messages return [] diff --git a/tests/archgw/test_prompt_gateway.py b/tests/archgw/test_prompt_gateway.py index 0e1b4317..2959abb2 100644 --- a/tests/archgw/test_prompt_gateway.py +++ b/tests/archgw/test_prompt_gateway.py @@ -18,7 +18,7 @@ def httpserver_listen_address(): from common import ( PROMPT_GATEWAY_ENDPOINT, TEST_CASE_FIXTURES, - get_arch_messages, + get_plano_messages, ) @@ -83,10 +83,10 @@ def test_prompt_gateway(httpserver: HTTPServer): assert assistant_message["role"] == "assistant" assert "content" in assistant_message assert "weather" in assistant_message["content"] - # now verify arch_messages (tool call and api response) that are sent as response metadata - arch_messages = get_arch_messages(response_json) - assert len(arch_messages) == 2 - tool_calls_message = arch_messages[0] + # now verify plano_messages (tool call and api response) that are sent as response metadata + plano_messages = get_plano_messages(response_json) + assert len(plano_messages) == 2 + tool_calls_message = plano_messages[0] tool_calls = tool_calls_message.get("tool_calls", []) assert len(tool_calls) > 0 tool_call = normalize_tool_call_arguments(tool_calls[0]["function"]) diff --git a/tests/e2e/common.py b/tests/e2e/common.py index 404d8ef9..1c4a1b4f 100644 --- a/tests/e2e/common.py +++ b/tests/e2e/common.py @@ -98,17 +98,17 @@ def get_data_chunks(stream, n=1): return chunks -def get_arch_messages(response_json): - arch_messages = [] +def get_plano_messages(response_json): + plano_messages = [] if response_json and "metadata" in response_json: - # load arch_state from metadata - arch_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") - # parse arch_state into json object - arch_state = json.loads(arch_state_str) - # load messages from arch_state - arch_messages_str = arch_state.get("messages", "[]") + # load plano_state from metadata + plano_state_str = response_json.get("metadata", {}).get(ARCH_STATE_HEADER, "{}") + # parse plano_state into json object + plano_state = json.loads(plano_state_str) + # load messages from plano_state + plano_messages_str = plano_state.get("messages", "[]") # parse messages into json object - arch_messages = json.loads(arch_messages_str) - # append messages from arch gateway to history - return arch_messages + plano_messages = json.loads(plano_messages_str) + # append messages from plano gateway to history + return plano_messages return [] diff --git a/tests/e2e/docker-compose.yaml b/tests/e2e/docker-compose.yaml index 47349ea8..79494d57 100644 --- a/tests/e2e/docker-compose.yaml +++ b/tests/e2e/docker-compose.yaml @@ -8,7 +8,7 @@ services: - "12000:12000" - "19901:9901" volumes: - - ../../demos/samples_python/weather_forecast/arch_config.yaml:/app/plano_config.yaml + - ../../demos/samples_python/weather_forecast/plano_config.yaml:/app/plano_config.yaml - /etc/ssl/cert.pem:/etc/ssl/cert.pem extra_hosts: - "host.docker.internal:host-gateway" diff --git a/tests/e2e/test_model_alias_routing.py b/tests/e2e/test_model_alias_routing.py index 8ad71179..f9e695a5 100644 --- a/tests/e2e/test_model_alias_routing.py +++ b/tests/e2e/test_model_alias_routing.py @@ -260,7 +260,7 @@ def test_anthropic_client_with_alias_streaming(): def test_400_error_handling_with_alias(): - """Test that 400 errors from upstream are properly returned by archgw""" + """Test that 400 errors from upstream are properly returned by plano""" logger.info( "Testing 400 error handling with arch.summarize.v1 and invalid parameter" ) diff --git a/tests/e2e/test_prompt_gateway.py b/tests/e2e/test_prompt_gateway.py index 0e75c9a2..9c89059c 100644 --- a/tests/e2e/test_prompt_gateway.py +++ b/tests/e2e/test_prompt_gateway.py @@ -10,7 +10,7 @@ from common import ( PROMPT_GATEWAY_ENDPOINT, LLM_GATEWAY_ENDPOINT, PREFILL_LIST, - get_arch_messages, + get_plano_messages, get_data_chunks, ) @@ -117,11 +117,11 @@ def test_prompt_gateway(stream): assert len(choices) > 0 assert "role" in choices[0]["message"] assert choices[0]["message"]["role"] == "assistant" - # now verify arch_messages (tool call and api response) that are sent as response metadata - arch_messages = get_arch_messages(response_json) - print("arch_messages: ", json.dumps(arch_messages)) - assert len(arch_messages) == 2 - tool_calls_message = arch_messages[0] + # now verify plano_messages (tool call and api response) that are sent as response metadata + plano_messages = get_plano_messages(response_json) + print("plano_messages: ", json.dumps(plano_messages)) + assert len(plano_messages) == 2 + tool_calls_message = plano_messages[0] print("tool_calls_message: ", tool_calls_message) tool_calls = tool_calls_message.get("content", []) cleaned_tool_call_str = cleanup_tool_call(tool_calls) @@ -295,10 +295,10 @@ def test_prompt_gateway_param_tool_call(stream): assert len(choices) > 0 assert "role" in choices[0]["message"] assert choices[0]["message"]["role"] == "assistant" - # now verify arch_messages (tool call and api response) that are sent as response metadata - arch_messages = get_arch_messages(response_json) - assert len(arch_messages) == 2 - tool_calls_message = arch_messages[0] + # now verify plano_messages (tool call and api response) that are sent as response metadata + plano_messages = get_plano_messages(response_json) + assert len(plano_messages) == 2 + tool_calls_message = plano_messages[0] tool_calls = tool_calls_message.get("tool_calls", []) assert len(tool_calls) > 0 tool_call = normalize_tool_call_arguments(tool_calls[0]["function"])