@srouterhq/server 0.0.0-stage → 0.9.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 (1027) hide show
  1. package/LICENSE +21 -0
  2. package/client/dist/assets/am-TQ7Jmdqe.js +1 -0
  3. package/client/dist/assets/ar-Bf5a7yfC.js +1 -0
  4. package/client/dist/assets/az-CrosE1xH.js +1 -0
  5. package/client/dist/assets/bg-BvWnmcUz.js +1 -0
  6. package/client/dist/assets/bn-ams5TsJp.js +1 -0
  7. package/client/dist/assets/cs-Dh67CaJ_.js +1 -0
  8. package/client/dist/assets/da-9WlT8Iq7.js +1 -0
  9. package/client/dist/assets/de-lWhJJzz7.js +1 -0
  10. package/client/dist/assets/el-Cu7_GhNq.js +1 -0
  11. package/client/dist/assets/es-BZuzsBcP.js +1 -0
  12. package/client/dist/assets/fa-Dwdn-jKS.js +1 -0
  13. package/client/dist/assets/fi-BFrFyOTy.js +1 -0
  14. package/client/dist/assets/fr-XhbtmPpj.js +1 -0
  15. package/client/dist/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  16. package/client/dist/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  17. package/client/dist/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  18. package/client/dist/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  19. package/client/dist/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
  20. package/client/dist/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
  21. package/client/dist/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
  22. package/client/dist/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
  23. package/client/dist/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
  24. package/client/dist/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
  25. package/client/dist/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  26. package/client/dist/assets/gu-D0uhLUB8.js +1 -0
  27. package/client/dist/assets/ha-CVlm9pqp.js +1 -0
  28. package/client/dist/assets/he-CMIFeoWr.js +1 -0
  29. package/client/dist/assets/hi-ENTwhBpn.js +1 -0
  30. package/client/dist/assets/hr-fc03vMy_.js +1 -0
  31. package/client/dist/assets/hu-YBo2BIYt.js +1 -0
  32. package/client/dist/assets/id-BEWXYX69.js +1 -0
  33. package/client/dist/assets/ig-BKLZFKka.js +1 -0
  34. package/client/dist/assets/index-D9I4KtvR.js +145 -0
  35. package/client/dist/assets/index-txhEmCdb.css +2 -0
  36. package/client/dist/assets/it-Bzmei1Y2.js +1 -0
  37. package/client/dist/assets/ja-BfcpuqEl.js +1 -0
  38. package/client/dist/assets/ka-CnWjRgLo.js +1 -0
  39. package/client/dist/assets/km-BAjPR3Qj.js +1 -0
  40. package/client/dist/assets/kn-B15WKU5m.js +1 -0
  41. package/client/dist/assets/ko-C61fAB-w.js +1 -0
  42. package/client/dist/assets/lt-CYTr4_YW.js +1 -0
  43. package/client/dist/assets/ml-CtqxgyH3.js +1 -0
  44. package/client/dist/assets/mr-X5TMY7aR.js +1 -0
  45. package/client/dist/assets/ms-DSg8RqPS.js +1 -0
  46. package/client/dist/assets/my-D7RqR8uE.js +1 -0
  47. package/client/dist/assets/ne-DaflxkDj.js +1 -0
  48. package/client/dist/assets/nl-BOqqtsC8.js +1 -0
  49. package/client/dist/assets/no-BSHp_StB.js +1 -0
  50. package/client/dist/assets/or-BkLR9Vub.js +1 -0
  51. package/client/dist/assets/pa-CarJ2XgI.js +1 -0
  52. package/client/dist/assets/pl-C2n0V-0k.js +1 -0
  53. package/client/dist/assets/pt-BR-CqJdNhg2.js +1 -0
  54. package/client/dist/assets/pt-PT-C_HpMyKz.js +1 -0
  55. package/client/dist/assets/ro-DVRZqSAS.js +1 -0
  56. package/client/dist/assets/ru-DwAJG7VC.js +1 -0
  57. package/client/dist/assets/si-BxUezXm0.js +1 -0
  58. package/client/dist/assets/sk-eI1VcIfY.js +1 -0
  59. package/client/dist/assets/sr-CJF3auCr.js +1 -0
  60. package/client/dist/assets/srouter-logo-C6ZfjGIi.svg +14 -0
  61. package/client/dist/assets/sv-nqvwHAq_.js +1 -0
  62. package/client/dist/assets/sw-DWynE2pW.js +1 -0
  63. package/client/dist/assets/ta-BVM12knC.js +1 -0
  64. package/client/dist/assets/te-oyzEkF7_.js +1 -0
  65. package/client/dist/assets/th-COVeE0ZQ.js +1 -0
  66. package/client/dist/assets/tl-DsJANnQz.js +1 -0
  67. package/client/dist/assets/tr-B-Fl-urO.js +1 -0
  68. package/client/dist/assets/uk-C5qketAO.js +1 -0
  69. package/client/dist/assets/ur-QU9KugfV.js +1 -0
  70. package/client/dist/assets/uz-DL9cG_mY.js +1 -0
  71. package/client/dist/assets/vi-CQiVy3Pu.js +1 -0
  72. package/client/dist/assets/yo-DqazMdrZ.js +1 -0
  73. package/client/dist/assets/zh-CN-DnYL_Kio.js +1 -0
  74. package/client/dist/assets/zh-TW-5bdbosKj.js +1 -0
  75. package/client/dist/favicon.svg +14 -0
  76. package/client/dist/icons.svg +24 -0
  77. package/client/dist/index.html +37 -0
  78. package/dist/app.d.ts +4 -0
  79. package/dist/app.d.ts.map +1 -0
  80. package/dist/app.js +372 -0
  81. package/dist/app.js.map +1 -0
  82. package/dist/db/index.d.ts +49 -0
  83. package/dist/db/index.d.ts.map +1 -0
  84. package/dist/db/index.js +203 -0
  85. package/dist/db/index.js.map +1 -0
  86. package/dist/db/migrate/TEMPLATE.d.ts +4 -0
  87. package/dist/db/migrate/TEMPLATE.d.ts.map +1 -0
  88. package/dist/db/migrate/TEMPLATE.js +18 -0
  89. package/dist/db/migrate/TEMPLATE.js.map +1 -0
  90. package/dist/db/migrate/cli.d.ts +2 -0
  91. package/dist/db/migrate/cli.d.ts.map +1 -0
  92. package/dist/db/migrate/cli.js +177 -0
  93. package/dist/db/migrate/cli.js.map +1 -0
  94. package/dist/db/migrate/defaults.d.ts +52 -0
  95. package/dist/db/migrate/defaults.d.ts.map +1 -0
  96. package/dist/db/migrate/defaults.js +126 -0
  97. package/dist/db/migrate/defaults.js.map +1 -0
  98. package/dist/db/migrate/runner.d.ts +16 -0
  99. package/dist/db/migrate/runner.d.ts.map +1 -0
  100. package/dist/db/migrate/runner.js +178 -0
  101. package/dist/db/migrate/runner.js.map +1 -0
  102. package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts +4 -0
  103. package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts.map +1 -0
  104. package/dist/db/migrations/20260101_000000_legacy_baseline.js +2240 -0
  105. package/dist/db/migrations/20260101_000000_legacy_baseline.js.map +1 -0
  106. package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts +4 -0
  107. package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts.map +1 -0
  108. package/dist/db/migrations/20260627_000001_custom_provider_modalities.js +27 -0
  109. package/dist/db/migrations/20260627_000001_custom_provider_modalities.js.map +1 -0
  110. package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts +4 -0
  111. package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts.map +1 -0
  112. package/dist/db/migrations/20260627_000002_catalog_model_state.js +30 -0
  113. package/dist/db/migrations/20260627_000002_catalog_model_state.js.map +1 -0
  114. package/dist/db/migrations/20260628_120000_request_aggregates.d.ts +6 -0
  115. package/dist/db/migrations/20260628_120000_request_aggregates.d.ts.map +1 -0
  116. package/dist/db/migrations/20260628_120000_request_aggregates.js +104 -0
  117. package/dist/db/migrations/20260628_120000_request_aggregates.js.map +1 -0
  118. package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts +9 -0
  119. package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts.map +1 -0
  120. package/dist/db/migrations/20260630_000001_github_gpt41_context.js +22 -0
  121. package/dist/db/migrations/20260630_000001_github_gpt41_context.js.map +1 -0
  122. package/dist/db/migrations/20260706_000001_request_client_info.d.ts +4 -0
  123. package/dist/db/migrations/20260706_000001_request_client_info.d.ts.map +1 -0
  124. package/dist/db/migrations/20260706_000001_request_client_info.js +30 -0
  125. package/dist/db/migrations/20260706_000001_request_client_info.js.map +1 -0
  126. package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts +17 -0
  127. package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts.map +1 -0
  128. package/dist/db/migrations/20260706_000002_custom_model_tool_support.js +20 -0
  129. package/dist/db/migrations/20260706_000002_custom_model_tool_support.js.map +1 -0
  130. package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts +12 -0
  131. package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts.map +1 -0
  132. package/dist/db/migrations/20260714_000001_profile_chain_backfill.js +45 -0
  133. package/dist/db/migrations/20260714_000001_profile_chain_backfill.js.map +1 -0
  134. package/dist/db/migrations/20260720_000001_key_health_error.d.ts +5 -0
  135. package/dist/db/migrations/20260720_000001_key_health_error.d.ts.map +1 -0
  136. package/dist/db/migrations/20260720_000001_key_health_error.js +16 -0
  137. package/dist/db/migrations/20260720_000001_key_health_error.js.map +1 -0
  138. package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts +4 -0
  139. package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts.map +1 -0
  140. package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js +38 -0
  141. package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js.map +1 -0
  142. package/dist/db/migrations/20260726_000002_request_attempts.d.ts +4 -0
  143. package/dist/db/migrations/20260726_000002_request_attempts.d.ts.map +1 -0
  144. package/dist/db/migrations/20260726_000002_request_attempts.js +43 -0
  145. package/dist/db/migrations/20260726_000002_request_attempts.js.map +1 -0
  146. package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts +4 -0
  147. package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts.map +1 -0
  148. package/dist/db/migrations/20260726_000003_model_source_provenance.js +80 -0
  149. package/dist/db/migrations/20260726_000003_model_source_provenance.js.map +1 -0
  150. package/dist/db/migrations/20260726_000004_media_model_meta.d.ts +4 -0
  151. package/dist/db/migrations/20260726_000004_media_model_meta.d.ts.map +1 -0
  152. package/dist/db/migrations/20260726_000004_media_model_meta.js +34 -0
  153. package/dist/db/migrations/20260726_000004_media_model_meta.js.map +1 -0
  154. package/dist/db/migrations/20260726_000005_request_served_model.d.ts +4 -0
  155. package/dist/db/migrations/20260726_000005_request_served_model.d.ts.map +1 -0
  156. package/dist/db/migrations/20260726_000005_request_served_model.js +31 -0
  157. package/dist/db/migrations/20260726_000005_request_served_model.js.map +1 -0
  158. package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts +4 -0
  159. package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts.map +1 -0
  160. package/dist/db/migrations/20260726_000006_attempt_error_summary.js +29 -0
  161. package/dist/db/migrations/20260726_000006_attempt_error_summary.js.map +1 -0
  162. package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts +4 -0
  163. package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts.map +1 -0
  164. package/dist/db/migrations/20260727_000001_agent_compatibility.js +41 -0
  165. package/dist/db/migrations/20260727_000001_agent_compatibility.js.map +1 -0
  166. package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts +12 -0
  167. package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts.map +1 -0
  168. package/dist/db/migrations/20260728_000001_tombstone_provenance.js +37 -0
  169. package/dist/db/migrations/20260728_000001_tombstone_provenance.js.map +1 -0
  170. package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts +4 -0
  171. package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts.map +1 -0
  172. package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js +145 -0
  173. package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js.map +1 -0
  174. package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts +6 -0
  175. package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts.map +1 -0
  176. package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js +52 -0
  177. package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js.map +1 -0
  178. package/dist/db/migrations/20260805_000001_key_model_scope.d.ts +6 -0
  179. package/dist/db/migrations/20260805_000001_key_model_scope.d.ts.map +1 -0
  180. package/dist/db/migrations/20260805_000001_key_model_scope.js +17 -0
  181. package/dist/db/migrations/20260805_000001_key_model_scope.js.map +1 -0
  182. package/dist/db/migrations/20260805_000002_client_profiles.d.ts +4 -0
  183. package/dist/db/migrations/20260805_000002_client_profiles.d.ts.map +1 -0
  184. package/dist/db/migrations/20260805_000002_client_profiles.js +33 -0
  185. package/dist/db/migrations/20260805_000002_client_profiles.js.map +1 -0
  186. package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts +4 -0
  187. package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts.map +1 -0
  188. package/dist/db/migrations/20260810_000001_api_key_proxy.js +33 -0
  189. package/dist/db/migrations/20260810_000001_api_key_proxy.js.map +1 -0
  190. package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts +4 -0
  191. package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts.map +1 -0
  192. package/dist/db/migrations/20260819_000001_custom_model_tombstones.js +19 -0
  193. package/dist/db/migrations/20260819_000001_custom_model_tombstones.js.map +1 -0
  194. package/dist/db/migrations/20260820_000001_playground_conversations.d.ts +4 -0
  195. package/dist/db/migrations/20260820_000001_playground_conversations.d.ts.map +1 -0
  196. package/dist/db/migrations/20260820_000001_playground_conversations.js +47 -0
  197. package/dist/db/migrations/20260820_000001_playground_conversations.js.map +1 -0
  198. package/dist/db/migrations/20260823_000001_server_logs.d.ts +4 -0
  199. package/dist/db/migrations/20260823_000001_server_logs.d.ts.map +1 -0
  200. package/dist/db/migrations/20260823_000001_server_logs.js +53 -0
  201. package/dist/db/migrations/20260823_000001_server_logs.js.map +1 -0
  202. package/dist/db/migrations/20260823_000002_backups_table.d.ts +8 -0
  203. package/dist/db/migrations/20260823_000002_backups_table.d.ts.map +1 -0
  204. package/dist/db/migrations/20260823_000002_backups_table.js +22 -0
  205. package/dist/db/migrations/20260823_000002_backups_table.js.map +1 -0
  206. package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts +19 -0
  207. package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts.map +1 -0
  208. package/dist/db/migrations/20260823_000003_attempt_key_label.js +28 -0
  209. package/dist/db/migrations/20260823_000003_attempt_key_label.js.map +1 -0
  210. package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts +14 -0
  211. package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts.map +1 -0
  212. package/dist/db/migrations/20260823_000004_profile_auto_include.js +25 -0
  213. package/dist/db/migrations/20260823_000004_profile_auto_include.js.map +1 -0
  214. package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts +4 -0
  215. package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts.map +1 -0
  216. package/dist/db/migrations/20260901_000001_idempotency_claims.js +46 -0
  217. package/dist/db/migrations/20260901_000001_idempotency_claims.js.map +1 -0
  218. package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts +4 -0
  219. package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts.map +1 -0
  220. package/dist/db/migrations/20260901_000002_quota_observation_lookup.js +37 -0
  221. package/dist/db/migrations/20260901_000002_quota_observation_lookup.js.map +1 -0
  222. package/dist/db/migrations/20260901_000003_request_caller.d.ts +4 -0
  223. package/dist/db/migrations/20260901_000003_request_caller.d.ts.map +1 -0
  224. package/dist/db/migrations/20260901_000003_request_caller.js +27 -0
  225. package/dist/db/migrations/20260901_000003_request_caller.js.map +1 -0
  226. package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts +4 -0
  227. package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts.map +1 -0
  228. package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js +35 -0
  229. package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js.map +1 -0
  230. package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts +4 -0
  231. package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts.map +1 -0
  232. package/dist/db/migrations/20260903_000001_mcp_enabled_default.js +37 -0
  233. package/dist/db/migrations/20260903_000001_mcp_enabled_default.js.map +1 -0
  234. package/dist/db/migrations/20260903_000002_response_cache.d.ts +4 -0
  235. package/dist/db/migrations/20260903_000002_response_cache.d.ts.map +1 -0
  236. package/dist/db/migrations/20260903_000002_response_cache.js +53 -0
  237. package/dist/db/migrations/20260903_000002_response_cache.js.map +1 -0
  238. package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts +13 -0
  239. package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts.map +1 -0
  240. package/dist/db/migrations/20260904_000001_key_monthly_budget.js +35 -0
  241. package/dist/db/migrations/20260904_000001_key_monthly_budget.js.map +1 -0
  242. package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts +4 -0
  243. package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts.map +1 -0
  244. package/dist/db/migrations/20260913_000001_request_model_attribution.js +68 -0
  245. package/dist/db/migrations/20260913_000001_request_model_attribution.js.map +1 -0
  246. package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts +5 -0
  247. package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts.map +1 -0
  248. package/dist/db/migrations/20260914_000001_key_monthly_usage.js +37 -0
  249. package/dist/db/migrations/20260914_000001_key_monthly_usage.js.map +1 -0
  250. package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts +4 -0
  251. package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts.map +1 -0
  252. package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js +28 -0
  253. package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js.map +1 -0
  254. package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts +4 -0
  255. package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts.map +1 -0
  256. package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js +25 -0
  257. package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js.map +1 -0
  258. package/dist/db/migrations/20261005_000001_key_budget_period.d.ts +10 -0
  259. package/dist/db/migrations/20261005_000001_key_budget_period.d.ts.map +1 -0
  260. package/dist/db/migrations/20261005_000001_key_budget_period.js +78 -0
  261. package/dist/db/migrations/20261005_000001_key_budget_period.js.map +1 -0
  262. package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts +21 -0
  263. package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts.map +1 -0
  264. package/dist/db/migrations/20261005_000002_key_budget_period_auto.js +41 -0
  265. package/dist/db/migrations/20261005_000002_key_budget_period_auto.js.map +1 -0
  266. package/dist/db/model-pricing.d.ts +39 -0
  267. package/dist/db/model-pricing.d.ts.map +1 -0
  268. package/dist/db/model-pricing.js +274 -0
  269. package/dist/db/model-pricing.js.map +1 -0
  270. package/dist/db/node-sqlite.d.ts +9 -0
  271. package/dist/db/node-sqlite.d.ts.map +1 -0
  272. package/dist/db/node-sqlite.js +87 -0
  273. package/dist/db/node-sqlite.js.map +1 -0
  274. package/dist/db/types.d.ts +22 -0
  275. package/dist/db/types.d.ts.map +1 -0
  276. package/dist/db/types.js +2 -0
  277. package/dist/db/types.js.map +1 -0
  278. package/dist/docs/docs-page.d.ts +2 -0
  279. package/dist/docs/docs-page.d.ts.map +1 -0
  280. package/dist/docs/docs-page.js +319 -0
  281. package/dist/docs/docs-page.js.map +1 -0
  282. package/dist/docs/openapi.d.ts +1896 -0
  283. package/dist/docs/openapi.d.ts.map +1 -0
  284. package/dist/docs/openapi.js +1096 -0
  285. package/dist/docs/openapi.js.map +1 -0
  286. package/dist/env.d.ts +2 -0
  287. package/dist/env.d.ts.map +1 -0
  288. package/dist/env.js +9 -0
  289. package/dist/env.js.map +1 -0
  290. package/dist/index.d.ts +2 -0
  291. package/dist/index.d.ts.map +1 -0
  292. package/dist/index.js +144 -0
  293. package/dist/index.js.map +1 -0
  294. package/dist/lib/anthropic-documents.d.ts +41 -0
  295. package/dist/lib/anthropic-documents.d.ts.map +1 -0
  296. package/dist/lib/anthropic-documents.js +132 -0
  297. package/dist/lib/anthropic-documents.js.map +1 -0
  298. package/dist/lib/app-version.d.ts +5 -0
  299. package/dist/lib/app-version.d.ts.map +1 -0
  300. package/dist/lib/app-version.js +61 -0
  301. package/dist/lib/app-version.js.map +1 -0
  302. package/dist/lib/attempt-trace.d.ts +23 -0
  303. package/dist/lib/attempt-trace.d.ts.map +1 -0
  304. package/dist/lib/attempt-trace.js +32 -0
  305. package/dist/lib/attempt-trace.js.map +1 -0
  306. package/dist/lib/budget.d.ts +6 -0
  307. package/dist/lib/budget.d.ts.map +1 -0
  308. package/dist/lib/budget.js +40 -0
  309. package/dist/lib/budget.js.map +1 -0
  310. package/dist/lib/client-classifier.d.ts +10 -0
  311. package/dist/lib/client-classifier.d.ts.map +1 -0
  312. package/dist/lib/client-classifier.js +126 -0
  313. package/dist/lib/client-classifier.js.map +1 -0
  314. package/dist/lib/client-context.d.ts +10 -0
  315. package/dist/lib/client-context.d.ts.map +1 -0
  316. package/dist/lib/client-context.js +39 -0
  317. package/dist/lib/client-context.js.map +1 -0
  318. package/dist/lib/config.d.ts +33 -0
  319. package/dist/lib/config.d.ts.map +1 -0
  320. package/dist/lib/config.js +94 -0
  321. package/dist/lib/config.js.map +1 -0
  322. package/dist/lib/content.d.ts +33 -0
  323. package/dist/lib/content.d.ts.map +1 -0
  324. package/dist/lib/content.js +201 -0
  325. package/dist/lib/content.js.map +1 -0
  326. package/dist/lib/credential.d.ts +11 -0
  327. package/dist/lib/credential.d.ts.map +1 -0
  328. package/dist/lib/credential.js +18 -0
  329. package/dist/lib/credential.js.map +1 -0
  330. package/dist/lib/crypto.d.ts +31 -0
  331. package/dist/lib/crypto.d.ts.map +1 -0
  332. package/dist/lib/crypto.js +206 -0
  333. package/dist/lib/crypto.js.map +1 -0
  334. package/dist/lib/custom-provider-cleanup.d.ts +13 -0
  335. package/dist/lib/custom-provider-cleanup.d.ts.map +1 -0
  336. package/dist/lib/custom-provider-cleanup.js +43 -0
  337. package/dist/lib/custom-provider-cleanup.js.map +1 -0
  338. package/dist/lib/db-backup.d.ts +31 -0
  339. package/dist/lib/db-backup.d.ts.map +1 -0
  340. package/dist/lib/db-backup.js +255 -0
  341. package/dist/lib/db-backup.js.map +1 -0
  342. package/dist/lib/endpoint-scope.d.ts +42 -0
  343. package/dist/lib/endpoint-scope.d.ts.map +1 -0
  344. package/dist/lib/endpoint-scope.js +95 -0
  345. package/dist/lib/endpoint-scope.js.map +1 -0
  346. package/dist/lib/env-drift.d.ts +17 -0
  347. package/dist/lib/env-drift.d.ts.map +1 -0
  348. package/dist/lib/env-drift.js +108 -0
  349. package/dist/lib/env-drift.js.map +1 -0
  350. package/dist/lib/error-classify.d.ts +40 -0
  351. package/dist/lib/error-classify.d.ts.map +1 -0
  352. package/dist/lib/error-classify.js +687 -0
  353. package/dist/lib/error-classify.js.map +1 -0
  354. package/dist/lib/error-redaction.d.ts +8 -0
  355. package/dist/lib/error-redaction.d.ts.map +1 -0
  356. package/dist/lib/error-redaction.js +45 -0
  357. package/dist/lib/error-redaction.js.map +1 -0
  358. package/dist/lib/fallback-loop.d.ts +306 -0
  359. package/dist/lib/fallback-loop.d.ts.map +1 -0
  360. package/dist/lib/fallback-loop.js +1336 -0
  361. package/dist/lib/fallback-loop.js.map +1 -0
  362. package/dist/lib/file-permissions.d.ts +98 -0
  363. package/dist/lib/file-permissions.d.ts.map +1 -0
  364. package/dist/lib/file-permissions.js +159 -0
  365. package/dist/lib/file-permissions.js.map +1 -0
  366. package/dist/lib/gemini-wire.d.ts +76 -0
  367. package/dist/lib/gemini-wire.d.ts.map +1 -0
  368. package/dist/lib/gemini-wire.js +392 -0
  369. package/dist/lib/gemini-wire.js.map +1 -0
  370. package/dist/lib/guardrails.d.ts +37 -0
  371. package/dist/lib/guardrails.d.ts.map +1 -0
  372. package/dist/lib/guardrails.js +106 -0
  373. package/dist/lib/guardrails.js.map +1 -0
  374. package/dist/lib/header-value.d.ts +8 -0
  375. package/dist/lib/header-value.d.ts.map +1 -0
  376. package/dist/lib/header-value.js +55 -0
  377. package/dist/lib/header-value.js.map +1 -0
  378. package/dist/lib/image-normalize.d.ts +21 -0
  379. package/dist/lib/image-normalize.d.ts.map +1 -0
  380. package/dist/lib/image-normalize.js +218 -0
  381. package/dist/lib/image-normalize.js.map +1 -0
  382. package/dist/lib/inbound-chat.d.ts +48 -0
  383. package/dist/lib/inbound-chat.d.ts.map +1 -0
  384. package/dist/lib/inbound-chat.js +406 -0
  385. package/dist/lib/inbound-chat.js.map +1 -0
  386. package/dist/lib/key-parser.d.ts +79 -0
  387. package/dist/lib/key-parser.d.ts.map +1 -0
  388. package/dist/lib/key-parser.js +701 -0
  389. package/dist/lib/key-parser.js.map +1 -0
  390. package/dist/lib/key-proxy.d.ts +49 -0
  391. package/dist/lib/key-proxy.d.ts.map +1 -0
  392. package/dist/lib/key-proxy.js +92 -0
  393. package/dist/lib/key-proxy.js.map +1 -0
  394. package/dist/lib/log-redaction.d.ts +28 -0
  395. package/dist/lib/log-redaction.d.ts.map +1 -0
  396. package/dist/lib/log-redaction.js +166 -0
  397. package/dist/lib/log-redaction.js.map +1 -0
  398. package/dist/lib/model-scope.d.ts +9 -0
  399. package/dist/lib/model-scope.d.ts.map +1 -0
  400. package/dist/lib/model-scope.js +29 -0
  401. package/dist/lib/model-scope.js.map +1 -0
  402. package/dist/lib/one-time-code.d.ts +15 -0
  403. package/dist/lib/one-time-code.d.ts.map +1 -0
  404. package/dist/lib/one-time-code.js +41 -0
  405. package/dist/lib/one-time-code.js.map +1 -0
  406. package/dist/lib/output-cap.d.ts +24 -0
  407. package/dist/lib/output-cap.d.ts.map +1 -0
  408. package/dist/lib/output-cap.js +80 -0
  409. package/dist/lib/output-cap.js.map +1 -0
  410. package/dist/lib/password.d.ts +3 -0
  411. package/dist/lib/password.d.ts.map +1 -0
  412. package/dist/lib/password.js +27 -0
  413. package/dist/lib/password.js.map +1 -0
  414. package/dist/lib/process-safety-net.d.ts +32 -0
  415. package/dist/lib/process-safety-net.d.ts.map +1 -0
  416. package/dist/lib/process-safety-net.js +123 -0
  417. package/dist/lib/process-safety-net.js.map +1 -0
  418. package/dist/lib/provider-identity.d.ts +37 -0
  419. package/dist/lib/provider-identity.d.ts.map +1 -0
  420. package/dist/lib/provider-identity.js +110 -0
  421. package/dist/lib/provider-identity.js.map +1 -0
  422. package/dist/lib/provider-size-parser.d.ts +6 -0
  423. package/dist/lib/provider-size-parser.d.ts.map +1 -0
  424. package/dist/lib/provider-size-parser.js +72 -0
  425. package/dist/lib/provider-size-parser.js.map +1 -0
  426. package/dist/lib/provider-timeout.d.ts +17 -0
  427. package/dist/lib/provider-timeout.d.ts.map +1 -0
  428. package/dist/lib/provider-timeout.js +70 -0
  429. package/dist/lib/provider-timeout.js.map +1 -0
  430. package/dist/lib/proxy.d.ts +180 -0
  431. package/dist/lib/proxy.d.ts.map +1 -0
  432. package/dist/lib/proxy.js +1002 -0
  433. package/dist/lib/proxy.js.map +1 -0
  434. package/dist/lib/request-log.d.ts +4 -0
  435. package/dist/lib/request-log.d.ts.map +1 -0
  436. package/dist/lib/request-log.js +161 -0
  437. package/dist/lib/request-log.js.map +1 -0
  438. package/dist/lib/reset-code.d.ts +5 -0
  439. package/dist/lib/reset-code.d.ts.map +1 -0
  440. package/dist/lib/reset-code.js +39 -0
  441. package/dist/lib/reset-code.js.map +1 -0
  442. package/dist/lib/retry-hint.d.ts +14 -0
  443. package/dist/lib/retry-hint.d.ts.map +1 -0
  444. package/dist/lib/retry-hint.js +36 -0
  445. package/dist/lib/retry-hint.js.map +1 -0
  446. package/dist/lib/route-live.d.ts +29 -0
  447. package/dist/lib/route-live.d.ts.map +1 -0
  448. package/dist/lib/route-live.js +97 -0
  449. package/dist/lib/route-live.js.map +1 -0
  450. package/dist/lib/sampling-params.d.ts +183 -0
  451. package/dist/lib/sampling-params.d.ts.map +1 -0
  452. package/dist/lib/sampling-params.js +386 -0
  453. package/dist/lib/sampling-params.js.map +1 -0
  454. package/dist/lib/scheduler.d.ts +13 -0
  455. package/dist/lib/scheduler.d.ts.map +1 -0
  456. package/dist/lib/scheduler.js +11 -0
  457. package/dist/lib/scheduler.js.map +1 -0
  458. package/dist/lib/served-model.d.ts +16 -0
  459. package/dist/lib/served-model.d.ts.map +1 -0
  460. package/dist/lib/served-model.js +0 -0
  461. package/dist/lib/served-model.js.map +1 -0
  462. package/dist/lib/server-logs.d.ts +132 -0
  463. package/dist/lib/server-logs.d.ts.map +1 -0
  464. package/dist/lib/server-logs.js +473 -0
  465. package/dist/lib/server-logs.js.map +1 -0
  466. package/dist/lib/setup-code.d.ts +5 -0
  467. package/dist/lib/setup-code.d.ts.map +1 -0
  468. package/dist/lib/setup-code.js +35 -0
  469. package/dist/lib/setup-code.js.map +1 -0
  470. package/dist/lib/structured-output.d.ts +9 -0
  471. package/dist/lib/structured-output.d.ts.map +1 -0
  472. package/dist/lib/structured-output.js +72 -0
  473. package/dist/lib/structured-output.js.map +1 -0
  474. package/dist/lib/system-prompt.d.ts +30 -0
  475. package/dist/lib/system-prompt.d.ts.map +1 -0
  476. package/dist/lib/system-prompt.js +66 -0
  477. package/dist/lib/system-prompt.js.map +1 -0
  478. package/dist/lib/task-type.d.ts +18 -0
  479. package/dist/lib/task-type.d.ts.map +1 -0
  480. package/dist/lib/task-type.js +92 -0
  481. package/dist/lib/task-type.js.map +1 -0
  482. package/dist/lib/think-tags.d.ts +37 -0
  483. package/dist/lib/think-tags.d.ts.map +1 -0
  484. package/dist/lib/think-tags.js +203 -0
  485. package/dist/lib/think-tags.js.map +1 -0
  486. package/dist/lib/tool-args.d.ts +36 -0
  487. package/dist/lib/tool-args.d.ts.map +1 -0
  488. package/dist/lib/tool-args.js +190 -0
  489. package/dist/lib/tool-args.js.map +1 -0
  490. package/dist/lib/tool-call-rescue.d.ts +62 -0
  491. package/dist/lib/tool-call-rescue.d.ts.map +1 -0
  492. package/dist/lib/tool-call-rescue.js +258 -0
  493. package/dist/lib/tool-call-rescue.js.map +1 -0
  494. package/dist/lib/tool-capability.d.ts +13 -0
  495. package/dist/lib/tool-capability.d.ts.map +1 -0
  496. package/dist/lib/tool-capability.js +70 -0
  497. package/dist/lib/tool-capability.js.map +1 -0
  498. package/dist/lib/tool-validate.d.ts +44 -0
  499. package/dist/lib/tool-validate.d.ts.map +1 -0
  500. package/dist/lib/tool-validate.js +165 -0
  501. package/dist/lib/tool-validate.js.map +1 -0
  502. package/dist/lib/ttfb-budget.d.ts +13 -0
  503. package/dist/lib/ttfb-budget.d.ts.map +1 -0
  504. package/dist/lib/ttfb-budget.js +153 -0
  505. package/dist/lib/ttfb-budget.js.map +1 -0
  506. package/dist/lib/url-guard.d.ts +47 -0
  507. package/dist/lib/url-guard.d.ts.map +1 -0
  508. package/dist/lib/url-guard.js +229 -0
  509. package/dist/lib/url-guard.js.map +1 -0
  510. package/dist/lib/wake-detect.d.ts +12 -0
  511. package/dist/lib/wake-detect.d.ts.map +1 -0
  512. package/dist/lib/wake-detect.js +99 -0
  513. package/dist/lib/wake-detect.js.map +1 -0
  514. package/dist/middleware/errorHandler.d.ts +3 -0
  515. package/dist/middleware/errorHandler.d.ts.map +1 -0
  516. package/dist/middleware/errorHandler.js +45 -0
  517. package/dist/middleware/errorHandler.js.map +1 -0
  518. package/dist/middleware/rateLimit.d.ts +4 -0
  519. package/dist/middleware/rateLimit.d.ts.map +1 -0
  520. package/dist/middleware/rateLimit.js +125 -0
  521. package/dist/middleware/rateLimit.js.map +1 -0
  522. package/dist/middleware/requireAuth.d.ts +3 -0
  523. package/dist/middleware/requireAuth.d.ts.map +1 -0
  524. package/dist/middleware/requireAuth.js +17 -0
  525. package/dist/middleware/requireAuth.js.map +1 -0
  526. package/dist/providers/aclide.d.ts +18 -0
  527. package/dist/providers/aclide.d.ts.map +1 -0
  528. package/dist/providers/aclide.js +174 -0
  529. package/dist/providers/aclide.js.map +1 -0
  530. package/dist/providers/aihorde.d.ts +42 -0
  531. package/dist/providers/aihorde.d.ts.map +1 -0
  532. package/dist/providers/aihorde.js +192 -0
  533. package/dist/providers/aihorde.js.map +1 -0
  534. package/dist/providers/airforce.d.ts +11 -0
  535. package/dist/providers/airforce.d.ts.map +1 -0
  536. package/dist/providers/airforce.js +32 -0
  537. package/dist/providers/airforce.js.map +1 -0
  538. package/dist/providers/base.d.ts +177 -0
  539. package/dist/providers/base.d.ts.map +1 -0
  540. package/dist/providers/base.js +354 -0
  541. package/dist/providers/base.js.map +1 -0
  542. package/dist/providers/blaze.d.ts +11 -0
  543. package/dist/providers/blaze.d.ts.map +1 -0
  544. package/dist/providers/blaze.js +33 -0
  545. package/dist/providers/blaze.js.map +1 -0
  546. package/dist/providers/blockrun.d.ts +14 -0
  547. package/dist/providers/blockrun.d.ts.map +1 -0
  548. package/dist/providers/blockrun.js +36 -0
  549. package/dist/providers/blockrun.js.map +1 -0
  550. package/dist/providers/clod.d.ts +11 -0
  551. package/dist/providers/clod.d.ts.map +1 -0
  552. package/dist/providers/clod.js +39 -0
  553. package/dist/providers/clod.js.map +1 -0
  554. package/dist/providers/cloudflare.d.ts +15 -0
  555. package/dist/providers/cloudflare.d.ts.map +1 -0
  556. package/dist/providers/cloudflare.js +175 -0
  557. package/dist/providers/cloudflare.js.map +1 -0
  558. package/dist/providers/cohere.d.ts +11 -0
  559. package/dist/providers/cohere.d.ts.map +1 -0
  560. package/dist/providers/cohere.js +117 -0
  561. package/dist/providers/cohere.js.map +1 -0
  562. package/dist/providers/dreamprompting.d.ts +11 -0
  563. package/dist/providers/dreamprompting.d.ts.map +1 -0
  564. package/dist/providers/dreamprompting.js +41 -0
  565. package/dist/providers/dreamprompting.js.map +1 -0
  566. package/dist/providers/electronhub.d.ts +10 -0
  567. package/dist/providers/electronhub.d.ts.map +1 -0
  568. package/dist/providers/electronhub.js +56 -0
  569. package/dist/providers/electronhub.js.map +1 -0
  570. package/dist/providers/experiential.d.ts +10 -0
  571. package/dist/providers/experiential.d.ts.map +1 -0
  572. package/dist/providers/experiential.js +33 -0
  573. package/dist/providers/experiential.js.map +1 -0
  574. package/dist/providers/gizmo.d.ts +15 -0
  575. package/dist/providers/gizmo.d.ts.map +1 -0
  576. package/dist/providers/gizmo.js +54 -0
  577. package/dist/providers/gizmo.js.map +1 -0
  578. package/dist/providers/google.d.ts +30 -0
  579. package/dist/providers/google.d.ts.map +1 -0
  580. package/dist/providers/google.js +766 -0
  581. package/dist/providers/google.js.map +1 -0
  582. package/dist/providers/index.d.ts +13 -0
  583. package/dist/providers/index.d.ts.map +1 -0
  584. package/dist/providers/index.js +561 -0
  585. package/dist/providers/index.js.map +1 -0
  586. package/dist/providers/llmtr.d.ts +15 -0
  587. package/dist/providers/llmtr.d.ts.map +1 -0
  588. package/dist/providers/llmtr.js +51 -0
  589. package/dist/providers/llmtr.js.map +1 -0
  590. package/dist/providers/logfare.d.ts +11 -0
  591. package/dist/providers/logfare.d.ts.map +1 -0
  592. package/dist/providers/logfare.js +33 -0
  593. package/dist/providers/logfare.js.map +1 -0
  594. package/dist/providers/lucidity.d.ts +11 -0
  595. package/dist/providers/lucidity.d.ts.map +1 -0
  596. package/dist/providers/lucidity.js +37 -0
  597. package/dist/providers/lucidity.js.map +1 -0
  598. package/dist/providers/modelscope.d.ts +50 -0
  599. package/dist/providers/modelscope.d.ts.map +1 -0
  600. package/dist/providers/modelscope.js +143 -0
  601. package/dist/providers/modelscope.js.map +1 -0
  602. package/dist/providers/moondream.d.ts +17 -0
  603. package/dist/providers/moondream.d.ts.map +1 -0
  604. package/dist/providers/moondream.js +140 -0
  605. package/dist/providers/moondream.js.map +1 -0
  606. package/dist/providers/openai-compat.d.ts +140 -0
  607. package/dist/providers/openai-compat.d.ts.map +1 -0
  608. package/dist/providers/openai-compat.js +537 -0
  609. package/dist/providers/openai-compat.js.map +1 -0
  610. package/dist/providers/opencode-free.d.ts +24 -0
  611. package/dist/providers/opencode-free.d.ts.map +1 -0
  612. package/dist/providers/opencode-free.js +262 -0
  613. package/dist/providers/opencode-free.js.map +1 -0
  614. package/dist/providers/pollinations.d.ts +32 -0
  615. package/dist/providers/pollinations.d.ts.map +1 -0
  616. package/dist/providers/pollinations.js +65 -0
  617. package/dist/providers/pollinations.js.map +1 -0
  618. package/dist/providers/router9.d.ts +16 -0
  619. package/dist/providers/router9.d.ts.map +1 -0
  620. package/dist/providers/router9.js +42 -0
  621. package/dist/providers/router9.js.map +1 -0
  622. package/dist/providers/sail.d.ts +44 -0
  623. package/dist/providers/sail.d.ts.map +1 -0
  624. package/dist/providers/sail.js +302 -0
  625. package/dist/providers/sail.js.map +1 -0
  626. package/dist/providers/septor.d.ts +10 -0
  627. package/dist/providers/septor.d.ts.map +1 -0
  628. package/dist/providers/septor.js +36 -0
  629. package/dist/providers/septor.js.map +1 -0
  630. package/dist/providers/speechify.d.ts +14 -0
  631. package/dist/providers/speechify.d.ts.map +1 -0
  632. package/dist/providers/speechify.js +28 -0
  633. package/dist/providers/speechify.js.map +1 -0
  634. package/dist/providers/speka.d.ts +12 -0
  635. package/dist/providers/speka.d.ts.map +1 -0
  636. package/dist/providers/speka.js +37 -0
  637. package/dist/providers/speka.js.map +1 -0
  638. package/dist/providers/waterfall.d.ts +11 -0
  639. package/dist/providers/waterfall.d.ts.map +1 -0
  640. package/dist/providers/waterfall.js +33 -0
  641. package/dist/providers/waterfall.js.map +1 -0
  642. package/dist/providers/xkiro.d.ts +71 -0
  643. package/dist/providers/xkiro.d.ts.map +1 -0
  644. package/dist/providers/xkiro.js +119 -0
  645. package/dist/providers/xkiro.js.map +1 -0
  646. package/dist/providers/zhipu.d.ts +43 -0
  647. package/dist/providers/zhipu.d.ts.map +1 -0
  648. package/dist/providers/zhipu.js +95 -0
  649. package/dist/providers/zhipu.js.map +1 -0
  650. package/dist/routes/analytics.d.ts +2 -0
  651. package/dist/routes/analytics.d.ts.map +1 -0
  652. package/dist/routes/analytics.js +738 -0
  653. package/dist/routes/analytics.js.map +1 -0
  654. package/dist/routes/anthropic.d.ts +7 -0
  655. package/dist/routes/anthropic.d.ts.map +1 -0
  656. package/dist/routes/anthropic.js +1076 -0
  657. package/dist/routes/anthropic.js.map +1 -0
  658. package/dist/routes/auth.d.ts +2 -0
  659. package/dist/routes/auth.d.ts.map +1 -0
  660. package/dist/routes/auth.js +310 -0
  661. package/dist/routes/auth.js.map +1 -0
  662. package/dist/routes/backups.d.ts +2 -0
  663. package/dist/routes/backups.d.ts.map +1 -0
  664. package/dist/routes/backups.js +127 -0
  665. package/dist/routes/backups.js.map +1 -0
  666. package/dist/routes/cache.d.ts +2 -0
  667. package/dist/routes/cache.d.ts.map +1 -0
  668. package/dist/routes/cache.js +40 -0
  669. package/dist/routes/cache.js.map +1 -0
  670. package/dist/routes/client-profiles.d.ts +2 -0
  671. package/dist/routes/client-profiles.d.ts.map +1 -0
  672. package/dist/routes/client-profiles.js +128 -0
  673. package/dist/routes/client-profiles.js.map +1 -0
  674. package/dist/routes/compression.d.ts +2 -0
  675. package/dist/routes/compression.d.ts.map +1 -0
  676. package/dist/routes/compression.js +82 -0
  677. package/dist/routes/compression.js.map +1 -0
  678. package/dist/routes/conversations.d.ts +3 -0
  679. package/dist/routes/conversations.d.ts.map +1 -0
  680. package/dist/routes/conversations.js +215 -0
  681. package/dist/routes/conversations.js.map +1 -0
  682. package/dist/routes/docs.d.ts +2 -0
  683. package/dist/routes/docs.d.ts.map +1 -0
  684. package/dist/routes/docs.js +21 -0
  685. package/dist/routes/docs.js.map +1 -0
  686. package/dist/routes/embeddings.d.ts +2 -0
  687. package/dist/routes/embeddings.d.ts.map +1 -0
  688. package/dist/routes/embeddings.js +255 -0
  689. package/dist/routes/embeddings.js.map +1 -0
  690. package/dist/routes/fallback.d.ts +2 -0
  691. package/dist/routes/fallback.d.ts.map +1 -0
  692. package/dist/routes/fallback.js +631 -0
  693. package/dist/routes/fallback.js.map +1 -0
  694. package/dist/routes/free-tier.d.ts +22 -0
  695. package/dist/routes/free-tier.d.ts.map +1 -0
  696. package/dist/routes/free-tier.js +175 -0
  697. package/dist/routes/free-tier.js.map +1 -0
  698. package/dist/routes/gemini.d.ts +2 -0
  699. package/dist/routes/gemini.d.ts.map +1 -0
  700. package/dist/routes/gemini.js +218 -0
  701. package/dist/routes/gemini.js.map +1 -0
  702. package/dist/routes/health.d.ts +2 -0
  703. package/dist/routes/health.d.ts.map +1 -0
  704. package/dist/routes/health.js +72 -0
  705. package/dist/routes/health.js.map +1 -0
  706. package/dist/routes/keys.d.ts +17 -0
  707. package/dist/routes/keys.d.ts.map +1 -0
  708. package/dist/routes/keys.js +1787 -0
  709. package/dist/routes/keys.js.map +1 -0
  710. package/dist/routes/logs.d.ts +2 -0
  711. package/dist/routes/logs.d.ts.map +1 -0
  712. package/dist/routes/logs.js +88 -0
  713. package/dist/routes/logs.js.map +1 -0
  714. package/dist/routes/mcp.d.ts +4 -0
  715. package/dist/routes/mcp.d.ts.map +1 -0
  716. package/dist/routes/mcp.js +563 -0
  717. package/dist/routes/mcp.js.map +1 -0
  718. package/dist/routes/media.d.ts +2 -0
  719. package/dist/routes/media.d.ts.map +1 -0
  720. package/dist/routes/media.js +180 -0
  721. package/dist/routes/media.js.map +1 -0
  722. package/dist/routes/models.d.ts +2 -0
  723. package/dist/routes/models.d.ts.map +1 -0
  724. package/dist/routes/models.js +439 -0
  725. package/dist/routes/models.js.map +1 -0
  726. package/dist/routes/ollama.d.ts +7 -0
  727. package/dist/routes/ollama.d.ts.map +1 -0
  728. package/dist/routes/ollama.js +595 -0
  729. package/dist/routes/ollama.js.map +1 -0
  730. package/dist/routes/profiles.d.ts +3 -0
  731. package/dist/routes/profiles.d.ts.map +1 -0
  732. package/dist/routes/profiles.js +431 -0
  733. package/dist/routes/profiles.js.map +1 -0
  734. package/dist/routes/proxy.d.ts +32 -0
  735. package/dist/routes/proxy.d.ts.map +1 -0
  736. package/dist/routes/proxy.js +2793 -0
  737. package/dist/routes/proxy.js.map +1 -0
  738. package/dist/routes/responses.d.ts +1161 -0
  739. package/dist/routes/responses.d.ts.map +1 -0
  740. package/dist/routes/responses.js +1521 -0
  741. package/dist/routes/responses.js.map +1 -0
  742. package/dist/routes/settings.d.ts +2 -0
  743. package/dist/routes/settings.d.ts.map +1 -0
  744. package/dist/routes/settings.js +549 -0
  745. package/dist/routes/settings.js.map +1 -0
  746. package/dist/routes/status.d.ts +3 -0
  747. package/dist/routes/status.d.ts.map +1 -0
  748. package/dist/routes/status.js +214 -0
  749. package/dist/routes/status.js.map +1 -0
  750. package/dist/routes/update.d.ts +31 -0
  751. package/dist/routes/update.d.ts.map +1 -0
  752. package/dist/routes/update.js +536 -0
  753. package/dist/routes/update.js.map +1 -0
  754. package/dist/routes/url-tokens.d.ts +2 -0
  755. package/dist/routes/url-tokens.d.ts.map +1 -0
  756. package/dist/routes/url-tokens.js +31 -0
  757. package/dist/routes/url-tokens.js.map +1 -0
  758. package/dist/scripts/export-catalog.d.ts +2 -0
  759. package/dist/scripts/export-catalog.d.ts.map +1 -0
  760. package/dist/scripts/export-catalog.js +114 -0
  761. package/dist/scripts/export-catalog.js.map +1 -0
  762. package/dist/scripts/rotate-encryption-key.d.ts +81 -0
  763. package/dist/scripts/rotate-encryption-key.d.ts.map +1 -0
  764. package/dist/scripts/rotate-encryption-key.js +232 -0
  765. package/dist/scripts/rotate-encryption-key.js.map +1 -0
  766. package/dist/scripts/routing-sim.d.ts +2 -0
  767. package/dist/scripts/routing-sim.d.ts.map +1 -0
  768. package/dist/scripts/routing-sim.js +130 -0
  769. package/dist/scripts/routing-sim.js.map +1 -0
  770. package/dist/scripts/test-all-models.d.ts +2 -0
  771. package/dist/scripts/test-all-models.d.ts.map +1 -0
  772. package/dist/scripts/test-all-models.js +56 -0
  773. package/dist/scripts/test-all-models.js.map +1 -0
  774. package/dist/services/anthropic-map.d.ts +39 -0
  775. package/dist/services/anthropic-map.d.ts.map +1 -0
  776. package/dist/services/anthropic-map.js +138 -0
  777. package/dist/services/anthropic-map.js.map +1 -0
  778. package/dist/services/auth.d.ts +30 -0
  779. package/dist/services/auth.d.ts.map +1 -0
  780. package/dist/services/auth.js +124 -0
  781. package/dist/services/auth.js.map +1 -0
  782. package/dist/services/auto-discover.d.ts +77 -0
  783. package/dist/services/auto-discover.d.ts.map +1 -0
  784. package/dist/services/auto-discover.js +1047 -0
  785. package/dist/services/auto-discover.js.map +1 -0
  786. package/dist/services/backups.d.ts +67 -0
  787. package/dist/services/backups.d.ts.map +1 -0
  788. package/dist/services/backups.js +444 -0
  789. package/dist/services/backups.js.map +1 -0
  790. package/dist/services/builtin-model-discovery.d.ts +107 -0
  791. package/dist/services/builtin-model-discovery.d.ts.map +1 -0
  792. package/dist/services/builtin-model-discovery.js +296 -0
  793. package/dist/services/builtin-model-discovery.js.map +1 -0
  794. package/dist/services/cache.d.ts +190 -0
  795. package/dist/services/cache.d.ts.map +1 -0
  796. package/dist/services/cache.js +617 -0
  797. package/dist/services/cache.js.map +1 -0
  798. package/dist/services/catalog-sync.d.ts +257 -0
  799. package/dist/services/catalog-sync.d.ts.map +1 -0
  800. package/dist/services/catalog-sync.js +1041 -0
  801. package/dist/services/catalog-sync.js.map +1 -0
  802. package/dist/services/compression/config.d.ts +33 -0
  803. package/dist/services/compression/config.d.ts.map +1 -0
  804. package/dist/services/compression/config.js +158 -0
  805. package/dist/services/compression/config.js.map +1 -0
  806. package/dist/services/compression/engines/aging.d.ts +2 -0
  807. package/dist/services/compression/engines/aging.d.ts.map +1 -0
  808. package/dist/services/compression/engines/aging.js +53 -0
  809. package/dist/services/compression/engines/aging.js.map +1 -0
  810. package/dist/services/compression/engines/custom-filters.d.ts +4 -0
  811. package/dist/services/compression/engines/custom-filters.d.ts.map +1 -0
  812. package/dist/services/compression/engines/custom-filters.js +49 -0
  813. package/dist/services/compression/engines/custom-filters.js.map +1 -0
  814. package/dist/services/compression/engines/dedup.d.ts +2 -0
  815. package/dist/services/compression/engines/dedup.d.ts.map +1 -0
  816. package/dist/services/compression/engines/dedup.js +61 -0
  817. package/dist/services/compression/engines/dedup.js.map +1 -0
  818. package/dist/services/compression/engines/filter-definitions.d.ts +75 -0
  819. package/dist/services/compression/engines/filter-definitions.d.ts.map +1 -0
  820. package/dist/services/compression/engines/filter-definitions.js +45 -0
  821. package/dist/services/compression/engines/filter-definitions.js.map +1 -0
  822. package/dist/services/compression/engines/hard-budget.d.ts +2 -0
  823. package/dist/services/compression/engines/hard-budget.d.ts.map +1 -0
  824. package/dist/services/compression/engines/hard-budget.js +52 -0
  825. package/dist/services/compression/engines/hard-budget.js.map +1 -0
  826. package/dist/services/compression/engines/index.d.ts +9 -0
  827. package/dist/services/compression/engines/index.d.ts.map +1 -0
  828. package/dist/services/compression/engines/index.js +9 -0
  829. package/dist/services/compression/engines/index.js.map +1 -0
  830. package/dist/services/compression/engines/jsoncompact.d.ts +3 -0
  831. package/dist/services/compression/engines/jsoncompact.d.ts.map +1 -0
  832. package/dist/services/compression/engines/jsoncompact.js +145 -0
  833. package/dist/services/compression/engines/jsoncompact.js.map +1 -0
  834. package/dist/services/compression/engines/lite.d.ts +2 -0
  835. package/dist/services/compression/engines/lite.d.ts.map +1 -0
  836. package/dist/services/compression/engines/lite.js +34 -0
  837. package/dist/services/compression/engines/lite.js.map +1 -0
  838. package/dist/services/compression/engines/read-lifecycle.d.ts +2 -0
  839. package/dist/services/compression/engines/read-lifecycle.d.ts.map +1 -0
  840. package/dist/services/compression/engines/read-lifecycle.js +70 -0
  841. package/dist/services/compression/engines/read-lifecycle.js.map +1 -0
  842. package/dist/services/compression/engines/relevance.d.ts +2 -0
  843. package/dist/services/compression/engines/relevance.d.ts.map +1 -0
  844. package/dist/services/compression/engines/relevance.js +74 -0
  845. package/dist/services/compression/engines/relevance.js.map +1 -0
  846. package/dist/services/compression/engines/toolfilter.d.ts +2 -0
  847. package/dist/services/compression/engines/toolfilter.d.ts.map +1 -0
  848. package/dist/services/compression/engines/toolfilter.js +195 -0
  849. package/dist/services/compression/engines/toolfilter.js.map +1 -0
  850. package/dist/services/compression/fidelity-gate.d.ts +12 -0
  851. package/dist/services/compression/fidelity-gate.d.ts.map +1 -0
  852. package/dist/services/compression/fidelity-gate.js +90 -0
  853. package/dist/services/compression/fidelity-gate.js.map +1 -0
  854. package/dist/services/compression/helpers.d.ts +9 -0
  855. package/dist/services/compression/helpers.d.ts.map +1 -0
  856. package/dist/services/compression/helpers.js +52 -0
  857. package/dist/services/compression/helpers.js.map +1 -0
  858. package/dist/services/compression/pipeline.d.ts +7 -0
  859. package/dist/services/compression/pipeline.d.ts.map +1 -0
  860. package/dist/services/compression/pipeline.js +245 -0
  861. package/dist/services/compression/pipeline.js.map +1 -0
  862. package/dist/services/compression/preservation.d.ts +27 -0
  863. package/dist/services/compression/preservation.d.ts.map +1 -0
  864. package/dist/services/compression/preservation.js +109 -0
  865. package/dist/services/compression/preservation.js.map +1 -0
  866. package/dist/services/compression/registry.d.ts +6 -0
  867. package/dist/services/compression/registry.d.ts.map +1 -0
  868. package/dist/services/compression/registry.js +16 -0
  869. package/dist/services/compression/registry.js.map +1 -0
  870. package/dist/services/compression/stats.d.ts +29 -0
  871. package/dist/services/compression/stats.d.ts.map +1 -0
  872. package/dist/services/compression/stats.js +55 -0
  873. package/dist/services/compression/stats.js.map +1 -0
  874. package/dist/services/compression/types.d.ts +90 -0
  875. package/dist/services/compression/types.d.ts.map +1 -0
  876. package/dist/services/compression/types.js +2 -0
  877. package/dist/services/compression/types.js.map +1 -0
  878. package/dist/services/context-handoff.d.ts +22 -0
  879. package/dist/services/context-handoff.d.ts.map +1 -0
  880. package/dist/services/context-handoff.js +164 -0
  881. package/dist/services/context-handoff.js.map +1 -0
  882. package/dist/services/cooldown-probe.d.ts +24 -0
  883. package/dist/services/cooldown-probe.d.ts.map +1 -0
  884. package/dist/services/cooldown-probe.js +181 -0
  885. package/dist/services/cooldown-probe.js.map +1 -0
  886. package/dist/services/custom-endpoint.d.ts +58 -0
  887. package/dist/services/custom-endpoint.d.ts.map +1 -0
  888. package/dist/services/custom-endpoint.js +167 -0
  889. package/dist/services/custom-endpoint.js.map +1 -0
  890. package/dist/services/custom-media-register.d.ts +22 -0
  891. package/dist/services/custom-media-register.d.ts.map +1 -0
  892. package/dist/services/custom-media-register.js +45 -0
  893. package/dist/services/custom-media-register.js.map +1 -0
  894. package/dist/services/custom-model-register.d.ts +50 -0
  895. package/dist/services/custom-model-register.d.ts.map +1 -0
  896. package/dist/services/custom-model-register.js +103 -0
  897. package/dist/services/custom-model-register.js.map +1 -0
  898. package/dist/services/custom-model-seed.d.ts +18 -0
  899. package/dist/services/custom-model-seed.d.ts.map +1 -0
  900. package/dist/services/custom-model-seed.js +42 -0
  901. package/dist/services/custom-model-seed.js.map +1 -0
  902. package/dist/services/custom-model-sync.d.ts +37 -0
  903. package/dist/services/custom-model-sync.d.ts.map +1 -0
  904. package/dist/services/custom-model-sync.js +118 -0
  905. package/dist/services/custom-model-sync.js.map +1 -0
  906. package/dist/services/custom-model-tombstone.d.ts +5 -0
  907. package/dist/services/custom-model-tombstone.d.ts.map +1 -0
  908. package/dist/services/custom-model-tombstone.js +30 -0
  909. package/dist/services/custom-model-tombstone.js.map +1 -0
  910. package/dist/services/declarative-config.d.ts +356 -0
  911. package/dist/services/declarative-config.d.ts.map +1 -0
  912. package/dist/services/declarative-config.js +427 -0
  913. package/dist/services/declarative-config.js.map +1 -0
  914. package/dist/services/degradation.d.ts +40 -0
  915. package/dist/services/degradation.d.ts.map +1 -0
  916. package/dist/services/degradation.js +119 -0
  917. package/dist/services/degradation.js.map +1 -0
  918. package/dist/services/embeddings.d.ts +76 -0
  919. package/dist/services/embeddings.d.ts.map +1 -0
  920. package/dist/services/embeddings.js +319 -0
  921. package/dist/services/embeddings.js.map +1 -0
  922. package/dist/services/fusion.d.ts +162 -0
  923. package/dist/services/fusion.d.ts.map +1 -0
  924. package/dist/services/fusion.js +789 -0
  925. package/dist/services/fusion.js.map +1 -0
  926. package/dist/services/gemini-map.d.ts +14 -0
  927. package/dist/services/gemini-map.d.ts.map +1 -0
  928. package/dist/services/gemini-map.js +78 -0
  929. package/dist/services/gemini-map.js.map +1 -0
  930. package/dist/services/health.d.ts +52 -0
  931. package/dist/services/health.d.ts.map +1 -0
  932. package/dist/services/health.js +352 -0
  933. package/dist/services/health.js.map +1 -0
  934. package/dist/services/idempotency.d.ts +49 -0
  935. package/dist/services/idempotency.d.ts.map +1 -0
  936. package/dist/services/idempotency.js +140 -0
  937. package/dist/services/idempotency.js.map +1 -0
  938. package/dist/services/key-budget.d.ts +74 -0
  939. package/dist/services/key-budget.d.ts.map +1 -0
  940. package/dist/services/key-budget.js +200 -0
  941. package/dist/services/key-budget.js.map +1 -0
  942. package/dist/services/media.d.ts +123 -0
  943. package/dist/services/media.d.ts.map +1 -0
  944. package/dist/services/media.js +954 -0
  945. package/dist/services/media.js.map +1 -0
  946. package/dist/services/model-discovery.d.ts +126 -0
  947. package/dist/services/model-discovery.d.ts.map +1 -0
  948. package/dist/services/model-discovery.js +662 -0
  949. package/dist/services/model-discovery.js.map +1 -0
  950. package/dist/services/model-groups.d.ts +149 -0
  951. package/dist/services/model-groups.d.ts.map +1 -0
  952. package/dist/services/model-groups.js +314 -0
  953. package/dist/services/model-groups.js.map +1 -0
  954. package/dist/services/model-listing.d.ts +18 -0
  955. package/dist/services/model-listing.d.ts.map +1 -0
  956. package/dist/services/model-listing.js +94 -0
  957. package/dist/services/model-listing.js.map +1 -0
  958. package/dist/services/model-retirement.d.ts +29 -0
  959. package/dist/services/model-retirement.d.ts.map +1 -0
  960. package/dist/services/model-retirement.js +86 -0
  961. package/dist/services/model-retirement.js.map +1 -0
  962. package/dist/services/model-state.d.ts +90 -0
  963. package/dist/services/model-state.d.ts.map +1 -0
  964. package/dist/services/model-state.js +342 -0
  965. package/dist/services/model-state.js.map +1 -0
  966. package/dist/services/model-weight-overrides.d.ts +48 -0
  967. package/dist/services/model-weight-overrides.d.ts.map +1 -0
  968. package/dist/services/model-weight-overrides.js +127 -0
  969. package/dist/services/model-weight-overrides.js.map +1 -0
  970. package/dist/services/notification-emitter.d.ts +50 -0
  971. package/dist/services/notification-emitter.d.ts.map +1 -0
  972. package/dist/services/notification-emitter.js +177 -0
  973. package/dist/services/notification-emitter.js.map +1 -0
  974. package/dist/services/opencode-free-sync.d.ts +29 -0
  975. package/dist/services/opencode-free-sync.d.ts.map +1 -0
  976. package/dist/services/opencode-free-sync.js +206 -0
  977. package/dist/services/opencode-free-sync.js.map +1 -0
  978. package/dist/services/penalty-inspector.d.ts +56 -0
  979. package/dist/services/penalty-inspector.d.ts.map +1 -0
  980. package/dist/services/penalty-inspector.js +167 -0
  981. package/dist/services/penalty-inspector.js.map +1 -0
  982. package/dist/services/profile-models.d.ts +5 -0
  983. package/dist/services/profile-models.d.ts.map +1 -0
  984. package/dist/services/profile-models.js +62 -0
  985. package/dist/services/profile-models.js.map +1 -0
  986. package/dist/services/provider-credential.d.ts +19 -0
  987. package/dist/services/provider-credential.d.ts.map +1 -0
  988. package/dist/services/provider-credential.js +51 -0
  989. package/dist/services/provider-credential.js.map +1 -0
  990. package/dist/services/provider-quota.d.ts +64 -0
  991. package/dist/services/provider-quota.d.ts.map +1 -0
  992. package/dist/services/provider-quota.js +563 -0
  993. package/dist/services/provider-quota.js.map +1 -0
  994. package/dist/services/quirks.d.ts +0 -0
  995. package/dist/services/quirks.d.ts.map +1 -0
  996. package/dist/services/quirks.js +0 -0
  997. package/dist/services/quirks.js.map +1 -0
  998. package/dist/services/quota-forecast.d.ts +50 -0
  999. package/dist/services/quota-forecast.d.ts.map +1 -0
  1000. package/dist/services/quota-forecast.js +150 -0
  1001. package/dist/services/quota-forecast.js.map +1 -0
  1002. package/dist/services/quota-outlook.d.ts +4 -0
  1003. package/dist/services/quota-outlook.d.ts.map +1 -0
  1004. package/dist/services/quota-outlook.js +92 -0
  1005. package/dist/services/quota-outlook.js.map +1 -0
  1006. package/dist/services/ratelimit.d.ts +249 -0
  1007. package/dist/services/ratelimit.d.ts.map +1 -0
  1008. package/dist/services/ratelimit.js +1182 -0
  1009. package/dist/services/ratelimit.js.map +1 -0
  1010. package/dist/services/request-retention.d.ts +60 -0
  1011. package/dist/services/request-retention.d.ts.map +1 -0
  1012. package/dist/services/request-retention.js +229 -0
  1013. package/dist/services/request-retention.js.map +1 -0
  1014. package/dist/services/router.d.ts +384 -0
  1015. package/dist/services/router.d.ts.map +1 -0
  1016. package/dist/services/router.js +1986 -0
  1017. package/dist/services/router.js.map +1 -0
  1018. package/dist/services/scoring.d.ts +156 -0
  1019. package/dist/services/scoring.d.ts.map +1 -0
  1020. package/dist/services/scoring.js +435 -0
  1021. package/dist/services/scoring.js.map +1 -0
  1022. package/dist/services/url-tokens.d.ts +15 -0
  1023. package/dist/services/url-tokens.d.ts.map +1 -0
  1024. package/dist/services/url-tokens.js +55 -0
  1025. package/dist/services/url-tokens.js.map +1 -0
  1026. package/package.json +77 -4
  1027. package/README.md +0 -3
