From b28434a5f106facab48204ce7e81e92cc3b8afe7 Mon Sep 17 00:00:00 2001 From: Musa Date: Mon, 8 Dec 2025 14:16:39 -0800 Subject: [PATCH] feat: update text --- apps/www/src/components/Hero.tsx | 9 +- apps/www/src/components/IntroSection.tsx | 9 +- apps/www/src/components/LogoCloud.tsx | 28 +- arch/tools/TESTING.md | 343 +++++++++++++++++++++++ 4 files changed, 372 insertions(+), 17 deletions(-) create mode 100644 arch/tools/TESTING.md diff --git a/apps/www/src/components/Hero.tsx b/apps/www/src/components/Hero.tsx index e91a6d29..ce27cab6 100644 --- a/apps/www/src/components/Hero.tsx +++ b/apps/www/src/components/Hero.tsx @@ -31,18 +31,17 @@ export function Hero() { {/* Main Heading */}

- Models-native + Delivery infrastructure - dataplane for agents + for agentic apps

{/* Subheading with CTA Buttons */}
-

- Build agents faster, and scale them reliably by offloading the - plumbing work in AI. +

+ Build agents faster, and deliver them reliably to prod by offloading plumbing work in AI

{/* CTA Buttons */} diff --git a/apps/www/src/components/IntroSection.tsx b/apps/www/src/components/IntroSection.tsx index a4e50f53..a2d01161 100644 --- a/apps/www/src/components/IntroSection.tsx +++ b/apps/www/src/components/IntroSection.tsx @@ -20,11 +20,10 @@ export function IntroSection() { {/* Body Text */}

- Plano is a framework-friendly proxy server and dataplane for - agents, deployed as a sidecar. Plano handles the critical - plumbing work in AI like agent routing and orchestration, - comprehensive traces for agentic interactions, guardrail hooks, - unified APIs for LLMs. + Plano is a models-native proxy server and dataplane for agents + that handles the critical plumbing work in AI like agent routing and + orchestration, comprehensive traces for agentic interactions, guardrail + hooks, unified APIs for LLMs

Developers can focus more on modeling workflows. diff --git a/apps/www/src/components/LogoCloud.tsx b/apps/www/src/components/LogoCloud.tsx index 5d271339..c2397c60 100644 --- a/apps/www/src/components/LogoCloud.tsx +++ b/apps/www/src/components/LogoCloud.tsx @@ -11,16 +11,16 @@ const customerLogos = [ src: "/logos/tmobile.svg", }, { - name: "Chase", - src: "/logos/chase.svg", + name: "HP", + src: "/logos/hp.svg", }, { name: "SanDisk", src: "/logos/sandisk.svg", }, { - name: "HP", - src: "/logos/hp.svg", + name: "Chase", + src: "/logos/chase.svg", }, ]; @@ -28,14 +28,28 @@ export function LogoCloud() { return (

-
+
{customerLogos.map((logo, index) => { const isLast = index === customerLogos.length - 1; + const isTMobile = index === 1; // T-Mobile is before HP + const isHP = index === 2; // HP is in center + const isSanDisk = index === 3; // SanDisk is after HP + + // Custom spacing for logos around HP on large screens + let spacingClass = 'lg:mx-6 xl:mx-8'; // Default spacing + if (isTMobile) { + spacingClass = 'lg:mr-3 xl:mr-4 lg:ml-6 xl:ml-8'; // Smaller gap to HP + } else if (isHP) { + spacingClass = 'lg:mx-3 xl:mx-4'; // Smaller gaps on both sides + } else if (isSanDisk) { + spacingClass = 'lg:ml-3 xl:ml-4 lg:mr-6 xl:mr-8'; // Smaller gap from HP + } + return (
+ # OR if installed + archgw + ``` +3. **Check output** and iterate + +### Testing with Real Config Files + +Use the demo configs in the repo: + +```bash +# From arch/tools directory +cd ../../demos/samples_python/weather_forecast + +# Test with this config +archgw up arch_config.yaml + +# Or test from tools directory +archgw up ../../demos/samples_python/weather_forecast/arch_config.yaml +``` + +### Debugging Tips + +1. **Add print statements** for quick debugging: + ```python + import sys + print(f"DEBUG: Variable value: {variable}", file=sys.stderr) + ``` + +2. **Use Python debugger**: + ```python + import pdb; pdb.set_trace() + ``` + +3. **Check Docker status** manually: + ```bash + docker ps + docker logs archgw + docker inspect archgw + ``` + +4. **Test individual functions** in Python REPL: + ```bash + python + >>> from cli.utils import find_config_file + >>> find_config_file(".", None) + ``` + +### Common Test Scenarios + +#### Test Error Handling + +```bash +# Test missing config file +archgw up --path /nonexistent + +# Test invalid config file +archgw up /path/to/invalid_config.yaml + +# Test missing environment variables +# (remove required env vars and test) +archgw up --path /path/to/config +``` + +#### Test Edge Cases + +```bash +# Test with minimal config +archgw up --path /path/to/minimal_config.yaml + +# Test with complex config +archgw up --path /path/to/complex_config.yaml + +# Test with different paths +archgw up --path . +archgw up --path /absolute/path +archgw up relative/path/config.yaml +``` + +## Example: Testing a Specific Feature + +Let's say you're working on improving the `find_config_file` function. Here's how to test it: + +```bash +# Start Python REPL +python + +# Import and test +>>> from cli.utils import find_config_file +>>> import os +>>> find_config_file(".", None) +'/absolute/path/to/arch/tools/arch_config.yaml' + +# Test with explicit file +>>> find_config_file(".", "/path/to/config.yaml") +'/path/to/config.yaml' + +# Test error cases +>>> find_config_file("/nonexistent", None) +# Check what happens +``` + +## File Structure Reference + +When developing, you'll primarily work with: + +- `cli/main.py` - Main CLI commands and entry point +- `cli/core.py` - Core functionality (start_arch, stop_docker_container, etc.) +- `cli/utils.py` - Utility functions +- `cli/docker_cli.py` - Docker-related operations +- `cli/config_generator.py` - Config validation and generation +- `cli/targets.py` - Prompt target generation +- `cli/consts.py` - Constants + +## Quick Reference: Common Commands + +```bash +# Setup (one time) +cd arch/tools +python -m venv venv +source venv/bin/activate +poetry install +pip install -e . # For editable install + +# Development workflow +# 1. Edit code in cli/*.py +# 2. Test immediately: +python -m cli.main [args] + +# Or if installed: +archgw [args] + +# Common test commands: +archgw --version # Check version +archgw --help # See all commands +archgw build # Build Docker image +archgw up --path /path/to/config # Start gateway +archgw down # Stop gateway +archgw logs --follow # View logs +``` + +## Troubleshooting + +### CLI command not found +- Make sure you activated the virtual environment +- If using editable install, verify: `pip list | grep archgw` +- Try: `python -m cli.main` instead + +### Changes not reflected +- If using editable install, changes should be immediate +- If not, reinstall: `pip install -e .` +- Check you're editing the right file + +### Docker issues +- Ensure Docker is running: `docker ps` +- Check container status: `docker ps -a | grep archgw` +- View logs: `docker logs archgw` + +## Finding Demo Configs to Test With + +The repository has several demo configs you can use for testing: + +```bash +# List available demos +ls ../../demos/samples_python/*/arch_config.yaml + +# Examples: +# - ../../demos/samples_python/weather_forecast/arch_config.yaml +# - ../../demos/samples_python/currency_exchange/arch_config.yaml +# - ../../demos/samples_python/human_resources_agent/arch_config.yaml +``` + +## Tips for Effective Manual Testing + +1. **Test one thing at a time** - Make a small change, test it, then move on +2. **Test both success and failure cases** - Don't just test happy paths +3. **Use real configs** - Test with actual demo configs to catch real-world issues +4. **Check error messages** - Make sure error messages are helpful +5. **Test edge cases** - Empty files, missing fields, invalid values +6. **Keep notes** - Document what works and what doesn't as you develop +