nemo-switchyard 0.2.0__tar.gz → 0.3.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.
Files changed (405) hide show
  1. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/Cargo.lock +171 -41
  2. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/Cargo.toml +17 -9
  3. nemo_switchyard-0.3.0/PKG-INFO +355 -0
  4. nemo_switchyard-0.3.0/README.md +328 -0
  5. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/Cargo.toml +7 -3
  6. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/README.md +16 -12
  7. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/advisor_gate/budget.rs +235 -0
  8. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/advisor_gate/signals.rs +168 -0
  9. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/advisor_gate/telemetry.rs +148 -0
  10. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/advisor_gate/tests.rs +1393 -0
  11. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/advisor_gate/transcript.rs +98 -0
  12. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/advisor_gate/trigger.rs +176 -0
  13. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/advisor_gate/turn.rs +65 -0
  14. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/advisor_gate.rs +563 -0
  15. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/composite.rs +373 -0
  16. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/escalation.rs +495 -0
  17. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/fall_through.rs +827 -0
  18. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/algorithms/llm_class.rs +609 -758
  19. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/noop.rs +106 -0
  20. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/passthrough.rs +70 -0
  21. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/plan_execute.rs +386 -0
  22. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/rand.rs +372 -0
  23. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/stage.rs +653 -0
  24. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/subagent.rs +296 -0
  25. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/algorithms/subagent_affinity_tests.rs +19 -40
  26. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/algorithms/util/affinity.rs +277 -92
  27. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/util/buffered_response.rs +94 -0
  28. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/algorithms/util/classifier_contract.rs +78 -19
  29. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/algorithms/util/escalation.rs +185 -51
  30. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/algorithms/util/llm_judge.rs +169 -103
  31. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/util/prompts.rs +170 -0
  32. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/util/robustness.rs +177 -0
  33. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/algorithms/util/stage.rs +532 -151
  34. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/algorithms/util/subagent.rs +91 -11
  35. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/util/target_selector.rs +128 -0
  36. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/util/tier_fixtures.rs +133 -0
  37. nemo_switchyard-0.3.0/crates/libsy/src/algorithms/util/tool_signals.rs +2432 -0
  38. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/algorithms/util.rs +17 -0
  39. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/algorithms.rs +5 -0
  40. nemo_switchyard-0.3.0/crates/libsy/src/core/algorithm.rs +1389 -0
  41. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/core/classifier.rs +22 -26
  42. nemo_switchyard-0.3.0/crates/libsy/src/core/outcome_metadata.rs +36 -0
  43. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/core/processor.rs +46 -39
  44. nemo_switchyard-0.3.0/crates/libsy/src/core/testing.rs +121 -0
  45. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/core.rs +6 -4
  46. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/error.rs +11 -52
  47. nemo_switchyard-0.3.0/crates/libsy/src/lib.rs +49 -0
  48. nemo_switchyard-0.3.0/crates/libsy/src/observability.rs +290 -0
  49. nemo_switchyard-0.3.0/crates/libsy/src/prompts/advisor-gate/redo-feedback-prefix.md +1 -0
  50. nemo_switchyard-0.3.0/crates/libsy/src/prompts/advisor-gate/reviewer-system-prompt.md +10 -0
  51. nemo_switchyard-0.3.0/crates/libsy/src/prompts/plan-execute/planning-system-prompt.md +1 -0
  52. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy-llm-client/Cargo.toml +8 -1
  53. nemo_switchyard-0.3.0/crates/libsy-llm-client/README.md +299 -0
  54. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy-llm-client/src/backend.rs +204 -55
  55. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy-llm-client/src/client.rs +1406 -284
  56. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy-llm-client/src/error.rs +10 -14
  57. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy-llm-client/src/lib.rs +16 -1
  58. nemo_switchyard-0.3.0/crates/libsy-llm-client/src/metrics.rs +261 -0
  59. nemo_switchyard-0.3.0/crates/libsy-llm-client/src/observability.rs +333 -0
  60. nemo_switchyard-0.3.0/crates/libsy-llm-client/src/observation.rs +43 -0
  61. nemo_switchyard-0.3.0/crates/libsy-llm-client/src/run.rs +2217 -0
  62. {nemo_switchyard-0.2.0/crates/libsy → nemo_switchyard-0.3.0/crates/libsy-llm-client}/tests/observability.rs +865 -257
  63. nemo_switchyard-0.3.0/crates/prefill-router/Cargo.toml +24 -0
  64. nemo_switchyard-0.3.0/crates/prefill-router/build.rs +6 -0
  65. nemo_switchyard-0.3.0/crates/prefill-router/python/transformers_forward.py +337 -0
  66. nemo_switchyard-0.3.0/crates/prefill-router/src/algorithm.rs +216 -0
  67. nemo_switchyard-0.3.0/crates/prefill-router/src/error.rs +36 -0
  68. nemo_switchyard-0.3.0/crates/prefill-router/src/lib.rs +33 -0
  69. nemo_switchyard-0.3.0/crates/prefill-router/src/router.rs +119 -0
  70. nemo_switchyard-0.3.0/crates/prefill-router/src/transformers.rs +290 -0
  71. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/protocol/README.md +3 -3
  72. nemo_switchyard-0.3.0/crates/protocol/src/category.rs +56 -0
  73. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/protocol/src/client.rs +23 -74
  74. nemo_switchyard-0.3.0/crates/protocol/src/envelope.rs +93 -0
  75. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/protocol/src/lib.rs +5 -0
  76. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/protocol/src/llm.rs +24 -1
  77. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/protocol/src/metadata.rs +120 -20
  78. nemo_switchyard-0.3.0/crates/protocol/src/model_id.rs +188 -0
  79. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/protocol/src/stream.rs +118 -9
  80. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-py/Cargo.toml +2 -7
  81. nemo_switchyard-0.3.0/crates/switchyard-py/src/errors.rs +29 -0
  82. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-py/src/lib.rs +0 -6
  83. nemo_switchyard-0.3.0/crates/switchyard-py/src/libsy_bindings.rs +910 -0
  84. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-py/src/py_serde.rs +0 -11
  85. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-py/src/server_bindings.rs +22 -3
  86. {nemo_switchyard-0.2.0/crates/switchyard-components → nemo_switchyard-0.3.0/crates/switchyard-runner}/Cargo.toml +14 -11
  87. nemo_switchyard-0.3.0/crates/switchyard-runner/src/algorithm.rs +1505 -0
  88. nemo_switchyard-0.3.0/crates/switchyard-runner/src/config.rs +1984 -0
  89. nemo_switchyard-0.3.0/crates/switchyard-runner/src/failure.rs +338 -0
  90. nemo_switchyard-0.3.0/crates/switchyard-runner/src/lib.rs +24 -0
  91. nemo_switchyard-0.3.0/crates/switchyard-runner/src/provider_key_redactor.rs +211 -0
  92. nemo_switchyard-0.3.0/crates/switchyard-runner/src/route.rs +244 -0
  93. nemo_switchyard-0.3.0/crates/switchyard-runner/src/runner.rs +139 -0
  94. nemo_switchyard-0.3.0/crates/switchyard-runner/tests/route.rs +183 -0
  95. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/CONFIGURATION.md +7 -3
  96. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/Cargo.toml +8 -4
  97. nemo_switchyard-0.3.0/crates/switchyard-server/README.md +272 -0
  98. nemo_switchyard-0.3.0/crates/switchyard-server/src/capabilities.rs +275 -0
  99. nemo_switchyard-0.3.0/crates/switchyard-server/src/config.rs +15 -0
  100. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/src/lib.rs +789 -277
  101. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/src/metrics.rs +44 -2
  102. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/src/observability.rs +1 -1
  103. nemo_switchyard-0.3.0/crates/switchyard-server/src/redaction.rs +183 -0
  104. nemo_switchyard-0.3.0/crates/switchyard-server/src/response.rs +50 -0
  105. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/src/routing_log.rs +70 -18
  106. nemo_switchyard-0.3.0/crates/switchyard-server/src/sse.rs +184 -0
  107. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/src/stats/accumulator.rs +94 -166
  108. nemo_switchyard-0.3.0/crates/switchyard-server/src/stats/algorithms/advisor_gate.rs +257 -0
  109. nemo_switchyard-0.3.0/crates/switchyard-server/src/stats/algorithms/stage_router.rs +282 -0
  110. nemo_switchyard-0.3.0/crates/switchyard-server/src/stats/algorithms.rs +79 -0
  111. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/src/stats.rs +1 -0
  112. nemo_switchyard-0.3.0/crates/switchyard-server/src/usage_metrics.rs +245 -0
  113. nemo_switchyard-0.3.0/crates/switchyard-server/tests/cli.rs +93 -0
  114. nemo_switchyard-0.3.0/crates/switchyard-server/tests/client_deadline.rs +328 -0
  115. nemo_switchyard-0.3.0/crates/switchyard-server/tests/server.rs +5245 -0
  116. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/Cargo.toml +2 -0
  117. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/codecs/anthropic/buffered.rs +367 -85
  118. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/codecs/anthropic/stream.rs +168 -24
  119. nemo_switchyard-0.3.0/crates/switchyard-translation/src/codecs/common.rs +250 -0
  120. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/codecs/mod.rs +1 -0
  121. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/codecs/openai_chat/buffered.rs +226 -117
  122. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/codecs/openai_chat/stream.rs +118 -34
  123. nemo_switchyard-0.3.0/crates/switchyard-translation/src/codecs/openai_media.rs +226 -0
  124. nemo_switchyard-0.3.0/crates/switchyard-translation/src/codecs/responses/buffered.rs +2138 -0
  125. nemo_switchyard-0.3.0/crates/switchyard-translation/src/codecs/responses/mod.rs +71 -0
  126. nemo_switchyard-0.3.0/crates/switchyard-translation/src/codecs/responses/stream.rs +1161 -0
  127. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/codecs/stream.rs +78 -4
  128. nemo_switchyard-0.3.0/crates/switchyard-translation/src/codex_custom_tools.rs +293 -0
  129. nemo_switchyard-0.3.0/crates/switchyard-translation/src/codex_namespaces.rs +275 -0
  130. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/engine.rs +34 -1
  131. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/error.rs +6 -0
  132. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/helpers.rs +238 -47
  133. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/lib.rs +6 -2
  134. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/sse.rs +96 -1
  135. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/util.rs +230 -20
  136. nemo_switchyard-0.3.0/crates/switchyard-translation/tests/anthropic_parallel_tools.rs +135 -0
  137. nemo_switchyard-0.3.0/crates/switchyard-translation/tests/common/mod.rs +42 -0
  138. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/tests/extension_points.rs +1 -0
  139. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/tests/lossless_roundtrip.rs +3 -2
  140. nemo_switchyard-0.3.0/crates/switchyard-translation/tests/request_translation.rs +4112 -0
  141. nemo_switchyard-0.3.0/crates/switchyard-translation/tests/response_translation.rs +1263 -0
  142. nemo_switchyard-0.3.0/crates/switchyard-translation/tests/stream_translation.rs +3165 -0
  143. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/pyproject.toml +19 -86
  144. nemo_switchyard-0.3.0/rust-toolchain.toml +4 -0
  145. nemo_switchyard-0.3.0/switchyard/__init__.py +14 -0
  146. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/switchyard/libsy/__init__.py +18 -4
  147. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/switchyard/libsy/algorithms.py +2 -1
  148. {nemo_switchyard-0.2.0/switchyard/cli/defaults → nemo_switchyard-0.3.0/switchyard_rust}/__init__.py +1 -1
  149. nemo_switchyard-0.3.0/switchyard_rust/_native.py +34 -0
  150. nemo_switchyard-0.3.0/switchyard_rust/libsy.py +268 -0
  151. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/switchyard_rust/server.py +14 -10
  152. nemo_switchyard-0.2.0/PKG-INFO +0 -199
  153. nemo_switchyard-0.2.0/README.md +0 -158
  154. nemo_switchyard-0.2.0/crates/libsy/src/algorithms/fall_through.rs +0 -1419
  155. nemo_switchyard-0.2.0/crates/libsy/src/algorithms/noop.rs +0 -105
  156. nemo_switchyard-0.2.0/crates/libsy/src/algorithms/passthrough.rs +0 -122
  157. nemo_switchyard-0.2.0/crates/libsy/src/algorithms/rand.rs +0 -464
  158. nemo_switchyard-0.2.0/crates/libsy/src/algorithms/stage.rs +0 -620
  159. nemo_switchyard-0.2.0/crates/libsy/src/algorithms/util/prompts.rs +0 -371
  160. nemo_switchyard-0.2.0/crates/libsy/src/algorithms/util/target_selector.rs +0 -113
  161. nemo_switchyard-0.2.0/crates/libsy/src/algorithms/util/tool_signals.rs +0 -1099
  162. nemo_switchyard-0.2.0/crates/libsy/src/core/algorithm.rs +0 -1827
  163. nemo_switchyard-0.2.0/crates/libsy/src/core/driver.rs +0 -599
  164. nemo_switchyard-0.2.0/crates/libsy/src/lib.rs +0 -52
  165. nemo_switchyard-0.2.0/crates/libsy/src/observability.rs +0 -634
  166. nemo_switchyard-0.2.0/crates/libsy-llm-client/README.md +0 -212
  167. nemo_switchyard-0.2.0/crates/libsy-llm-client/src/metrics.rs +0 -78
  168. nemo_switchyard-0.2.0/crates/protocol/src/envelope.rs +0 -85
  169. nemo_switchyard-0.2.0/crates/switchyard-components/src/backends/anthropic.rs +0 -684
  170. nemo_switchyard-0.2.0/crates/switchyard-components/src/backends/common.rs +0 -192
  171. nemo_switchyard-0.2.0/crates/switchyard-components/src/backends/context_overflow.rs +0 -92
  172. nemo_switchyard-0.2.0/crates/switchyard-components/src/backends/mod.rs +0 -18
  173. nemo_switchyard-0.2.0/crates/switchyard-components/src/backends/multi.rs +0 -330
  174. nemo_switchyard-0.2.0/crates/switchyard-components/src/backends/openai.rs +0 -778
  175. nemo_switchyard-0.2.0/crates/switchyard-components/src/backends/selection.rs +0 -92
  176. nemo_switchyard-0.2.0/crates/switchyard-components/src/backends/stats.rs +0 -88
  177. nemo_switchyard-0.2.0/crates/switchyard-components/src/contracts/backend.rs +0 -145
  178. nemo_switchyard-0.2.0/crates/switchyard-components/src/contracts/context.rs +0 -216
  179. nemo_switchyard-0.2.0/crates/switchyard-components/src/contracts/error.rs +0 -103
  180. nemo_switchyard-0.2.0/crates/switchyard-components/src/contracts/ids.rs +0 -111
  181. nemo_switchyard-0.2.0/crates/switchyard-components/src/contracts/mod.rs +0 -18
  182. nemo_switchyard-0.2.0/crates/switchyard-components/src/contracts/roles.rs +0 -30
  183. nemo_switchyard-0.2.0/crates/switchyard-components/src/contracts/types.rs +0 -326
  184. nemo_switchyard-0.2.0/crates/switchyard-components/src/dimension_collector/mod.rs +0 -18
  185. nemo_switchyard-0.2.0/crates/switchyard-components/src/dimension_collector/response/checks.rs +0 -361
  186. nemo_switchyard-0.2.0/crates/switchyard-components/src/dimension_collector/response/mod.rs +0 -128
  187. nemo_switchyard-0.2.0/crates/switchyard-components/src/dimension_collector/tool_signals.rs +0 -52
  188. nemo_switchyard-0.2.0/crates/switchyard-components/src/lib.rs +0 -36
  189. nemo_switchyard-0.2.0/crates/switchyard-components/src/request_processors/dimension_collector.rs +0 -78
  190. nemo_switchyard-0.2.0/crates/switchyard-components/src/request_processors/mod.rs +0 -12
  191. nemo_switchyard-0.2.0/crates/switchyard-components/src/request_processors/random_routing.rs +0 -172
  192. nemo_switchyard-0.2.0/crates/switchyard-components/src/request_processors/stats.rs +0 -38
  193. nemo_switchyard-0.2.0/crates/switchyard-components/src/response_processors/mod.rs +0 -10
  194. nemo_switchyard-0.2.0/crates/switchyard-components/src/response_processors/response_signals.rs +0 -98
  195. nemo_switchyard-0.2.0/crates/switchyard-components/src/response_processors/stats.rs +0 -249
  196. nemo_switchyard-0.2.0/crates/switchyard-components/src/stage_router.rs +0 -15
  197. nemo_switchyard-0.2.0/crates/switchyard-components/src/stats/accumulator.rs +0 -792
  198. nemo_switchyard-0.2.0/crates/switchyard-components/src/stats/cache_eligibility.rs +0 -164
  199. nemo_switchyard-0.2.0/crates/switchyard-components/src/stats/context.rs +0 -72
  200. nemo_switchyard-0.2.0/crates/switchyard-components/src/stats/cost.rs +0 -269
  201. nemo_switchyard-0.2.0/crates/switchyard-components/src/stats/mod.rs +0 -25
  202. nemo_switchyard-0.2.0/crates/switchyard-components/src/stats/usage.rs +0 -221
  203. nemo_switchyard-0.2.0/crates/switchyard-components/src/telemetry.rs +0 -97
  204. nemo_switchyard-0.2.0/crates/switchyard-components/tests/adversarial_multi_llm_backend.rs +0 -1268
  205. nemo_switchyard-0.2.0/crates/switchyard-components/tests/adversarial_native_backends.rs +0 -1160
  206. nemo_switchyard-0.2.0/crates/switchyard-components/tests/adversarial_random_routing.rs +0 -209
  207. nemo_switchyard-0.2.0/crates/switchyard-components/tests/contracts.rs +0 -186
  208. nemo_switchyard-0.2.0/crates/switchyard-components/tests/stats_accumulator.rs +0 -789
  209. nemo_switchyard-0.2.0/crates/switchyard-components/tests/stats_processors.rs +0 -838
  210. nemo_switchyard-0.2.0/crates/switchyard-components/tests/stats_usage_shapes.rs +0 -241
  211. nemo_switchyard-0.2.0/crates/switchyard-components/tests/support/config.rs +0 -67
  212. nemo_switchyard-0.2.0/crates/switchyard-components/tests/support/mod.rs +0 -289
  213. nemo_switchyard-0.2.0/crates/switchyard-py/src/component_bindings/backends.rs +0 -350
  214. nemo_switchyard-0.2.0/crates/switchyard-py/src/component_bindings/config.rs +0 -533
  215. nemo_switchyard-0.2.0/crates/switchyard-py/src/component_bindings/dimension_collector.rs +0 -398
  216. nemo_switchyard-0.2.0/crates/switchyard-py/src/component_bindings/request_processors.rs +0 -62
  217. nemo_switchyard-0.2.0/crates/switchyard-py/src/component_bindings/response_processors.rs +0 -79
  218. nemo_switchyard-0.2.0/crates/switchyard-py/src/component_bindings/stage_router.rs +0 -155
  219. nemo_switchyard-0.2.0/crates/switchyard-py/src/component_bindings/stats.rs +0 -241
  220. nemo_switchyard-0.2.0/crates/switchyard-py/src/component_bindings.rs +0 -25
  221. nemo_switchyard-0.2.0/crates/switchyard-py/src/errors.rs +0 -216
  222. nemo_switchyard-0.2.0/crates/switchyard-py/src/interop/context.rs +0 -361
  223. nemo_switchyard-0.2.0/crates/switchyard-py/src/interop/request.rs +0 -70
  224. nemo_switchyard-0.2.0/crates/switchyard-py/src/interop/response.rs +0 -613
  225. nemo_switchyard-0.2.0/crates/switchyard-py/src/interop/roles.rs +0 -119
  226. nemo_switchyard-0.2.0/crates/switchyard-py/src/interop/subagent.rs +0 -51
  227. nemo_switchyard-0.2.0/crates/switchyard-py/src/interop.rs +0 -20
  228. nemo_switchyard-0.2.0/crates/switchyard-py/src/libsy_bindings.rs +0 -415
  229. nemo_switchyard-0.2.0/crates/switchyard-py/src/translation.rs +0 -123
  230. nemo_switchyard-0.2.0/crates/switchyard-server/README.md +0 -189
  231. nemo_switchyard-0.2.0/crates/switchyard-server/src/config.rs +0 -1482
  232. nemo_switchyard-0.2.0/crates/switchyard-server/src/response.rs +0 -38
  233. nemo_switchyard-0.2.0/crates/switchyard-server/src/sse.rs +0 -124
  234. nemo_switchyard-0.2.0/crates/switchyard-server/src/usage_metrics.rs +0 -191
  235. nemo_switchyard-0.2.0/crates/switchyard-server/tests/server.rs +0 -2041
  236. nemo_switchyard-0.2.0/crates/switchyard-translation/src/codecs/common.rs +0 -56
  237. nemo_switchyard-0.2.0/crates/switchyard-translation/src/codecs/responses/buffered.rs +0 -1266
  238. nemo_switchyard-0.2.0/crates/switchyard-translation/src/codecs/responses/mod.rs +0 -10
  239. nemo_switchyard-0.2.0/crates/switchyard-translation/src/codecs/responses/stream.rs +0 -606
  240. nemo_switchyard-0.2.0/crates/switchyard-translation/tests/request_translation.rs +0 -1492
  241. nemo_switchyard-0.2.0/crates/switchyard-translation/tests/response_translation.rs +0 -602
  242. nemo_switchyard-0.2.0/crates/switchyard-translation/tests/stream_translation.rs +0 -1082
  243. nemo_switchyard-0.2.0/switchyard/__init__.py +0 -198
  244. nemo_switchyard-0.2.0/switchyard/cli/__init__.py +0 -5
  245. nemo_switchyard-0.2.0/switchyard/cli/command_utils.py +0 -25
  246. nemo_switchyard-0.2.0/switchyard/cli/defaults/openrouter.toml +0 -32
  247. nemo_switchyard-0.2.0/switchyard/cli/launch_command.py +0 -65
  248. nemo_switchyard-0.2.0/switchyard/cli/launchers/__init__.py +0 -5
  249. nemo_switchyard-0.2.0/switchyard/cli/launchers/claude_code_launcher.py +0 -197
  250. nemo_switchyard-0.2.0/switchyard/cli/launchers/codex_cli_launcher.py +0 -238
  251. nemo_switchyard-0.2.0/switchyard/cli/launchers/codex_model_catalog.py +0 -160
  252. nemo_switchyard-0.2.0/switchyard/cli/launchers/launcher_runtime.py +0 -320
  253. nemo_switchyard-0.2.0/switchyard/cli/launchers/live_stats_footer.py +0 -156
  254. nemo_switchyard-0.2.0/switchyard/cli/launchers/native_server.py +0 -56
  255. nemo_switchyard-0.2.0/switchyard/cli/launchers/openclaw_launcher.py +0 -269
  256. nemo_switchyard-0.2.0/switchyard/cli/launchers/proxy_health_monitor.py +0 -45
  257. nemo_switchyard-0.2.0/switchyard/cli/launchers/session_summary.py +0 -84
  258. nemo_switchyard-0.2.0/switchyard/cli/launchers/stats_source.py +0 -20
  259. nemo_switchyard-0.2.0/switchyard/cli/model_catalog/__init__.py +0 -5
  260. nemo_switchyard-0.2.0/switchyard/cli/model_catalog/model_discovery.py +0 -50
  261. nemo_switchyard-0.2.0/switchyard/cli/route_bundle.py +0 -1372
  262. nemo_switchyard-0.2.0/switchyard/cli/switchyard_cli.py +0 -163
  263. nemo_switchyard-0.2.0/switchyard/lib/__init__.py +0 -16
  264. nemo_switchyard-0.2.0/switchyard/lib/affinity_pin_store.py +0 -39
  265. nemo_switchyard-0.2.0/switchyard/lib/backends/__init__.py +0 -30
  266. nemo_switchyard-0.2.0/switchyard/lib/backends/anthropic_cache_breakpoint_backend.py +0 -263
  267. nemo_switchyard-0.2.0/switchyard/lib/backends/anthropic_native_llm_backend.py +0 -8
  268. nemo_switchyard-0.2.0/switchyard/lib/backends/backend_format_resolver.py +0 -425
  269. nemo_switchyard-0.2.0/switchyard/lib/backends/deterministic_routing_llm_backend.py +0 -166
  270. nemo_switchyard-0.2.0/switchyard/lib/backends/llm_target.py +0 -106
  271. nemo_switchyard-0.2.0/switchyard/lib/backends/multi_llm_backend.py +0 -90
  272. nemo_switchyard-0.2.0/switchyard/lib/backends/openai_llm_backend.py +0 -8
  273. nemo_switchyard-0.2.0/switchyard/lib/backends/openai_native_backend.py +0 -8
  274. nemo_switchyard-0.2.0/switchyard/lib/backends/stats_llm_backend.py +0 -8
  275. nemo_switchyard-0.2.0/switchyard/lib/chat_request/__init__.py +0 -17
  276. nemo_switchyard-0.2.0/switchyard/lib/chat_request/anthropic.py +0 -12
  277. nemo_switchyard-0.2.0/switchyard/lib/chat_request/base.py +0 -14
  278. nemo_switchyard-0.2.0/switchyard/lib/chat_request/openai_chat.py +0 -12
  279. nemo_switchyard-0.2.0/switchyard/lib/chat_request/openai_responses.py +0 -12
  280. nemo_switchyard-0.2.0/switchyard/lib/chat_response/__init__.py +0 -39
  281. nemo_switchyard-0.2.0/switchyard/lib/chat_response/anthropic.py +0 -19
  282. nemo_switchyard-0.2.0/switchyard/lib/chat_response/base.py +0 -14
  283. nemo_switchyard-0.2.0/switchyard/lib/chat_response/openai_chat.py +0 -15
  284. nemo_switchyard-0.2.0/switchyard/lib/chat_response/openai_responses.py +0 -19
  285. nemo_switchyard-0.2.0/switchyard/lib/chat_response/streaming_response_accumulator.py +0 -752
  286. nemo_switchyard-0.2.0/switchyard/lib/conversation_turn.py +0 -65
  287. nemo_switchyard-0.2.0/switchyard/lib/cost_estimator.py +0 -504
  288. nemo_switchyard-0.2.0/switchyard/lib/endpoints/__init__.py +0 -64
  289. nemo_switchyard-0.2.0/switchyard/lib/endpoints/anthropic_messages_endpoint.py +0 -123
  290. nemo_switchyard-0.2.0/switchyard/lib/endpoints/base.py +0 -39
  291. nemo_switchyard-0.2.0/switchyard/lib/endpoints/dispatch.py +0 -126
  292. nemo_switchyard-0.2.0/switchyard/lib/endpoints/error_envelope.py +0 -171
  293. nemo_switchyard-0.2.0/switchyard/lib/endpoints/models_endpoint.py +0 -42
  294. nemo_switchyard-0.2.0/switchyard/lib/endpoints/openai_chat_endpoint.py +0 -102
  295. nemo_switchyard-0.2.0/switchyard/lib/endpoints/outcome_metrics.py +0 -249
  296. nemo_switchyard-0.2.0/switchyard/lib/endpoints/prometheus_emitter.py +0 -70
  297. nemo_switchyard-0.2.0/switchyard/lib/endpoints/responses_endpoint.py +0 -101
  298. nemo_switchyard-0.2.0/switchyard/lib/endpoints/route_selection.py +0 -68
  299. nemo_switchyard-0.2.0/switchyard/lib/endpoints/routing_log_stats_endpoint.py +0 -45
  300. nemo_switchyard-0.2.0/switchyard/lib/endpoints/sse_helpers.py +0 -207
  301. nemo_switchyard-0.2.0/switchyard/lib/endpoints/stats_endpoint.py +0 -100
  302. nemo_switchyard-0.2.0/switchyard/lib/endpoints/upstream_error.py +0 -233
  303. nemo_switchyard-0.2.0/switchyard/lib/endpoints/upstream_error_log.py +0 -90
  304. nemo_switchyard-0.2.0/switchyard/lib/llm_client.py +0 -190
  305. nemo_switchyard-0.2.0/switchyard/lib/model_listing.py +0 -131
  306. nemo_switchyard-0.2.0/switchyard/lib/processors/__init__.py +0 -20
  307. nemo_switchyard-0.2.0/switchyard/lib/processors/_structured_output.py +0 -120
  308. nemo_switchyard-0.2.0/switchyard/lib/processors/escalation_judge_request_processor.py +0 -537
  309. nemo_switchyard-0.2.0/switchyard/lib/processors/format_translate.py +0 -311
  310. nemo_switchyard-0.2.0/switchyard/lib/processors/llm_classifier/__init__.py +0 -88
  311. nemo_switchyard-0.2.0/switchyard/lib/processors/llm_classifier/presets.py +0 -446
  312. nemo_switchyard-0.2.0/switchyard/lib/processors/llm_classifier/request_processor.py +0 -581
  313. nemo_switchyard-0.2.0/switchyard/lib/processors/llm_classifier/signals.py +0 -568
  314. nemo_switchyard-0.2.0/switchyard/lib/processors/llm_classifier/tier_selector_request_processor.py +0 -362
  315. nemo_switchyard-0.2.0/switchyard/lib/processors/message_condensing.py +0 -185
  316. nemo_switchyard-0.2.0/switchyard/lib/processors/model_rewrite_request_processor.py +0 -26
  317. nemo_switchyard-0.2.0/switchyard/lib/processors/prompts/escalation_judge.md +0 -178
  318. nemo_switchyard-0.2.0/switchyard/lib/processors/random_routing_request_processor.py +0 -56
  319. nemo_switchyard-0.2.0/switchyard/lib/processors/reasoning_effort_normalizer.py +0 -68
  320. nemo_switchyard-0.2.0/switchyard/lib/processors/reasoning_hint.py +0 -23
  321. nemo_switchyard-0.2.0/switchyard/lib/processors/rl_logging_request_processor.py +0 -43
  322. nemo_switchyard-0.2.0/switchyard/lib/processors/rl_logging_response_processor.py +0 -187
  323. nemo_switchyard-0.2.0/switchyard/lib/processors/routing_log_response_processor.py +0 -205
  324. nemo_switchyard-0.2.0/switchyard/lib/processors/stage_router/__init__.py +0 -44
  325. nemo_switchyard-0.2.0/switchyard/lib/processors/stage_router/classifier.py +0 -259
  326. nemo_switchyard-0.2.0/switchyard/lib/processors/stage_router/decision_log.py +0 -44
  327. nemo_switchyard-0.2.0/switchyard/lib/processors/stage_router/handoff_notes.py +0 -152
  328. nemo_switchyard-0.2.0/switchyard/lib/processors/stage_router/picker.py +0 -108
  329. nemo_switchyard-0.2.0/switchyard/lib/processors/stage_router/prompts/tier_classifier.md +0 -5
  330. nemo_switchyard-0.2.0/switchyard/lib/processors/stage_router_request_processor.py +0 -173
  331. nemo_switchyard-0.2.0/switchyard/lib/processors/stats_request_processor.py +0 -8
  332. nemo_switchyard-0.2.0/switchyard/lib/processors/stats_response_processor_accumulator.py +0 -8
  333. nemo_switchyard-0.2.0/switchyard/lib/profiles/__init__.py +0 -79
  334. nemo_switchyard-0.2.0/switchyard/lib/profiles/chain.py +0 -395
  335. nemo_switchyard-0.2.0/switchyard/lib/profiles/deterministic_routing_config.py +0 -172
  336. nemo_switchyard-0.2.0/switchyard/lib/profiles/deterministic_routing_presets.py +0 -105
  337. nemo_switchyard-0.2.0/switchyard/lib/profiles/deterministic_routing_profile_config.py +0 -122
  338. nemo_switchyard-0.2.0/switchyard/lib/profiles/escalation_router_config.py +0 -183
  339. nemo_switchyard-0.2.0/switchyard/lib/profiles/escalation_router_profile_config.py +0 -157
  340. nemo_switchyard-0.2.0/switchyard/lib/profiles/header_routing.py +0 -85
  341. nemo_switchyard-0.2.0/switchyard/lib/profiles/passthrough.py +0 -43
  342. nemo_switchyard-0.2.0/switchyard/lib/profiles/protocols.py +0 -116
  343. nemo_switchyard-0.2.0/switchyard/lib/profiles/random_routing.py +0 -123
  344. nemo_switchyard-0.2.0/switchyard/lib/profiles/random_routing_presets.py +0 -430
  345. nemo_switchyard-0.2.0/switchyard/lib/profiles/stage_router.py +0 -116
  346. nemo_switchyard-0.2.0/switchyard/lib/profiles/stage_router_config.py +0 -122
  347. nemo_switchyard-0.2.0/switchyard/lib/profiles/subagent_override.py +0 -57
  348. nemo_switchyard-0.2.0/switchyard/lib/profiles/switchyard_adapter.py +0 -114
  349. nemo_switchyard-0.2.0/switchyard/lib/profiles/table.py +0 -149
  350. nemo_switchyard-0.2.0/switchyard/lib/profiles/tier_target_builders.py +0 -106
  351. nemo_switchyard-0.2.0/switchyard/lib/profiles/translate_profile_config.py +0 -80
  352. nemo_switchyard-0.2.0/switchyard/lib/prometheus_exposition.py +0 -216
  353. nemo_switchyard-0.2.0/switchyard/lib/proxy_context.py +0 -123
  354. nemo_switchyard-0.2.0/switchyard/lib/redis_pin_store.py +0 -102
  355. nemo_switchyard-0.2.0/switchyard/lib/request_metadata.py +0 -143
  356. nemo_switchyard-0.2.0/switchyard/lib/roles.py +0 -48
  357. nemo_switchyard-0.2.0/switchyard/lib/route_table.py +0 -171
  358. nemo_switchyard-0.2.0/switchyard/lib/route_table_builders.py +0 -453
  359. nemo_switchyard-0.2.0/switchyard/lib/session_affinity.py +0 -277
  360. nemo_switchyard-0.2.0/switchyard/lib/session_cache.py +0 -54
  361. nemo_switchyard-0.2.0/switchyard/lib/session_key.py +0 -141
  362. nemo_switchyard-0.2.0/switchyard/lib/startup_timing.py +0 -56
  363. nemo_switchyard-0.2.0/switchyard/lib/stats_accumulator.py +0 -8
  364. nemo_switchyard-0.2.0/switchyard/lib/switchyard.py +0 -10
  365. nemo_switchyard-0.2.0/switchyard/lib/tracing.py +0 -72
  366. nemo_switchyard-0.2.0/switchyard/server/__init__.py +0 -34
  367. nemo_switchyard-0.2.0/switchyard/server/server_util.py +0 -389
  368. nemo_switchyard-0.2.0/switchyard/server/shell_tui.py +0 -419
  369. nemo_switchyard-0.2.0/switchyard/server/switchyard_app.py +0 -214
  370. nemo_switchyard-0.2.0/switchyard/telemetry.py +0 -64
  371. nemo_switchyard-0.2.0/switchyard_rust/__init__.py +0 -155
  372. nemo_switchyard-0.2.0/switchyard_rust/components.py +0 -90
  373. nemo_switchyard-0.2.0/switchyard_rust/components.pyi +0 -270
  374. nemo_switchyard-0.2.0/switchyard_rust/core.py +0 -793
  375. nemo_switchyard-0.2.0/switchyard_rust/libsy.py +0 -120
  376. nemo_switchyard-0.2.0/switchyard_rust/profiles.py +0 -106
  377. nemo_switchyard-0.2.0/switchyard_rust/profiles.pyi +0 -35
  378. nemo_switchyard-0.2.0/switchyard_rust/translation.py +0 -527
  379. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/LICENSE +0 -0
  380. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/NOTICE +0 -0
  381. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/core/state.rs +0 -0
  382. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/prompts/.gitkeep +0 -0
  383. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/prompts/capability-classifier/prompt.md +0 -0
  384. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/prompts/capability-classifier/schema.json +0 -0
  385. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/prompts/escalation/prompt.md +0 -0
  386. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy/src/prompts/escalation/schema.json +0 -0
  387. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/libsy-llm-client/src/raw.rs +0 -0
  388. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/protocol/Cargo.toml +0 -0
  389. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/protocol/LICENSE +0 -0
  390. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/protocol/NOTICE +0 -0
  391. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/protocol/src/format.rs +0 -0
  392. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/assets/startup_banner.txt +0 -0
  393. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/src/cli.rs +0 -0
  394. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/src/main.rs +0 -0
  395. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/src/shutdown.rs +0 -0
  396. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-server/src/stats/cache_eligibility.rs +0 -0
  397. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/LICENSE +0 -0
  398. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/NOTICE +0 -0
  399. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/README.md +0 -0
  400. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/codecs/anthropic/mod.rs +0 -0
  401. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/codecs/openai_chat/mod.rs +0 -0
  402. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/diagnostic.rs +0 -0
  403. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/policy.rs +0 -0
  404. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/crates/switchyard-translation/src/stream.rs +0 -0
  405. {nemo_switchyard-0.2.0 → nemo_switchyard-0.3.0}/switchyard_rust/py.typed +0 -0
