@homeflare/distilled-litellm 0.2.0 → 0.3.0

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 (390) hide show
  1. package/README.md +41 -12
  2. package/dist/services/a2a.js +1 -1
  3. package/dist/services/a2a_registration.js +1 -1
  4. package/dist/services/access_groups.d.ts +18 -0
  5. package/dist/services/access_groups.d.ts.map +1 -1
  6. package/dist/services/access_groups.js +15 -1
  7. package/dist/services/access_groups.js.map +1 -1
  8. package/dist/services/adaptive_router.js +1 -1
  9. package/dist/services/agents.d.ts +10 -0
  10. package/dist/services/agents.d.ts.map +1 -1
  11. package/dist/services/agents.js +10 -1
  12. package/dist/services/agents.js.map +1 -1
  13. package/dist/services/alerting.js +1 -1
  14. package/dist/services/anthropic_passthrough.js +1 -1
  15. package/dist/services/anthropic_skills.d.ts +7 -1
  16. package/dist/services/anthropic_skills.d.ts.map +1 -1
  17. package/dist/services/anthropic_skills.js +6 -2
  18. package/dist/services/anthropic_skills.js.map +1 -1
  19. package/dist/services/assistants.js +1 -1
  20. package/dist/services/audio.js +1 -1
  21. package/dist/services/audit_logging.d.ts +2 -0
  22. package/dist/services/audit_logging.d.ts.map +1 -1
  23. package/dist/services/audit_logging.js +2 -1
  24. package/dist/services/audit_logging.js.map +1 -1
  25. package/dist/services/auto_router.d.ts +162 -62
  26. package/dist/services/auto_router.d.ts.map +1 -1
  27. package/dist/services/auto_router.js +92 -31
  28. package/dist/services/auto_router.js.map +1 -1
  29. package/dist/services/batch.js +1 -1
  30. package/dist/services/beta_agents.js +1 -1
  31. package/dist/services/beta_mcp.js +1 -1
  32. package/dist/services/budget_management.d.ts +8 -3
  33. package/dist/services/budget_management.d.ts.map +1 -1
  34. package/dist/services/budget_management.js +7 -4
  35. package/dist/services/budget_management.js.map +1 -1
  36. package/dist/services/budget_spend_tracking.d.ts +24 -5
  37. package/dist/services/budget_spend_tracking.d.ts.map +1 -1
  38. package/dist/services/budget_spend_tracking.js +17 -4
  39. package/dist/services/budget_spend_tracking.js.map +1 -1
  40. package/dist/services/cache_settings.js +1 -1
  41. package/dist/services/caching.js +1 -1
  42. package/dist/services/chat_completions.js +1 -1
  43. package/dist/services/claude_code_marketplace.d.ts +11 -10
  44. package/dist/services/claude_code_marketplace.d.ts.map +1 -1
  45. package/dist/services/claude_code_marketplace.js +8 -6
  46. package/dist/services/claude_code_marketplace.js.map +1 -1
  47. package/dist/services/cloudzero.js +1 -1
  48. package/dist/services/completions.js +1 -1
  49. package/dist/services/compliance.js +1 -1
  50. package/dist/services/config_overrides.d.ts +5 -1
  51. package/dist/services/config_overrides.d.ts.map +1 -1
  52. package/dist/services/config_overrides.js +3 -1
  53. package/dist/services/config_overrides.js.map +1 -1
  54. package/dist/services/config_yaml.d.ts +120 -6
  55. package/dist/services/config_yaml.d.ts.map +1 -1
  56. package/dist/services/config_yaml.js +67 -1
  57. package/dist/services/config_yaml.js.map +1 -1
  58. package/dist/services/containers.d.ts +8 -2
  59. package/dist/services/containers.d.ts.map +1 -1
  60. package/dist/services/containers.js +13 -5
  61. package/dist/services/containers.js.map +1 -1
  62. package/dist/services/coordination_redis_settings.js +1 -1
  63. package/dist/services/cost_tracking.d.ts +91 -1
  64. package/dist/services/cost_tracking.d.ts.map +1 -1
  65. package/dist/services/cost_tracking.js +82 -2
  66. package/dist/services/cost_tracking.js.map +1 -1
  67. package/dist/services/credential_management.d.ts +2 -1
  68. package/dist/services/credential_management.d.ts.map +1 -1
  69. package/dist/services/credential_management.js +3 -2
  70. package/dist/services/credential_management.js.map +1 -1
  71. package/dist/services/customer_management.d.ts +25 -2
  72. package/dist/services/customer_management.d.ts.map +1 -1
  73. package/dist/services/customer_management.js +22 -3
  74. package/dist/services/customer_management.js.map +1 -1
  75. package/dist/services/email_management.js +1 -1
  76. package/dist/services/embeddings.js +1 -1
  77. package/dist/services/evals.js +1 -1
  78. package/dist/services/experimental.js +1 -1
  79. package/dist/services/fallback_management.js +1 -1
  80. package/dist/services/files.js +1 -1
  81. package/dist/services/fine_tuning.js +1 -1
  82. package/dist/services/gemini_agents.js +1 -1
  83. package/dist/services/google_genai_endpoints.js +1 -1
  84. package/dist/services/guardrails.d.ts +80 -7
  85. package/dist/services/guardrails.d.ts.map +1 -1
  86. package/dist/services/guardrails.js +37 -1
  87. package/dist/services/guardrails.js.map +1 -1
  88. package/dist/services/health.d.ts +2 -2
  89. package/dist/services/health.d.ts.map +1 -1
  90. package/dist/services/health.js +2 -2
  91. package/dist/services/health.js.map +1 -1
  92. package/dist/services/images.js +1 -1
  93. package/dist/services/index.d.ts +1 -15
  94. package/dist/services/index.d.ts.map +1 -1
  95. package/dist/services/index.js +1 -15
  96. package/dist/services/index.js.map +1 -1
  97. package/dist/services/internal_user_management.d.ts +227 -39
  98. package/dist/services/internal_user_management.d.ts.map +1 -1
  99. package/dist/services/internal_user_management.js +194 -37
  100. package/dist/services/internal_user_management.js.map +1 -1
  101. package/dist/services/invite_links.js +1 -1
  102. package/dist/services/jwt_mappings.d.ts +3 -0
  103. package/dist/services/jwt_mappings.d.ts.map +1 -1
  104. package/dist/services/jwt_mappings.js +4 -1
  105. package/dist/services/jwt_mappings.js.map +1 -1
  106. package/dist/services/key_management.d.ts +93 -49
  107. package/dist/services/key_management.d.ts.map +1 -1
  108. package/dist/services/key_management.js +75 -39
  109. package/dist/services/key_management.js.map +1 -1
  110. package/dist/services/langfuse_passthrough.js +1 -1
  111. package/dist/services/llm_passthrough.d.ts +1199 -0
  112. package/dist/services/llm_passthrough.d.ts.map +1 -0
  113. package/dist/services/llm_passthrough.js +2150 -0
  114. package/dist/services/llm_passthrough.js.map +1 -0
  115. package/dist/services/llm_utils.js +1 -1
  116. package/dist/services/logging_callbacks.js +1 -1
  117. package/dist/services/mcp_byok_oauth.d.ts +18 -11
  118. package/dist/services/mcp_byok_oauth.d.ts.map +1 -1
  119. package/dist/services/mcp_byok_oauth.js +27 -24
  120. package/dist/services/mcp_byok_oauth.js.map +1 -1
  121. package/dist/services/mcp_discoverable.d.ts +34 -0
  122. package/dist/services/mcp_discoverable.d.ts.map +1 -1
  123. package/dist/services/mcp_discoverable.js +51 -1
  124. package/dist/services/mcp_discoverable.js.map +1 -1
  125. package/dist/services/mcp_management.d.ts +90 -2
  126. package/dist/services/mcp_management.d.ts.map +1 -1
  127. package/dist/services/mcp_management.js +115 -3
  128. package/dist/services/mcp_management.js.map +1 -1
  129. package/dist/services/mcp_rest.d.ts +13 -0
  130. package/dist/services/mcp_rest.d.ts.map +1 -1
  131. package/dist/services/mcp_rest.js +10 -2
  132. package/dist/services/mcp_rest.js.map +1 -1
  133. package/dist/services/memory_management.d.ts +2 -0
  134. package/dist/services/memory_management.d.ts.map +1 -1
  135. package/dist/services/memory_management.js +2 -1
  136. package/dist/services/memory_management.js.map +1 -1
  137. package/dist/services/misc.d.ts +86 -1
  138. package/dist/services/misc.d.ts.map +1 -1
  139. package/dist/services/misc.js +126 -2
  140. package/dist/services/misc.js.map +1 -1
  141. package/dist/services/model_management.d.ts +310 -19
  142. package/dist/services/model_management.d.ts.map +1 -1
  143. package/dist/services/model_management.js +240 -7
  144. package/dist/services/model_management.js.map +1 -1
  145. package/dist/services/moderations.js +1 -1
  146. package/dist/services/ocr.js +1 -1
  147. package/dist/services/open_ai_pass_through.d.ts +35 -90
  148. package/dist/services/open_ai_pass_through.d.ts.map +1 -1
  149. package/dist/services/open_ai_pass_through.js +41 -139
  150. package/dist/services/open_ai_pass_through.js.map +1 -1
  151. package/dist/services/organization_management.d.ts +21 -1
  152. package/dist/services/organization_management.d.ts.map +1 -1
  153. package/dist/services/organization_management.js +20 -2
  154. package/dist/services/organization_management.js.map +1 -1
  155. package/dist/services/plugins.js +1 -1
  156. package/dist/services/policies.d.ts +2 -0
  157. package/dist/services/policies.d.ts.map +1 -1
  158. package/dist/services/policies.js +3 -1
  159. package/dist/services/policies.js.map +1 -1
  160. package/dist/services/policy_engine.d.ts +6 -0
  161. package/dist/services/policy_engine.d.ts.map +1 -1
  162. package/dist/services/policy_engine.js +4 -1
  163. package/dist/services/policy_engine.js.map +1 -1
  164. package/dist/services/project_management.d.ts +15 -0
  165. package/dist/services/project_management.d.ts.map +1 -1
  166. package/dist/services/project_management.js +14 -1
  167. package/dist/services/project_management.js.map +1 -1
  168. package/dist/services/prompts.js +1 -1
  169. package/dist/services/public.d.ts +124 -0
  170. package/dist/services/public.d.ts.map +1 -1
  171. package/dist/services/public.js +158 -1
  172. package/dist/services/public.js.map +1 -1
  173. package/dist/services/rag.js +1 -1
  174. package/dist/services/realtime.d.ts +4 -26
  175. package/dist/services/realtime.d.ts.map +1 -1
  176. package/dist/services/realtime.js +7 -57
  177. package/dist/services/realtime.js.map +1 -1
  178. package/dist/services/rerank.d.ts +72 -0
  179. package/dist/services/rerank.d.ts.map +1 -1
  180. package/dist/services/rerank.js +61 -4
  181. package/dist/services/rerank.js.map +1 -1
  182. package/dist/services/responses.d.ts +30 -0
  183. package/dist/services/responses.d.ts.map +1 -1
  184. package/dist/services/responses.js +59 -1
  185. package/dist/services/responses.js.map +1 -1
  186. package/dist/services/router_settings.js +1 -1
  187. package/dist/services/rust_control_plane.js +1 -1
  188. package/dist/services/scim.d.ts +41 -1
  189. package/dist/services/scim.d.ts.map +1 -1
  190. package/dist/services/scim.js +60 -2
  191. package/dist/services/scim.js.map +1 -1
  192. package/dist/services/search.js +1 -1
  193. package/dist/services/search_tools.js +1 -1
  194. package/dist/services/settings.d.ts +88 -0
  195. package/dist/services/settings.d.ts.map +1 -1
  196. package/dist/services/settings.js +113 -1
  197. package/dist/services/settings.js.map +1 -1
  198. package/dist/services/sso_settings.d.ts +1 -1
  199. package/dist/services/sso_settings.d.ts.map +1 -1
  200. package/dist/services/sso_settings.js +1 -1
  201. package/dist/services/sso_settings.js.map +1 -1
  202. package/dist/services/tag_management.d.ts +7 -0
  203. package/dist/services/tag_management.d.ts.map +1 -1
  204. package/dist/services/tag_management.js +8 -1
  205. package/dist/services/tag_management.js.map +1 -1
  206. package/dist/services/team_management.d.ts +265 -17
  207. package/dist/services/team_management.d.ts.map +1 -1
  208. package/dist/services/team_management.js +247 -12
  209. package/dist/services/team_management.js.map +1 -1
  210. package/dist/services/tools.js +1 -1
  211. package/dist/services/ui_settings.js +1 -1
  212. package/dist/services/ui_theme_settings.js +1 -1
  213. package/dist/services/usage_ai.js +1 -1
  214. package/dist/services/vantage.js +1 -1
  215. package/dist/services/vector_store_management.js +1 -1
  216. package/dist/services/vector_stores.js +1 -1
  217. package/dist/services/videos.js +1 -1
  218. package/dist/services/web_socket.d.ts +0 -18
  219. package/dist/services/web_socket.d.ts.map +1 -1
  220. package/dist/services/web_socket.js +1 -33
  221. package/dist/services/web_socket.js.map +1 -1
  222. package/dist/services/workflow_management.js +1 -1
  223. package/package.json +1 -1
  224. package/src/services/a2a.ts +1 -1
  225. package/src/services/a2a_registration.ts +1 -1
  226. package/src/services/access_groups.ts +44 -1
  227. package/src/services/adaptive_router.ts +1 -1
  228. package/src/services/agents.ts +22 -1
  229. package/src/services/alerting.ts +1 -1
  230. package/src/services/anthropic_passthrough.ts +1 -1
  231. package/src/services/anthropic_skills.ts +12 -2
  232. package/src/services/assistants.ts +1 -1
  233. package/src/services/audio.ts +1 -1
  234. package/src/services/audit_logging.ts +4 -1
  235. package/src/services/auto_router.ts +303 -93
  236. package/src/services/batch.ts +1 -1
  237. package/src/services/beta_agents.ts +1 -1
  238. package/src/services/beta_mcp.ts +1 -1
  239. package/src/services/budget_management.ts +12 -4
  240. package/src/services/budget_spend_tracking.ts +38 -6
  241. package/src/services/cache_settings.ts +1 -1
  242. package/src/services/caching.ts +1 -1
  243. package/src/services/chat_completions.ts +1 -1
  244. package/src/services/claude_code_marketplace.ts +20 -14
  245. package/src/services/cloudzero.ts +1 -1
  246. package/src/services/completions.ts +1 -1
  247. package/src/services/compliance.ts +1 -1
  248. package/src/services/config_overrides.ts +8 -2
  249. package/src/services/config_yaml.ts +251 -6
  250. package/src/services/containers.ts +29 -11
  251. package/src/services/coordination_redis_settings.ts +1 -1
  252. package/src/services/cost_tracking.ts +198 -2
  253. package/src/services/credential_management.ts +9 -4
  254. package/src/services/customer_management.ts +49 -3
  255. package/src/services/email_management.ts +1 -1
  256. package/src/services/embeddings.ts +1 -1
  257. package/src/services/evals.ts +1 -1
  258. package/src/services/experimental.ts +1 -1
  259. package/src/services/fallback_management.ts +1 -1
  260. package/src/services/files.ts +1 -1
  261. package/src/services/fine_tuning.ts +1 -1
  262. package/src/services/gemini_agents.ts +1 -1
  263. package/src/services/google_genai_endpoints.ts +1 -1
  264. package/src/services/guardrails.ts +198 -8
  265. package/src/services/health.ts +3 -2
  266. package/src/services/images.ts +1 -1
  267. package/src/services/index.ts +1 -15
  268. package/src/services/internal_user_management.ts +565 -103
  269. package/src/services/invite_links.ts +1 -1
  270. package/src/services/jwt_mappings.ts +7 -1
  271. package/src/services/key_management.ts +229 -126
  272. package/src/services/langfuse_passthrough.ts +1 -1
  273. package/src/services/llm_passthrough.ts +4542 -0
  274. package/src/services/llm_utils.ts +1 -1
  275. package/src/services/logging_callbacks.ts +1 -1
  276. package/src/services/mcp_byok_oauth.ts +65 -45
  277. package/src/services/mcp_discoverable.ts +109 -1
  278. package/src/services/mcp_management.ts +258 -3
  279. package/src/services/mcp_rest.ts +30 -5
  280. package/src/services/memory_management.ts +4 -1
  281. package/src/services/misc.ts +269 -2
  282. package/src/services/model_management.ts +666 -21
  283. package/src/services/moderations.ts +1 -1
  284. package/src/services/ocr.ts +1 -1
  285. package/src/services/open_ai_pass_through.ts +81 -286
  286. package/src/services/organization_management.ts +44 -2
  287. package/src/services/plugins.ts +1 -1
  288. package/src/services/policies.ts +5 -1
  289. package/src/services/policy_engine.ts +10 -1
  290. package/src/services/project_management.ts +33 -1
  291. package/src/services/prompts.ts +1 -1
  292. package/src/services/public.ts +356 -1
  293. package/src/services/rag.ts +1 -1
  294. package/src/services/realtime.ts +11 -111
  295. package/src/services/rerank.ts +187 -7
  296. package/src/services/responses.ts +117 -1
  297. package/src/services/router_settings.ts +1 -1
  298. package/src/services/rust_control_plane.ts +1 -1
  299. package/src/services/scim.ts +134 -3
  300. package/src/services/search.ts +1 -1
  301. package/src/services/search_tools.ts +1 -1
  302. package/src/services/settings.ts +278 -1
  303. package/src/services/sso_settings.ts +2 -1
  304. package/src/services/tag_management.ts +15 -1
  305. package/src/services/team_management.ts +676 -37
  306. package/src/services/tools.ts +1 -1
  307. package/src/services/ui_settings.ts +1 -1
  308. package/src/services/ui_theme_settings.ts +1 -1
  309. package/src/services/usage_ai.ts +1 -1
  310. package/src/services/vantage.ts +1 -1
  311. package/src/services/vector_store_management.ts +1 -1
  312. package/src/services/vector_stores.ts +1 -1
  313. package/src/services/videos.ts +1 -1
  314. package/src/services/web_socket.ts +1 -61
  315. package/src/services/workflow_management.ts +1 -1
  316. package/dist/services/anthropic_pass_through.d.ts +0 -70
  317. package/dist/services/anthropic_pass_through.d.ts.map +0 -1
  318. package/dist/services/anthropic_pass_through.js +0 -114
  319. package/dist/services/anthropic_pass_through.js.map +0 -1
  320. package/dist/services/assembly_ai_eu_pass_through.d.ts +0 -70
  321. package/dist/services/assembly_ai_eu_pass_through.d.ts.map +0 -1
  322. package/dist/services/assembly_ai_eu_pass_through.js +0 -114
  323. package/dist/services/assembly_ai_eu_pass_through.js.map +0 -1
  324. package/dist/services/assembly_ai_pass_through.d.ts +0 -70
  325. package/dist/services/assembly_ai_pass_through.d.ts.map +0 -1
  326. package/dist/services/assembly_ai_pass_through.js +0 -114
  327. package/dist/services/assembly_ai_pass_through.js.map +0 -1
  328. package/dist/services/aws_comprehend_medical_pass_through.d.ts +0 -36
  329. package/dist/services/aws_comprehend_medical_pass_through.d.ts.map +0 -1
  330. package/dist/services/aws_comprehend_medical_pass_through.js +0 -56
  331. package/dist/services/aws_comprehend_medical_pass_through.js.map +0 -1
  332. package/dist/services/azure_ai_pass_through.d.ts +0 -70
  333. package/dist/services/azure_ai_pass_through.d.ts.map +0 -1
  334. package/dist/services/azure_ai_pass_through.js +0 -112
  335. package/dist/services/azure_ai_pass_through.js.map +0 -1
  336. package/dist/services/azure_pass_through.d.ts +0 -70
  337. package/dist/services/azure_pass_through.d.ts.map +0 -1
  338. package/dist/services/azure_pass_through.js +0 -107
  339. package/dist/services/azure_pass_through.js.map +0 -1
  340. package/dist/services/bedrock_pass_through.d.ts +0 -70
  341. package/dist/services/bedrock_pass_through.d.ts.map +0 -1
  342. package/dist/services/bedrock_pass_through.js +0 -114
  343. package/dist/services/bedrock_pass_through.js.map +0 -1
  344. package/dist/services/cohere_pass_through.d.ts +0 -70
  345. package/dist/services/cohere_pass_through.d.ts.map +0 -1
  346. package/dist/services/cohere_pass_through.js +0 -112
  347. package/dist/services/cohere_pass_through.js.map +0 -1
  348. package/dist/services/cursor_pass_through.d.ts +0 -70
  349. package/dist/services/cursor_pass_through.d.ts.map +0 -1
  350. package/dist/services/cursor_pass_through.js +0 -112
  351. package/dist/services/cursor_pass_through.js.map +0 -1
  352. package/dist/services/google_ai_studio_pass_through.d.ts +0 -70
  353. package/dist/services/google_ai_studio_pass_through.d.ts.map +0 -1
  354. package/dist/services/google_ai_studio_pass_through.js +0 -112
  355. package/dist/services/google_ai_studio_pass_through.js.map +0 -1
  356. package/dist/services/milvus_pass_through.d.ts +0 -70
  357. package/dist/services/milvus_pass_through.d.ts.map +0 -1
  358. package/dist/services/milvus_pass_through.js +0 -112
  359. package/dist/services/milvus_pass_through.js.map +0 -1
  360. package/dist/services/mistral_pass_through.d.ts +0 -70
  361. package/dist/services/mistral_pass_through.d.ts.map +0 -1
  362. package/dist/services/mistral_pass_through.js +0 -114
  363. package/dist/services/mistral_pass_through.js.map +0 -1
  364. package/dist/services/vertex_ai_pass_through.d.ts +0 -180
  365. package/dist/services/vertex_ai_pass_through.d.ts.map +0 -1
  366. package/dist/services/vertex_ai_pass_through.js +0 -334
  367. package/dist/services/vertex_ai_pass_through.js.map +0 -1
  368. package/dist/services/vllm_pass_through.d.ts +0 -70
  369. package/dist/services/vllm_pass_through.d.ts.map +0 -1
  370. package/dist/services/vllm_pass_through.js +0 -104
  371. package/dist/services/vllm_pass_through.js.map +0 -1
  372. package/dist/services/watsonx_pass_through.d.ts +0 -70
  373. package/dist/services/watsonx_pass_through.d.ts.map +0 -1
  374. package/dist/services/watsonx_pass_through.js +0 -114
  375. package/dist/services/watsonx_pass_through.js.map +0 -1
  376. package/src/services/anthropic_pass_through.ts +0 -233
  377. package/src/services/assembly_ai_eu_pass_through.ts +0 -237
  378. package/src/services/assembly_ai_pass_through.ts +0 -237
  379. package/src/services/aws_comprehend_medical_pass_through.ts +0 -109
  380. package/src/services/azure_ai_pass_through.ts +0 -231
  381. package/src/services/azure_pass_through.ts +0 -227
  382. package/src/services/bedrock_pass_through.ts +0 -229
  383. package/src/services/cohere_pass_through.ts +0 -227
  384. package/src/services/cursor_pass_through.ts +0 -227
  385. package/src/services/google_ai_studio_pass_through.ts +0 -227
  386. package/src/services/milvus_pass_through.ts +0 -227
  387. package/src/services/mistral_pass_through.ts +0 -229
  388. package/src/services/vertex_ai_pass_through.ts +0 -684
  389. package/src/services/vllm_pass_through.ts +0 -227
  390. package/src/services/watsonx_pass_through.ts +0 -229
