nemo-switchyard 0.0.1.dev1__tar.gz → 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/Cargo.toml +1 -1
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/PKG-INFO +36 -17
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/README.md +32 -13
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/pyproject.toml +4 -4
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/__init__.py +1 -1
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/Cargo.lock +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/LICENSE +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/NOTICE +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/Cargo.toml +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/backends/anthropic.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/backends/common.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/backends/context_overflow.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/backends/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/backends/multi.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/backends/openai.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/backends/selection.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/backends/stats.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/dimension_collector/config.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/dimension_collector/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/dimension_collector/response/checks.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/dimension_collector/response/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/dimension_collector/scorers.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/dimension_collector/tool_signals.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/intake/client.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/intake/config.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/intake/context.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/intake/payload.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/intake.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/lib.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/request_processors/dimension_collector.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/request_processors/intake.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/request_processors/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/request_processors/random_routing.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/request_processors/stats.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/response_processors/intake.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/response_processors/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/response_processors/response_signals.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/response_processors/stats.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/stats/accumulator.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/stats/cache_eligibility.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/stats/context.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/stats/cost.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/stats/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/stats/usage.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/telemetry.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/adversarial_multi_llm_backend.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/adversarial_native_backends.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/adversarial_random_routing.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/intake_http_sink.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/intake_payload.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/intake_request_processor.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/intake_response_processor.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/nvdataflow_live.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/stats_accumulator.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/stats_processors.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/stats_usage_shapes.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/support/config.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/support/intake.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/tests/support/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/Cargo.toml +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/DESIGN.md +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/backend.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/config/loading.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/config/parsing.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/config/resolving.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/config.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/lib.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profile.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/cascade/prompts/classifier.md +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/cascade.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/latency_service/health.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/latency_service/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/latency_service/polling.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/latency_service/selection.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/latency_service/tests.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/llm_routing/prompts/coding_agent.md +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/llm_routing/prompts/general.md +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/llm_routing/prompts/openclaw.md +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/llm_routing.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/macros.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/noop.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/passthrough.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/profile_types.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profiles/random_routing.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/stats.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/tests/cascade_profile.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/tests/config.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/tests/latency_service_profile.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/tests/llm_routing_profile.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/tests/passthrough_profile.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/tests/random_routing_profile.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2-macros/Cargo.toml +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2-macros/src/lib.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-core/Cargo.toml +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-core/src/backend.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-core/src/context.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-core/src/error.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-core/src/ids.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-core/src/lib.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-core/src/roles.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-core/src/session.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-core/src/types.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-core/tests/adversarial_types.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/Cargo.toml +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/component_bindings/backends.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/component_bindings/config.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/component_bindings/dimension_collector.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/component_bindings/intake.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/component_bindings/request_processors.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/component_bindings/response_processors.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/component_bindings/stats.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/component_bindings.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/core_bindings/context.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/core_bindings/request.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/core_bindings/response.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/core_bindings/roles.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/core_bindings/session.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/core_bindings.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/errors.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/lib.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/profile_bindings/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/profile_bindings/typed.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/py_serde.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/server_bindings.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/translation.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/Cargo.toml +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/src/cli.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/src/lib.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/src/main.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/src/registry.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/src/response.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/src/sse.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/tests/profile_migration.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/tests/server.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/Cargo.toml +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/anthropic/buffered.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/anthropic/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/anthropic/stream.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/common.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/openai_chat/buffered.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/openai_chat/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/openai_chat/stream.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/responses/buffered.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/responses/mod.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/responses/stream.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/stream.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/diagnostic.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/engine.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/error.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/format.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/ir.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/lib.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/policy.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/stream.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/util.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/tests/extension_points.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/tests/lossless_roundtrip.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/tests/request_translation.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/tests/response_translation.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/tests/stream_translation.rs +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/command_utils.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/config/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/config/user_config.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/configure_command.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/intake_cli_config.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launch_command.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/claude_alias.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/claude_code_launcher.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/codex_cli_launcher.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/codex_model_catalog.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/launch_intake_config.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/launcher_runtime.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/live_stats_footer.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/openclaw_launcher.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/proxy_health_monitor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/launchers/session_summary.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/model_catalog/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/model_catalog/model_discovery.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/models.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/output.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/route_bundle.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/routing/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/routing/route_builder.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/status.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/switchyard_cli.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/tui/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/tui/choice_selector.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/tui/launch_config_wizard.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/tui/model_selector.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/tui/terminal_capabilities.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/cli/tui/tui_session.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/anthropic_cache_breakpoint_backend.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/anthropic_native_llm_backend.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/backend_format_resolver.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/deterministic_routing_llm_backend.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/health_poller.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/latency_service_llm_backend.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/llm_target.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/multi_llm_backend.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/openai_llm_backend.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/openai_native_backend.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/backends/stats_llm_backend.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_request/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_request/anthropic.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_request/base.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_request/openai_chat.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_request/openai_responses.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_response/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_response/anthropic.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_response/base.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_response/openai_chat.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_response/openai_responses.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/chat_response/streaming_response_accumulator.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/config/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/config/intake_sink_config.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/config/latency_service_backend_config.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/conversation_turn.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/cost_estimator.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/anthropic_messages_endpoint.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/base.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/dispatch.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/error_envelope.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/models_endpoint.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/openai_chat_endpoint.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/outcome_metrics.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/prometheus_emitter.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/responses_endpoint.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/sse_helpers.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/stats_endpoint.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/upstream_error.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/endpoints/upstream_error_log.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/live_stats_collector.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/llm_client.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/model_listing.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/plugin/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/plugin/plugin_client.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/plugin/plugin_protocol.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/_structured_output.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/cascade/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/cascade/classifier.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/cascade/decision_log.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/cascade/dimensions.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/cascade/picker.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/cascade/prompts/tier_classifier.md +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/cascade/scorer.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/cascade_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/empty_tool_content_normalizer.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/fixed_tier_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/format_translate.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/intake_client.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/intake_payload_builder.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/intake_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/intake_response_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/llm_classifier/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/llm_classifier/presets.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/llm_classifier/request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/llm_classifier/signals.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/llm_classifier/tier_selector_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/model_rewrite_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/plan_execute/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/plan_execute/plan.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/plan_execute/request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/plugin_routing_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/random_routing_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/reasoning_effort_normalizer.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/reasoning_hint.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/rl_logging_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/rl_logging_response_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/routellm_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/stats_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/stats_response_processor_accumulator.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/stats_response_processor_live_collector.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/processors/turn_based_router_request_processor.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/cascade.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/cascade_config.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/chain.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/deterministic_routing_config.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/deterministic_routing_presets.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/deterministic_routing_profile_config.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/header_routing.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/latency_service.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/loader.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/noop.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/oss_router.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/passthrough.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/plan_execute.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/plan_execute_config.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/plan_execute_presets.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/protocols.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/random_routing.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/random_routing_presets.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/routellm.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/switchyard_adapter.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/table.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/profiles/translate_profile_config.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/prometheus_exposition.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/proxy_context.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/request_metadata.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/roles.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/route_table.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/route_table_builders.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/session_affinity.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/session_cache.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/session_key.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/stats_accumulator.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/switchyard.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/lib/tracing.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/server/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/server/server_util.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/server/shell_tui.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/server/switchyard_app.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/server/verify.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard/telemetry.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard_rust/__init__.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard_rust/components.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard_rust/components.pyi +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard_rust/core.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard_rust/profiles.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard_rust/profiles.pyi +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard_rust/py.typed +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard_rust/server.py +0 -0
- {nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/switchyard_rust/translation.py +0 -0
|
@@ -9,5 +9,5 @@ members = ["crates/switchyard-components", "crates/switchyard-components-v2", "c
|
|
|
9
9
|
authors = ["NVIDIA Corporation"]
|
|
10
10
|
edition = "2021"
|
|
11
11
|
license = "Apache-2.0"
|
|
12
|
-
repository = "https://github.com/NVIDIA-
|
|
12
|
+
repository = "https://github.com/NVIDIA-NeMo/Switchyard"
|
|
13
13
|
rust-version = "1.94"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nemo-switchyard
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.1.0
|
|
4
4
|
Classifier: Development Status :: 3 - Alpha
|
|
5
5
|
Classifier: Intended Audience :: Developers
|
|
6
6
|
Classifier: Operating System :: OS Independent
|
|
@@ -37,9 +37,9 @@ Maintainer: NVIDIA Corporation
|
|
|
37
37
|
License-Expression: Apache-2.0
|
|
38
38
|
Requires-Python: >=3.12
|
|
39
39
|
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
40
|
-
Project-URL: Homepage, https://github.com/NVIDIA-
|
|
41
|
-
Project-URL: Issues, https://github.com/NVIDIA-
|
|
42
|
-
Project-URL: Repository, https://github.com/NVIDIA-
|
|
40
|
+
Project-URL: Homepage, https://github.com/NVIDIA-NeMo/Switchyard
|
|
41
|
+
Project-URL: Issues, https://github.com/NVIDIA-NeMo/Switchyard/issues
|
|
42
|
+
Project-URL: Repository, https://github.com/NVIDIA-NeMo/Switchyard
|
|
43
43
|
|
|
44
44
|
<p align="center">
|
|
45
45
|
<img src="assets/logo.png" alt="Switchyard" width="800">
|
|
@@ -47,11 +47,24 @@ Project-URL: Repository, https://github.com/NVIDIA-dev/switchyard
|
|
|
47
47
|
|
|
48
48
|
# Switchyard
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
Switchyard is a Python proxy for LLM traffic. It routes requests across
|
|
51
|
+
providers, translates between the OpenAI and Anthropic APIs, collects usage
|
|
52
|
+
statistics, and lets you build typed, profile-backed routing flows with little
|
|
53
|
+
boilerplate.
|
|
54
|
+
|
|
55
|
+
**Why Switchyard?** Point a coding agent such as Claude Code or Codex at an
|
|
56
|
+
open-source model. Switchyard translates between the OpenAI Chat, Anthropic
|
|
57
|
+
Messages, and OpenAI Responses formats, so the agent keeps speaking its native
|
|
58
|
+
API while the request is served by vLLM, NVIDIA NIM, Ollama, or any
|
|
59
|
+
OpenAI-compatible endpoint. The same proxy can spread traffic across several
|
|
60
|
+
models for A/B benchmarking, signal-driven cascade escalation, or a router you
|
|
61
|
+
write yourself.
|
|
62
|
+
|
|
63
|
+
**Launcher routing is explicit.** By default, launchers use the built-in
|
|
64
|
+
LLM-classifier router, which you tune with `--weak-model`, `--classifier-model`,
|
|
65
|
+
`--profile`, and `--classifier-min-confidence`. Use `--model X` for
|
|
66
|
+
single-model passthrough. The `--routing-profiles FILE` path is deprecated and
|
|
67
|
+
remains only for launcher-owned legacy bundles.
|
|
55
68
|
|
|
56
69
|
## Features
|
|
57
70
|
|
|
@@ -210,17 +223,23 @@ asyncio.run(main())
|
|
|
210
223
|
|
|
211
224
|
## Architecture
|
|
212
225
|
|
|
213
|
-
Switchyard sits between client applications and one or more LLM backends:
|
|
226
|
+
Switchyard sits between your client applications and one or more LLM backends:
|
|
227
|
+
|
|
228
|
+
```mermaid
|
|
229
|
+
flowchart LR
|
|
230
|
+
clients["Clients"]
|
|
231
|
+
switchyard["Switchyard<br/>routing · translation · fallback"]
|
|
232
|
+
backends["Model backends"]
|
|
214
233
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
+--------> routing, translation, and fallback
|
|
234
|
+
clients -->|"OpenAI / Anthropic API"| switchyard
|
|
235
|
+
switchyard -->|"provider-native format"| backends
|
|
218
236
|
```
|
|
219
237
|
|
|
220
|
-
Clients keep their
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
the
|
|
238
|
+
Clients keep their native OpenAI or Anthropic API format. Switchyard picks a
|
|
239
|
+
configured backend, forwards the request in that backend's own format, and
|
|
240
|
+
translates the response back into the shape the client expects. See
|
|
241
|
+
[Architecture](docs/architecture.md) for the system context and the full
|
|
242
|
+
request flow.
|
|
224
243
|
|
|
225
244
|
## Installation Options
|
|
226
245
|
|
|
@@ -4,11 +4,24 @@
|
|
|
4
4
|
|
|
5
5
|
# Switchyard
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
Switchyard is a Python proxy for LLM traffic. It routes requests across
|
|
8
|
+
providers, translates between the OpenAI and Anthropic APIs, collects usage
|
|
9
|
+
statistics, and lets you build typed, profile-backed routing flows with little
|
|
10
|
+
boilerplate.
|
|
11
|
+
|
|
12
|
+
**Why Switchyard?** Point a coding agent such as Claude Code or Codex at an
|
|
13
|
+
open-source model. Switchyard translates between the OpenAI Chat, Anthropic
|
|
14
|
+
Messages, and OpenAI Responses formats, so the agent keeps speaking its native
|
|
15
|
+
API while the request is served by vLLM, NVIDIA NIM, Ollama, or any
|
|
16
|
+
OpenAI-compatible endpoint. The same proxy can spread traffic across several
|
|
17
|
+
models for A/B benchmarking, signal-driven cascade escalation, or a router you
|
|
18
|
+
write yourself.
|
|
19
|
+
|
|
20
|
+
**Launcher routing is explicit.** By default, launchers use the built-in
|
|
21
|
+
LLM-classifier router, which you tune with `--weak-model`, `--classifier-model`,
|
|
22
|
+
`--profile`, and `--classifier-min-confidence`. Use `--model X` for
|
|
23
|
+
single-model passthrough. The `--routing-profiles FILE` path is deprecated and
|
|
24
|
+
remains only for launcher-owned legacy bundles.
|
|
12
25
|
|
|
13
26
|
## Features
|
|
14
27
|
|
|
@@ -167,17 +180,23 @@ asyncio.run(main())
|
|
|
167
180
|
|
|
168
181
|
## Architecture
|
|
169
182
|
|
|
170
|
-
Switchyard sits between client applications and one or more LLM backends:
|
|
183
|
+
Switchyard sits between your client applications and one or more LLM backends:
|
|
184
|
+
|
|
185
|
+
```mermaid
|
|
186
|
+
flowchart LR
|
|
187
|
+
clients["Clients"]
|
|
188
|
+
switchyard["Switchyard<br/>routing · translation · fallback"]
|
|
189
|
+
backends["Model backends"]
|
|
171
190
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
+--------> routing, translation, and fallback
|
|
191
|
+
clients -->|"OpenAI / Anthropic API"| switchyard
|
|
192
|
+
switchyard -->|"provider-native format"| backends
|
|
175
193
|
```
|
|
176
194
|
|
|
177
|
-
Clients keep their
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
the
|
|
195
|
+
Clients keep their native OpenAI or Anthropic API format. Switchyard picks a
|
|
196
|
+
configured backend, forwards the request in that backend's own format, and
|
|
197
|
+
translates the response back into the shape the client expects. See
|
|
198
|
+
[Architecture](docs/architecture.md) for the system context and the full
|
|
199
|
+
request flow.
|
|
181
200
|
|
|
182
201
|
## Installation Options
|
|
183
202
|
|
|
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nemo-switchyard"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.1.0"
|
|
8
8
|
description = "Typed, composable LLM routing with request/response translation and multi-backend orchestration"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -129,9 +129,9 @@ managed = true
|
|
|
129
129
|
switchyard = "switchyard.cli.switchyard_cli:main"
|
|
130
130
|
|
|
131
131
|
[project.urls]
|
|
132
|
-
Homepage = "https://github.com/NVIDIA-
|
|
133
|
-
Repository = "https://github.com/NVIDIA-
|
|
134
|
-
Issues = "https://github.com/NVIDIA-
|
|
132
|
+
Homepage = "https://github.com/NVIDIA-NeMo/Switchyard"
|
|
133
|
+
Repository = "https://github.com/NVIDIA-NeMo/Switchyard"
|
|
134
|
+
Issues = "https://github.com/NVIDIA-NeMo/Switchyard/issues"
|
|
135
135
|
|
|
136
136
|
[tool.setuptools.packages.find]
|
|
137
137
|
where = ["."]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/Cargo.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/intake.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/lib.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/stats/cost.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/stats/mod.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/stats/usage.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components/src/telemetry.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/Cargo.toml
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/DESIGN.md
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/backend.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/config.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/lib.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/profile.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/src/stats.rs
RENAMED
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-components-v2/tests/config.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/component_bindings.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/core_bindings/roles.rs
RENAMED
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/core_bindings.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/server_bindings.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-py/src/translation.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/src/registry.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/src/response.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-server/tests/server.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/Cargo.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/codecs/mod.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/diagnostic.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/engine.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/error.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/format.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/ir.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/lib.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/policy.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/stream.rs
RENAMED
|
File without changes
|
{nemo_switchyard-0.0.1.dev1 → nemo_switchyard-0.1.0}/crates/switchyard-translation/src/util.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|