Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 0 additions & 97 deletions .agents/skills/switchyard-stage-router-scorer/SKILL.md
Comment thread
ayushag-nv marked this conversation as resolved.

This file was deleted.

2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Minimal steps to reproduce. Include the command line, the inbound request shape,

```bash
# example
switchyard serve --routes examples/route.yaml --port 4000
switchyard-server --config routes.toml --port 4000
curl -s http://localhost:4000/v1/chat/completions -d '{"model":"...","messages":[...]}'
```

Expand Down
7 changes: 2 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ jobs:
runs-on: ubuntu-latest
env:
SWITCHYARD_DEFAULT_PACKAGE: "nemo-switchyard @ file://${{ github.workspace }}"
SWITCHYARD_EXTRAS_PACKAGE: "nemo-switchyard[cli,server] @ file://${{ github.workspace }}"
SWITCHYARD_EXTRAS_PACKAGE: "nemo-switchyard[cli] @ file://${{ github.workspace }}"
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
Expand Down Expand Up @@ -213,7 +213,7 @@ jobs:
sys.exit(f"FAIL: heavy packages pulled into slim install: {extras}")
print(f"OK: all {len(forbidden)} heavy packages absent from slim install.")
PY
- name: Verify CLI and server imports work with extras
- name: Verify CLI works with its extra
working-directory: /tmp
run: |
uv run --isolated --no-project --python 3.12 \
Expand All @@ -225,9 +225,6 @@ jobs:
uv run --isolated --no-project --python 3.12 \
--with "${SWITCHYARD_EXTRAS_PACKAGE}" \
switchyard launch claude --help 2>&1 | grep -q -- '--config' || { echo 'FAIL: --config flag missing from help'; exit 1; }
uv run --isolated --no-project --python 3.12 \
--with "${SWITCHYARD_EXTRAS_PACKAGE}" \
switchyard serve --help > /dev/null

# Single required check for branch protection. Gates on every job above so
# the ruleset never needs editing when jobs are added or renamed.
Expand Down
37 changes: 23 additions & 14 deletions .github/workflows/perf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ jobs:
run: uv pip install aiperf

# ------------------------------------------------------------------
# Start a local zero-latency mock OpenAI upstream. This replaces the
# The proxy serves a real `type: passthrough` chain that
# Start a local zero-latency mock OpenAI upstream. The proxy serves a
# real `type: passthrough` route that
# forwards to this loopback stub, which returns a fixed completion
# instantly. The extra loopback hop adds a small constant overhead.
# ------------------------------------------------------------------
Expand Down Expand Up @@ -127,21 +127,30 @@ jobs:
echo "STUB_PID=$!" >> "$GITHUB_ENV"

# ------------------------------------------------------------------
# Start the proxy: a `type: passthrough` route pointed at the local stub.
# Build and start the native proxy against the local stub.
# ------------------------------------------------------------------
- name: Build switchyard server
run: cargo build --locked --release -p switchyard-server

- name: Start switchyard proxy
run: |
cat > bench.yaml <<YAML
defaults:
api_key: dummy
base_url: http://localhost:$STUB_PORT/v1
format: openai
routes:
mock-model:
type: passthrough
target: mock-model
YAML
uv run switchyard serve --routes bench.yaml --port $PROXY_PORT &
cat > bench.toml <<TOML
schema_version = 1

[llm_clients.stub]
format = "openai_chat"
base_url = "http://localhost:$STUB_PORT/v1"

[targets.mock]
id = "mock-model"
llm_client = "stub"

[routes.mock]
id = "mock-model"
type = "passthrough"
target = "mock"
TOML
target/release/switchyard-server --config bench.toml --port $PROXY_PORT &
echo "PROXY_PID=$!" >> "$GITHUB_ENV"

- name: Wait for proxy to be ready
Expand Down
Loading
Loading