@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.
- package/LICENSE +21 -0
- package/client/dist/assets/am-TQ7Jmdqe.js +1 -0
- package/client/dist/assets/ar-Bf5a7yfC.js +1 -0
- package/client/dist/assets/az-CrosE1xH.js +1 -0
- package/client/dist/assets/bg-BvWnmcUz.js +1 -0
- package/client/dist/assets/bn-ams5TsJp.js +1 -0
- package/client/dist/assets/cs-Dh67CaJ_.js +1 -0
- package/client/dist/assets/da-9WlT8Iq7.js +1 -0
- package/client/dist/assets/de-lWhJJzz7.js +1 -0
- package/client/dist/assets/el-Cu7_GhNq.js +1 -0
- package/client/dist/assets/es-BZuzsBcP.js +1 -0
- package/client/dist/assets/fa-Dwdn-jKS.js +1 -0
- package/client/dist/assets/fi-BFrFyOTy.js +1 -0
- package/client/dist/assets/fr-XhbtmPpj.js +1 -0
- package/client/dist/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
- package/client/dist/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
- package/client/dist/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
- package/client/dist/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2 +0 -0
- package/client/dist/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2 +0 -0
- package/client/dist/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2 +0 -0
- package/client/dist/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2 +0 -0
- package/client/dist/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2 +0 -0
- package/client/dist/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
- package/client/dist/assets/gu-D0uhLUB8.js +1 -0
- package/client/dist/assets/ha-CVlm9pqp.js +1 -0
- package/client/dist/assets/he-CMIFeoWr.js +1 -0
- package/client/dist/assets/hi-ENTwhBpn.js +1 -0
- package/client/dist/assets/hr-fc03vMy_.js +1 -0
- package/client/dist/assets/hu-YBo2BIYt.js +1 -0
- package/client/dist/assets/id-BEWXYX69.js +1 -0
- package/client/dist/assets/ig-BKLZFKka.js +1 -0
- package/client/dist/assets/index-D9I4KtvR.js +145 -0
- package/client/dist/assets/index-txhEmCdb.css +2 -0
- package/client/dist/assets/it-Bzmei1Y2.js +1 -0
- package/client/dist/assets/ja-BfcpuqEl.js +1 -0
- package/client/dist/assets/ka-CnWjRgLo.js +1 -0
- package/client/dist/assets/km-BAjPR3Qj.js +1 -0
- package/client/dist/assets/kn-B15WKU5m.js +1 -0
- package/client/dist/assets/ko-C61fAB-w.js +1 -0
- package/client/dist/assets/lt-CYTr4_YW.js +1 -0
- package/client/dist/assets/ml-CtqxgyH3.js +1 -0
- package/client/dist/assets/mr-X5TMY7aR.js +1 -0
- package/client/dist/assets/ms-DSg8RqPS.js +1 -0
- package/client/dist/assets/my-D7RqR8uE.js +1 -0
- package/client/dist/assets/ne-DaflxkDj.js +1 -0
- package/client/dist/assets/nl-BOqqtsC8.js +1 -0
- package/client/dist/assets/no-BSHp_StB.js +1 -0
- package/client/dist/assets/or-BkLR9Vub.js +1 -0
- package/client/dist/assets/pa-CarJ2XgI.js +1 -0
- package/client/dist/assets/pl-C2n0V-0k.js +1 -0
- package/client/dist/assets/pt-BR-CqJdNhg2.js +1 -0
- package/client/dist/assets/pt-PT-C_HpMyKz.js +1 -0
- package/client/dist/assets/ro-DVRZqSAS.js +1 -0
- package/client/dist/assets/ru-DwAJG7VC.js +1 -0
- package/client/dist/assets/si-BxUezXm0.js +1 -0
- package/client/dist/assets/sk-eI1VcIfY.js +1 -0
- package/client/dist/assets/sr-CJF3auCr.js +1 -0
- package/client/dist/assets/srouter-logo-C6ZfjGIi.svg +14 -0
- package/client/dist/assets/sv-nqvwHAq_.js +1 -0
- package/client/dist/assets/sw-DWynE2pW.js +1 -0
- package/client/dist/assets/ta-BVM12knC.js +1 -0
- package/client/dist/assets/te-oyzEkF7_.js +1 -0
- package/client/dist/assets/th-COVeE0ZQ.js +1 -0
- package/client/dist/assets/tl-DsJANnQz.js +1 -0
- package/client/dist/assets/tr-B-Fl-urO.js +1 -0
- package/client/dist/assets/uk-C5qketAO.js +1 -0
- package/client/dist/assets/ur-QU9KugfV.js +1 -0
- package/client/dist/assets/uz-DL9cG_mY.js +1 -0
- package/client/dist/assets/vi-CQiVy3Pu.js +1 -0
- package/client/dist/assets/yo-DqazMdrZ.js +1 -0
- package/client/dist/assets/zh-CN-DnYL_Kio.js +1 -0
- package/client/dist/assets/zh-TW-5bdbosKj.js +1 -0
- package/client/dist/favicon.svg +14 -0
- package/client/dist/icons.svg +24 -0
- package/client/dist/index.html +37 -0
- package/dist/app.d.ts +4 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +372 -0
- package/dist/app.js.map +1 -0
- package/dist/db/index.d.ts +49 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +203 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/migrate/TEMPLATE.d.ts +4 -0
- package/dist/db/migrate/TEMPLATE.d.ts.map +1 -0
- package/dist/db/migrate/TEMPLATE.js +18 -0
- package/dist/db/migrate/TEMPLATE.js.map +1 -0
- package/dist/db/migrate/cli.d.ts +2 -0
- package/dist/db/migrate/cli.d.ts.map +1 -0
- package/dist/db/migrate/cli.js +177 -0
- package/dist/db/migrate/cli.js.map +1 -0
- package/dist/db/migrate/defaults.d.ts +52 -0
- package/dist/db/migrate/defaults.d.ts.map +1 -0
- package/dist/db/migrate/defaults.js +126 -0
- package/dist/db/migrate/defaults.js.map +1 -0
- package/dist/db/migrate/runner.d.ts +16 -0
- package/dist/db/migrate/runner.d.ts.map +1 -0
- package/dist/db/migrate/runner.js +178 -0
- package/dist/db/migrate/runner.js.map +1 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts +4 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.d.ts.map +1 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.js +2240 -0
- package/dist/db/migrations/20260101_000000_legacy_baseline.js.map +1 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts +4 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.d.ts.map +1 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.js +27 -0
- package/dist/db/migrations/20260627_000001_custom_provider_modalities.js.map +1 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts +4 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.d.ts.map +1 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.js +30 -0
- package/dist/db/migrations/20260627_000002_catalog_model_state.js.map +1 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.d.ts +6 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.d.ts.map +1 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.js +104 -0
- package/dist/db/migrations/20260628_120000_request_aggregates.js.map +1 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts +9 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.d.ts.map +1 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.js +22 -0
- package/dist/db/migrations/20260630_000001_github_gpt41_context.js.map +1 -0
- package/dist/db/migrations/20260706_000001_request_client_info.d.ts +4 -0
- package/dist/db/migrations/20260706_000001_request_client_info.d.ts.map +1 -0
- package/dist/db/migrations/20260706_000001_request_client_info.js +30 -0
- package/dist/db/migrations/20260706_000001_request_client_info.js.map +1 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts +17 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.d.ts.map +1 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.js +20 -0
- package/dist/db/migrations/20260706_000002_custom_model_tool_support.js.map +1 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts +12 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.d.ts.map +1 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.js +45 -0
- package/dist/db/migrations/20260714_000001_profile_chain_backfill.js.map +1 -0
- package/dist/db/migrations/20260720_000001_key_health_error.d.ts +5 -0
- package/dist/db/migrations/20260720_000001_key_health_error.d.ts.map +1 -0
- package/dist/db/migrations/20260720_000001_key_health_error.js +16 -0
- package/dist/db/migrations/20260720_000001_key_health_error.js.map +1 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts +4 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js +38 -0
- package/dist/db/migrations/20260726_000001_cooldown_probe_provenance.js.map +1 -0
- package/dist/db/migrations/20260726_000002_request_attempts.d.ts +4 -0
- package/dist/db/migrations/20260726_000002_request_attempts.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000002_request_attempts.js +43 -0
- package/dist/db/migrations/20260726_000002_request_attempts.js.map +1 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts +4 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.js +80 -0
- package/dist/db/migrations/20260726_000003_model_source_provenance.js.map +1 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.d.ts +4 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.js +34 -0
- package/dist/db/migrations/20260726_000004_media_model_meta.js.map +1 -0
- package/dist/db/migrations/20260726_000005_request_served_model.d.ts +4 -0
- package/dist/db/migrations/20260726_000005_request_served_model.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000005_request_served_model.js +31 -0
- package/dist/db/migrations/20260726_000005_request_served_model.js.map +1 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts +4 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.d.ts.map +1 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.js +29 -0
- package/dist/db/migrations/20260726_000006_attempt_error_summary.js.map +1 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts +4 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.d.ts.map +1 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.js +41 -0
- package/dist/db/migrations/20260727_000001_agent_compatibility.js.map +1 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts +12 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.d.ts.map +1 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.js +37 -0
- package/dist/db/migrations/20260728_000001_tombstone_provenance.js.map +1 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts +4 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.d.ts.map +1 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js +145 -0
- package/dist/db/migrations/20260729_000001_custom_model_endpoint_identity.js.map +1 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts +6 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.d.ts.map +1 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js +52 -0
- package/dist/db/migrations/20260802_000001_custom_endpoint_host_labels.js.map +1 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.d.ts +6 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.d.ts.map +1 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.js +17 -0
- package/dist/db/migrations/20260805_000001_key_model_scope.js.map +1 -0
- package/dist/db/migrations/20260805_000002_client_profiles.d.ts +4 -0
- package/dist/db/migrations/20260805_000002_client_profiles.d.ts.map +1 -0
- package/dist/db/migrations/20260805_000002_client_profiles.js +33 -0
- package/dist/db/migrations/20260805_000002_client_profiles.js.map +1 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts +4 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.d.ts.map +1 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.js +33 -0
- package/dist/db/migrations/20260810_000001_api_key_proxy.js.map +1 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts +4 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.d.ts.map +1 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.js +19 -0
- package/dist/db/migrations/20260819_000001_custom_model_tombstones.js.map +1 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.d.ts +4 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.d.ts.map +1 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.js +47 -0
- package/dist/db/migrations/20260820_000001_playground_conversations.js.map +1 -0
- package/dist/db/migrations/20260823_000001_server_logs.d.ts +4 -0
- package/dist/db/migrations/20260823_000001_server_logs.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000001_server_logs.js +53 -0
- package/dist/db/migrations/20260823_000001_server_logs.js.map +1 -0
- package/dist/db/migrations/20260823_000002_backups_table.d.ts +8 -0
- package/dist/db/migrations/20260823_000002_backups_table.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000002_backups_table.js +22 -0
- package/dist/db/migrations/20260823_000002_backups_table.js.map +1 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts +19 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.js +28 -0
- package/dist/db/migrations/20260823_000003_attempt_key_label.js.map +1 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts +14 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.d.ts.map +1 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.js +25 -0
- package/dist/db/migrations/20260823_000004_profile_auto_include.js.map +1 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts +4 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.js +46 -0
- package/dist/db/migrations/20260901_000001_idempotency_claims.js.map +1 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts +4 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.js +37 -0
- package/dist/db/migrations/20260901_000002_quota_observation_lookup.js.map +1 -0
- package/dist/db/migrations/20260901_000003_request_caller.d.ts +4 -0
- package/dist/db/migrations/20260901_000003_request_caller.d.ts.map +1 -0
- package/dist/db/migrations/20260901_000003_request_caller.js +27 -0
- package/dist/db/migrations/20260901_000003_request_caller.js.map +1 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts +4 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.d.ts.map +1 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js +35 -0
- package/dist/db/migrations/20260902_000001_analytics_latency_percentile_index.js.map +1 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts +4 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.d.ts.map +1 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.js +37 -0
- package/dist/db/migrations/20260903_000001_mcp_enabled_default.js.map +1 -0
- package/dist/db/migrations/20260903_000002_response_cache.d.ts +4 -0
- package/dist/db/migrations/20260903_000002_response_cache.d.ts.map +1 -0
- package/dist/db/migrations/20260903_000002_response_cache.js +53 -0
- package/dist/db/migrations/20260903_000002_response_cache.js.map +1 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts +13 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.d.ts.map +1 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.js +35 -0
- package/dist/db/migrations/20260904_000001_key_monthly_budget.js.map +1 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts +4 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.d.ts.map +1 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.js +68 -0
- package/dist/db/migrations/20260913_000001_request_model_attribution.js.map +1 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts +5 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.d.ts.map +1 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.js +37 -0
- package/dist/db/migrations/20260914_000001_key_monthly_usage.js.map +1 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts +4 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.d.ts.map +1 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js +28 -0
- package/dist/db/migrations/20260915_000001_quota_snapshot_freshness.js.map +1 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts +4 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.d.ts.map +1 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js +25 -0
- package/dist/db/migrations/20261004_000001_unified_key_sr_prefix.js.map +1 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.d.ts +10 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.d.ts.map +1 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.js +78 -0
- package/dist/db/migrations/20261005_000001_key_budget_period.js.map +1 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts +21 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.d.ts.map +1 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.js +41 -0
- package/dist/db/migrations/20261005_000002_key_budget_period_auto.js.map +1 -0
- package/dist/db/model-pricing.d.ts +39 -0
- package/dist/db/model-pricing.d.ts.map +1 -0
- package/dist/db/model-pricing.js +274 -0
- package/dist/db/model-pricing.js.map +1 -0
- package/dist/db/node-sqlite.d.ts +9 -0
- package/dist/db/node-sqlite.d.ts.map +1 -0
- package/dist/db/node-sqlite.js +87 -0
- package/dist/db/node-sqlite.js.map +1 -0
- package/dist/db/types.d.ts +22 -0
- package/dist/db/types.d.ts.map +1 -0
- package/dist/db/types.js +2 -0
- package/dist/db/types.js.map +1 -0
- package/dist/docs/docs-page.d.ts +2 -0
- package/dist/docs/docs-page.d.ts.map +1 -0
- package/dist/docs/docs-page.js +319 -0
- package/dist/docs/docs-page.js.map +1 -0
- package/dist/docs/openapi.d.ts +1896 -0
- package/dist/docs/openapi.d.ts.map +1 -0
- package/dist/docs/openapi.js +1096 -0
- package/dist/docs/openapi.js.map +1 -0
- package/dist/env.d.ts +2 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +9 -0
- package/dist/env.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +144 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/anthropic-documents.d.ts +41 -0
- package/dist/lib/anthropic-documents.d.ts.map +1 -0
- package/dist/lib/anthropic-documents.js +132 -0
- package/dist/lib/anthropic-documents.js.map +1 -0
- package/dist/lib/app-version.d.ts +5 -0
- package/dist/lib/app-version.d.ts.map +1 -0
- package/dist/lib/app-version.js +61 -0
- package/dist/lib/app-version.js.map +1 -0
- package/dist/lib/attempt-trace.d.ts +23 -0
- package/dist/lib/attempt-trace.d.ts.map +1 -0
- package/dist/lib/attempt-trace.js +32 -0
- package/dist/lib/attempt-trace.js.map +1 -0
- package/dist/lib/budget.d.ts +6 -0
- package/dist/lib/budget.d.ts.map +1 -0
- package/dist/lib/budget.js +40 -0
- package/dist/lib/budget.js.map +1 -0
- package/dist/lib/client-classifier.d.ts +10 -0
- package/dist/lib/client-classifier.d.ts.map +1 -0
- package/dist/lib/client-classifier.js +126 -0
- package/dist/lib/client-classifier.js.map +1 -0
- package/dist/lib/client-context.d.ts +10 -0
- package/dist/lib/client-context.d.ts.map +1 -0
- package/dist/lib/client-context.js +39 -0
- package/dist/lib/client-context.js.map +1 -0
- package/dist/lib/config.d.ts +33 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +94 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/content.d.ts +33 -0
- package/dist/lib/content.d.ts.map +1 -0
- package/dist/lib/content.js +201 -0
- package/dist/lib/content.js.map +1 -0
- package/dist/lib/credential.d.ts +11 -0
- package/dist/lib/credential.d.ts.map +1 -0
- package/dist/lib/credential.js +18 -0
- package/dist/lib/credential.js.map +1 -0
- package/dist/lib/crypto.d.ts +31 -0
- package/dist/lib/crypto.d.ts.map +1 -0
- package/dist/lib/crypto.js +206 -0
- package/dist/lib/crypto.js.map +1 -0
- package/dist/lib/custom-provider-cleanup.d.ts +13 -0
- package/dist/lib/custom-provider-cleanup.d.ts.map +1 -0
- package/dist/lib/custom-provider-cleanup.js +43 -0
- package/dist/lib/custom-provider-cleanup.js.map +1 -0
- package/dist/lib/db-backup.d.ts +31 -0
- package/dist/lib/db-backup.d.ts.map +1 -0
- package/dist/lib/db-backup.js +255 -0
- package/dist/lib/db-backup.js.map +1 -0
- package/dist/lib/endpoint-scope.d.ts +42 -0
- package/dist/lib/endpoint-scope.d.ts.map +1 -0
- package/dist/lib/endpoint-scope.js +95 -0
- package/dist/lib/endpoint-scope.js.map +1 -0
- package/dist/lib/env-drift.d.ts +17 -0
- package/dist/lib/env-drift.d.ts.map +1 -0
- package/dist/lib/env-drift.js +108 -0
- package/dist/lib/env-drift.js.map +1 -0
- package/dist/lib/error-classify.d.ts +40 -0
- package/dist/lib/error-classify.d.ts.map +1 -0
- package/dist/lib/error-classify.js +687 -0
- package/dist/lib/error-classify.js.map +1 -0
- package/dist/lib/error-redaction.d.ts +8 -0
- package/dist/lib/error-redaction.d.ts.map +1 -0
- package/dist/lib/error-redaction.js +45 -0
- package/dist/lib/error-redaction.js.map +1 -0
- package/dist/lib/fallback-loop.d.ts +306 -0
- package/dist/lib/fallback-loop.d.ts.map +1 -0
- package/dist/lib/fallback-loop.js +1336 -0
- package/dist/lib/fallback-loop.js.map +1 -0
- package/dist/lib/file-permissions.d.ts +98 -0
- package/dist/lib/file-permissions.d.ts.map +1 -0
- package/dist/lib/file-permissions.js +159 -0
- package/dist/lib/file-permissions.js.map +1 -0
- package/dist/lib/gemini-wire.d.ts +76 -0
- package/dist/lib/gemini-wire.d.ts.map +1 -0
- package/dist/lib/gemini-wire.js +392 -0
- package/dist/lib/gemini-wire.js.map +1 -0
- package/dist/lib/guardrails.d.ts +37 -0
- package/dist/lib/guardrails.d.ts.map +1 -0
- package/dist/lib/guardrails.js +106 -0
- package/dist/lib/guardrails.js.map +1 -0
- package/dist/lib/header-value.d.ts +8 -0
- package/dist/lib/header-value.d.ts.map +1 -0
- package/dist/lib/header-value.js +55 -0
- package/dist/lib/header-value.js.map +1 -0
- package/dist/lib/image-normalize.d.ts +21 -0
- package/dist/lib/image-normalize.d.ts.map +1 -0
- package/dist/lib/image-normalize.js +218 -0
- package/dist/lib/image-normalize.js.map +1 -0
- package/dist/lib/inbound-chat.d.ts +48 -0
- package/dist/lib/inbound-chat.d.ts.map +1 -0
- package/dist/lib/inbound-chat.js +406 -0
- package/dist/lib/inbound-chat.js.map +1 -0
- package/dist/lib/key-parser.d.ts +79 -0
- package/dist/lib/key-parser.d.ts.map +1 -0
- package/dist/lib/key-parser.js +701 -0
- package/dist/lib/key-parser.js.map +1 -0
- package/dist/lib/key-proxy.d.ts +49 -0
- package/dist/lib/key-proxy.d.ts.map +1 -0
- package/dist/lib/key-proxy.js +92 -0
- package/dist/lib/key-proxy.js.map +1 -0
- package/dist/lib/log-redaction.d.ts +28 -0
- package/dist/lib/log-redaction.d.ts.map +1 -0
- package/dist/lib/log-redaction.js +166 -0
- package/dist/lib/log-redaction.js.map +1 -0
- package/dist/lib/model-scope.d.ts +9 -0
- package/dist/lib/model-scope.d.ts.map +1 -0
- package/dist/lib/model-scope.js +29 -0
- package/dist/lib/model-scope.js.map +1 -0
- package/dist/lib/one-time-code.d.ts +15 -0
- package/dist/lib/one-time-code.d.ts.map +1 -0
- package/dist/lib/one-time-code.js +41 -0
- package/dist/lib/one-time-code.js.map +1 -0
- package/dist/lib/output-cap.d.ts +24 -0
- package/dist/lib/output-cap.d.ts.map +1 -0
- package/dist/lib/output-cap.js +80 -0
- package/dist/lib/output-cap.js.map +1 -0
- package/dist/lib/password.d.ts +3 -0
- package/dist/lib/password.d.ts.map +1 -0
- package/dist/lib/password.js +27 -0
- package/dist/lib/password.js.map +1 -0
- package/dist/lib/process-safety-net.d.ts +32 -0
- package/dist/lib/process-safety-net.d.ts.map +1 -0
- package/dist/lib/process-safety-net.js +123 -0
- package/dist/lib/process-safety-net.js.map +1 -0
- package/dist/lib/provider-identity.d.ts +37 -0
- package/dist/lib/provider-identity.d.ts.map +1 -0
- package/dist/lib/provider-identity.js +110 -0
- package/dist/lib/provider-identity.js.map +1 -0
- package/dist/lib/provider-size-parser.d.ts +6 -0
- package/dist/lib/provider-size-parser.d.ts.map +1 -0
- package/dist/lib/provider-size-parser.js +72 -0
- package/dist/lib/provider-size-parser.js.map +1 -0
- package/dist/lib/provider-timeout.d.ts +17 -0
- package/dist/lib/provider-timeout.d.ts.map +1 -0
- package/dist/lib/provider-timeout.js +70 -0
- package/dist/lib/provider-timeout.js.map +1 -0
- package/dist/lib/proxy.d.ts +180 -0
- package/dist/lib/proxy.d.ts.map +1 -0
- package/dist/lib/proxy.js +1002 -0
- package/dist/lib/proxy.js.map +1 -0
- package/dist/lib/request-log.d.ts +4 -0
- package/dist/lib/request-log.d.ts.map +1 -0
- package/dist/lib/request-log.js +161 -0
- package/dist/lib/request-log.js.map +1 -0
- package/dist/lib/reset-code.d.ts +5 -0
- package/dist/lib/reset-code.d.ts.map +1 -0
- package/dist/lib/reset-code.js +39 -0
- package/dist/lib/reset-code.js.map +1 -0
- package/dist/lib/retry-hint.d.ts +14 -0
- package/dist/lib/retry-hint.d.ts.map +1 -0
- package/dist/lib/retry-hint.js +36 -0
- package/dist/lib/retry-hint.js.map +1 -0
- package/dist/lib/route-live.d.ts +29 -0
- package/dist/lib/route-live.d.ts.map +1 -0
- package/dist/lib/route-live.js +97 -0
- package/dist/lib/route-live.js.map +1 -0
- package/dist/lib/sampling-params.d.ts +183 -0
- package/dist/lib/sampling-params.d.ts.map +1 -0
- package/dist/lib/sampling-params.js +386 -0
- package/dist/lib/sampling-params.js.map +1 -0
- package/dist/lib/scheduler.d.ts +13 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +11 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/dist/lib/served-model.d.ts +16 -0
- package/dist/lib/served-model.d.ts.map +1 -0
- package/dist/lib/served-model.js +0 -0
- package/dist/lib/served-model.js.map +1 -0
- package/dist/lib/server-logs.d.ts +132 -0
- package/dist/lib/server-logs.d.ts.map +1 -0
- package/dist/lib/server-logs.js +473 -0
- package/dist/lib/server-logs.js.map +1 -0
- package/dist/lib/setup-code.d.ts +5 -0
- package/dist/lib/setup-code.d.ts.map +1 -0
- package/dist/lib/setup-code.js +35 -0
- package/dist/lib/setup-code.js.map +1 -0
- package/dist/lib/structured-output.d.ts +9 -0
- package/dist/lib/structured-output.d.ts.map +1 -0
- package/dist/lib/structured-output.js +72 -0
- package/dist/lib/structured-output.js.map +1 -0
- package/dist/lib/system-prompt.d.ts +30 -0
- package/dist/lib/system-prompt.d.ts.map +1 -0
- package/dist/lib/system-prompt.js +66 -0
- package/dist/lib/system-prompt.js.map +1 -0
- package/dist/lib/task-type.d.ts +18 -0
- package/dist/lib/task-type.d.ts.map +1 -0
- package/dist/lib/task-type.js +92 -0
- package/dist/lib/task-type.js.map +1 -0
- package/dist/lib/think-tags.d.ts +37 -0
- package/dist/lib/think-tags.d.ts.map +1 -0
- package/dist/lib/think-tags.js +203 -0
- package/dist/lib/think-tags.js.map +1 -0
- package/dist/lib/tool-args.d.ts +36 -0
- package/dist/lib/tool-args.d.ts.map +1 -0
- package/dist/lib/tool-args.js +190 -0
- package/dist/lib/tool-args.js.map +1 -0
- package/dist/lib/tool-call-rescue.d.ts +62 -0
- package/dist/lib/tool-call-rescue.d.ts.map +1 -0
- package/dist/lib/tool-call-rescue.js +258 -0
- package/dist/lib/tool-call-rescue.js.map +1 -0
- package/dist/lib/tool-capability.d.ts +13 -0
- package/dist/lib/tool-capability.d.ts.map +1 -0
- package/dist/lib/tool-capability.js +70 -0
- package/dist/lib/tool-capability.js.map +1 -0
- package/dist/lib/tool-validate.d.ts +44 -0
- package/dist/lib/tool-validate.d.ts.map +1 -0
- package/dist/lib/tool-validate.js +165 -0
- package/dist/lib/tool-validate.js.map +1 -0
- package/dist/lib/ttfb-budget.d.ts +13 -0
- package/dist/lib/ttfb-budget.d.ts.map +1 -0
- package/dist/lib/ttfb-budget.js +153 -0
- package/dist/lib/ttfb-budget.js.map +1 -0
- package/dist/lib/url-guard.d.ts +47 -0
- package/dist/lib/url-guard.d.ts.map +1 -0
- package/dist/lib/url-guard.js +229 -0
- package/dist/lib/url-guard.js.map +1 -0
- package/dist/lib/wake-detect.d.ts +12 -0
- package/dist/lib/wake-detect.d.ts.map +1 -0
- package/dist/lib/wake-detect.js +99 -0
- package/dist/lib/wake-detect.js.map +1 -0
- package/dist/middleware/errorHandler.d.ts +3 -0
- package/dist/middleware/errorHandler.d.ts.map +1 -0
- package/dist/middleware/errorHandler.js +45 -0
- package/dist/middleware/errorHandler.js.map +1 -0
- package/dist/middleware/rateLimit.d.ts +4 -0
- package/dist/middleware/rateLimit.d.ts.map +1 -0
- package/dist/middleware/rateLimit.js +125 -0
- package/dist/middleware/rateLimit.js.map +1 -0
- package/dist/middleware/requireAuth.d.ts +3 -0
- package/dist/middleware/requireAuth.d.ts.map +1 -0
- package/dist/middleware/requireAuth.js +17 -0
- package/dist/middleware/requireAuth.js.map +1 -0
- package/dist/providers/aclide.d.ts +18 -0
- package/dist/providers/aclide.d.ts.map +1 -0
- package/dist/providers/aclide.js +174 -0
- package/dist/providers/aclide.js.map +1 -0
- package/dist/providers/aihorde.d.ts +42 -0
- package/dist/providers/aihorde.d.ts.map +1 -0
- package/dist/providers/aihorde.js +192 -0
- package/dist/providers/aihorde.js.map +1 -0
- package/dist/providers/airforce.d.ts +11 -0
- package/dist/providers/airforce.d.ts.map +1 -0
- package/dist/providers/airforce.js +32 -0
- package/dist/providers/airforce.js.map +1 -0
- package/dist/providers/base.d.ts +177 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +354 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/blaze.d.ts +11 -0
- package/dist/providers/blaze.d.ts.map +1 -0
- package/dist/providers/blaze.js +33 -0
- package/dist/providers/blaze.js.map +1 -0
- package/dist/providers/blockrun.d.ts +14 -0
- package/dist/providers/blockrun.d.ts.map +1 -0
- package/dist/providers/blockrun.js +36 -0
- package/dist/providers/blockrun.js.map +1 -0
- package/dist/providers/clod.d.ts +11 -0
- package/dist/providers/clod.d.ts.map +1 -0
- package/dist/providers/clod.js +39 -0
- package/dist/providers/clod.js.map +1 -0
- package/dist/providers/cloudflare.d.ts +15 -0
- package/dist/providers/cloudflare.d.ts.map +1 -0
- package/dist/providers/cloudflare.js +175 -0
- package/dist/providers/cloudflare.js.map +1 -0
- package/dist/providers/cohere.d.ts +11 -0
- package/dist/providers/cohere.d.ts.map +1 -0
- package/dist/providers/cohere.js +117 -0
- package/dist/providers/cohere.js.map +1 -0
- package/dist/providers/dreamprompting.d.ts +11 -0
- package/dist/providers/dreamprompting.d.ts.map +1 -0
- package/dist/providers/dreamprompting.js +41 -0
- package/dist/providers/dreamprompting.js.map +1 -0
- package/dist/providers/electronhub.d.ts +10 -0
- package/dist/providers/electronhub.d.ts.map +1 -0
- package/dist/providers/electronhub.js +56 -0
- package/dist/providers/electronhub.js.map +1 -0
- package/dist/providers/experiential.d.ts +10 -0
- package/dist/providers/experiential.d.ts.map +1 -0
- package/dist/providers/experiential.js +33 -0
- package/dist/providers/experiential.js.map +1 -0
- package/dist/providers/gizmo.d.ts +15 -0
- package/dist/providers/gizmo.d.ts.map +1 -0
- package/dist/providers/gizmo.js +54 -0
- package/dist/providers/gizmo.js.map +1 -0
- package/dist/providers/google.d.ts +30 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +766 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +561 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/llmtr.d.ts +15 -0
- package/dist/providers/llmtr.d.ts.map +1 -0
- package/dist/providers/llmtr.js +51 -0
- package/dist/providers/llmtr.js.map +1 -0
- package/dist/providers/logfare.d.ts +11 -0
- package/dist/providers/logfare.d.ts.map +1 -0
- package/dist/providers/logfare.js +33 -0
- package/dist/providers/logfare.js.map +1 -0
- package/dist/providers/lucidity.d.ts +11 -0
- package/dist/providers/lucidity.d.ts.map +1 -0
- package/dist/providers/lucidity.js +37 -0
- package/dist/providers/lucidity.js.map +1 -0
- package/dist/providers/modelscope.d.ts +50 -0
- package/dist/providers/modelscope.d.ts.map +1 -0
- package/dist/providers/modelscope.js +143 -0
- package/dist/providers/modelscope.js.map +1 -0
- package/dist/providers/moondream.d.ts +17 -0
- package/dist/providers/moondream.d.ts.map +1 -0
- package/dist/providers/moondream.js +140 -0
- package/dist/providers/moondream.js.map +1 -0
- package/dist/providers/openai-compat.d.ts +140 -0
- package/dist/providers/openai-compat.d.ts.map +1 -0
- package/dist/providers/openai-compat.js +537 -0
- package/dist/providers/openai-compat.js.map +1 -0
- package/dist/providers/opencode-free.d.ts +24 -0
- package/dist/providers/opencode-free.d.ts.map +1 -0
- package/dist/providers/opencode-free.js +262 -0
- package/dist/providers/opencode-free.js.map +1 -0
- package/dist/providers/pollinations.d.ts +32 -0
- package/dist/providers/pollinations.d.ts.map +1 -0
- package/dist/providers/pollinations.js +65 -0
- package/dist/providers/pollinations.js.map +1 -0
- package/dist/providers/router9.d.ts +16 -0
- package/dist/providers/router9.d.ts.map +1 -0
- package/dist/providers/router9.js +42 -0
- package/dist/providers/router9.js.map +1 -0
- package/dist/providers/sail.d.ts +44 -0
- package/dist/providers/sail.d.ts.map +1 -0
- package/dist/providers/sail.js +302 -0
- package/dist/providers/sail.js.map +1 -0
- package/dist/providers/septor.d.ts +10 -0
- package/dist/providers/septor.d.ts.map +1 -0
- package/dist/providers/septor.js +36 -0
- package/dist/providers/septor.js.map +1 -0
- package/dist/providers/speechify.d.ts +14 -0
- package/dist/providers/speechify.d.ts.map +1 -0
- package/dist/providers/speechify.js +28 -0
- package/dist/providers/speechify.js.map +1 -0
- package/dist/providers/speka.d.ts +12 -0
- package/dist/providers/speka.d.ts.map +1 -0
- package/dist/providers/speka.js +37 -0
- package/dist/providers/speka.js.map +1 -0
- package/dist/providers/waterfall.d.ts +11 -0
- package/dist/providers/waterfall.d.ts.map +1 -0
- package/dist/providers/waterfall.js +33 -0
- package/dist/providers/waterfall.js.map +1 -0
- package/dist/providers/xkiro.d.ts +71 -0
- package/dist/providers/xkiro.d.ts.map +1 -0
- package/dist/providers/xkiro.js +119 -0
- package/dist/providers/xkiro.js.map +1 -0
- package/dist/providers/zhipu.d.ts +43 -0
- package/dist/providers/zhipu.d.ts.map +1 -0
- package/dist/providers/zhipu.js +95 -0
- package/dist/providers/zhipu.js.map +1 -0
- package/dist/routes/analytics.d.ts +2 -0
- package/dist/routes/analytics.d.ts.map +1 -0
- package/dist/routes/analytics.js +738 -0
- package/dist/routes/analytics.js.map +1 -0
- package/dist/routes/anthropic.d.ts +7 -0
- package/dist/routes/anthropic.d.ts.map +1 -0
- package/dist/routes/anthropic.js +1076 -0
- package/dist/routes/anthropic.js.map +1 -0
- package/dist/routes/auth.d.ts +2 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +310 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/backups.d.ts +2 -0
- package/dist/routes/backups.d.ts.map +1 -0
- package/dist/routes/backups.js +127 -0
- package/dist/routes/backups.js.map +1 -0
- package/dist/routes/cache.d.ts +2 -0
- package/dist/routes/cache.d.ts.map +1 -0
- package/dist/routes/cache.js +40 -0
- package/dist/routes/cache.js.map +1 -0
- package/dist/routes/client-profiles.d.ts +2 -0
- package/dist/routes/client-profiles.d.ts.map +1 -0
- package/dist/routes/client-profiles.js +128 -0
- package/dist/routes/client-profiles.js.map +1 -0
- package/dist/routes/compression.d.ts +2 -0
- package/dist/routes/compression.d.ts.map +1 -0
- package/dist/routes/compression.js +82 -0
- package/dist/routes/compression.js.map +1 -0
- package/dist/routes/conversations.d.ts +3 -0
- package/dist/routes/conversations.d.ts.map +1 -0
- package/dist/routes/conversations.js +215 -0
- package/dist/routes/conversations.js.map +1 -0
- package/dist/routes/docs.d.ts +2 -0
- package/dist/routes/docs.d.ts.map +1 -0
- package/dist/routes/docs.js +21 -0
- package/dist/routes/docs.js.map +1 -0
- package/dist/routes/embeddings.d.ts +2 -0
- package/dist/routes/embeddings.d.ts.map +1 -0
- package/dist/routes/embeddings.js +255 -0
- package/dist/routes/embeddings.js.map +1 -0
- package/dist/routes/fallback.d.ts +2 -0
- package/dist/routes/fallback.d.ts.map +1 -0
- package/dist/routes/fallback.js +631 -0
- package/dist/routes/fallback.js.map +1 -0
- package/dist/routes/free-tier.d.ts +22 -0
- package/dist/routes/free-tier.d.ts.map +1 -0
- package/dist/routes/free-tier.js +175 -0
- package/dist/routes/free-tier.js.map +1 -0
- package/dist/routes/gemini.d.ts +2 -0
- package/dist/routes/gemini.d.ts.map +1 -0
- package/dist/routes/gemini.js +218 -0
- package/dist/routes/gemini.js.map +1 -0
- package/dist/routes/health.d.ts +2 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +72 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/keys.d.ts +17 -0
- package/dist/routes/keys.d.ts.map +1 -0
- package/dist/routes/keys.js +1787 -0
- package/dist/routes/keys.js.map +1 -0
- package/dist/routes/logs.d.ts +2 -0
- package/dist/routes/logs.d.ts.map +1 -0
- package/dist/routes/logs.js +88 -0
- package/dist/routes/logs.js.map +1 -0
- package/dist/routes/mcp.d.ts +4 -0
- package/dist/routes/mcp.d.ts.map +1 -0
- package/dist/routes/mcp.js +563 -0
- package/dist/routes/mcp.js.map +1 -0
- package/dist/routes/media.d.ts +2 -0
- package/dist/routes/media.d.ts.map +1 -0
- package/dist/routes/media.js +180 -0
- package/dist/routes/media.js.map +1 -0
- package/dist/routes/models.d.ts +2 -0
- package/dist/routes/models.d.ts.map +1 -0
- package/dist/routes/models.js +439 -0
- package/dist/routes/models.js.map +1 -0
- package/dist/routes/ollama.d.ts +7 -0
- package/dist/routes/ollama.d.ts.map +1 -0
- package/dist/routes/ollama.js +595 -0
- package/dist/routes/ollama.js.map +1 -0
- package/dist/routes/profiles.d.ts +3 -0
- package/dist/routes/profiles.d.ts.map +1 -0
- package/dist/routes/profiles.js +431 -0
- package/dist/routes/profiles.js.map +1 -0
- package/dist/routes/proxy.d.ts +32 -0
- package/dist/routes/proxy.d.ts.map +1 -0
- package/dist/routes/proxy.js +2793 -0
- package/dist/routes/proxy.js.map +1 -0
- package/dist/routes/responses.d.ts +1161 -0
- package/dist/routes/responses.d.ts.map +1 -0
- package/dist/routes/responses.js +1521 -0
- package/dist/routes/responses.js.map +1 -0
- package/dist/routes/settings.d.ts +2 -0
- package/dist/routes/settings.d.ts.map +1 -0
- package/dist/routes/settings.js +549 -0
- package/dist/routes/settings.js.map +1 -0
- package/dist/routes/status.d.ts +3 -0
- package/dist/routes/status.d.ts.map +1 -0
- package/dist/routes/status.js +214 -0
- package/dist/routes/status.js.map +1 -0
- package/dist/routes/update.d.ts +31 -0
- package/dist/routes/update.d.ts.map +1 -0
- package/dist/routes/update.js +536 -0
- package/dist/routes/update.js.map +1 -0
- package/dist/routes/url-tokens.d.ts +2 -0
- package/dist/routes/url-tokens.d.ts.map +1 -0
- package/dist/routes/url-tokens.js +31 -0
- package/dist/routes/url-tokens.js.map +1 -0
- package/dist/scripts/export-catalog.d.ts +2 -0
- package/dist/scripts/export-catalog.d.ts.map +1 -0
- package/dist/scripts/export-catalog.js +114 -0
- package/dist/scripts/export-catalog.js.map +1 -0
- package/dist/scripts/rotate-encryption-key.d.ts +81 -0
- package/dist/scripts/rotate-encryption-key.d.ts.map +1 -0
- package/dist/scripts/rotate-encryption-key.js +232 -0
- package/dist/scripts/rotate-encryption-key.js.map +1 -0
- package/dist/scripts/routing-sim.d.ts +2 -0
- package/dist/scripts/routing-sim.d.ts.map +1 -0
- package/dist/scripts/routing-sim.js +130 -0
- package/dist/scripts/routing-sim.js.map +1 -0
- package/dist/scripts/test-all-models.d.ts +2 -0
- package/dist/scripts/test-all-models.d.ts.map +1 -0
- package/dist/scripts/test-all-models.js +56 -0
- package/dist/scripts/test-all-models.js.map +1 -0
- package/dist/services/anthropic-map.d.ts +39 -0
- package/dist/services/anthropic-map.d.ts.map +1 -0
- package/dist/services/anthropic-map.js +138 -0
- package/dist/services/anthropic-map.js.map +1 -0
- package/dist/services/auth.d.ts +30 -0
- package/dist/services/auth.d.ts.map +1 -0
- package/dist/services/auth.js +124 -0
- package/dist/services/auth.js.map +1 -0
- package/dist/services/auto-discover.d.ts +77 -0
- package/dist/services/auto-discover.d.ts.map +1 -0
- package/dist/services/auto-discover.js +1047 -0
- package/dist/services/auto-discover.js.map +1 -0
- package/dist/services/backups.d.ts +67 -0
- package/dist/services/backups.d.ts.map +1 -0
- package/dist/services/backups.js +444 -0
- package/dist/services/backups.js.map +1 -0
- package/dist/services/builtin-model-discovery.d.ts +107 -0
- package/dist/services/builtin-model-discovery.d.ts.map +1 -0
- package/dist/services/builtin-model-discovery.js +296 -0
- package/dist/services/builtin-model-discovery.js.map +1 -0
- package/dist/services/cache.d.ts +190 -0
- package/dist/services/cache.d.ts.map +1 -0
- package/dist/services/cache.js +617 -0
- package/dist/services/cache.js.map +1 -0
- package/dist/services/catalog-sync.d.ts +257 -0
- package/dist/services/catalog-sync.d.ts.map +1 -0
- package/dist/services/catalog-sync.js +1041 -0
- package/dist/services/catalog-sync.js.map +1 -0
- package/dist/services/compression/config.d.ts +33 -0
- package/dist/services/compression/config.d.ts.map +1 -0
- package/dist/services/compression/config.js +158 -0
- package/dist/services/compression/config.js.map +1 -0
- package/dist/services/compression/engines/aging.d.ts +2 -0
- package/dist/services/compression/engines/aging.d.ts.map +1 -0
- package/dist/services/compression/engines/aging.js +53 -0
- package/dist/services/compression/engines/aging.js.map +1 -0
- package/dist/services/compression/engines/custom-filters.d.ts +4 -0
- package/dist/services/compression/engines/custom-filters.d.ts.map +1 -0
- package/dist/services/compression/engines/custom-filters.js +49 -0
- package/dist/services/compression/engines/custom-filters.js.map +1 -0
- package/dist/services/compression/engines/dedup.d.ts +2 -0
- package/dist/services/compression/engines/dedup.d.ts.map +1 -0
- package/dist/services/compression/engines/dedup.js +61 -0
- package/dist/services/compression/engines/dedup.js.map +1 -0
- package/dist/services/compression/engines/filter-definitions.d.ts +75 -0
- package/dist/services/compression/engines/filter-definitions.d.ts.map +1 -0
- package/dist/services/compression/engines/filter-definitions.js +45 -0
- package/dist/services/compression/engines/filter-definitions.js.map +1 -0
- package/dist/services/compression/engines/hard-budget.d.ts +2 -0
- package/dist/services/compression/engines/hard-budget.d.ts.map +1 -0
- package/dist/services/compression/engines/hard-budget.js +52 -0
- package/dist/services/compression/engines/hard-budget.js.map +1 -0
- package/dist/services/compression/engines/index.d.ts +9 -0
- package/dist/services/compression/engines/index.d.ts.map +1 -0
- package/dist/services/compression/engines/index.js +9 -0
- package/dist/services/compression/engines/index.js.map +1 -0
- package/dist/services/compression/engines/jsoncompact.d.ts +3 -0
- package/dist/services/compression/engines/jsoncompact.d.ts.map +1 -0
- package/dist/services/compression/engines/jsoncompact.js +145 -0
- package/dist/services/compression/engines/jsoncompact.js.map +1 -0
- package/dist/services/compression/engines/lite.d.ts +2 -0
- package/dist/services/compression/engines/lite.d.ts.map +1 -0
- package/dist/services/compression/engines/lite.js +34 -0
- package/dist/services/compression/engines/lite.js.map +1 -0
- package/dist/services/compression/engines/read-lifecycle.d.ts +2 -0
- package/dist/services/compression/engines/read-lifecycle.d.ts.map +1 -0
- package/dist/services/compression/engines/read-lifecycle.js +70 -0
- package/dist/services/compression/engines/read-lifecycle.js.map +1 -0
- package/dist/services/compression/engines/relevance.d.ts +2 -0
- package/dist/services/compression/engines/relevance.d.ts.map +1 -0
- package/dist/services/compression/engines/relevance.js +74 -0
- package/dist/services/compression/engines/relevance.js.map +1 -0
- package/dist/services/compression/engines/toolfilter.d.ts +2 -0
- package/dist/services/compression/engines/toolfilter.d.ts.map +1 -0
- package/dist/services/compression/engines/toolfilter.js +195 -0
- package/dist/services/compression/engines/toolfilter.js.map +1 -0
- package/dist/services/compression/fidelity-gate.d.ts +12 -0
- package/dist/services/compression/fidelity-gate.d.ts.map +1 -0
- package/dist/services/compression/fidelity-gate.js +90 -0
- package/dist/services/compression/fidelity-gate.js.map +1 -0
- package/dist/services/compression/helpers.d.ts +9 -0
- package/dist/services/compression/helpers.d.ts.map +1 -0
- package/dist/services/compression/helpers.js +52 -0
- package/dist/services/compression/helpers.js.map +1 -0
- package/dist/services/compression/pipeline.d.ts +7 -0
- package/dist/services/compression/pipeline.d.ts.map +1 -0
- package/dist/services/compression/pipeline.js +245 -0
- package/dist/services/compression/pipeline.js.map +1 -0
- package/dist/services/compression/preservation.d.ts +27 -0
- package/dist/services/compression/preservation.d.ts.map +1 -0
- package/dist/services/compression/preservation.js +109 -0
- package/dist/services/compression/preservation.js.map +1 -0
- package/dist/services/compression/registry.d.ts +6 -0
- package/dist/services/compression/registry.d.ts.map +1 -0
- package/dist/services/compression/registry.js +16 -0
- package/dist/services/compression/registry.js.map +1 -0
- package/dist/services/compression/stats.d.ts +29 -0
- package/dist/services/compression/stats.d.ts.map +1 -0
- package/dist/services/compression/stats.js +55 -0
- package/dist/services/compression/stats.js.map +1 -0
- package/dist/services/compression/types.d.ts +90 -0
- package/dist/services/compression/types.d.ts.map +1 -0
- package/dist/services/compression/types.js +2 -0
- package/dist/services/compression/types.js.map +1 -0
- package/dist/services/context-handoff.d.ts +22 -0
- package/dist/services/context-handoff.d.ts.map +1 -0
- package/dist/services/context-handoff.js +164 -0
- package/dist/services/context-handoff.js.map +1 -0
- package/dist/services/cooldown-probe.d.ts +24 -0
- package/dist/services/cooldown-probe.d.ts.map +1 -0
- package/dist/services/cooldown-probe.js +181 -0
- package/dist/services/cooldown-probe.js.map +1 -0
- package/dist/services/custom-endpoint.d.ts +58 -0
- package/dist/services/custom-endpoint.d.ts.map +1 -0
- package/dist/services/custom-endpoint.js +167 -0
- package/dist/services/custom-endpoint.js.map +1 -0
- package/dist/services/custom-media-register.d.ts +22 -0
- package/dist/services/custom-media-register.d.ts.map +1 -0
- package/dist/services/custom-media-register.js +45 -0
- package/dist/services/custom-media-register.js.map +1 -0
- package/dist/services/custom-model-register.d.ts +50 -0
- package/dist/services/custom-model-register.d.ts.map +1 -0
- package/dist/services/custom-model-register.js +103 -0
- package/dist/services/custom-model-register.js.map +1 -0
- package/dist/services/custom-model-seed.d.ts +18 -0
- package/dist/services/custom-model-seed.d.ts.map +1 -0
- package/dist/services/custom-model-seed.js +42 -0
- package/dist/services/custom-model-seed.js.map +1 -0
- package/dist/services/custom-model-sync.d.ts +37 -0
- package/dist/services/custom-model-sync.d.ts.map +1 -0
- package/dist/services/custom-model-sync.js +118 -0
- package/dist/services/custom-model-sync.js.map +1 -0
- package/dist/services/custom-model-tombstone.d.ts +5 -0
- package/dist/services/custom-model-tombstone.d.ts.map +1 -0
- package/dist/services/custom-model-tombstone.js +30 -0
- package/dist/services/custom-model-tombstone.js.map +1 -0
- package/dist/services/declarative-config.d.ts +356 -0
- package/dist/services/declarative-config.d.ts.map +1 -0
- package/dist/services/declarative-config.js +427 -0
- package/dist/services/declarative-config.js.map +1 -0
- package/dist/services/degradation.d.ts +40 -0
- package/dist/services/degradation.d.ts.map +1 -0
- package/dist/services/degradation.js +119 -0
- package/dist/services/degradation.js.map +1 -0
- package/dist/services/embeddings.d.ts +76 -0
- package/dist/services/embeddings.d.ts.map +1 -0
- package/dist/services/embeddings.js +319 -0
- package/dist/services/embeddings.js.map +1 -0
- package/dist/services/fusion.d.ts +162 -0
- package/dist/services/fusion.d.ts.map +1 -0
- package/dist/services/fusion.js +789 -0
- package/dist/services/fusion.js.map +1 -0
- package/dist/services/gemini-map.d.ts +14 -0
- package/dist/services/gemini-map.d.ts.map +1 -0
- package/dist/services/gemini-map.js +78 -0
- package/dist/services/gemini-map.js.map +1 -0
- package/dist/services/health.d.ts +52 -0
- package/dist/services/health.d.ts.map +1 -0
- package/dist/services/health.js +352 -0
- package/dist/services/health.js.map +1 -0
- package/dist/services/idempotency.d.ts +49 -0
- package/dist/services/idempotency.d.ts.map +1 -0
- package/dist/services/idempotency.js +140 -0
- package/dist/services/idempotency.js.map +1 -0
- package/dist/services/key-budget.d.ts +74 -0
- package/dist/services/key-budget.d.ts.map +1 -0
- package/dist/services/key-budget.js +200 -0
- package/dist/services/key-budget.js.map +1 -0
- package/dist/services/media.d.ts +123 -0
- package/dist/services/media.d.ts.map +1 -0
- package/dist/services/media.js +954 -0
- package/dist/services/media.js.map +1 -0
- package/dist/services/model-discovery.d.ts +126 -0
- package/dist/services/model-discovery.d.ts.map +1 -0
- package/dist/services/model-discovery.js +662 -0
- package/dist/services/model-discovery.js.map +1 -0
- package/dist/services/model-groups.d.ts +149 -0
- package/dist/services/model-groups.d.ts.map +1 -0
- package/dist/services/model-groups.js +314 -0
- package/dist/services/model-groups.js.map +1 -0
- package/dist/services/model-listing.d.ts +18 -0
- package/dist/services/model-listing.d.ts.map +1 -0
- package/dist/services/model-listing.js +94 -0
- package/dist/services/model-listing.js.map +1 -0
- package/dist/services/model-retirement.d.ts +29 -0
- package/dist/services/model-retirement.d.ts.map +1 -0
- package/dist/services/model-retirement.js +86 -0
- package/dist/services/model-retirement.js.map +1 -0
- package/dist/services/model-state.d.ts +90 -0
- package/dist/services/model-state.d.ts.map +1 -0
- package/dist/services/model-state.js +342 -0
- package/dist/services/model-state.js.map +1 -0
- package/dist/services/model-weight-overrides.d.ts +48 -0
- package/dist/services/model-weight-overrides.d.ts.map +1 -0
- package/dist/services/model-weight-overrides.js +127 -0
- package/dist/services/model-weight-overrides.js.map +1 -0
- package/dist/services/notification-emitter.d.ts +50 -0
- package/dist/services/notification-emitter.d.ts.map +1 -0
- package/dist/services/notification-emitter.js +177 -0
- package/dist/services/notification-emitter.js.map +1 -0
- package/dist/services/opencode-free-sync.d.ts +29 -0
- package/dist/services/opencode-free-sync.d.ts.map +1 -0
- package/dist/services/opencode-free-sync.js +206 -0
- package/dist/services/opencode-free-sync.js.map +1 -0
- package/dist/services/penalty-inspector.d.ts +56 -0
- package/dist/services/penalty-inspector.d.ts.map +1 -0
- package/dist/services/penalty-inspector.js +167 -0
- package/dist/services/penalty-inspector.js.map +1 -0
- package/dist/services/profile-models.d.ts +5 -0
- package/dist/services/profile-models.d.ts.map +1 -0
- package/dist/services/profile-models.js +62 -0
- package/dist/services/profile-models.js.map +1 -0
- package/dist/services/provider-credential.d.ts +19 -0
- package/dist/services/provider-credential.d.ts.map +1 -0
- package/dist/services/provider-credential.js +51 -0
- package/dist/services/provider-credential.js.map +1 -0
- package/dist/services/provider-quota.d.ts +64 -0
- package/dist/services/provider-quota.d.ts.map +1 -0
- package/dist/services/provider-quota.js +563 -0
- package/dist/services/provider-quota.js.map +1 -0
- package/dist/services/quirks.d.ts +0 -0
- package/dist/services/quirks.d.ts.map +1 -0
- package/dist/services/quirks.js +0 -0
- package/dist/services/quirks.js.map +1 -0
- package/dist/services/quota-forecast.d.ts +50 -0
- package/dist/services/quota-forecast.d.ts.map +1 -0
- package/dist/services/quota-forecast.js +150 -0
- package/dist/services/quota-forecast.js.map +1 -0
- package/dist/services/quota-outlook.d.ts +4 -0
- package/dist/services/quota-outlook.d.ts.map +1 -0
- package/dist/services/quota-outlook.js +92 -0
- package/dist/services/quota-outlook.js.map +1 -0
- package/dist/services/ratelimit.d.ts +249 -0
- package/dist/services/ratelimit.d.ts.map +1 -0
- package/dist/services/ratelimit.js +1182 -0
- package/dist/services/ratelimit.js.map +1 -0
- package/dist/services/request-retention.d.ts +60 -0
- package/dist/services/request-retention.d.ts.map +1 -0
- package/dist/services/request-retention.js +229 -0
- package/dist/services/request-retention.js.map +1 -0
- package/dist/services/router.d.ts +384 -0
- package/dist/services/router.d.ts.map +1 -0
- package/dist/services/router.js +1986 -0
- package/dist/services/router.js.map +1 -0
- package/dist/services/scoring.d.ts +156 -0
- package/dist/services/scoring.d.ts.map +1 -0
- package/dist/services/scoring.js +435 -0
- package/dist/services/scoring.js.map +1 -0
- package/dist/services/url-tokens.d.ts +15 -0
- package/dist/services/url-tokens.d.ts.map +1 -0
- package/dist/services/url-tokens.js +55 -0
- package/dist/services/url-tokens.js.map +1 -0
- package/package.json +77 -4
- package/README.md +0 -3
package/dist/db/index.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import crypto from 'crypto';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { createRequire } from 'node:module';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import { runMigrationsSync } from './migrate/runner.js';
|
|
7
|
+
import { initEncryptionKey, isEncryptionKeyInitialized } from '../lib/crypto.js';
|
|
8
|
+
import { restrictAllToOwner, restrictDirToOwner } from '../lib/file-permissions.js';
|
|
9
|
+
import { nodeSqliteFactory } from './node-sqlite.js';
|
|
10
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
11
|
+
const DB_PATH = path.resolve(__dirname, '../../data/srouter.db');
|
|
12
|
+
const runtimeRequire = createRequire(import.meta.url);
|
|
13
|
+
let db;
|
|
14
|
+
export function getDb() {
|
|
15
|
+
if (!db) {
|
|
16
|
+
throw new Error('Database not initialized. Call initDb() or connectDb() first.');
|
|
17
|
+
}
|
|
18
|
+
return db;
|
|
19
|
+
}
|
|
20
|
+
export function getDefaultDbPath() {
|
|
21
|
+
return process.env.SROUTER_DB_PATH?.trim() || DB_PATH;
|
|
22
|
+
}
|
|
23
|
+
/** Default factory: opens a better-sqlite3 connection at the given path. */
|
|
24
|
+
function betterSqliteFactory(resolvedPath) {
|
|
25
|
+
let BetterSqlite;
|
|
26
|
+
try {
|
|
27
|
+
BetterSqlite = runtimeRequire('better-sqlite3');
|
|
28
|
+
}
|
|
29
|
+
catch (cause) {
|
|
30
|
+
throw new Error('better-sqlite3 is not installed. Reinstall dependencies, or use Node.js 22.13+ on Android/Termux.', { cause });
|
|
31
|
+
}
|
|
32
|
+
return new BetterSqlite(resolvedPath);
|
|
33
|
+
}
|
|
34
|
+
export function defaultDbFactory(platform = process.platform) {
|
|
35
|
+
return platform === 'android' ? nodeSqliteFactory : betterSqliteFactory;
|
|
36
|
+
}
|
|
37
|
+
export function connectDb(dbPath, opts) {
|
|
38
|
+
const resolvedPath = dbPath ?? getDefaultDbPath();
|
|
39
|
+
const isMemory = resolvedPath === ':memory:';
|
|
40
|
+
const ensureDir = opts?.ensureDir ?? true;
|
|
41
|
+
const factory = opts?.factory ?? defaultDbFactory();
|
|
42
|
+
// Gated on ensureDir along with the mkdir: that flag means "this process does
|
|
43
|
+
// not shape the filesystem here", and changing a directory's permissions is
|
|
44
|
+
// exactly that kind of change. It also keeps the warning below from firing on
|
|
45
|
+
// every boot in the read-only environments the flag exists for.
|
|
46
|
+
if (!isMemory && ensureDir) {
|
|
47
|
+
const dataDir = path.dirname(resolvedPath);
|
|
48
|
+
let created = false;
|
|
49
|
+
if (!fs.existsSync(dataDir)) {
|
|
50
|
+
fs.mkdirSync(dataDir, { recursive: true });
|
|
51
|
+
created = true;
|
|
52
|
+
}
|
|
53
|
+
// Before the connection, not after: on Windows the restriction is inherited,
|
|
54
|
+
// so hardening first means the database file is born protected instead of
|
|
55
|
+
// spending its first moments with whatever ACL the parent handed down.
|
|
56
|
+
restrictDataDir(dataDir, created);
|
|
57
|
+
}
|
|
58
|
+
db = factory(resolvedPath);
|
|
59
|
+
if (!isMemory)
|
|
60
|
+
db.pragma('journal_mode = WAL');
|
|
61
|
+
db.pragma('foreign_keys = ON');
|
|
62
|
+
// The dashboard and the proxy hot path write concurrently; without a busy
|
|
63
|
+
// timeout the loser of a write race gets SQLITE_BUSY immediately and the
|
|
64
|
+
// request fails. Five seconds is far longer than any write here takes.
|
|
65
|
+
db.pragma('busy_timeout = 5000');
|
|
66
|
+
if (!isMemory)
|
|
67
|
+
restrictDbFilePermissions(resolvedPath);
|
|
68
|
+
console.log(`Database initialized at ${resolvedPath}`);
|
|
69
|
+
return db;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Whether the directory holding the database may be restricted to this account.
|
|
73
|
+
*
|
|
74
|
+
* The sidecars can only be covered by the directory: SQLite creates `-wal` and
|
|
75
|
+
* `-shm` on the first write and deletes them on the last clean close, so at
|
|
76
|
+
* startup there is nothing there to chmod. But the directory is also shared
|
|
77
|
+
* state — SROUTER_DB_PATH may point anywhere — and locking down a directory
|
|
78
|
+
* that is not ours is a worse outage than the leak it prevents. Pointing the DB
|
|
79
|
+
* at `/tmp/srouter.db` must not chmod 0700 `/tmp`.
|
|
80
|
+
*
|
|
81
|
+
* So the rule is ownership by construction rather than a guess about what is
|
|
82
|
+
* safe. Two cases qualify, and nothing else does:
|
|
83
|
+
*
|
|
84
|
+
* 1. We just created the directory. Nothing else can be living in a directory
|
|
85
|
+
* that did not exist a moment ago.
|
|
86
|
+
* 2. It is the built-in default data directory, which ships as ours.
|
|
87
|
+
*
|
|
88
|
+
* Case 2 is what covers the installed base: an existing deployment already has
|
|
89
|
+
* `server/data`, so case 1 alone would harden new installs and quietly leave
|
|
90
|
+
* every upgrade behind.
|
|
91
|
+
*
|
|
92
|
+
* An operator who points SROUTER_DB_PATH at a dedicated directory can opt in
|
|
93
|
+
* with SROUTER_DB_DIR_HARDENING=1, and one who dislikes the default can opt out
|
|
94
|
+
* with =0. It is a deliberate default-on-where-safe rather than a flag, because
|
|
95
|
+
* hardening that only runs when someone remembers to ask for it is the same
|
|
96
|
+
* class of failure as hardening nobody noticed had stopped running.
|
|
97
|
+
*/
|
|
98
|
+
export function shouldHardenDataDir(dataDir, created, platform = process.platform) {
|
|
99
|
+
const override = parseDirHardeningOverride();
|
|
100
|
+
if (override !== undefined)
|
|
101
|
+
return override;
|
|
102
|
+
if (created)
|
|
103
|
+
return true;
|
|
104
|
+
// Windows paths are case-insensitive; comparing them case-sensitively would
|
|
105
|
+
// miss `C:\App\Data` vs `c:\app\data` and silently skip the default install.
|
|
106
|
+
const normalize = (p) => platform === 'win32' ? path.resolve(p).toLowerCase() : path.resolve(p);
|
|
107
|
+
return normalize(dataDir) === normalize(path.dirname(DB_PATH));
|
|
108
|
+
}
|
|
109
|
+
/** Tri-state, matching CSP_UPGRADE_INSECURE_REQUESTS in lib/config.ts: on, off,
|
|
110
|
+
* or unset to leave the policy above in charge. */
|
|
111
|
+
function parseDirHardeningOverride() {
|
|
112
|
+
const raw = process.env.SROUTER_DB_DIR_HARDENING;
|
|
113
|
+
if (raw === undefined || raw.trim() === '')
|
|
114
|
+
return undefined;
|
|
115
|
+
const lower = raw.trim().toLowerCase();
|
|
116
|
+
if (lower === 'true' || lower === '1' || lower === 'yes')
|
|
117
|
+
return true;
|
|
118
|
+
if (lower === 'false' || lower === '0' || lower === 'no')
|
|
119
|
+
return false;
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
/** Emitted at most once: connectDb runs once in a server, but a test suite
|
|
123
|
+
* reconnects constantly and does not need the same line each time. */
|
|
124
|
+
let warnedUnhardenedDataDir = false;
|
|
125
|
+
function restrictDataDir(dataDir, created) {
|
|
126
|
+
if (!shouldHardenDataDir(dataDir, created)) {
|
|
127
|
+
if (!warnedUnhardenedDataDir) {
|
|
128
|
+
warnedUnhardenedDataDir = true;
|
|
129
|
+
console.log(`[db] leaving permissions on ${dataDir} as they are: it is not a directory this server created. ` +
|
|
130
|
+
'The WAL sidecars written there inherit whatever it already grants. ' +
|
|
131
|
+
'Set SROUTER_DB_DIR_HARDENING=1 if it belongs to this account alone.');
|
|
132
|
+
}
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (!restrictDirToOwner(dataDir)) {
|
|
136
|
+
console.warn(`[db] could not restrict permissions on ${dataDir}; ` +
|
|
137
|
+
'the database and its WAL sidecars may be readable by other local accounts');
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** Restrict the DB and its WAL sidecars to the owner. The file holds encrypted
|
|
141
|
+
* provider keys plus the dashboard password hash, so it must not be readable by
|
|
142
|
+
* other local users. Best-effort: a filesystem that cannot express the
|
|
143
|
+
* restriction must not stop startup — but it now says so instead of failing
|
|
144
|
+
* silently, because a hardening step nobody can see failing is one nobody
|
|
145
|
+
* notices is absent.
|
|
146
|
+
*
|
|
147
|
+
* This pass only ever finds the main file on a clean start; the sidecars do not
|
|
148
|
+
* exist yet. They are covered by the directory instead — see
|
|
149
|
+
* shouldHardenDataDir. It still runs for both, because a directory this server
|
|
150
|
+
* is not allowed to touch can still hold sidecars left behind by an unclean
|
|
151
|
+
* shutdown, and because the main file predates the directory pass on any
|
|
152
|
+
* install that upgraded into it. */
|
|
153
|
+
function restrictDbFilePermissions(resolvedPath) {
|
|
154
|
+
const failed = restrictAllToOwner(['', '-wal', '-shm'].map(suffix => `${resolvedPath}${suffix}`));
|
|
155
|
+
if (failed.length > 0) {
|
|
156
|
+
console.warn(`[db] could not restrict database file permissions (${failed.length} of 3 targets); ` +
|
|
157
|
+
'the database may be readable by other local accounts');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
export function initDb(dbPath, opts) {
|
|
161
|
+
const db = connectDb(dbPath, opts);
|
|
162
|
+
if (process.env.NODE_ENV !== 'development') {
|
|
163
|
+
runMigrationsSync(db, 'up');
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
// In dev, verify the DB has been initialised. If not, give a clear error.
|
|
167
|
+
const ready = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='migrations'").get();
|
|
168
|
+
if (!ready) {
|
|
169
|
+
console.error('\n [dev] Database not initialised. Run:\n\n' +
|
|
170
|
+
' npm run db:migration:up\n\n' +
|
|
171
|
+
' Then restart the server.\n');
|
|
172
|
+
process.exit(1);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (!isEncryptionKeyInitialized())
|
|
176
|
+
initEncryptionKey(db);
|
|
177
|
+
return db;
|
|
178
|
+
}
|
|
179
|
+
export function getUnifiedApiKey() {
|
|
180
|
+
const db = getDb();
|
|
181
|
+
const row = db.prepare("SELECT value FROM settings WHERE key = 'unified_api_key'").get();
|
|
182
|
+
return row.value;
|
|
183
|
+
}
|
|
184
|
+
export function regenerateUnifiedKey() {
|
|
185
|
+
const db = getDb();
|
|
186
|
+
const key = `sr-${crypto.randomBytes(24).toString('hex')}`;
|
|
187
|
+
db.prepare("UPDATE settings SET value = ? WHERE key = 'unified_api_key'").run(key);
|
|
188
|
+
return key;
|
|
189
|
+
}
|
|
190
|
+
// Generic key/value settings accessors (used by routing strategy, etc.).
|
|
191
|
+
export function getSetting(key) {
|
|
192
|
+
const db = getDb();
|
|
193
|
+
const row = db.prepare('SELECT value FROM settings WHERE key = ?').get(key);
|
|
194
|
+
return row?.value;
|
|
195
|
+
}
|
|
196
|
+
export function setSetting(key, value) {
|
|
197
|
+
const db = getDb();
|
|
198
|
+
db.prepare(`
|
|
199
|
+
INSERT INTO settings (key, value) VALUES (?, ?)
|
|
200
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value
|
|
201
|
+
`).run(key, value);
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TEMPLATE.d.ts","sourceRoot":"","sources":["../../../src/db/migrate/TEMPLATE.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,wBAAgB,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAI/B;AAED,wBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAQjC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Migration: <short description>
|
|
2
|
+
// Created: <YYYY-MM-DD>
|
|
3
|
+
//
|
|
4
|
+
// DOWN: <reversible | irreversible - reason>
|
|
5
|
+
export function up(db) {
|
|
6
|
+
db.exec(`
|
|
7
|
+
-- your SQL here
|
|
8
|
+
`);
|
|
9
|
+
}
|
|
10
|
+
export function down(db) {
|
|
11
|
+
// If reversible:
|
|
12
|
+
db.exec(`
|
|
13
|
+
-- inverse SQL here
|
|
14
|
+
`);
|
|
15
|
+
// If irreversible:
|
|
16
|
+
// throw new Error('irreversible migration: <reason>');
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=TEMPLATE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TEMPLATE.js","sourceRoot":"","sources":["../../../src/db/migrate/TEMPLATE.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,wBAAwB;AACxB,EAAE;AACF,6CAA6C;AAI7C,MAAM,UAAU,EAAE,CAAC,EAAM;IACvB,EAAE,CAAC,IAAI,CAAC;;GAEP,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,EAAM;IACzB,iBAAiB;IACjB,EAAE,CAAC,IAAI,CAAC;;GAEP,CAAC,CAAC;IAEH,mBAAmB;IACnB,uDAAuD;AACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/db/migrate/cli.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import '../../env.js';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
import { connectDb } from '../index.js';
|
|
6
|
+
import { getMigrationStatuses, runMigrations } from './runner.js';
|
|
7
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
const MIGRATIONS_DIR = path.resolve(__dirname, '../migrations');
|
|
9
|
+
const TEMPLATE_PATH = path.resolve(__dirname, 'TEMPLATE.ts');
|
|
10
|
+
const DEFAULTS_PATH = path.resolve(__dirname, 'defaults.ts');
|
|
11
|
+
async function main() {
|
|
12
|
+
const command = process.argv[2];
|
|
13
|
+
if (command === 'create') {
|
|
14
|
+
createMigrationFile();
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const db = connectDb();
|
|
18
|
+
switch (command) {
|
|
19
|
+
case 'up':
|
|
20
|
+
await runMigrations(db, 'up');
|
|
21
|
+
return;
|
|
22
|
+
case 'down':
|
|
23
|
+
await runMigrations(db, 'down');
|
|
24
|
+
return;
|
|
25
|
+
case 'fresh':
|
|
26
|
+
await runFresh(db);
|
|
27
|
+
return;
|
|
28
|
+
case 'status':
|
|
29
|
+
printStatus(db);
|
|
30
|
+
return;
|
|
31
|
+
default:
|
|
32
|
+
console.error('Usage: tsx src/db/migrate/cli.ts <up|down|fresh|status|create>');
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async function runFresh(db) {
|
|
37
|
+
if (process.env.NODE_ENV === 'production') {
|
|
38
|
+
console.error('db:migration:fresh is not allowed in production');
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
dropAllUserTables(db);
|
|
42
|
+
await runMigrations(db, 'up');
|
|
43
|
+
}
|
|
44
|
+
function printStatus(db) {
|
|
45
|
+
const statuses = getMigrationStatuses(db);
|
|
46
|
+
console.table(statuses.map(status => ({
|
|
47
|
+
filename: status.filename,
|
|
48
|
+
status: status.status,
|
|
49
|
+
applied_at: status.appliedAt ?? '',
|
|
50
|
+
})));
|
|
51
|
+
}
|
|
52
|
+
function createMigrationFile() {
|
|
53
|
+
const rawName = getMigrationName();
|
|
54
|
+
if (!rawName) {
|
|
55
|
+
console.error('Error: --name is required. Usage: npm run db:migration:create --name=<description>');
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
const sanitisedName = sanitiseMigrationName(rawName);
|
|
59
|
+
if (!sanitisedName) {
|
|
60
|
+
console.error('Error: --name must contain at least one letter or digit');
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
const now = new Date();
|
|
64
|
+
const filename = `${formatTimestamp(now)}_${sanitisedName}.ts`;
|
|
65
|
+
const outputPath = path.join(MIGRATIONS_DIR, filename);
|
|
66
|
+
const relativeOutputPath = toPosixPath(path.relative(process.cwd(), outputPath));
|
|
67
|
+
if (!fs.existsSync(TEMPLATE_PATH)) {
|
|
68
|
+
console.error(`Error: migration template not found at ${toPosixPath(TEMPLATE_PATH)}`);
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
if (fs.existsSync(outputPath)) {
|
|
72
|
+
console.error(`Error: migration already exists at ${relativeOutputPath}`);
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
fs.mkdirSync(MIGRATIONS_DIR, { recursive: true });
|
|
76
|
+
const template = fs.readFileSync(TEMPLATE_PATH, 'utf8');
|
|
77
|
+
const content = template
|
|
78
|
+
.replaceAll('<short description>', rawName)
|
|
79
|
+
.replaceAll('<YYYY-MM-DD>', formatDate(now));
|
|
80
|
+
fs.writeFileSync(outputPath, content, { flag: 'wx' });
|
|
81
|
+
updateDefaultMigrationRegistry(filename);
|
|
82
|
+
console.log(`Created ${relativeOutputPath}`);
|
|
83
|
+
}
|
|
84
|
+
function updateDefaultMigrationRegistry(filename) {
|
|
85
|
+
if (!fs.existsSync(DEFAULTS_PATH)) {
|
|
86
|
+
console.error(`Error: migration registry not found at ${toPosixPath(DEFAULTS_PATH)}`);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
const bindingName = toMigrationBindingName(filename);
|
|
90
|
+
const importPath = `../migrations/${filename.replace(/\.ts$/, '.js')}`;
|
|
91
|
+
const importLine = `import * as ${bindingName} from '${importPath}';`;
|
|
92
|
+
const entryLine = ` { filename: '${filename}', module: ${bindingName} },`;
|
|
93
|
+
const registry = fs.readFileSync(DEFAULTS_PATH, 'utf8');
|
|
94
|
+
if (registry.includes(importLine) || registry.includes(entryLine))
|
|
95
|
+
return;
|
|
96
|
+
const withImport = registry.replace('\nexport interface MigrationModule', `\n${importLine}\n\nexport interface MigrationModule`);
|
|
97
|
+
if (withImport === registry) {
|
|
98
|
+
console.error('Error: could not update migration registry imports');
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
const withEntry = withImport.replace(/\n\];\s*$/, `\n${entryLine}\n];\n`);
|
|
102
|
+
if (withEntry === withImport) {
|
|
103
|
+
console.error('Error: could not update migration registry entries');
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
fs.writeFileSync(DEFAULTS_PATH, withEntry);
|
|
107
|
+
}
|
|
108
|
+
function getMigrationName() {
|
|
109
|
+
const argvName = process.argv
|
|
110
|
+
.map(arg => arg.match(/^--name=(.+)$/)?.[1]?.trim())
|
|
111
|
+
.find((name) => Boolean(name));
|
|
112
|
+
return argvName || process.env.npm_config_name?.trim();
|
|
113
|
+
}
|
|
114
|
+
function sanitiseMigrationName(name) {
|
|
115
|
+
return name
|
|
116
|
+
.toLowerCase()
|
|
117
|
+
.replace(/[ -]+/g, '_')
|
|
118
|
+
.replace(/[^a-z0-9_]/g, '')
|
|
119
|
+
.replace(/_+/g, '_')
|
|
120
|
+
.replace(/^_+|_+$/g, '');
|
|
121
|
+
}
|
|
122
|
+
function formatTimestamp(date) {
|
|
123
|
+
return [
|
|
124
|
+
date.getUTCFullYear(),
|
|
125
|
+
pad(date.getUTCMonth() + 1),
|
|
126
|
+
pad(date.getUTCDate()),
|
|
127
|
+
'_',
|
|
128
|
+
pad(date.getUTCHours()),
|
|
129
|
+
pad(date.getUTCMinutes()),
|
|
130
|
+
pad(date.getUTCSeconds()),
|
|
131
|
+
].join('');
|
|
132
|
+
}
|
|
133
|
+
function formatDate(date) {
|
|
134
|
+
return [
|
|
135
|
+
date.getUTCFullYear(),
|
|
136
|
+
pad(date.getUTCMonth() + 1),
|
|
137
|
+
pad(date.getUTCDate()),
|
|
138
|
+
].join('-');
|
|
139
|
+
}
|
|
140
|
+
function pad(value) {
|
|
141
|
+
return String(value).padStart(2, '0');
|
|
142
|
+
}
|
|
143
|
+
function toMigrationBindingName(filename) {
|
|
144
|
+
return `migration${filename.replace(/\.ts$/, '').replace(/[^a-zA-Z0-9_]/g, '_')}`;
|
|
145
|
+
}
|
|
146
|
+
function dropAllUserTables(db) {
|
|
147
|
+
const tables = db.prepare(`
|
|
148
|
+
SELECT name
|
|
149
|
+
FROM sqlite_master
|
|
150
|
+
WHERE type = 'table'
|
|
151
|
+
AND name NOT LIKE 'sqlite_%'
|
|
152
|
+
ORDER BY name ASC
|
|
153
|
+
`).all();
|
|
154
|
+
db.pragma('foreign_keys = OFF');
|
|
155
|
+
try {
|
|
156
|
+
const dropTables = db.transaction(() => {
|
|
157
|
+
for (const { name } of tables) {
|
|
158
|
+
db.exec(`DROP TABLE IF EXISTS ${quoteIdentifier(name)}`);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
dropTables();
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
db.pragma('foreign_keys = ON');
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
function quoteIdentifier(identifier) {
|
|
168
|
+
return `"${identifier.replaceAll('"', '""')}"`;
|
|
169
|
+
}
|
|
170
|
+
function toPosixPath(value) {
|
|
171
|
+
return value.replaceAll(path.sep, '/');
|
|
172
|
+
}
|
|
173
|
+
main().catch((err) => {
|
|
174
|
+
console.error(err);
|
|
175
|
+
process.exit(1);
|
|
176
|
+
});
|
|
177
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/db/migrate/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Db } from '../types.js';
|
|
2
|
+
export interface MigrationModule {
|
|
3
|
+
up(db: Db): void;
|
|
4
|
+
down(db: Db): void;
|
|
5
|
+
}
|
|
6
|
+
export interface DefaultMigration {
|
|
7
|
+
filename: string;
|
|
8
|
+
module: MigrationModule;
|
|
9
|
+
}
|
|
10
|
+
export declare const LEGACY_BASELINE_FILENAME = "20260101_000000_legacy_baseline.ts";
|
|
11
|
+
export declare const CUSTOM_PROVIDER_MODALITIES_FILENAME = "20260627_000001_custom_provider_modalities.ts";
|
|
12
|
+
export declare const CATALOG_MODEL_STATE_FILENAME = "20260627_000002_catalog_model_state.ts";
|
|
13
|
+
export declare const REQUEST_AGGREGATES_FILENAME = "20260628_120000_request_aggregates.ts";
|
|
14
|
+
export declare const GITHUB_GPT41_CONTEXT_FILENAME = "20260630_000001_github_gpt41_context.ts";
|
|
15
|
+
export declare const REQUEST_CLIENT_INFO_FILENAME = "20260706_000001_request_client_info.ts";
|
|
16
|
+
export declare const CUSTOM_MODEL_TOOL_SUPPORT_FILENAME = "20260706_000002_custom_model_tool_support.ts";
|
|
17
|
+
export declare const PROFILE_CHAIN_BACKFILL_FILENAME = "20260714_000001_profile_chain_backfill.ts";
|
|
18
|
+
export declare const KEY_HEALTH_ERROR_FILENAME = "20260720_000001_key_health_error.ts";
|
|
19
|
+
export declare const COOLDOWN_PROBE_PROVENANCE_FILENAME = "20260726_000001_cooldown_probe_provenance.ts";
|
|
20
|
+
export declare const REQUEST_ATTEMPTS_FILENAME = "20260726_000002_request_attempts.ts";
|
|
21
|
+
export declare const MODEL_SOURCE_PROVENANCE_FILENAME = "20260726_000003_model_source_provenance.ts";
|
|
22
|
+
export declare const MEDIA_MODEL_META_FILENAME = "20260726_000004_media_model_meta.ts";
|
|
23
|
+
export declare const REQUEST_SERVED_MODEL_FILENAME = "20260726_000005_request_served_model.ts";
|
|
24
|
+
export declare const ATTEMPT_ERROR_SUMMARY_FILENAME = "20260726_000006_attempt_error_summary.ts";
|
|
25
|
+
export declare const AGENT_COMPATIBILITY_FILENAME = "20260727_000001_agent_compatibility.ts";
|
|
26
|
+
export declare const TOMBSTONE_PROVENANCE_FILENAME = "20260728_000001_tombstone_provenance.ts";
|
|
27
|
+
export declare const CUSTOM_MODEL_ENDPOINT_IDENTITY_FILENAME = "20260729_000001_custom_model_endpoint_identity.ts";
|
|
28
|
+
export declare const CUSTOM_ENDPOINT_HOST_LABELS_FILENAME = "20260802_000001_custom_endpoint_host_labels.ts";
|
|
29
|
+
export declare const KEY_MODEL_SCOPE_FILENAME = "20260805_000001_key_model_scope.ts";
|
|
30
|
+
export declare const CLIENT_PROFILES_FILENAME = "20260805_000002_client_profiles.ts";
|
|
31
|
+
export declare const API_KEY_PROXY_FILENAME = "20260810_000001_api_key_proxy.ts";
|
|
32
|
+
export declare const PLAYGROUND_CONVERSATIONS_FILENAME = "20260820_000001_playground_conversations.ts";
|
|
33
|
+
export declare const CUSTOM_MODEL_TOMBSTONES_FILENAME = "20260819_000001_custom_model_tombstones.ts";
|
|
34
|
+
export declare const SERVER_LOGS_FILENAME = "20260823_000001_server_logs.ts";
|
|
35
|
+
export declare const BACKUPS_TABLE_FILENAME = "20260823_000002_backups_table.ts";
|
|
36
|
+
export declare const ATTEMPT_KEY_LABEL_FILENAME = "20260823_000003_attempt_key_label.ts";
|
|
37
|
+
export declare const PROFILE_AUTO_INCLUDE_FILENAME = "20260823_000004_profile_auto_include.ts";
|
|
38
|
+
export declare const IDEMPOTENCY_CLAIMS_FILENAME = "20260901_000001_idempotency_claims.ts";
|
|
39
|
+
export declare const QUOTA_OBSERVATION_LOOKUP_FILENAME = "20260901_000002_quota_observation_lookup.ts";
|
|
40
|
+
export declare const REQUEST_CALLER_FILENAME = "20260901_000003_request_caller.ts";
|
|
41
|
+
export declare const ANALYTICS_LATENCY_PERCENTILE_INDEX_FILENAME = "20260902_000001_analytics_latency_percentile_index.ts";
|
|
42
|
+
export declare const MCP_ENABLED_DEFAULT_FILENAME = "20260903_000001_mcp_enabled_default.ts";
|
|
43
|
+
export declare const RESPONSE_CACHE_FILENAME = "20260903_000002_response_cache.ts";
|
|
44
|
+
export declare const KEY_MONTHLY_BUDGET_FILENAME = "20260904_000001_key_monthly_budget.ts";
|
|
45
|
+
export declare const REQUEST_MODEL_ATTRIBUTION_FILENAME = "20260913_000001_request_model_attribution.ts";
|
|
46
|
+
export declare const KEY_MONTHLY_USAGE_FILENAME = "20260914_000001_key_monthly_usage.ts";
|
|
47
|
+
export declare const QUOTA_SNAPSHOT_FRESHNESS_FILENAME = "20260915_000001_quota_snapshot_freshness.ts";
|
|
48
|
+
export declare const UNIFIED_KEY_SR_PREFIX_FILENAME = "20261004_000001_unified_key_sr_prefix.ts";
|
|
49
|
+
export declare const KEY_BUDGET_PERIOD_FILENAME = "20261005_000001_key_budget_period.ts";
|
|
50
|
+
export declare const KEY_BUDGET_PERIOD_AUTO_FILENAME = "20261005_000002_key_budget_period_auto.ts";
|
|
51
|
+
export declare const DEFAULT_MIGRATIONS: readonly DefaultMigration[];
|
|
52
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/db/migrate/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AA2CtC,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,eAAO,MAAM,wBAAwB,uCAAuC,CAAC;AAC7E,eAAO,MAAM,mCAAmC,kDAAkD,CAAC;AACnG,eAAO,MAAM,4BAA4B,2CAA2C,CAAC;AACrF,eAAO,MAAM,2BAA2B,0CAA0C,CAAC;AACnF,eAAO,MAAM,6BAA6B,4CAA4C,CAAC;AACvF,eAAO,MAAM,4BAA4B,2CAA2C,CAAC;AACrF,eAAO,MAAM,kCAAkC,iDAAiD,CAAC;AACjG,eAAO,MAAM,+BAA+B,8CAA8C,CAAC;AAC3F,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAC/E,eAAO,MAAM,kCAAkC,iDAAiD,CAAC;AACjG,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAC/E,eAAO,MAAM,gCAAgC,+CAA+C,CAAC;AAC7F,eAAO,MAAM,yBAAyB,wCAAwC,CAAC;AAC/E,eAAO,MAAM,6BAA6B,4CAA4C,CAAC;AACvF,eAAO,MAAM,8BAA8B,6CAA6C,CAAC;AACzF,eAAO,MAAM,4BAA4B,2CAA2C,CAAC;AACrF,eAAO,MAAM,6BAA6B,4CAA4C,CAAC;AACvF,eAAO,MAAM,uCAAuC,sDAAsD,CAAC;AAC3G,eAAO,MAAM,oCAAoC,mDAAmD,CAAC;AACrG,eAAO,MAAM,wBAAwB,uCAAuC,CAAC;AAC7E,eAAO,MAAM,wBAAwB,uCAAuC,CAAC;AAC7E,eAAO,MAAM,sBAAsB,qCAAqC,CAAC;AACzE,eAAO,MAAM,iCAAiC,gDAAgD,CAAC;AAC/F,eAAO,MAAM,gCAAgC,+CAA+C,CAAC;AAC7F,eAAO,MAAM,oBAAoB,mCAAmC,CAAC;AACrE,eAAO,MAAM,sBAAsB,qCAAqC,CAAC;AACzE,eAAO,MAAM,0BAA0B,yCAAyC,CAAC;AACjF,eAAO,MAAM,6BAA6B,4CAA4C,CAAC;AACvF,eAAO,MAAM,2BAA2B,0CAA0C,CAAC;AACnF,eAAO,MAAM,iCAAiC,gDAAgD,CAAC;AAC/F,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAC3E,eAAO,MAAM,2CAA2C,0DAA0D,CAAC;AACnH,eAAO,MAAM,4BAA4B,2CAA2C,CAAC;AACrF,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAC3E,eAAO,MAAM,2BAA2B,0CAA0C,CAAC;AACnF,eAAO,MAAM,kCAAkC,iDAAiD,CAAC;AACjG,eAAO,MAAM,0BAA0B,yCAAyC,CAAC;AACjF,eAAO,MAAM,iCAAiC,gDAAgD,CAAC;AAC/F,eAAO,MAAM,8BAA8B,6CAA6C,CAAC;AACzF,eAAO,MAAM,0BAA0B,yCAAyC,CAAC;AACjF,eAAO,MAAM,+BAA+B,8CAA8C,CAAC;AAE3F,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EA0CzD,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import * as legacyBaseline from '../migrations/20260101_000000_legacy_baseline.js';
|
|
2
|
+
import * as customProviderModalities from '../migrations/20260627_000001_custom_provider_modalities.js';
|
|
3
|
+
import * as catalogModelState from '../migrations/20260627_000002_catalog_model_state.js';
|
|
4
|
+
import * as requestAggregates from '../migrations/20260628_120000_request_aggregates.js';
|
|
5
|
+
import * as githubGpt41Context from '../migrations/20260630_000001_github_gpt41_context.js';
|
|
6
|
+
import * as requestClientInfo from '../migrations/20260706_000001_request_client_info.js';
|
|
7
|
+
import * as customModelToolSupport from '../migrations/20260706_000002_custom_model_tool_support.js';
|
|
8
|
+
import * as profileChainBackfill from '../migrations/20260714_000001_profile_chain_backfill.js';
|
|
9
|
+
import * as keyHealthError from '../migrations/20260720_000001_key_health_error.js';
|
|
10
|
+
import * as cooldownProbeProvenance from '../migrations/20260726_000001_cooldown_probe_provenance.js';
|
|
11
|
+
import * as requestAttempts from '../migrations/20260726_000002_request_attempts.js';
|
|
12
|
+
import * as modelSourceProvenance from '../migrations/20260726_000003_model_source_provenance.js';
|
|
13
|
+
import * as mediaModelMeta from '../migrations/20260726_000004_media_model_meta.js';
|
|
14
|
+
import * as requestServedModel from '../migrations/20260726_000005_request_served_model.js';
|
|
15
|
+
import * as attemptErrorSummary from '../migrations/20260726_000006_attempt_error_summary.js';
|
|
16
|
+
import * as agentCompatibility from '../migrations/20260727_000001_agent_compatibility.js';
|
|
17
|
+
import * as tombstoneProvenance from '../migrations/20260728_000001_tombstone_provenance.js';
|
|
18
|
+
import * as customModelEndpointIdentity from '../migrations/20260729_000001_custom_model_endpoint_identity.js';
|
|
19
|
+
import * as customEndpointHostLabels from '../migrations/20260802_000001_custom_endpoint_host_labels.js';
|
|
20
|
+
import * as keyModelScope from '../migrations/20260805_000001_key_model_scope.js';
|
|
21
|
+
import * as clientProfiles from '../migrations/20260805_000002_client_profiles.js';
|
|
22
|
+
import * as apiKeyProxy from '../migrations/20260810_000001_api_key_proxy.js';
|
|
23
|
+
import * as playgroundConversations from '../migrations/20260820_000001_playground_conversations.js';
|
|
24
|
+
import * as customModelTombstones from '../migrations/20260819_000001_custom_model_tombstones.js';
|
|
25
|
+
import * as serverLogs from '../migrations/20260823_000001_server_logs.js';
|
|
26
|
+
import * as backupsTable from '../migrations/20260823_000002_backups_table.js';
|
|
27
|
+
import * as attemptKeyLabel from '../migrations/20260823_000003_attempt_key_label.js';
|
|
28
|
+
import * as profileAutoInclude from '../migrations/20260823_000004_profile_auto_include.js';
|
|
29
|
+
import * as idempotencyClaims from '../migrations/20260901_000001_idempotency_claims.js';
|
|
30
|
+
import * as requestCaller from '../migrations/20260901_000003_request_caller.js';
|
|
31
|
+
import * as quotaObservationLookup from '../migrations/20260901_000002_quota_observation_lookup.js';
|
|
32
|
+
import * as analyticsLatencyPercentileIndex from '../migrations/20260902_000001_analytics_latency_percentile_index.js';
|
|
33
|
+
import * as mcpEnabledDefault from '../migrations/20260903_000001_mcp_enabled_default.js';
|
|
34
|
+
import * as responseCache from '../migrations/20260903_000002_response_cache.js';
|
|
35
|
+
import * as keyMonthlyBudget from '../migrations/20260904_000001_key_monthly_budget.js';
|
|
36
|
+
import * as keyMonthlyUsage from '../migrations/20260914_000001_key_monthly_usage.js';
|
|
37
|
+
import * as quotaSnapshotFreshness from '../migrations/20260915_000001_quota_snapshot_freshness.js';
|
|
38
|
+
import * as requestModelAttribution from '../migrations/20260913_000001_request_model_attribution.js';
|
|
39
|
+
import * as unifiedKeySrPrefix from '../migrations/20261004_000001_unified_key_sr_prefix.js';
|
|
40
|
+
import * as keyBudgetPeriod from '../migrations/20261005_000001_key_budget_period.js';
|
|
41
|
+
import * as keyBudgetPeriodAuto from '../migrations/20261005_000002_key_budget_period_auto.js';
|
|
42
|
+
export const LEGACY_BASELINE_FILENAME = '20260101_000000_legacy_baseline.ts';
|
|
43
|
+
export const CUSTOM_PROVIDER_MODALITIES_FILENAME = '20260627_000001_custom_provider_modalities.ts';
|
|
44
|
+
export const CATALOG_MODEL_STATE_FILENAME = '20260627_000002_catalog_model_state.ts';
|
|
45
|
+
export const REQUEST_AGGREGATES_FILENAME = '20260628_120000_request_aggregates.ts';
|
|
46
|
+
export const GITHUB_GPT41_CONTEXT_FILENAME = '20260630_000001_github_gpt41_context.ts';
|
|
47
|
+
export const REQUEST_CLIENT_INFO_FILENAME = '20260706_000001_request_client_info.ts';
|
|
48
|
+
export const CUSTOM_MODEL_TOOL_SUPPORT_FILENAME = '20260706_000002_custom_model_tool_support.ts';
|
|
49
|
+
export const PROFILE_CHAIN_BACKFILL_FILENAME = '20260714_000001_profile_chain_backfill.ts';
|
|
50
|
+
export const KEY_HEALTH_ERROR_FILENAME = '20260720_000001_key_health_error.ts';
|
|
51
|
+
export const COOLDOWN_PROBE_PROVENANCE_FILENAME = '20260726_000001_cooldown_probe_provenance.ts';
|
|
52
|
+
export const REQUEST_ATTEMPTS_FILENAME = '20260726_000002_request_attempts.ts';
|
|
53
|
+
export const MODEL_SOURCE_PROVENANCE_FILENAME = '20260726_000003_model_source_provenance.ts';
|
|
54
|
+
export const MEDIA_MODEL_META_FILENAME = '20260726_000004_media_model_meta.ts';
|
|
55
|
+
export const REQUEST_SERVED_MODEL_FILENAME = '20260726_000005_request_served_model.ts';
|
|
56
|
+
export const ATTEMPT_ERROR_SUMMARY_FILENAME = '20260726_000006_attempt_error_summary.ts';
|
|
57
|
+
export const AGENT_COMPATIBILITY_FILENAME = '20260727_000001_agent_compatibility.ts';
|
|
58
|
+
export const TOMBSTONE_PROVENANCE_FILENAME = '20260728_000001_tombstone_provenance.ts';
|
|
59
|
+
export const CUSTOM_MODEL_ENDPOINT_IDENTITY_FILENAME = '20260729_000001_custom_model_endpoint_identity.ts';
|
|
60
|
+
export const CUSTOM_ENDPOINT_HOST_LABELS_FILENAME = '20260802_000001_custom_endpoint_host_labels.ts';
|
|
61
|
+
export const KEY_MODEL_SCOPE_FILENAME = '20260805_000001_key_model_scope.ts';
|
|
62
|
+
export const CLIENT_PROFILES_FILENAME = '20260805_000002_client_profiles.ts';
|
|
63
|
+
export const API_KEY_PROXY_FILENAME = '20260810_000001_api_key_proxy.ts';
|
|
64
|
+
export const PLAYGROUND_CONVERSATIONS_FILENAME = '20260820_000001_playground_conversations.ts';
|
|
65
|
+
export const CUSTOM_MODEL_TOMBSTONES_FILENAME = '20260819_000001_custom_model_tombstones.ts';
|
|
66
|
+
export const SERVER_LOGS_FILENAME = '20260823_000001_server_logs.ts';
|
|
67
|
+
export const BACKUPS_TABLE_FILENAME = '20260823_000002_backups_table.ts';
|
|
68
|
+
export const ATTEMPT_KEY_LABEL_FILENAME = '20260823_000003_attempt_key_label.ts';
|
|
69
|
+
export const PROFILE_AUTO_INCLUDE_FILENAME = '20260823_000004_profile_auto_include.ts';
|
|
70
|
+
export const IDEMPOTENCY_CLAIMS_FILENAME = '20260901_000001_idempotency_claims.ts';
|
|
71
|
+
export const QUOTA_OBSERVATION_LOOKUP_FILENAME = '20260901_000002_quota_observation_lookup.ts';
|
|
72
|
+
export const REQUEST_CALLER_FILENAME = '20260901_000003_request_caller.ts';
|
|
73
|
+
export const ANALYTICS_LATENCY_PERCENTILE_INDEX_FILENAME = '20260902_000001_analytics_latency_percentile_index.ts';
|
|
74
|
+
export const MCP_ENABLED_DEFAULT_FILENAME = '20260903_000001_mcp_enabled_default.ts';
|
|
75
|
+
export const RESPONSE_CACHE_FILENAME = '20260903_000002_response_cache.ts';
|
|
76
|
+
export const KEY_MONTHLY_BUDGET_FILENAME = '20260904_000001_key_monthly_budget.ts';
|
|
77
|
+
export const REQUEST_MODEL_ATTRIBUTION_FILENAME = '20260913_000001_request_model_attribution.ts';
|
|
78
|
+
export const KEY_MONTHLY_USAGE_FILENAME = '20260914_000001_key_monthly_usage.ts';
|
|
79
|
+
export const QUOTA_SNAPSHOT_FRESHNESS_FILENAME = '20260915_000001_quota_snapshot_freshness.ts';
|
|
80
|
+
export const UNIFIED_KEY_SR_PREFIX_FILENAME = '20261004_000001_unified_key_sr_prefix.ts';
|
|
81
|
+
export const KEY_BUDGET_PERIOD_FILENAME = '20261005_000001_key_budget_period.ts';
|
|
82
|
+
export const KEY_BUDGET_PERIOD_AUTO_FILENAME = '20261005_000002_key_budget_period_auto.ts';
|
|
83
|
+
export const DEFAULT_MIGRATIONS = [
|
|
84
|
+
{ filename: LEGACY_BASELINE_FILENAME, module: legacyBaseline },
|
|
85
|
+
{ filename: CUSTOM_PROVIDER_MODALITIES_FILENAME, module: customProviderModalities },
|
|
86
|
+
{ filename: CATALOG_MODEL_STATE_FILENAME, module: catalogModelState },
|
|
87
|
+
{ filename: REQUEST_AGGREGATES_FILENAME, module: requestAggregates },
|
|
88
|
+
{ filename: GITHUB_GPT41_CONTEXT_FILENAME, module: githubGpt41Context },
|
|
89
|
+
{ filename: REQUEST_CLIENT_INFO_FILENAME, module: requestClientInfo },
|
|
90
|
+
{ filename: CUSTOM_MODEL_TOOL_SUPPORT_FILENAME, module: customModelToolSupport },
|
|
91
|
+
{ filename: PROFILE_CHAIN_BACKFILL_FILENAME, module: profileChainBackfill },
|
|
92
|
+
{ filename: KEY_HEALTH_ERROR_FILENAME, module: keyHealthError },
|
|
93
|
+
{ filename: COOLDOWN_PROBE_PROVENANCE_FILENAME, module: cooldownProbeProvenance },
|
|
94
|
+
{ filename: REQUEST_ATTEMPTS_FILENAME, module: requestAttempts },
|
|
95
|
+
{ filename: MODEL_SOURCE_PROVENANCE_FILENAME, module: modelSourceProvenance },
|
|
96
|
+
{ filename: MEDIA_MODEL_META_FILENAME, module: mediaModelMeta },
|
|
97
|
+
{ filename: REQUEST_SERVED_MODEL_FILENAME, module: requestServedModel },
|
|
98
|
+
{ filename: ATTEMPT_ERROR_SUMMARY_FILENAME, module: attemptErrorSummary },
|
|
99
|
+
{ filename: AGENT_COMPATIBILITY_FILENAME, module: agentCompatibility },
|
|
100
|
+
{ filename: TOMBSTONE_PROVENANCE_FILENAME, module: tombstoneProvenance },
|
|
101
|
+
{ filename: CUSTOM_MODEL_ENDPOINT_IDENTITY_FILENAME, module: customModelEndpointIdentity },
|
|
102
|
+
{ filename: CUSTOM_ENDPOINT_HOST_LABELS_FILENAME, module: customEndpointHostLabels },
|
|
103
|
+
{ filename: KEY_MODEL_SCOPE_FILENAME, module: keyModelScope },
|
|
104
|
+
{ filename: CLIENT_PROFILES_FILENAME, module: clientProfiles },
|
|
105
|
+
{ filename: API_KEY_PROXY_FILENAME, module: apiKeyProxy },
|
|
106
|
+
{ filename: CUSTOM_MODEL_TOMBSTONES_FILENAME, module: customModelTombstones },
|
|
107
|
+
{ filename: PLAYGROUND_CONVERSATIONS_FILENAME, module: playgroundConversations },
|
|
108
|
+
{ filename: SERVER_LOGS_FILENAME, module: serverLogs },
|
|
109
|
+
{ filename: BACKUPS_TABLE_FILENAME, module: backupsTable },
|
|
110
|
+
{ filename: ATTEMPT_KEY_LABEL_FILENAME, module: attemptKeyLabel },
|
|
111
|
+
{ filename: PROFILE_AUTO_INCLUDE_FILENAME, module: profileAutoInclude },
|
|
112
|
+
{ filename: IDEMPOTENCY_CLAIMS_FILENAME, module: idempotencyClaims },
|
|
113
|
+
{ filename: QUOTA_OBSERVATION_LOOKUP_FILENAME, module: quotaObservationLookup },
|
|
114
|
+
{ filename: REQUEST_CALLER_FILENAME, module: requestCaller },
|
|
115
|
+
{ filename: ANALYTICS_LATENCY_PERCENTILE_INDEX_FILENAME, module: analyticsLatencyPercentileIndex },
|
|
116
|
+
{ filename: MCP_ENABLED_DEFAULT_FILENAME, module: mcpEnabledDefault },
|
|
117
|
+
{ filename: RESPONSE_CACHE_FILENAME, module: responseCache },
|
|
118
|
+
{ filename: KEY_MONTHLY_BUDGET_FILENAME, module: keyMonthlyBudget },
|
|
119
|
+
{ filename: REQUEST_MODEL_ATTRIBUTION_FILENAME, module: requestModelAttribution },
|
|
120
|
+
{ filename: KEY_MONTHLY_USAGE_FILENAME, module: keyMonthlyUsage },
|
|
121
|
+
{ filename: QUOTA_SNAPSHOT_FRESHNESS_FILENAME, module: quotaSnapshotFreshness },
|
|
122
|
+
{ filename: UNIFIED_KEY_SR_PREFIX_FILENAME, module: unifiedKeySrPrefix },
|
|
123
|
+
{ filename: KEY_BUDGET_PERIOD_FILENAME, module: keyBudgetPeriod },
|
|
124
|
+
{ filename: KEY_BUDGET_PERIOD_AUTO_FILENAME, module: keyBudgetPeriodAuto },
|
|
125
|
+
];
|
|
126
|
+
//# sourceMappingURL=defaults.js.map
|