@@ -274,6 +274,9 @@ name = "bitflags"
274
274
  version = "2.13.1"
275
275
  source = "registry+https://github.com/rust-lang/crates.io-index"
276
276
  checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
277
+ dependencies = [
278
+ "serde_core",
279
+ ]
277
280
 
278
281
  [[package]]
279
282
  name = "borrow-or-share"
@@ -334,6 +337,16 @@ dependencies = [
334
337
  "rand_core 0.10.1",
335
338
  ]
336
339
 
340
+ [[package]]
341
+ name = "chrono"
342
+ version = "0.4.45"
343
+ source = "registry+https://github.com/rust-lang/crates.io-index"
344
+ checksum = "1aa79e62e7697b8e29b513a68abacf485adcd1fe8284a4316c5ae868e6633327"
345
+ dependencies = [
346
+ "num-traits",
347
+ "serde",
348
+ ]
349
+
337
350
  [[package]]
338
351
  name = "clap"
339
352
  version = "4.6.2"
@@ -499,7 +512,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
499
512
  checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
500
513
  dependencies = [
501
514
  "libc",
502
- "windows-sys 0.61.2",
515
+ "windows-sys 0.52.0",
503
516
  ]
504
517
 
505
518
  [[package]]
@@ -1226,6 +1239,34 @@ dependencies = [
1226
1239
  "windows-sys 0.61.2",
1227
1240
  ]