@@ -17,6 +17,8 @@ export interface GetAutoRouterBenchmarksAutoRouterBenchmarksGetRequest {
17
17
  start_date?: string;
18
18
  /** YYYY-MM-DD UTC, inclusive (defaults to today) */
19
19
  end_date?: string;
20
+ /** Filter to one virtual key token hash */
21
+ api_key?: string;
20
22
  }
21
23
  export declare const GetAutoRouterBenchmarksAutoRouterBenchmarksGetRequest: S.Schema<GetAutoRouterBenchmarksAutoRouterBenchmarksGetRequest>;
22
24
  /** One prompt-caching bucket of turns, with how often those turns hit the cache. */
@@ -62,18 +64,25 @@ export interface AutoRouterBenchmarkGroup {
62
64
  avg_session_seconds: number;
63
65
  avg_tokens_per_session: number;
64
66
  avg_turns_per_session: number;
65
- /** spend plus saved_spend: the estimated single-model cost */
66
- baseline_spend: number;
67
+ /** Estimated single-model cost for covered turns only */
68
+ baseline_spend: number | null;
67
69
  cache: AutoRouterCacheStats;
70
+ /** Recorded LLM classifier cost already included in spend; null when any session turns predate subtotal recording, and zero for an empty window */
71
+ classifier_cost: number | null;
68
72
  /** The auto-router alias requests were sent to */
69
73
  router_name: string;
70
74
  /** complexity, adaptive or quality */
71
75
  router_type: string;
72
- /** saved_spend over baseline_spend, as a percentage */
73
- saved_pct: number;
74
- saved_per_session: number;
75
- /** Signed dollars saved versus each router's savings baseline (derived from its hardest tier, or the configured override), from the same per-request savings record the usage tab reads */
76
- saved_spend: number;
76
+ /** Covered savings over covered baseline spend, as a percentage */
77
+ saved_pct: number | null;
78
+ /** Average session savings; unavailable unless every turn is covered */
79
+ saved_per_session: number | null;
80
+ /** Signed savings for covered turns only; null when traffic has no current estimates */
81
+ saved_spend: number | null;
82
+ /** Actual spend, including classifier cost, for covered turns only */
83
+ savings_estimated_actual_spend: number;
84
+ /** Turns covered by the current savings estimator; legacy estimates are excluded */
85
+ savings_estimated_turns: number;
77
86
  sessions: number;
78
87
  /** What the routed traffic actually cost */
79
88
  spend: number;
@@ -90,14 +99,21 @@ export interface AutoRouterBenchmarkTotals {
90
99
  avg_session_seconds: number;
91
100
  avg_tokens_per_session: number;
92
101
  avg_turns_per_session: number;
93
- /** spend plus saved_spend: the estimated single-model cost */
94
- baseline_spend: number;
102
+ /** Estimated single-model cost for covered turns only */
103
+ baseline_spend: number | null;
95
104
  cache: AutoRouterCacheStats;
96
- /** saved_spend over baseline_spend, as a percentage */
97
- saved_pct: number;
98
- saved_per_session: number;
99
- /** Signed dollars saved versus each router's savings baseline (derived from its hardest tier, or the configured override), from the same per-request savings record the usage tab reads */
100
- saved_spend: number;
105
+ /** Recorded LLM classifier cost already included in spend; null when any session turns predate subtotal recording, and zero for an empty window */
106
+ classifier_cost: number | null;
107
+ /** Covered savings over covered baseline spend, as a percentage */
108
+ saved_pct: number | null;
109
+ /** Average session savings; unavailable unless every turn is covered */
110
+ saved_per_session: number | null;
111
+ /** Signed savings for covered turns only; null when traffic has no current estimates */
112
+ saved_spend: number | null;
113
+ /** Actual spend, including classifier cost, for covered turns only */
114
+ savings_estimated_actual_spend: number;
115
+ /** Turns covered by the current savings estimator; legacy estimates are excluded */
116
+ savings_estimated_turns: number;
101
117
  sessions: number;
102
118
  /** What the routed traffic actually cost */
103
119
  spend: number;
@@ -117,36 +133,55 @@ export interface AutoRouterBenchmarksResponse {
117
133
  totals: AutoRouterBenchmarkTotals;
118
134
  }
119
135
  export declare const AutoRouterBenchmarksResponse: S.Schema<AutoRouterBenchmarksResponse>;
136
+ export interface GetAutoRouterSessionAutoRouterSessionGetRequest {
137
+ /** The client session id (x-*-session-id header) the turns were sent under */
138
+ session_id: string;
139
+ }
140
+ export declare const GetAutoRouterSessionAutoRouterSessionGetRequest: S.Schema<GetAutoRouterSessionAutoRouterSessionGetRequest>;
141
+ /** Covered turns priced against each baseline model; more than one entry means the router's baseline changed mid-session and baseline_spend mixes both */
142
+ export type AutoRouterSessionResponseBaselineModelsMap = {
143
+ [key: string]: number | undefined;
144
+ };
145
+ export declare const AutoRouterSessionResponseBaselineModelsMap: S.Schema<AutoRouterSessionResponseBaselineModelsMap>;
146
+ /** One auto-routed session as its own key sees it: what the last turn ran on, and what the session cost against the router's savings baseline (the priciest model in its hardest tier). */
147
+ export interface AutoRouterSessionResponse {
148
+ /** The savings baseline most covered turns were priced against, recorded turn by turn, so it still names the counterfactual after the router is reconfigured or removed. None when no turn recorded one: rows from before the baseline was recorded, and adaptive and quality routers, which derive no baseline and so report no savings */
149
+ baseline_model: string | null;
150
+ /** Covered turns priced against each baseline model; more than one entry means the router's baseline changed mid-session and baseline_spend mixes both */
151
+ baseline_models: AutoRouterSessionResponseBaselineModelsMap;
152
+ /** Estimated single-model cost; unavailable unless every turn is covered */
153
+ baseline_spend: number | null;
154
+ /** The deployment model the most recent turn was routed to */
155
+ last_model: string;
156
+ /** The auto-router alias the session's requests were sent to */
157
+ router_name: string;
158
+ /** complexity, adaptive or quality */
159
+ router_type: string;
160
+ /** Estimated savings for covered turns only, net of classifier cost */
161
+ saved_spend: number | null;
162
+ /** Actual spend, including classifier cost, for covered turns only */
163
+ savings_estimated_actual_spend: number;
164
+ /** Estimated single-model cost for covered turns only */
165
+ savings_estimated_baseline_spend: number | null;
166
+ /** Turns covered by the current savings estimator; legacy estimates are excluded */
167
+ savings_estimated_turns: number;
168
+ session_id: string;
169
+ /** What the session's routed traffic actually cost, classifier calls included */
170
+ spend: number;
171
+ /** Auto-routed turns the rollup has recorded for this session so far */
172
+ turns: number;
173
+ }
174
+ export declare const AutoRouterSessionResponse: S.Schema<AutoRouterSessionResponse>;
120
175
  export interface GetShadowEvalJobAutoRouterShadowEvalJobIdGetRequest {
121
176
  job_id: string;
122
177
  }
123
178
  export declare const GetShadowEvalJobAutoRouterShadowEvalJobIdGetRequest: S.Schema<GetShadowEvalJobAutoRouterShadowEvalJobIdGetRequest>;
124
179
  export type ShadowEvalJobResponseDirection = "forward" | "reverse";
125
180
  export declare const ShadowEvalJobResponseDirection: any;
126
- /** One key a job shadows, with its own budget and stop state. */
127
- export interface ShadowEvalJobKeyResponse {
128
- /** The hashed virtual key whose traffic this entry scopes */
129
- api_key_id: string;
130
- /** This key's sampled attempts so far, judged and errored alike, the same count the sampler budgets against max_turns; populated on list and detail responses. Frozen at stopped_at once the key is stamped, so in-flight attempts landing after a stop never reclassify it */
131
- attempt_count?: number | null;
132
- /** Alias of the shadowed key, resolved from the key row at read time; None when unset or deleted */
133
- key_alias?: string | null;
134
- /** Masked display name (sk-...) of the shadowed key, resolved at read time like key_alias */
135
- key_name?: string | null;
136
- /** This key's own USD budget for the eval's shadow and judge spend, independent of its siblings'; None on jobs created before spend budgets existed, which max_turns alone bounds */
137
- max_budget?: number | null;
138
- /** This key's sample-count ceiling: the whole budget for jobs created before max_budget existed, and the error-loop safety valve otherwise */
139
- max_turns: number;
140
- /** This key's recorded shadow plus judge spend in USD, the same figure the sampler budgets against max_budget; populated on list and detail responses and frozen at stopped_at exactly like attempt_count */
141
- spend?: number | null;
142
- /** When this key's slot was stamped free, whether its own budget ran out, the window closed, or an operator stopped the job; status is derived, so a spent budget reads completed even while this is still unset */
143
- stopped_at?: string | null;
144
- }
145
- export declare const ShadowEvalJobKeyResponse: S.Schema<ShadowEvalJobKeyResponse>;
146
- /** The keys whose traffic this job evaluates, and only those keys', each with its own budget */
147
- export type ShadowEvalJobResponseKeysList = Array<ShadowEvalJobKeyResponse>;
148
- export declare const ShadowEvalJobResponseKeysList: S.Schema<ShadowEvalJobResponseKeysList>;
149
- /** Judge outcomes for one slice of a job's verdicts (a router tier, or one of the models that served the real arm). */
181
+ /** Model groups the sampled traffic is narrowed to; empty means every model the targets use */
182
+ export type ShadowEvalJobResponseModelsList = Array<string>;
183
+ export declare const ShadowEvalJobResponseModelsList: S.Schema<ShadowEvalJobResponseModelsList>;
184
+ /** Judge outcomes for one slice of a job's verdicts: a router tier, one of the models that served the real arm, or one scoped target (embedded on that target's own entry, so slices never need re-joining to a target by id). */
150
185
  export interface ShadowEvalSlice {
151
186
  avg_judge_confidence: number;
152
187
  /** Judged turns litellm's response cache served, excluded from both spends: an adopted router would be served by the same cache, so those turns cost the same either way */
@@ -167,25 +202,25 @@ export declare const ShadowEvalSlice: S.Schema<ShadowEvalSlice>;
167
202
  /** Sliced by the model that served the real arm: the keys' incumbent models in forward mode, and in reverse the models the router itself picked */
168
203
  export type ShadowEvalResultByCurrentModelList = Array<ShadowEvalSlice>;
169
204
  export declare const ShadowEvalResultByCurrentModelList: S.Schema<ShadowEvalResultByCurrentModelList>;
170
- /** One slice per scoped key that has judged verdicts, grouped on the raw key hash. Keys the job scopes but has not judged a turn for yet are absent rather than reported as zero */
171
- export type ShadowEvalResultByKeyList = Array<ShadowEvalSlice>;
172
- export declare const ShadowEvalResultByKeyList: S.Schema<ShadowEvalResultByKeyList>;
205
+ /** One slice per router arm, grouped on the router name. Every arm of a multi-router job is judged against the same real responses over the same sampled requests, so these slices compare routers head-to-head: like-for-like win rates and spends on identical traffic. Verdicts from before arm stamping existed count toward the job's own router */
206
+ export type ShadowEvalResultByRouterList = Array<ShadowEvalSlice>;
207
+ export declare const ShadowEvalResultByRouterList: S.Schema<ShadowEvalResultByRouterList>;
173
208
  export type ShadowEvalResultByTierList = Array<ShadowEvalSlice>;
174
209
  export declare const ShadowEvalResultByTierList: S.Schema<ShadowEvalResultByTierList>;
175
210
  /** Stratified results of a shadow-eval job's verdicts so far. */
176
211
  export interface ShadowEvalResult {
177
212
  /** Sliced by the model that served the real arm: the keys' incumbent models in forward mode, and in reverse the models the router itself picked */
178
213
  by_current_model: ShadowEvalResultByCurrentModelList;
179
- /** One slice per scoped key that has judged verdicts, grouped on the raw key hash. Keys the job scopes but has not judged a turn for yet are absent rather than reported as zero */
180
- by_key: ShadowEvalResultByKeyList;
214
+ /** One slice per router arm, grouped on the router name. Every arm of a multi-router job is judged against the same real responses over the same sampled requests, so these slices compare routers head-to-head: like-for-like win rates and spends on identical traffic. Verdicts from before arm stamping existed count toward the job's own router */
215
+ by_router?: ShadowEvalResultByRouterList;
181
216
  by_tier: ShadowEvalResultByTierList;
182
217
  /** Eligible requests the sampling dice skipped, summed over legs: the judged rows stand for judged + this many requests. None for jobs from before the funnel existed */
183
218
  not_sampled_count?: number | null;
184
219
  overall_shadow_win_rate_pct: number;
185
220
  overall_tie_rate_pct: number;
186
- /** USD the real arm billed across all judged turns, cache-served turns excluded */
221
+ /** USD the real arm billed across all judged turns, cache-served turns excluded. A judged turn is one (request, router arm) verdict, so a multi-router job counts the real response once per arm it was judged against; per-router comparisons read by_router */
187
222
  sampled_real_spend?: number;
188
- /** USD the shadow arm billed across the same turns, judge excluded, like for like */
223
+ /** USD the shadow arms billed across the same turns, judge excluded, like for like */
189
224
  sampled_shadow_spend?: number;
190
225
  /** Sampled requests dropped by the per-pod concurrency cap, so quiet periods are overweighted */
191
226
  shed_count?: number | null;
@@ -195,10 +230,43 @@ export interface ShadowEvalResult {
195
230
  withheld_count?: number | null;
196
231
  }
197
232
  export declare const ShadowEvalResult: S.Schema<ShadowEvalResult>;
198
- /** Three recorded facts, no history-guessing: a stop is stopped_by (the migration backfills it for every job that displayed stopped when the column arrived, so the pre-column population is closed), completion is the window passing or every key spending its budget, and anything else is running. The all-keys-stamped fallback covers only stops written by pre-column pods during a rolling deploy. */
233
+ /** Every auto-router this job runs as a shadow arm. Multi-router jobs sample one slice of traffic and judge every arm against the same real responses */
234
+ export type ShadowEvalJobResponseRouterNamesList = Array<string>;
235
+ export declare const ShadowEvalJobResponseRouterNamesList: S.Schema<ShadowEvalJobResponseRouterNamesList>;
236
+ /** Three recorded facts, no history-guessing: a stop is stopped_by (the migration backfills it for every job that displayed stopped when the column arrived, so the pre-column population is closed), completion is the window passing or every target spending its budget, and anything else is running. The all-targets-stamped fallback covers only stops written by pre-column pods during a rolling deploy. */
199
237
  export type ShadowEvalJobResponseStatus = "running" | "completed" | "stopped";
200
238
  export declare const ShadowEvalJobResponseStatus: any;
201
- /** A shadow-eval job over one or more keys, each with its own budget and stop state; status is derived from stopped_by, the keys' stop and budget state, and ends_at, never stored, so no writer anywhere can produce an inconsistent one. Aggregate fields are populated by the detail endpoint only and stay None on list responses. */
239
+ /** What kind of entity this entry scopes */
240
+ export type ShadowEvalJobTargetResponseTargetType = "key" | "team" | "user";
241
+ export declare const ShadowEvalJobTargetResponseTargetType: any;
242
+ /** One target a job shadows (a key, team, or user), with its own budget and stop state. */
243
+ export interface ShadowEvalJobTargetResponse {
244
+ /** This target's sampled attempts so far, judged and errored alike, the same count the sampler budgets against max_turns; populated on list and detail responses. Frozen at stopped_at once the target is stamped, so in-flight attempts landing after a stop never reclassify it */
245
+ attempt_count?: number | null;
246
+ /** Masked display name (sk-...) for key targets, resolved at read time; None for teams and users */
247
+ key_name?: string | null;
248
+ /** This target's own USD budget for the eval's shadow and judge spend, independent of its siblings'; None on jobs created before spend budgets existed, which max_turns alone bounds */
249
+ max_budget?: number | null;
250
+ /** This target's sample-count ceiling: the whole budget for jobs created before max_budget existed, and the error-loop safety valve otherwise */
251
+ max_turns: number;
252
+ /** This target's recorded shadow plus judge spend in USD, the same figure the sampler budgets against max_budget; populated on list and detail responses and frozen at stopped_at exactly like attempt_count */
253
+ spend?: number | null;
254
+ /** When this target's slot was stamped free, whether its own budget ran out, the window closed, or an operator stopped the job; status is derived, so a spent budget reads completed even while this is still unset */
255
+ stopped_at?: string | null;
256
+ /** Display label resolved from the target's own row at read time: the key's alias, the team's alias, or the user's email; None when unset or deleted */
257
+ target_alias?: string | null;
258
+ /** The hashed virtual key, team id, or user id whose traffic this entry scopes */
259
+ target_id: string;
260
+ /** What kind of entity this entry scopes */
261
+ target_type: ShadowEvalJobTargetResponseTargetType;
262
+ /** This target's own judged-verdict slice; detail endpoint only, None until a turn is judged */
263
+ verdicts?: ShadowEvalSlice | null;
264
+ }
265
+ export declare const ShadowEvalJobTargetResponse: S.Schema<ShadowEvalJobTargetResponse>;
266
+ /** The targets whose traffic this job evaluates, and only theirs, each with its own budget */
267
+ export type ShadowEvalJobResponseTargetsList = Array<ShadowEvalJobTargetResponse>;
268
+ export declare const ShadowEvalJobResponseTargetsList: S.Schema<ShadowEvalJobResponseTargetsList>;
269
+ /** A shadow-eval job over one or more targets, each with its own budget and stop state; status is derived from stopped_by, the targets' stop and budget state, and ends_at, never stored, so no writer anywhere can produce an inconsistent one. Aggregate fields are populated by the detail endpoint only and stay None on list responses. */
202
270
  export interface ShadowEvalJobResponse {
203
271
  baseline_model?: string | null;
204
272
  created_at: string;
@@ -212,23 +280,32 @@ export interface ShadowEvalJobResponse {
212
280
  judge_spend?: number | null;
213
281
  /** Verdicts recorded; detail endpoint only */
214
282
  judged_count?: number | null;
215
- /** The keys whose traffic this job evaluates, and only those keys', each with its own budget */
216
- keys: ShadowEvalJobResponseKeysList;
217
283
  /** Most recent attempt error; detail endpoint only */
218
284
  last_error?: string | null;
285
+ /** Model groups the sampled traffic is narrowed to; empty means every model the targets use */
286
+ models?: ShadowEvalJobResponseModelsList;
219
287
  /** Stratified verdicts; detail endpoint only */
220
288
  results?: ShadowEvalResult | null;
289
+ /** The first router, kept for callers that predate router_names; derived so the two fields can never disagree. */
221
290
  router_name: string;
291
+ /** Every auto-router this job runs as a shadow arm. Multi-router jobs sample one slice of traffic and judge every arm against the same real responses */
292
+ router_names: ShadowEvalJobResponseRouterNamesList;
222
293
  shadow_percentage: number;
223
- /** Three recorded facts, no history-guessing: a stop is stopped_by (the migration backfills it for every job that displayed stopped when the column arrived, so the pre-column population is closed), completion is the window passing or every key spending its budget, and anything else is running. The all-keys-stamped fallback covers only stops written by pre-column pods during a rolling deploy. */
294
+ /** Three recorded facts, no history-guessing: a stop is stopped_by (the migration backfills it for every job that displayed stopped when the column arrived, so the pre-column population is closed), completion is the window passing or every target spending its budget, and anything else is running. The all-targets-stamped fallback covers only stops written by pre-column pods during a rolling deploy. */
224
295
  status: ShadowEvalJobResponseStatus;
225
296
  /** The operator who stopped the job early, recorded by the stop endpoint; 'unknown' backfilled by migration for jobs that displayed stopped when the column arrived; None when the job ended on its own. Its presence is what makes a job read stopped rather than completed */
226
297
  stopped_by?: string | null;
298
+ /** The targets whose traffic this job evaluates, and only theirs, each with its own budget */
299
+ targets: ShadowEvalJobResponseTargetsList;
227
300
  }
228
301
  export declare const ShadowEvalJobResponse: S.Schema<ShadowEvalJobResponse>;
302
+ export type ListShadowEvalJobsAutoRouterShadowEvalGetRequestTargetType = "key" | "team" | "user";
303
+ export declare const ListShadowEvalJobsAutoRouterShadowEvalGetRequestTargetType: any;
229
304
  export interface ListShadowEvalJobsAutoRouterShadowEvalGetRequest {
230
- /** Filter to jobs that shadow this key, alone or alongside others */
231
- api_key_id?: string;
305
+ /** Kind of target to filter on; requires target_id */
306
+ target_type?: ListShadowEvalJobsAutoRouterShadowEvalGetRequestTargetType | (string & {});
307
+ /** Filter to jobs that shadow this target, alone or alongside others */
308
+ target_id?: string;
232
309
  /** Newest jobs to return */
233
310
  limit?: number;
234
311
  }
@@ -239,15 +316,27 @@ export interface ListShadowEvalJobsAutoRouterShadowEvalGetResponse {
239
316
  body: ListShadowEvalJobsAutoRouterShadowEvalGetResponseBodyList;
240
317
  }
241
318
  export declare const ListShadowEvalJobsAutoRouterShadowEvalGetResponse: S.Schema<ListShadowEvalJobsAutoRouterShadowEvalGetResponse>;
242
- /** The hashed virtual keys whose traffic will be shadowed. Shadow evaluation runs ONLY on these keys' traffic; requests made with any other key are not sampled. Each key carries its own max_budget spend budget, so one key exhausting its budget leaves the others sampling. At most 100 keys per job, which also bounds every read the job's endpoints make. */
319
+ /** Hashed virtual keys whose traffic will be shadowed. Combined with team_ids and user_ids the job needs at least one target and at most 100, which also bounds every read the job's endpoints make. Each target carries its own max_budget spend budget, so one exhausting its budget leaves the others sampling. */
243
320
  export type StartShadowEvalAutoRouterShadowEvalStartPostRequestApiKeyIdsList = Array<string>;
244
321
  export declare const StartShadowEvalAutoRouterShadowEvalStartPostRequestApiKeyIdsList: S.Schema<StartShadowEvalAutoRouterShadowEvalStartPostRequestApiKeyIdsList>;
245
322
  /** forward answers 'should this key adopt router_name': it samples the requests the key did NOT route through the router and duplicates them through it. reverse answers 'is the router still worth it for a key already on it': it samples the requests the router did serve and duplicates them against baseline_model. The response the caller received is always the real arm */
246
323
  export type StartShadowEvalAutoRouterShadowEvalStartPostRequestDirection = "forward" | "reverse";
247
324
  export declare const StartShadowEvalAutoRouterShadowEvalStartPostRequestDirection: any;
325
+ /** Model groups to narrow the sampled traffic to, matched on the group the caller requested and resolved through model_group_alias, so an alias and its target are one name. Empty samples every model the targets use. This ANDs with the targets: a job over a user and one model samples that user's requests on that model across every key they own, and none of their other traffic. Forward jobs only: a reverse job samples exactly the traffic its own router served, which no other model group can name */
326
+ export type StartShadowEvalAutoRouterShadowEvalStartPostRequestModelsList = Array<string>;
327
+ export declare const StartShadowEvalAutoRouterShadowEvalStartPostRequestModelsList: S.Schema<StartShadowEvalAutoRouterShadowEvalStartPostRequestModelsList>;
328
+ /** The auto-routers under evaluation, at most 4. Every sampled request runs through every router listed and each arm is judged independently against the same real response, so routers compare head-to-head on identical traffic. More than one router requires direction 'forward'. After validation this field always carries the full deduplicated set, whichever spelling the caller used */
329
+ export type StartShadowEvalAutoRouterShadowEvalStartPostRequestRouterNamesList = Array<string>;
330
+ export declare const StartShadowEvalAutoRouterShadowEvalStartPostRequestRouterNamesList: S.Schema<StartShadowEvalAutoRouterShadowEvalStartPostRequestRouterNamesList>;
331
+ /** Teams whose traffic will be shadowed, matched on the team every authenticated request resolves to, so a team's JWT-auth and virtual-key traffic are both sampled */
332
+ export type StartShadowEvalAutoRouterShadowEvalStartPostRequestTeamIdsList = Array<string>;
333
+ export declare const StartShadowEvalAutoRouterShadowEvalStartPostRequestTeamIdsList: S.Schema<StartShadowEvalAutoRouterShadowEvalStartPostRequestTeamIdsList>;
334
+ /** Users whose traffic will be shadowed, matched on the user every authenticated request resolves to across all their teams: JWT requests carrying their subject claim and virtual keys they own */
335
+ export type StartShadowEvalAutoRouterShadowEvalStartPostRequestUserIdsList = Array<string>;
336
+ export declare const StartShadowEvalAutoRouterShadowEvalStartPostRequestUserIdsList: S.Schema<StartShadowEvalAutoRouterShadowEvalStartPostRequestUserIdsList>;
248
337
  export interface StartShadowEvalAutoRouterShadowEvalStartPostRequest {
249
- /** The hashed virtual keys whose traffic will be shadowed. Shadow evaluation runs ONLY on these keys' traffic; requests made with any other key are not sampled. Each key carries its own max_budget spend budget, so one key exhausting its budget leaves the others sampling. At most 100 keys per job, which also bounds every read the job's endpoints make. */
250
- api_key_ids: StartShadowEvalAutoRouterShadowEvalStartPostRequestApiKeyIdsList;
338
+ /** Hashed virtual keys whose traffic will be shadowed. Combined with team_ids and user_ids the job needs at least one target and at most 100, which also bounds every read the job's endpoints make. Each target carries its own max_budget spend budget, so one exhausting its budget leaves the others sampling. */
339
+ api_key_ids?: StartShadowEvalAutoRouterShadowEvalStartPostRequestApiKeyIdsList;
251
340
  /** Required when direction is reverse and rejected otherwise: the fixed model the router's own responses are judged against. Must be a plain model rather than another auto-router */
252
341
  baseline_model?: string | null;
253
342
  /** forward answers 'should this key adopt router_name': it samples the requests the key did NOT route through the router and duplicates them through it. reverse answers 'is the router still worth it for a key already on it': it samples the requests the router did serve and duplicates them against baseline_model. The response the caller received is always the real arm */
@@ -256,12 +345,20 @@ export interface StartShadowEvalAutoRouterShadowEvalStartPostRequest {
256
345
  duration_days?: number;
257
346
  /** Model used to blindly judge real vs. shadow responses. The judge only compares two answers, so a mid-tier model (Claude Sonnet or GPT-4o class) is the sweet spot: small/nano-class models produce unreliable or malformed verdicts, while frontier reasoning models add cost without changing outcomes. */
258
347
  judge_model?: string;
259
- /** Per-key USD budget for the eval's own overhead, the shadow-arm and judge calls, priced with the same figures the spend pipeline bills. EACH scoped key samples until its recorded eval spend reaches this, so a job over N keys spends at most about N times max_budget; in-flight samples can overshoot the cap by one sampling cache window */
348
+ /** Per-target USD budget for the eval's own overhead, the shadow-arm and judge calls, priced with the same figures the spend pipeline bills. EACH scoped target samples until its recorded eval spend reaches this, so a job over N targets spends at most about N times max_budget; in-flight samples can overshoot the cap by one sampling cache window. Every router arm draws from the same per-target budget, so a multi-router job reaches it proportionally sooner */
260
349
  max_budget?: number;
261
- /** The auto-router under evaluation, in either direction */
262
- router_name: string;
263
- /** Percentage of the key's requests to duplicate through the router */
350
+ /** Model groups to narrow the sampled traffic to, matched on the group the caller requested and resolved through model_group_alias, so an alias and its target are one name. Empty samples every model the targets use. This ANDs with the targets: a job over a user and one model samples that user's requests on that model across every key they own, and none of their other traffic. Forward jobs only: a reverse job samples exactly the traffic its own router served, which no other model group can name */
351
+ models?: StartShadowEvalAutoRouterShadowEvalStartPostRequestModelsList;
352
+ /** The auto-router under evaluation, in either direction: the single-router spelling of router_names. Provide exactly one of the two fields */
353
+ router_name?: string | null;
354
+ /** The auto-routers under evaluation, at most 4. Every sampled request runs through every router listed and each arm is judged independently against the same real response, so routers compare head-to-head on identical traffic. More than one router requires direction 'forward'. After validation this field always carries the full deduplicated set, whichever spelling the caller used */
355
+ router_names?: StartShadowEvalAutoRouterShadowEvalStartPostRequestRouterNamesList;
356
+ /** Percentage of each target's requests to duplicate through the router */
264
357
  shadow_percentage: number;
358
+ /** Teams whose traffic will be shadowed, matched on the team every authenticated request resolves to, so a team's JWT-auth and virtual-key traffic are both sampled */
359
+ team_ids?: StartShadowEvalAutoRouterShadowEvalStartPostRequestTeamIdsList;
360
+ /** Users whose traffic will be shadowed, matched on the user every authenticated request resolves to across all their teams: JWT requests carrying their subject claim and virtual keys they own */
361
+ user_ids?: StartShadowEvalAutoRouterShadowEvalStartPostRequestUserIdsList;
265
362
  }
266
363
  export declare const StartShadowEvalAutoRouterShadowEvalStartPostRequest: S.Schema<StartShadowEvalAutoRouterShadowEvalStartPostRequest>;
267
364
  export interface StopShadowEvalJobAutoRouterShadowEvalJobIdStopPostRequest {
@@ -271,16 +368,19 @@ export declare const StopShadowEvalJobAutoRouterShadowEvalJobIdStopPostRequest:
271
368
  export type GetAutoRouterBenchmarksAutoRouterBenchmarksGetError = UnprocessableEntity | LitellmOpError;
272
369
  /** Get Auto Router Benchmarks Benchmarks for the auto-router dashboard: session shape, savings against the configured baseline, and prompt-caching behaviour bucketed by what the router did. Reads the LiteLLM_AutoRouterSession rollup, folded once per request at spend-write time, so this endpoint never scans LiteLLM_SpendLogs. A session is in the window when it overlaps it: its last turn is on or after start_date and its first turn is on or before end_date. Overall hit rate is over telemetry-bearing turns; each bucket's hit rate is over that bucket's turns. The rollup supplies the measures, never the list. Which routers appear comes from the model registry, so one shows up as soon as it is configured and reads zero until it serves traffic, and `routers_in_scope` counts those too rather than only the routers the window recorded. */
273
370
  export declare const getAutoRouterBenchmarksAutoRouterBenchmarksGet: API.OperationMethod<GetAutoRouterBenchmarksAutoRouterBenchmarksGetRequest, AutoRouterBenchmarksResponse, GetAutoRouterBenchmarksAutoRouterBenchmarksGetError, LitellmOpContext>;
371
+ export type GetAutoRouterSessionAutoRouterSessionGetError = UnprocessableEntity | LitellmOpError;
372
+ /** Get Auto Router Session One auto-routed session, for the key that ran it: the model its last turn was routed to and the session's spend against the router's savings baseline. Built for a coding agent's status line or stop hook, so any virtual key may call it and only ever sees rows written under its own key hash. Reads the LiteLLM_AutoRouterSession rollup, which the asynchronous spend flush fills a moment after each turn; a session with no flushed auto-routed turn yet is a 404. The id is bounded the way the writer bounded it, so an oversized client id still finds its row. */
373
+ export declare const getAutoRouterSessionAutoRouterSessionGet: API.OperationMethod<GetAutoRouterSessionAutoRouterSessionGetRequest, AutoRouterSessionResponse, GetAutoRouterSessionAutoRouterSessionGetError, LitellmOpContext>;
274
374
  export type GetShadowEvalJobAutoRouterShadowEvalJobIdGetError = UnprocessableEntity | LitellmOpError;
275
375
  /** Get Shadow Eval Job One job with derived counts, judge spend, latest error, and stratified results. */
276
376
  export declare const getShadowEvalJobAutoRouterShadowEvalJobIdGet: API.OperationMethod<GetShadowEvalJobAutoRouterShadowEvalJobIdGetRequest, ShadowEvalJobResponse, GetShadowEvalJobAutoRouterShadowEvalJobIdGetError, LitellmOpContext>;
277
377
  export type ListShadowEvalJobsAutoRouterShadowEvalGetError = UnprocessableEntity | LitellmOpError;
278
- /** List Shadow Eval Jobs List shadow eval jobs, newest first, each key with its attempt count so status is accurate. Judged counts, spend, and results ride the detail endpoint only. */
378
+ /** List Shadow Eval Jobs List shadow eval jobs, newest first, each target with its attempt count so status is accurate. Judged counts, spend, and results ride the detail endpoint only. */
279
379
  export declare const listShadowEvalJobsAutoRouterShadowEvalGet: API.OperationMethod<ListShadowEvalJobsAutoRouterShadowEvalGetRequest, ListShadowEvalJobsAutoRouterShadowEvalGetResponse, ListShadowEvalJobsAutoRouterShadowEvalGetError, LitellmOpContext>;
280
380
  export type StartShadowEvalAutoRouterShadowEvalStartPostError = UnprocessableEntity | LitellmOpError;
281
- /** Start Shadow Eval Start a shadow eval: duplicate a sampled slice of one or more keys' live traffic against a second arm, judge the two responses blind, and stratify win rates by tier, by the model that served the real arm, and by key. A forward job answers whether the keys should adopt router_name: it samples the requests the router did not serve and duplicates them through it. A reverse job answers whether a key already on the router still gains from it: it samples the requests the router did serve and duplicates them against baseline_model. A key can hold one active job per direction, so both questions can run at once. Shadow responses are never served to users. Each key samples until its recorded eval spend, the shadow and judge calls' own cost, reaches max_budget dollars, the job's window ends, or the job is stopped, so one key running out of budget does not end sampling for the others; sampling changes propagate to pods within about 10 seconds. Shadow and judge calls bill to the shadowed key but are excluded from request counts and auto-router adoption metrics. */
381
+ /** Start Shadow Eval Start a shadow eval: duplicate a sampled slice of one or more targets' live traffic against a second arm, judge the two responses blind, and stratify win rates by tier, by the model that served the real arm, and by target. A target is a virtual key, a team, or a user. Team and user targets match on the identity every request resolves to at auth time, so they cover JWT-authenticated traffic, which presents no virtual key; a user target samples that user's traffic across all their teams, whether it arrives on a JWT or a key they own. models narrows every target to requests for those model groups, so a user plus one model samples that user's traffic on that model across every key they own; it is forward-only, since a reverse job already samples exactly the traffic its own router served. A forward job answers whether the targets should adopt router_name: it samples the requests the router did not serve and duplicates them through it. A reverse job answers whether a target already on the router still gains from it: it samples the requests the router did serve and duplicates them against baseline_model. A target can hold one active job per direction, so both questions can run at once, and a request matching several jobs' targets (say its key and its team) is sampled by each, separately budgeted. Shadow responses are never served to users. Each target samples until its recorded eval spend, the shadow and judge calls' own cost, reaches max_budget dollars, the job's window ends, or the job is stopped, so one target running out of budget does not end sampling for the others; sampling changes propagate to pods within about 10 seconds. Shadow and judge calls bill to the sampled request's own identity but are excluded from request counts and auto-router adoption metrics. */
282
382
  export declare const startShadowEvalAutoRouterShadowEvalStartPost: API.OperationMethod<StartShadowEvalAutoRouterShadowEvalStartPostRequest, ShadowEvalJobResponse, StartShadowEvalAutoRouterShadowEvalStartPostError, LitellmOpContext>;
283
383
  export type StopShadowEvalJobAutoRouterShadowEvalJobIdStopPostError = UnprocessableEntity | LitellmOpError;
284
- /** Stop Shadow Eval Job Stop an active shadow eval job, every key it scopes at once. Attempts are kept; sampling halts within ~10s. Keys that already stopped on their own budget keep the stopped_at they earned. The statement is the whole state machine: it claims the job only while a leg still samples inside the window with no stop recorded, so a racing operator, a same-instant budget spend, and a repeat stop all read the same 400 with the status the job actually holds. */
384
+ /** Stop Shadow Eval Job Stop an active shadow eval job, every target it scopes at once. Attempts are kept; sampling halts within ~10s. Targets that already stopped on their own budget keep the stopped_at they earned. The statement is the whole state machine: it claims the job only while a leg still samples inside the window with no stop recorded, so a racing operator, a same-instant budget spend, and a repeat stop all read the same 400 with the status the job actually holds. */
285
385
  export declare const stopShadowEvalJobAutoRouterShadowEvalJobIdStopPost: API.OperationMethod<StopShadowEvalJobAutoRouterShadowEvalJobIdStopPostRequest, ShadowEvalJobResponse, StopShadowEvalJobAutoRouterShadowEvalJobIdStopPostError, LitellmOpContext>;
286
386
  //# sourceMappingURL=auto_router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto_router.d.ts","sourceRoot":"","sources":["../../src/services/auto_router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto_router.d.ts","sourceRoot":"","sources":["../../src/services/auto_router.ts"],"names":[],"mappings":"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"}