@@ -0,0 +1,183 @@
1
+ import { z } from 'zod';
2
+ import type { Platform } from '@srouter/shared/types.js';
3
+ export declare const REASONING_EFFORTS: readonly ["none", "minimal", "low", "medium", "high"];
4
+ export type ReasoningEffort = typeof REASONING_EFFORTS[number];
5
+ /**
6
+ * Coerce a client-supplied effort value onto our scale: supported values pass
7
+ * through, known aliases clamp to the nearest supported one, and anything
8
+ * else (unknown word, wrong type, "auto") yields undefined — the knob is
9
+ * dropped and the provider's own default applies. Never throws, so a bad
10
+ * effort can't fail a request. Exported for tests.
11
+ */
12
+ export declare function normalizeReasoningEffort(value: unknown): ReasoningEffort | undefined;
13
+ export declare const samplingParamSchemaFields: {
14
+ readonly top_k: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
15
+ readonly min_p: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
16
+ readonly seed: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
17
+ readonly presence_penalty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
18
+ readonly frequency_penalty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
19
+ readonly repetition_penalty: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
20
+ readonly logit_bias: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodNumber>>>;
21
+ readonly logprobs: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
22
+ readonly top_logprobs: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
23
+ readonly response_format: z.ZodOptional<z.ZodNullable<z.ZodObject<{
24
+ type: z.ZodEnum<["text", "json_object", "json_schema"]>;
25
+ json_schema: z.ZodOptional<z.ZodObject<{
26
+ name: z.ZodOptional<z.ZodString>;
27
+ strict: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
28
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
29
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
30
+ name: z.ZodOptional<z.ZodString>;
31
+ strict: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
32
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
33
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
34
+ name: z.ZodOptional<z.ZodString>;
35
+ strict: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
36
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
37
+ }, z.ZodTypeAny, "passthrough">>>;
38
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
39
+ type: z.ZodEnum<["text", "json_object", "json_schema"]>;
40
+ json_schema: z.ZodOptional<z.ZodObject<{
41
+ name: z.ZodOptional<z.ZodString>;
42
+ strict: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
43
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
44
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
45
+ name: z.ZodOptional<z.ZodString>;
46
+ strict: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
47
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
48
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
49
+ name: z.ZodOptional<z.ZodString>;
50
+ strict: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
51
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
52
+ }, z.ZodTypeAny, "passthrough">>>;
53
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
54
+ type: z.ZodEnum<["text", "json_object", "json_schema"]>;
55
+ json_schema: z.ZodOptional<z.ZodObject<{
56
+ name: z.ZodOptional<z.ZodString>;
57
+ strict: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
58
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
59
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
60
+ name: z.ZodOptional<z.ZodString>;
61
+ strict: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
62
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
63
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
64
+ name: z.ZodOptional<z.ZodString>;
65
+ strict: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
66
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
67
+ }, z.ZodTypeAny, "passthrough">>>;
68
+ }, z.ZodTypeAny, "passthrough">>>>;
69
+ readonly reasoning_effort: z.ZodOptional<z.ZodUnknown>;
70
+ readonly reasoning: z.ZodOptional<z.ZodNullable<z.ZodObject<{
71
+ effort: z.ZodOptional<z.ZodUnknown>;
72
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
73
+ effort: z.ZodOptional<z.ZodUnknown>;
74
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
75
+ effort: z.ZodOptional<z.ZodUnknown>;
76
+ }, z.ZodTypeAny, "passthrough">>>>;
77
+ readonly max_completion_tokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
78
+ };
79
+ export interface ResponseFormat {
80
+ type: 'json_object' | 'json_schema';
81
+ json_schema?: {
82
+ name?: string;
83
+ strict?: boolean | null;
84
+ schema?: Record<string, unknown>;
85
+ } & Record<string, unknown>;
86
+ }
87
+ export interface ExtendedSamplingOptions {
88
+ top_k?: number;
89
+ min_p?: number;
90
+ seed?: number;
91
+ presence_penalty?: number;
92
+ frequency_penalty?: number;
93
+ repetition_penalty?: number;
94
+ logit_bias?: Record<string, number>;
95
+ logprobs?: boolean;
96
+ top_logprobs?: number;
97
+ response_format?: ResponseFormat;
98
+ reasoning_effort?: ReasoningEffort;
99
+ }
100
+ export declare const EXTENDED_SAMPLING_KEYS: readonly ["top_k", "min_p", "seed", "presence_penalty", "frequency_penalty", "repetition_penalty", "logit_bias", "logprobs", "top_logprobs", "response_format", "reasoning_effort"];
101
+ export type ExtendedSamplingKey = typeof EXTENDED_SAMPLING_KEYS[number];
102
+ type ParsedSamplingBody = {
103
+ [K in ExtendedSamplingKey]?: unknown;
104
+ } & {
105
+ reasoning?: {
106
+ effort?: unknown;
107
+ } | null;
108
+ };
109
+ /**
110
+ * Turn a schema-parsed request body into the extended CompletionOptions
111
+ * fields: nulls dropped, `response_format: {type:'text'}` dropped (it is the
112
+ * default and some providers 400 on receiving it explicitly), everything else
113
+ * forwarded as-is.
114
+ */
115
+ export declare function pickSamplingParams(body: ParsedSamplingBody): ExtendedSamplingOptions;
116
+ export interface PlatformParamPolicy {
117
+ drop?: readonly ExtendedSamplingKey[];
118
+ rename?: Readonly<Partial<Record<ExtendedSamplingKey, string>>>;
119
+ jsonObjectToSchema?: boolean;
120
+ jsonSchemaToObject?: boolean;
121
+ reasoningEfforts?: readonly ReasoningEffort[];
122
+ defaultMaxTokens?: number;
123
+ maxTokensCap?: number;
124
+ }
125
+ /** GitHub Models' own output-token ceiling: asking for more 400s ("max_tokens
126
+ * is too large"), so the request never reaches the model. Wired into the
127
+ * github policy below as maxTokensCap. */
128
+ export declare const GITHUB_MAX_OUTPUT_TOKENS = 400;
129
+ export declare const PLATFORM_PARAM_POLICIES: Partial<Record<Platform, PlatformParamPolicy>>;
130
+ /**
131
+ * Build the extended wire-body fields for one platform: policy droplist
132
+ * applied, renames applied, undefined skipped. Adapters spread the result
133
+ * into their OpenAI-shaped request bodies.
134
+ */
135
+ export declare function extendedBodyParams(platform: string, options: ExtendedSamplingOptions | undefined): Record<string, unknown>;
136
+ /** The output-token floor this platform sends for a request that carries no
137
+ * max_tokens at all, or undefined when the provider's own default is fine. */
138
+ export declare function defaultMaxTokensFor(platform: string): number | undefined;
139
+ /** This platform's own output-token ceiling, or undefined when it accepts
140
+ * whatever max_tokens the client asks for. */
141
+ export declare function maxTokensCapFor(platform: string): number | undefined;
142
+ /**
143
+ * The max_tokens to put on the wire for one request: whatever the client asked
144
+ * for, or the platform's floor when the client asked for nothing (#553), then
145
+ * lowered to the tightest ceiling that applies — the platform's own
146
+ * maxTokensCap, the operator's unified cap, or both. With neither in play
147
+ * nothing is clamped — a client-set value passes through untouched in both
148
+ * directions, and the gateway's own guardrails (token budget, routing reserve)
149
+ * have already had their say by the time an adapter calls this.
150
+ *
151
+ * EVERY adapter must send max_tokens through here, or the cap is not unified:
152
+ * openai-compat (and its subclasses), cloudflare, cohere, google and aihorde
153
+ * all do.
154
+ */
155
+ export declare function resolveMaxTokens(platform: string, requested: number | undefined, contextBudget?: number): number | undefined;
156
+ export declare const UNIFIED_MAX_TOKENS_SETTING = "unified_max_tokens";
157
+ /** The ceiling 'auto' clamps to: the output limit of the largest common free
158
+ * catalog models. */
159
+ export declare const UNIFIED_MAX_TOKENS_AUTO = 32768;
160
+ /** The configured unified output cap, or null when disabled ('off'/unset).
161
+ * 'auto' resolves to UNIFIED_MAX_TOKENS_AUTO; an explicit integer is used
162
+ * verbatim; anything else is treated as disabled so a bad value can't 400
163
+ * requests. Reads the settings table on every call — cheap (better-sqlite3
164
+ * sync read) and picks up dashboard changes without a restart, mirroring
165
+ * guardrails.ts. */
166
+ export declare function unifiedMaxTokensCap(): number | null;
167
+ /** True when this platform's policy strips response_format before send — the
168
+ * router uses it to skip such platforms for structured-output requests. */
169
+ export declare function platformDropsResponseFormat(platform: string): boolean;
170
+ /** The advertised parameter list for a model on `platform` — the base set
171
+ * every surface supports, plus tools when the model does, minus the
172
+ * platform's droplist. */
173
+ export declare function supportedParametersFor(platform: string, caps?: {
174
+ tools?: boolean;
175
+ }): string[];
176
+ /** For a model served by several platforms (a unify group): the INTERSECTION
177
+ * of the members' supported sets — a param is only advertised when every
178
+ * platform the router might pick honors it. */
179
+ export declare function supportedParametersForPlatforms(platforms: string[], caps?: {
180
+ tools?: boolean;
181
+ }): string[];
182
+ export {};
183
+ //# sourceMappingURL=sampling-params.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampling-params.d.ts","sourceRoot":"","sources":["../../src/lib/sampling-params.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,386 @@
1
+ // Extended sampling / output-shape parameters forwarded to providers.
2
+ //
3
+ // Until now only temperature / max_tokens / top_p / stop reached upstream —
4
+ // everything else a client sent (seed, penalties, logit_bias, logprobs,
5
+ // response_format…) was validated away by the request schema and silently
6
+ // dropped, so "OpenAI-compatible" was quietly narrower than it claimed
7
+ // (structured outputs simply did not work). This module is the single source
8
+ // of truth for the extended set:
9
+ //
10
+ // - the zod fields each surface spreads into its request schema,
11
+ // - the pick helper that turns a parsed body into CompletionOptions fields,
12
+ // - the per-platform support policy (which params a provider is known to
13
+ // reject or ignore) used both by the adapters (drop before send) and by
14
+ // /v1/models `supported_parameters` (advertise per model).
15
+ //
16
+ // Forward-by-default: most OpenAI-compatible providers ignore unknown body
17
+ // fields, so the default is to send everything and let the per-platform
18
+ // droplist name the documented exceptions (Mistral 422s on unknown keys,
19
+ // Groq 400s on the logprobs family, Azure-backed GitHub Models rejects
20
+ // non-Azure knobs). A provider that still 400s fails over like any other
21
+ // provider-invalid request and shows up in the attempt trail — and its
22
+ // droplist entry is one line to add.
23
+ import { z } from 'zod';
24
+ import { getSetting } from '../db/index.js';
25
+ // OpenAI's request-side reasoning knob. Wire values as of the current OpenAI
26
+ // API: 'minimal'|'low'|'medium'|'high', plus 'none' (gpt-5.1). Forwarded
27
+ // verbatim to openai-compat platforms per the policy below; the Google
28
+ // adapter maps it natively onto generationConfig.thinkingConfig.
29
+ export const REASONING_EFFORTS = ['none', 'minimal', 'low', 'medium', 'high'];
30
+ // Effort spellings clients actually send that aren't on OpenAI's scale, mapped
31
+ // to the nearest value we do support (#619: a strict enum turned a client's
32
+ // `reasoning_effort: 'max'` into a 400 from our own edge — a knob nobody asked
33
+ // to be fatal). Values that mean "let the model decide" ('auto', 'adaptive',
34
+ // 'default') are deliberately absent: they resolve to undefined below, i.e.
35
+ // nothing is forwarded and the provider default stands — same rule
36
+ // effortFromGeminiThinking applies to a -1 thinking budget.
37
+ const EFFORT_ALIASES = {
38
+ max: 'high', maximum: 'high', highest: 'high', ultra: 'high', xhigh: 'high', 'x-high': 'high',
39
+ mid: 'medium', moderate: 'medium', balanced: 'medium', normal: 'medium', standard: 'medium',
40
+ min: 'minimal', minimum: 'minimal', lowest: 'minimal', xlow: 'minimal', 'x-low': 'minimal',
41
+ off: 'none', disabled: 'none', disable: 'none',
42
+ };
43
+ /**
44
+ * Coerce a client-supplied effort value onto our scale: supported values pass
45
+ * through, known aliases clamp to the nearest supported one, and anything
46
+ * else (unknown word, wrong type, "auto") yields undefined — the knob is
47
+ * dropped and the provider's own default applies. Never throws, so a bad
48
+ * effort can't fail a request. Exported for tests.
49
+ */
50
+ export function normalizeReasoningEffort(value) {
51
+ if (typeof value !== 'string')
52
+ return undefined;
53
+ const key = value.trim().toLowerCase();
54
+ if (REASONING_EFFORTS.includes(key))
55
+ return key;
56
+ return EFFORT_ALIASES[key];
57
+ }
58
+ /**
59
+ * Clamp an effort to the nearest value a platform actually accepts, walking
60
+ * the ordered scale outward from the requested one (ties go to the stronger
61
+ * value, so 'medium' on a low/high platform becomes 'high'). Returns
62
+ * undefined only when the platform accepts nothing.
63
+ */
64
+ function clampEffortTo(effort, supported) {
65
+ if (supported.includes(effort))
66
+ return effort;
67
+ const want = REASONING_EFFORTS.indexOf(effort);
68
+ let best;
69
+ let bestDistance = Infinity;
70
+ for (const candidate of supported) {
71
+ const distance = Math.abs(REASONING_EFFORTS.indexOf(candidate) - want);
72
+ if (distance < bestDistance
73
+ || (distance === bestDistance && best !== undefined
74
+ && REASONING_EFFORTS.indexOf(candidate) > REASONING_EFFORTS.indexOf(best))) {
75
+ best = candidate;
76
+ bestDistance = distance;
77
+ }
78
+ }
79
+ return best;
80
+ }
81
+ // Every field is `.nullable()` because real clients serialize their whole
82
+ // request struct and send explicit nulls for unset knobs (#200); null is
83
+ // treated as absent and never forwarded.
84
+ export const samplingParamSchemaFields = {
85
+ top_k: z.number().int().min(1).nullable().optional(),
86
+ min_p: z.number().min(0).max(1).nullable().optional(),
87
+ seed: z.number().int().nullable().optional(),
88
+ presence_penalty: z.number().min(-2).max(2).nullable().optional(),
89
+ frequency_penalty: z.number().min(-2).max(2).nullable().optional(),
90
+ repetition_penalty: z.number().positive().nullable().optional(),
91
+ logit_bias: z.record(z.string(), z.number()).nullable().optional(),
92
+ logprobs: z.boolean().nullable().optional(),
93
+ top_logprobs: z.number().int().min(0).max(20).nullable().optional(),
94
+ response_format: z.object({
95
+ type: z.enum(['text', 'json_object', 'json_schema']),
96
+ json_schema: z.object({
97
+ name: z.string().optional(),
98
+ strict: z.boolean().nullable().optional(),
99
+ schema: z.record(z.string(), z.unknown()).optional(),
100
+ }).passthrough().optional(),
101
+ }).passthrough().nullable().optional(),
102
+ // Accepted as free-form and normalized by pickSamplingParams rather than
103
+ // validated against the enum: clients invent effort values ('max', 'xhigh')
104
+ // and rejecting them made an advisory knob fatal (#619).
105
+ reasoning_effort: z.unknown().optional(),
106
+ // Object-form alias some clients send (OpenRouter-style chat clients, and
107
+ // the Responses API's native shape): `reasoning: { effort }`. Resolved into
108
+ // reasoning_effort by pickSamplingParams; the wrapper object itself is never
109
+ // forwarded. Extra keys (summary, max_tokens…) are tolerated and ignored.
110
+ reasoning: z.object({
111
+ effort: z.unknown().optional(),
112
+ }).passthrough().nullable().optional(),
113
+ // OpenAI's newer alias for max_tokens; surfaces resolve it into max_tokens
114
+ // themselves (it is not a forwarded param of its own).
115
+ max_completion_tokens: z.number().int().nullable().optional(),
116
+ };
117
+ export const EXTENDED_SAMPLING_KEYS = [
118
+ 'top_k', 'min_p', 'seed', 'presence_penalty', 'frequency_penalty',
119
+ 'repetition_penalty', 'logit_bias', 'logprobs', 'top_logprobs',
120
+ 'response_format', 'reasoning_effort',
121
+ ];
122
+ /**
123
+ * Turn a schema-parsed request body into the extended CompletionOptions
124
+ * fields: nulls dropped, `response_format: {type:'text'}` dropped (it is the
125
+ * default and some providers 400 on receiving it explicitly), everything else
126
+ * forwarded as-is.
127
+ */
128
+ export function pickSamplingParams(body) {
129
+ const out = {};
130
+ for (const key of EXTENDED_SAMPLING_KEYS) {
131
+ const value = body[key];
132
+ if (value === undefined || value === null)
133
+ continue;
134
+ if (key === 'response_format' && value.type === 'text')
135
+ continue;
136
+ if (key === 'reasoning_effort') {
137
+ const effort = normalizeReasoningEffort(value);
138
+ if (effort === undefined)
139
+ continue;
140
+ out[key] = effort;
141
+ continue;
142
+ }
143
+ out[key] = value;
144
+ }
145
+ // Object-form fallback: `reasoning: { effort }` fills reasoning_effort only
146
+ // when the flat field wasn't sent (the explicit flat form wins on conflict).
147
+ if (out.reasoning_effort === undefined) {
148
+ const effort = normalizeReasoningEffort(body.reasoning?.effort);
149
+ if (effort !== undefined)
150
+ out.reasoning_effort = effort;
151
+ }
152
+ return out;
153
+ }
154
+ /** GitHub Models' own output-token ceiling: asking for more 400s ("max_tokens
155
+ * is too large"), so the request never reaches the model. Wired into the
156
+ * github policy below as maxTokensCap. */
157
+ export const GITHUB_MAX_OUTPUT_TOKENS = 400;
158
+ // Keyed by Platform (not string) so a typo'd platform id fails tsc instead of
159
+ // silently no-op'ing the policy; the string-typed accessors below cast at the
160
+ // boundary since routes carry platform ids as plain strings.
161
+ export const PLATFORM_PARAM_POLICIES = {
162
+ // Gizmo rejects all unlisted fields; reflect its text-only API in discovery
163
+ // as well as the adapter. This is the upstream ceiling, not a new quota.
164
+ gizmo: { drop: [...EXTENDED_SAMPLING_KEYS], defaultMaxTokens: 1024, maxTokensCap: 32768 },
165
+ // Moondream maps reasoning effort to a boolean and max_tokens to
166
+ // max_completion_tokens. 4096 is the documented upstream output ceiling.
167
+ moondream: {
168
+ drop: ['top_k', 'min_p', 'seed', 'presence_penalty', 'frequency_penalty', 'repetition_penalty', 'logit_bias', 'logprobs', 'top_logprobs', 'response_format'],
169
+ maxTokensCap: 4096,
170
+ },
171
+ // ACLIDE uses Responses; these Chat Completions parameters have no mapping.
172
+ aclide: {
173
+ drop: ['top_k', 'min_p', 'seed', 'presence_penalty', 'frequency_penalty', 'repetition_penalty', 'logit_bias', 'logprobs', 'top_logprobs'],
174
+ },
175
+ // Sail's stable Responses API accepts temperature/top_p, JSON Schema output,
176
+ // tools and reasoning effort. The remaining Chat Completions knobs are not
177
+ // supported and are intentionally omitted by the dedicated adapter.
178
+ sail: {
179
+ drop: ['top_k', 'min_p', 'seed', 'presence_penalty', 'frequency_penalty', 'repetition_penalty', 'logit_bias', 'logprobs', 'top_logprobs'],
180
+ jsonObjectToSchema: true,
181
+ },
182
+ // Mistral's API is strict (422 on unknown body keys) and names its seed
183
+ // `random_seed`. It has no top_k/min_p/logit_bias/logprobs equivalents, and
184
+ // no reasoning_effort (Magistral's reasoning has no request-side knob).
185
+ mistral: {
186
+ drop: ['top_k', 'min_p', 'repetition_penalty', 'logit_bias', 'logprobs', 'top_logprobs', 'reasoning_effort'],
187
+ rename: { seed: 'random_seed' },
188
+ },
189
+ // Groq documents logprobs / top_logprobs / logit_bias as unsupported and
190
+ // rejects requests that include them.
191
+ groq: { drop: ['logprobs', 'top_logprobs', 'logit_bias'] },
192
+ // GitHub Models sits on Azure OpenAI, which 400s "Unrecognized request
193
+ // argument" for knobs outside the OpenAI set. Its reasoning_effort enum is
194
+ // the older low/medium/high one, so 'none'/'minimal' are clamped rather
195
+ // than sent. Its free tier also refuses any max_tokens above
196
+ // GITHUB_MAX_OUTPUT_TOKENS, so the cap is clamped here instead of being
197
+ // spent as a wasted fallback hop.
198
+ github: {
199
+ drop: ['top_k', 'min_p', 'repetition_penalty'],
200
+ reasoningEfforts: ['low', 'medium', 'high'],
201
+ maxTokensCap: GITHUB_MAX_OUTPUT_TOKENS,
202
+ },
203
+ // Gemini's generationConfig has no equivalents for these; the adapter
204
+ // translates the rest natively (topK, seed, penalties, responseSchema, and
205
+ // reasoning_effort → thinkingConfig — see toGeminiExtendedConfig).
206
+ google: { drop: ['min_p', 'repetition_penalty', 'logit_bias', 'logprobs', 'top_logprobs'] },
207
+ // Cohere's OpenAI-compat endpoint covers seed/penalties/response_format;
208
+ // the rest (incl. reasoning_effort — Cohere's own knob is a non-OpenAI
209
+ // `thinking` object) have no mapping there.
210
+ cohere: { drop: ['top_k', 'min_p', 'repetition_penalty', 'logit_bias', 'logprobs', 'top_logprobs', 'reasoning_effort'] },
211
+ // Workers AI's OpenAI-compat endpoint parses a known subset; send only what
212
+ // it understands. It also applies a small server-side max_tokens default
213
+ // when the request omits one, so an SDK client that never sets max_tokens
214
+ // (the common case) sees answers stop a couple of seconds in — reported on
215
+ // @cf/openai/gpt-oss-120b, where the model's own reasoning trace eats the
216
+ // default before any visible text lands (#553). 8192 is the floor we send
217
+ // instead: generous for a chat turn plus reasoning, and small enough to fit
218
+ // inside the smallest context window in the Workers AI catalog (24K on
219
+ // @cf/meta/llama-3.3-70b-instruct-fp8-fast) with room left for the prompt.
220
+ cloudflare: {
221
+ drop: ['min_p', 'logit_bias', 'logprobs', 'top_logprobs', 'reasoning_effort'],
222
+ defaultMaxTokens: 8192,
223
+ },
224
+ // Radeon Cloud silently drops these fields. Keep reasoning_effort within the
225
+ // common subset of its current shared roster (Qwen: low/medium; DeepSeek is
226
+ // broader) so either model receives a supported value.
227
+ radeon: {
228
+ drop: ['top_k', 'min_p', 'seed', 'repetition_penalty', 'logit_bias', 'logprobs', 'top_logprobs'],
229
+ reasoningEfforts: ['low', 'medium'],
230
+ jsonSchemaToObject: true,
231
+ },
232
+ // AI Horde builds its own payload format; none of the extended set maps.
233
+ aihorde: { drop: [...EXTENDED_SAMPLING_KEYS] },
234
+ // Kilo's anonymous gateway 400s ("Provider returned error") whenever
235
+ // response_format is present — observed live 2026-07-11; seed passes fine.
236
+ // Dropping it also makes structured-output routing skip kilo entirely.
237
+ kilo: { drop: ['response_format'] },
238
+ // Reka supports json_schema but rejects json_object (live 2026-07-11);
239
+ // upgraded on the wire instead of dropped.
240
+ reka: { jsonObjectToSchema: true },
241
+ };
242
+ // The permissive schema a json_object request is upgraded to on platforms
243
+ // that only accept json_schema (any JSON object satisfies it). The empty
244
+ // `properties` map matters: Reka 503s on a bare {type:'object'} but accepts
245
+ // this shape (probed live 2026-07-11); additionalProperties keeps arbitrary
246
+ // keys legal.
247
+ const ANY_OBJECT_SCHEMA = {
248
+ type: 'json_schema',
249
+ json_schema: { name: 'json_output', schema: { type: 'object', properties: {}, additionalProperties: true } },
250
+ };
251
+ /**
252
+ * Build the extended wire-body fields for one platform: policy droplist
253
+ * applied, renames applied, undefined skipped. Adapters spread the result
254
+ * into their OpenAI-shaped request bodies.
255
+ */
256
+ export function extendedBodyParams(platform, options) {
257
+ if (!options)
258
+ return {};
259
+ const policy = PLATFORM_PARAM_POLICIES[platform];
260
+ const dropped = new Set(policy?.drop ?? []);
261
+ const out = {};
262
+ for (const key of EXTENDED_SAMPLING_KEYS) {
263
+ if (dropped.has(key))
264
+ continue;
265
+ let value = options[key];
266
+ if (value === undefined)
267
+ continue;
268
+ if (key === 'response_format' && policy?.jsonObjectToSchema
269
+ && value.type === 'json_object') {
270
+ value = ANY_OBJECT_SCHEMA;
271
+ }
272
+ if (key === 'response_format' && policy?.jsonSchemaToObject
273
+ && value.type === 'json_schema') {
274
+ value = { type: 'json_object' };
275
+ }
276
+ if (key === 'reasoning_effort' && policy?.reasoningEfforts) {
277
+ value = clampEffortTo(value, policy.reasoningEfforts);
278
+ if (value === undefined)
279
+ continue;
280
+ }
281
+ out[policy?.rename?.[key] ?? key] = value;
282
+ }
283
+ return out;
284
+ }
285
+ /** The output-token floor this platform sends for a request that carries no
286
+ * max_tokens at all, or undefined when the provider's own default is fine. */
287
+ export function defaultMaxTokensFor(platform) {
288
+ return PLATFORM_PARAM_POLICIES[platform]?.defaultMaxTokens;
289
+ }
290
+ /** This platform's own output-token ceiling, or undefined when it accepts
291
+ * whatever max_tokens the client asks for. */
292
+ export function maxTokensCapFor(platform) {
293
+ return PLATFORM_PARAM_POLICIES[platform]?.maxTokensCap;
294
+ }
295
+ /**
296
+ * The max_tokens to put on the wire for one request: whatever the client asked
297
+ * for, or the platform's floor when the client asked for nothing (#553), then
298
+ * lowered to the tightest ceiling that applies — the platform's own
299
+ * maxTokensCap, the operator's unified cap, or both. With neither in play
300
+ * nothing is clamped — a client-set value passes through untouched in both
301
+ * directions, and the gateway's own guardrails (token budget, routing reserve)
302
+ * have already had their say by the time an adapter calls this.
303
+ *
304
+ * EVERY adapter must send max_tokens through here, or the cap is not unified:
305
+ * openai-compat (and its subclasses), cloudflare, cohere, google and aihorde
306
+ * all do.
307
+ */
308
+ export function resolveMaxTokens(platform, requested, contextBudget) {
309
+ const resolved = requested ?? defaultMaxTokensFor(platform);
310
+ if (resolved == null)
311
+ return resolved;
312
+ // The tighter ceiling wins: a platform's hard reject applies even with the
313
+ // operator cap off, and an operator cap below it applies everywhere.
314
+ const caps = [unifiedMaxTokensCap(), maxTokensCapFor(platform), contextBudget].filter((c) => c != null && c > 0);
315
+ return caps.length === 0 ? resolved : Math.max(1, Math.min(resolved, ...caps));
316
+ }
317
+ // ── Unified output-token cap ─────────────────────────────────────────────────
318
+ // Optional operator-level ceiling on max_tokens for EVERY client. Aggressive
319
+ // clients (Open WebUI sends max_tokens=65536 by default) 400 against free
320
+ // models whose output limit is 32768 (CF qwen3-30b, zhipu glm), and without a
321
+ // ceiling the same invalid value rides every fallback candidate — the chain
322
+ // cannot rescue the request. The cap only LOWERS an
323
+ // excessive value; a client value at or below it is untouched, and clients that
324
+ // send nothing still get today's platform floor. 'off' (default) keeps the
325
+ // historical pass-through behaviour.
326
+ export const UNIFIED_MAX_TOKENS_SETTING = 'unified_max_tokens';
327
+ /** The ceiling 'auto' clamps to: the output limit of the largest common free
328
+ * catalog models. */
329
+ export const UNIFIED_MAX_TOKENS_AUTO = 32768;
330
+ /** The configured unified output cap, or null when disabled ('off'/unset).
331
+ * 'auto' resolves to UNIFIED_MAX_TOKENS_AUTO; an explicit integer is used
332
+ * verbatim; anything else is treated as disabled so a bad value can't 400
333
+ * requests. Reads the settings table on every call — cheap (better-sqlite3
334
+ * sync read) and picks up dashboard changes without a restart, mirroring
335
+ * guardrails.ts. */
336
+ export function unifiedMaxTokensCap() {
337
+ let raw;
338
+ try {
339
+ raw = getSetting(UNIFIED_MAX_TOKENS_SETTING);
340
+ }
341
+ catch {
342
+ return null; // DB not ready — never throw on the proxy hot path
343
+ }
344
+ if (!raw)
345
+ return null;
346
+ const value = raw.trim().toLowerCase();
347
+ if (value === '' || value === 'off' || value === '0')
348
+ return null;
349
+ if (value === 'auto')
350
+ return UNIFIED_MAX_TOKENS_AUTO;
351
+ const n = Number(value);
352
+ return Number.isInteger(n) && n > 0 ? n : null;
353
+ }
354
+ /** True when this platform's policy strips response_format before send — the
355
+ * router uses it to skip such platforms for structured-output requests. */
356
+ export function platformDropsResponseFormat(platform) {
357
+ return PLATFORM_PARAM_POLICIES[platform]?.drop?.includes('response_format') ?? false;
358
+ }
359
+ /** The advertised parameter list for a model on `platform` — the base set
360
+ * every surface supports, plus tools when the model does, minus the
361
+ * platform's droplist. */
362
+ export function supportedParametersFor(platform, caps = {}) {
363
+ // Unlike the generic base set, Moondream has neither stop nor tools.
364
+ if (platform === 'moondream')
365
+ return ['temperature', 'top_p', 'max_tokens', 'max_completion_tokens', 'stream', 'reasoning_effort'];
366
+ const policy = PLATFORM_PARAM_POLICIES[platform];
367
+ const dropped = new Set(policy?.drop ?? []);
368
+ const params = [
369
+ 'temperature', 'top_p', 'max_tokens', 'max_completion_tokens', 'stop', 'stream',
370
+ ...EXTENDED_SAMPLING_KEYS.filter(k => !dropped.has(k)),
371
+ ];
372
+ if (caps.tools)
373
+ params.push('tools', 'tool_choice', 'parallel_tool_calls');
374
+ return params;
375
+ }
376
+ /** For a model served by several platforms (a unify group): the INTERSECTION
377
+ * of the members' supported sets — a param is only advertised when every
378
+ * platform the router might pick honors it. */
379
+ export function supportedParametersForPlatforms(platforms, caps = {}) {
380
+ if (platforms.length === 0)
381
+ return supportedParametersFor('', caps);
382
+ const [first, ...rest] = platforms.map(p => supportedParametersFor(p, caps));
383
+ const restSets = rest.map(list => new Set(list));
384
+ return first.filter(param => restSets.every(s => s.has(param)));
385
+ }
386
+ //# sourceMappingURL=sampling-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampling-params.js","sourceRoot":"","sources":["../../src/lib/sampling-params.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface Scheduler {
2
+ every(ms: number, fn: () => void | Promise<void>, opts?: {
3
+ name?: string;
4
+ }): () => void;
5
+ after(ms: number, fn: () => void | Promise<void>): () => void;
6
+ }
7
+ export declare class NodeScheduler implements Scheduler {
8
+ every(ms: number, fn: () => void | Promise<void>, _opts?: {
9
+ name?: string;
10
+ }): () => void;
11
+ after(ms: number, fn: () => void | Promise<void>): () => void;
12
+ }
13
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/lib/scheduler.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,IAAI,CAAC;IACxF,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC;CAC/D;AAED,qBAAa,aAAc,YAAW,SAAS;IAC7C,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,IAAI;IAKxF,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI;CAI9D"}
@@ -0,0 +1,11 @@
1
+ export class NodeScheduler {
2
+ every(ms, fn, _opts) {
3
+ const id = setInterval(() => { void fn(); }, ms);
4
+ return () => clearInterval(id);
5
+ }
6
+ after(ms, fn) {
7
+ const id = setTimeout(() => { void fn(); }, ms);
8
+ return () => clearTimeout(id);
9
+ }
10
+ }
11
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/lib/scheduler.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,aAAa;IACxB,KAAK,CAAC,EAAU,EAAE,EAA8B,EAAE,KAAyB;QACzE,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,EAAU,EAAE,EAA8B;QAC9C,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;CACF"}