1228
1241
 
1242
+ [[package]]
1243
+ name = "nemo-relay-plugin"
1244
+ version = "0.8.4"
1245
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1246
+ checksum = "b2186727d62ca3c1be2e56ae302e9f7799db00c2dfc2b5ab58ebe2ec820c08be"
1247
+ dependencies = [
1248
+ "futures",
1249
+ "nemo-relay-types",
1250
+ "serde",
1251
+ "serde_json",
1252
+ "tokio",
1253
+ "tokio-util",
1254
+ ]
1255
+
1256
+ [[package]]
1257
+ name = "nemo-relay-types"
1258
+ version = "0.8.4"
1259
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1260
+ checksum = "e31bccc10dd27dda5035f9ba9dcda9b9a5ad17abe6474e43d7147b006163e95b"
1261
+ dependencies = [
1262
+ "bitflags",
1263
+ "chrono",
1264
+ "serde",
1265
+ "serde_json",
1266
+ "typed-builder",
1267
+ "uuid",
1268
+ ]
1269
+
1229
1270
  [[package]]
1230
1271
  name = "nu-ansi-term"
1231
1272
  version = "0.50.3"
@@ -1496,6 +1537,20 @@ dependencies = [
1496
1537
  "zerocopy",
1497
1538
  ]
1498
1539
 
1540
+ [[package]]
1541
+ name = "prefill-router"
1542
+ version = "0.3.0"
1543
+ dependencies = [
1544
+ "async-trait",
1545
+ "pyo3",
1546
+ "pyo3-build-config",
1547
+ "switchyard-libsy",
1548
+ "switchyard-protocol",
1549
+ "thiserror 2.0.18",
1550
+ "tokio",
1551
+ "tracing",
1552
+ ]
1553
+
1499
1554
  [[package]]
1500
1555
  name = "pretty_assertions"
1501
1556
  version = "1.4.1"
@@ -1709,7 +1764,7 @@ dependencies = [
1709
1764
  "once_cell",
1710
1765
  "socket2",
1711
1766
  "tracing",
1712
- "windows-sys 0.61.2",
1767
+ "windows-sys 0.52.0",
1713
1768
  ]
1714
1769
 
1715
1770
  [[package]]
@@ -1943,7 +1998,7 @@ dependencies = [
1943
1998
  "errno",
1944
1999
  "libc",
1945
2000
  "linux-raw-sys",
1946
- "windows-sys 0.61.2",
2001
+ "windows-sys 0.52.0",
1947
2002
  ]
1948
2003
 
1949
2004
  [[package]]
@@ -2000,7 +2055,7 @@ dependencies = [
2000
2055
  "security-framework",
2001
2056
  "security-framework-sys",
2002
2057
  "webpki-root-certs",
2003
- "windows-sys 0.61.2",
2058
+ "windows-sys 0.52.0",
2004
2059
  ]
2005
2060
 
2006
2061
  [[package]]
@@ -2122,6 +2177,7 @@ version = "1.0.150"
2122
2177
  source = "registry+https://github.com/rust-lang/crates.io-index"
2123
2178
  checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
2124
2179
  dependencies = [
2180
+ "indexmap",
2125
2181
  "itoa",
2126
2182
  "memchr",
2127
2183
  "serde",
@@ -2263,42 +2319,22 @@ version = "2.6.1"
2263
2319
  source = "registry+https://github.com/rust-lang/crates.io-index"
2264
2320
  checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
2265
2321
 
2266
- [[package]]
2267
- name = "switchyard-components"
2268
- version = "0.2.0"
2269
- dependencies = [
2270
- "async-stream",
2271
- "async-trait",
2272
- "futures-core",
2273
- "futures-util",
2274
- "parking_lot",
2275
- "rand 0.10.2",
2276
- "reqwest",
2277
- "serde",
2278
- "serde_json",
2279
- "switchyard-libsy",
2280
- "switchyard-protocol",
2281
- "switchyard-translation",
2282
- "thiserror 2.0.18",
2283
- "tokio",
2284
- "tracing",
2285
- ]
2286
-
2287
2322
  [[package]]
2288
2323
  name = "switchyard-libsy"
2289
- version = "0.2.0"
2324
+ version = "0.3.0"
2290
2325
  dependencies = [
2291
2326
  "async-trait",
2292
2327
  "futures",
2328
+ "http",
2293
2329
  "jsonptr",
2294
2330
  "jsonschema",
2295
2331
  "opentelemetry",
2296
2332
  "opentelemetry_sdk",
2297
2333
  "parking_lot",
2298
2334
  "rand 0.10.2",
2335
+ "regex",
2299
2336
  "serde",
2300
2337
  "serde_json",
2301
- "switchyard-llm-client",
2302
2338
  "switchyard-protocol",
2303
2339
  "thiserror 2.0.18",
2304
2340
  "tokio",
@@ -2306,11 +2342,12 @@ dependencies = [
2306
2342
  "tracing",
2307
2343
  "tracing-opentelemetry",
2308
2344
  "tracing-subscriber",
2345
+ "uuid",
2309
2346
  ]
2310
2347
 
2311
2348
  [[package]]
2312
2349
  name = "switchyard-llm-client"
2313
- version = "0.2.0"
2350
+ version = "0.3.0"
2314
2351
  dependencies = [
2315
2352
  "async-trait",
2316
2353
  "futures",
@@ -2318,18 +2355,43 @@ dependencies = [
2318
2355
  "http",
2319
2356
  "httpdate",
2320
2357
  "opentelemetry",
2358
+ "opentelemetry_sdk",
2359
+ "parking_lot",
2321
2360
  "reqwest",
2322
2361
  "serde_json",
2362
+ "switchyard-libsy",
2323
2363
  "switchyard-protocol",
2324
2364
  "switchyard-translation",
2365
+ "thiserror 2.0.18",
2325
2366
  "tokio",
2326
2367
  "tracing",
2368
+ "tracing-opentelemetry",
2369
+ "tracing-subscriber",
2370
+ "wiremock",
2371
+ ]
2372
+
2373
+ [[package]]
2374
+ name = "switchyard-nemo-relay-plugin"
2375
+ version = "0.3.0"
2376
+ dependencies = [
2377
+ "futures-util",
2378
+ "http",
2379
+ "nemo-relay-plugin",
2380
+ "serde",
2381
+ "serde_json",
2382
+ "switchyard-llm-client",
2383
+ "switchyard-protocol",
2384
+ "switchyard-runner",
2385
+ "switchyard-translation",
2386
+ "tempfile",
2387
+ "tokio",
2388
+ "toml",
2327
2389
  "wiremock",
2328
2390
  ]
2329
2391
 
2330
2392
  [[package]]
2331
2393
  name = "switchyard-protocol"
2332
- version = "0.2.0"
2394
+ version = "0.3.0"
2333
2395
  dependencies = [
2334
2396
  "async-trait",
2335
2397
  "futures",
@@ -2341,29 +2403,44 @@ dependencies = [
2341
2403
 
2342
2404
  [[package]]
2343
2405
  name = "switchyard-py"
2344
- version = "0.2.0"
2406
+ version = "0.3.0"
2345
2407
  dependencies = [
2346
- "async-trait",
2347
- "futures-util",
2408
+ "futures",
2348
2409
  "http",
2349
- "parking_lot",
2350
2410
  "pyo3",
2351
2411
  "pyo3-async-runtimes",
2352
2412
  "pythonize",
2353
2413
  "serde",
2354
2414
  "serde_json",
2355
- "switchyard-components",
2356
2415
  "switchyard-libsy",
2357
2416
  "switchyard-protocol",
2358
2417
  "switchyard-server",
2359
- "switchyard-translation",
2360
2418
  "tokio",
2419
+ ]
2420
+
2421
+ [[package]]
2422
+ name = "switchyard-runner"
2423
+ version = "0.3.0"
2424
+ dependencies = [
2425
+ "async-trait",
2426
+ "futures-util",
2427
+ "prefill-router",
2428
+ "reqwest",
2429
+ "serde",
2430
+ "serde_json",
2431
+ "strum_macros",
2432
+ "switchyard-libsy",
2433
+ "switchyard-llm-client",
2434
+ "switchyard-protocol",
2435
+ "thiserror 2.0.18",
2436
+ "tokio",
2437
+ "toml",
2361
2438
  "tracing",
2362
2439
  ]
2363
2440
 
2364
2441
  [[package]]
2365
2442
  name = "switchyard-server"
2366
- version = "0.2.0"
2443
+ version = "0.3.0"
2367
2444
  dependencies = [
2368
2445
  "async-stream",
2369
2446
  "async-trait",
@@ -2380,16 +2457,17 @@ dependencies = [
2380
2457
  "opentelemetry_sdk",
2381
2458
  "parking_lot",
2382
2459
  "prometheus",
2460
+ "reqwest",
2383
2461
  "rustls",
2384
2462
  "serde",
2385
2463
  "serde_json",
2386
2464
  "switchyard-libsy",
2387
2465
  "switchyard-llm-client",
2388
2466
  "switchyard-protocol",
2467
+ "switchyard-runner",
2389
2468
  "switchyard-translation",
2390
2469
  "tempfile",
2391
2470
  "tokio",
2392
- "toml",
2393
2471
  "tower",
2394
2472
  "tracing",
2395
2473
  "tracing-opentelemetry",
@@ -2398,7 +2476,7 @@ dependencies = [
2398
2476
 
2399
2477
  [[package]]
2400
2478
  name = "switchyard-skill-distillation"
2401
- version = "0.2.0"
2479
+ version = "0.3.0"
2402
2480
  dependencies = [
2403
2481
  "async-trait",
2404
2482
  "serde",
@@ -2407,17 +2485,36 @@ dependencies = [
2407
2485
  "tokio",
2408
2486
  ]
2409
2487
 
2488
+ [[package]]
2489
+ name = "switchyard-soak"
2490
+ version = "0.3.0"
2491
+ dependencies = [
2492
+ "axum",
2493
+ "clap",
2494
+ "futures-util",
2495
+ "humantime",
2496
+ "parking_lot",
2497
+ "rand 0.10.2",
2498
+ "reqwest",
2499
+ "serde",
2500
+ "serde_json",
2501
+ "tempfile",
2502
+ "tokio",
2503
+ ]
2504
+
2410
2505
  [[package]]
2411
2506
  name = "switchyard-translation"
2412
- version = "0.2.0"
2507
+ version = "0.3.0"
2413
2508
  dependencies = [
2414
2509
  "async-stream",
2510
+ "base64",
2415
2511
  "futures",
2416
2512
  "pretty_assertions",
2417
2513
  "serde",
2418
2514
  "serde_json",
2419
2515
  "switchyard-protocol",
2420
2516
  "thiserror 2.0.18",
2517
+ "tracing",
2421
2518
  ]
2422
2519
 
2423
2520
  [[package]]
@@ -2478,7 +2575,7 @@ dependencies = [
2478
2575
  "getrandom 0.4.3",
2479
2576
  "once_cell",
2480
2577
  "rustix",
2481
- "windows-sys 0.61.2",
2578
+ "windows-sys 0.52.0",
2482
2579
  ]
2483
2580
 
2484
2581
  [[package]]
@@ -2613,6 +2710,7 @@ dependencies = [
2613
2710
  "bytes",
2614
2711
  "futures-core",
2615
2712
  "futures-sink",
2713
+ "futures-util",
2616
2714
  "pin-project-lite",
2617
2715
  "tokio",
2618
2716
  ]
@@ -2786,6 +2884,26 @@ version = "0.2.5"
2786
2884
  source = "registry+https://github.com/rust-lang/crates.io-index"
2787
2885
  checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
2788
2886
 
2887
+ [[package]]
2888
+ name = "typed-builder"
2889
+ version = "0.23.2"
2890
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2891
+ checksum = "31aa81521b70f94402501d848ccc0ecaa8f93c8eb6999eb9747e72287757ffda"
2892
+ dependencies = [
2893
+ "typed-builder-macro",
2894
+ ]
2895
+
2896
+ [[package]]
2897
+ name = "typed-builder-macro"
2898
+ version = "0.23.2"
2899
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2900
+ checksum = "076a02dc54dd46795c2e9c8282ed40bcfb1e22747e955de9389a1de28190fb26"
2901
+ dependencies = [
2902
+ "proc-macro2",
2903
+ "quote",
2904
+ "syn 2.0.119",
2905
+ ]
2906
+
2789
2907
  [[package]]
2790
2908
  name = "unicode-general-category"
2791
2909
  version = "1.1.0"
@@ -2828,6 +2946,18 @@ version = "0.2.2"
2828
2946
  source = "registry+https://github.com/rust-lang/crates.io-index"
2829
2947
  checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
2830
2948
 
2949
+ [[package]]
2950
+ name = "uuid"
2951
+ version = "1.18.1"
2952
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2953
+ checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2"
2954
+ dependencies = [
2955
+ "getrandom 0.3.4",
2956
+ "js-sys",
2957
+ "serde",
2958
+ "wasm-bindgen",
2959
+ ]
2960
+
2831
2961
  [[package]]
2832
2962
  name = "uuid-simd"
2833
2963
  version = "0.8.0"
@@ -2993,7 +3123,7 @@ version = "0.1.11"
2993
3123
  source = "registry+https://github.com/rust-lang/crates.io-index"
2994
3124
  checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
2995
3125
  dependencies = [
2996
- "windows-sys 0.61.2",
3126
+ "windows-sys 0.52.0",
2997
3127
  ]
2998
3128
 
2999
3129
  [[package]]
@@ -3,10 +3,10 @@
3
3
 
4
4
  [workspace]
5
5
  resolver = "3"
6
- members = ["crates/libsy", "crates/libsy-llm-client", "crates/switchyard-components", "crates/switchyard-py", "crates/protocol", "crates/switchyard-server", "crates/switchyard-translation"]
6
+ members = ["crates/libsy", "crates/libsy-llm-client", "crates/switchyard-py", "crates/protocol", "crates/switchyard-runner", "crates/switchyard-server", "crates/switchyard-translation"]
7
7
 
8
8
  [workspace.package]
9
- version = "0.2.0"
9
+ version = "0.3.0"
10
10
  authors = ["NVIDIA Corporation"]
11
11
  edition = "2024"
12
12
  license = "Apache-2.0"
@@ -16,23 +16,31 @@ rust-version = "1.96.1"
16
16
  [workspace.dependencies]
17
17
  async-stream = "0.3"
18
18
  async-trait = "0.1"
19
+ base64 = "0.22"
19
20
  futures = "0.3"
20
21
  futures-util = "0.3"
21
22
  http = "1"
22
23
  httpdate = "1"
23
24
  jsonschema = { version = "0.49.4", default-features = false }
24
25
  jsonptr = { version = "0.8.1", default-features = false, features = ["std", "json", "resolve"] }
26
+ nemo-relay-plugin = ">=0.8.0, <1.0.0"
25
27
  parking_lot = "0.12"
28
+ prefill-router = { path = "crates/prefill-router", version = "0.3.0" }
26
29
  rand = "0.10"
30
+ regex = "1"
27
31
  reqwest = { version = "0.13.4", default-features = false, features = ["json", "rustls", "stream"] }
28
32
  serde = { version = "1", features = ["derive"] }
29
- serde_json = "1"
30
- switchyard-components = { path = "crates/switchyard-components", version = "0.2.0" }
31
- switchyard-libsy = { path = "crates/libsy", version = "0.2.0" }
32
- switchyard-llm-client = { path = "crates/libsy-llm-client", version = "0.2.0" }
33
- switchyard-protocol = { path = "crates/protocol", version = "0.2.0" }
34
- switchyard-server = { path = "crates/switchyard-server", version = "0.2.0" }
35
- switchyard-translation = { path = "crates/switchyard-translation", version = "0.2.0" }
33
+ serde_json = { version = "1", features = ["preserve_order"] }
34
+ switchyard-libsy = { path = "crates/libsy", version = "0.3.0" }
35
+ switchyard-llm-client = { path = "crates/libsy-llm-client", version = "0.3.0" }
36
+ switchyard-protocol = { path = "crates/protocol", version = "0.3.0" }
37
+ switchyard-runner = { path = "crates/switchyard-runner", version = "0.3.0" }
38
+ switchyard-server = { path = "crates/switchyard-server", version = "0.3.0" }
39
+ switchyard-translation = { path = "crates/switchyard-translation", version = "0.3.0" }
40
+ strum_macros = "0.28"
36
41
  thiserror = "2"
37
42
  tokio = { version = "1", features = ["full"] }
38
43
  tracing = { version = "0.1", default-features = false, features = ["attributes", "std"] }
44
+ tracing-opentelemetry = "0.33"
45
+ tracing-subscriber = { version = "0.3", features = ["env-filter"] }
46
+ uuid = { version = "1", features = ["v7"] }