@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/app.js
ADDED
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import compression from 'compression';
|
|
3
|
+
import cors from 'cors';
|
|
4
|
+
import helmet from 'helmet';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import { fileURLToPath } from 'url';
|
|
8
|
+
import { keysRouter } from './routes/keys.js';
|
|
9
|
+
import { clientProfilesRouter } from './routes/client-profiles.js';
|
|
10
|
+
import { conversationsRouter } from './routes/conversations.js';
|
|
11
|
+
import { logsRouter } from './routes/logs.js';
|
|
12
|
+
import { modelsRouter } from './routes/models.js';
|
|
13
|
+
import { proxyRouter } from './routes/proxy.js';
|
|
14
|
+
import { responsesRouter } from './routes/responses.js';
|
|
15
|
+
import { anthropicRouter } from './routes/anthropic.js';
|
|
16
|
+
import { fallbackRouter } from './routes/fallback.js';
|
|
17
|
+
import { profilesRouter } from './routes/profiles.js';
|
|
18
|
+
import { embeddingsRouter } from './routes/embeddings.js';
|
|
19
|
+
import { mediaRouter } from './routes/media.js';
|
|
20
|
+
import { analyticsRouter } from './routes/analytics.js';
|
|
21
|
+
import { healthRouter } from './routes/health.js';
|
|
22
|
+
import { freeTierRouter } from './routes/free-tier.js';
|
|
23
|
+
import { settingsRouter } from './routes/settings.js';
|
|
24
|
+
import { backupsRouter } from './routes/backups.js';
|
|
25
|
+
import { cacheRouter } from './routes/cache.js';
|
|
26
|
+
import { compressionRouter } from './routes/compression.js';
|
|
27
|
+
import { authRouter } from './routes/auth.js';
|
|
28
|
+
import { docsRouter } from './routes/docs.js';
|
|
29
|
+
import { mcpRouter } from './routes/mcp.js';
|
|
30
|
+
import { statusRouter, providersRouter } from './routes/status.js';
|
|
31
|
+
import { geminiRouter } from './routes/gemini.js';
|
|
32
|
+
import { syncCatalog, getSyncState } from './services/catalog-sync.js';
|
|
33
|
+
import { ollamaRouter } from './routes/ollama.js';
|
|
34
|
+
import { urlTokenRouter } from './routes/url-tokens.js';
|
|
35
|
+
import { updateRouter } from './routes/update.js';
|
|
36
|
+
import { requireAuth } from './middleware/requireAuth.js';
|
|
37
|
+
import { createProxyRateLimiter, createAdminRateLimiter } from './middleware/rateLimit.js';
|
|
38
|
+
// Password-guess ceiling for GET /api/keys/export. Deliberately low: a real
|
|
39
|
+
// user exports keys occasionally, never ten times a minute.
|
|
40
|
+
const EXPORT_RATE_LIMIT_RPM = 10;
|
|
41
|
+
import { errorHandler } from './middleware/errorHandler.js';
|
|
42
|
+
import { clientContextMiddleware } from './lib/client-context.js';
|
|
43
|
+
import { loadConfig } from './lib/config.js';
|
|
44
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
45
|
+
const DEFAULT_DASHBOARD_ORIGINS = [
|
|
46
|
+
'http://localhost:5173',
|
|
47
|
+
'http://127.0.0.1:5173',
|
|
48
|
+
'http://[::1]:5173',
|
|
49
|
+
];
|
|
50
|
+
// SHA-256 of the inline theme/direction bootstrap in client/index.html, which
|
|
51
|
+
// must run before first paint. Kept as a literal so the CSP header stays a
|
|
52
|
+
// constant string; csp-inline-bootstrap.test.ts recomputes it from the real
|
|
53
|
+
// index.html (source and build) and fails if the two ever drift apart.
|
|
54
|
+
export const INLINE_BOOTSTRAP_SHA = "'sha256-1OTmTnZneXffbmIPwWo5eUgYng1kx7QMYftxJ/QGmvw='";
|
|
55
|
+
// A build asset is safe to cache forever+immutable when its URL is
|
|
56
|
+
// content-addressed. Vite parks every hashed chunk (JS, CSS, fonts, images)
|
|
57
|
+
// under assets/, so that directory is the reliable signal; the -<hash>.<ext>
|
|
58
|
+
// suffix is a belt-and-braces fallback for any hashed file emitted elsewhere.
|
|
59
|
+
// index.html and other unhashed entries deliberately fall through to no-cache.
|
|
60
|
+
const HASHED_ASSET_RE = /-[A-Za-z0-9_-]{6,}\.[A-Za-z0-9]+$/;
|
|
61
|
+
function isImmutableAsset(filePath) {
|
|
62
|
+
return (filePath.includes(`${path.sep}assets${path.sep}`) ||
|
|
63
|
+
HASHED_ASSET_RE.test(path.basename(filePath)));
|
|
64
|
+
}
|
|
65
|
+
// Loopback and *.localhost are "potentially trustworthy" origins even over
|
|
66
|
+
// plain HTTP (https://www.w3.org/TR/powerful-features/#is-origin-trustworthy),
|
|
67
|
+
// so a desktop/localhost install still gets the secure-context-only headers.
|
|
68
|
+
const LOOPBACK_HOST_RE = /^(?:localhost|[^.]+(?:\.[^.]+)*\.localhost|127(?:\.\d{1,3}){3}|\[?::1\]?)$/i;
|
|
69
|
+
// TLS terminated here (req.secure), or in front of us and forwarded. The
|
|
70
|
+
// X-Forwarded-Proto check is the documented reverse-proxy setup for publishing
|
|
71
|
+
// the proxy beyond localhost.
|
|
72
|
+
function isHttpsRequest(req) {
|
|
73
|
+
const forwardedProto = req.headers['x-forwarded-proto'];
|
|
74
|
+
// A proxy chain sends a comma-separated list; the client-facing hop is first.
|
|
75
|
+
const first = String(forwardedProto ?? '').split(',')[0].trim().toLowerCase();
|
|
76
|
+
return first === 'https' || req.secure;
|
|
77
|
+
}
|
|
78
|
+
// Whether the browser will treat this origin as a secure context. Headers that
|
|
79
|
+
// only apply to secure contexts are worse than useless elsewhere: the browser
|
|
80
|
+
// drops them and logs an error, which is exactly what a plain-HTTP LAN install
|
|
81
|
+
// reported in #734.
|
|
82
|
+
function isTrustworthyOrigin(req) {
|
|
83
|
+
return isHttpsRequest(req) || LOOPBACK_HOST_RE.test(req.hostname ?? '');
|
|
84
|
+
}
|
|
85
|
+
export function createApp(config) {
|
|
86
|
+
const cfg = config ?? loadConfig();
|
|
87
|
+
const app = express();
|
|
88
|
+
// TRUST_PROXY (#1024): opt-in trust of X-Forwarded-* from a reverse proxy.
|
|
89
|
+
// false (default) ignores forwarded headers so direct callers cannot spoof
|
|
90
|
+
// the client IP; true trusts every hop; a comma-separated list of addresses
|
|
91
|
+
// /CIDRs trusts only those proxies. Must be set before client-context and
|
|
92
|
+
// the rate-limit middleware, which both resolve the client IP.
|
|
93
|
+
app.set('trust proxy', cfg.trustProxy);
|
|
94
|
+
const allowedCorsOrigins = new Set([
|
|
95
|
+
...DEFAULT_DASHBOARD_ORIGINS,
|
|
96
|
+
...cfg.dashboardOrigins,
|
|
97
|
+
]);
|
|
98
|
+
// CSP: default-src 'self' restricts content to the same origin. Scripts
|
|
99
|
+
// are hashed by the Vite/React build, so 'self' works in production. Inline
|
|
100
|
+
// styles from React hydration need 'unsafe-inline'. HSTS stays off because
|
|
101
|
+
// this is a single-user local proxy served over HTTP (see README).
|
|
102
|
+
//
|
|
103
|
+
// `upgrade-insecure-requests` is emitted by Helmet by default; v0.6.6's
|
|
104
|
+
// CSP hardening (#498) inherited it and broke HTTP LAN installs because the
|
|
105
|
+
// browser rewrites /assets/* to https:// on an origin that has no TLS,
|
|
106
|
+
// producing ERR_SSL_PROTOCOL_ERROR and a blank dashboard (#682).
|
|
107
|
+
// The directive is dropped from the static Helmet config and re-added per
|
|
108
|
+
// request below, gated by protocol + the CSP_UPGRADE_INSECURE_REQUESTS env.
|
|
109
|
+
//
|
|
110
|
+
// Cross-Origin-Opener-Policy and Origin-Agent-Cluster are handled the same
|
|
111
|
+
// way, for the same reason: both only apply to secure contexts, so on a
|
|
112
|
+
// plain-HTTP LAN origin the browser discards them and logs a console error
|
|
113
|
+
// instead (#734). They are re-added per request whenever the origin is one
|
|
114
|
+
// the browser trusts — HTTPS, or loopback, which covers desktop/localhost.
|
|
115
|
+
app.use(helmet({
|
|
116
|
+
contentSecurityPolicy: {
|
|
117
|
+
directives: {
|
|
118
|
+
defaultSrc: ["'self'"],
|
|
119
|
+
// index.html carries one inline <script>: the theme/direction bootstrap
|
|
120
|
+
// that has to run before first paint, or every dark-mode user gets a
|
|
121
|
+
// white flash. 'self' alone blocks it on every install, HTTPS included,
|
|
122
|
+
// so it is allowed by hash — nothing else inline is. INLINE_BOOTSTRAP_SHA
|
|
123
|
+
// is asserted against the real index.html in csp-inline-bootstrap.test.ts,
|
|
124
|
+
// so editing that script fails the suite instead of silently breaking it.
|
|
125
|
+
scriptSrc: ["'self'", INLINE_BOOTSTRAP_SHA],
|
|
126
|
+
styleSrc: ["'self'", "'unsafe-inline'"],
|
|
127
|
+
imgSrc: ["'self'", "data:"],
|
|
128
|
+
connectSrc: ["'self'"],
|
|
129
|
+
fontSrc: ["'self'"],
|
|
130
|
+
formAction: ["'self'"],
|
|
131
|
+
baseUri: ["'self'"],
|
|
132
|
+
upgradeInsecureRequests: null,
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
hsts: false,
|
|
136
|
+
crossOriginOpenerPolicy: false,
|
|
137
|
+
originAgentCluster: false,
|
|
138
|
+
}));
|
|
139
|
+
// Per-request re-issue of the headers that depend on how the page was
|
|
140
|
+
// reached. Only HTTPS origins should tell the browser to upgrade http→https,
|
|
141
|
+
// since plain-HTTP LAN setups have no TLS to upgrade to; the env flag
|
|
142
|
+
// overrides that either way. COOP and Origin-Agent-Cluster go back on for any
|
|
143
|
+
// origin the browser considers trustworthy (HTTPS or loopback), which is
|
|
144
|
+
// every origin that would have honoured them in the first place.
|
|
145
|
+
// Helmet ran above and synchronously set its headers on res; this runs next,
|
|
146
|
+
// still before any route handler writes the body, so setHeader here lands
|
|
147
|
+
// before the response is flushed.
|
|
148
|
+
app.use((req, res, next) => {
|
|
149
|
+
const shouldEmit = cfg.cspUpgradeInsecureRequests === true ||
|
|
150
|
+
(cfg.cspUpgradeInsecureRequests === undefined && isHttpsRequest(req));
|
|
151
|
+
if (shouldEmit) {
|
|
152
|
+
const csp = res.getHeader('content-security-policy');
|
|
153
|
+
if (typeof csp === 'string' && !csp.includes('upgrade-insecure-requests')) {
|
|
154
|
+
res.setHeader('content-security-policy', `${csp}; upgrade-insecure-requests`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (isTrustworthyOrigin(req)) {
|
|
158
|
+
res.setHeader('Cross-Origin-Opener-Policy', 'same-origin');
|
|
159
|
+
res.setHeader('Origin-Agent-Cluster', '?1');
|
|
160
|
+
}
|
|
161
|
+
next();
|
|
162
|
+
});
|
|
163
|
+
app.use(cors({
|
|
164
|
+
origin(origin, callback) {
|
|
165
|
+
callback(null, !origin || allowedCorsOrigins.has(origin));
|
|
166
|
+
},
|
|
167
|
+
}));
|
|
168
|
+
// Two-tier JSON body limits. The LLM wire surfaces carry vision payloads —
|
|
169
|
+
// base64 images inline in the body (~33% inflation; google.ts forwards
|
|
170
|
+
// images up to 8MB apiece) — so a single-screenshot Codex turn can clear
|
|
171
|
+
// 10MB and used to 413 HERE, before auth/routing: no fallback attempt, no
|
|
172
|
+
// analytics row, just an opaque 'request entity too large'. Those surfaces
|
|
173
|
+
// get the larger REQUEST_BODY_LIMIT_MB ceiling (default 25MB); everything
|
|
174
|
+
// else keeps the #200 limit — code agents (OpenCode, AionUI, Qwen Code)
|
|
175
|
+
// ship very large system prompts + tool schemas + repo context, and 1mb cut
|
|
176
|
+
// their sessions off mid-conversation. body-parser skips requests whose
|
|
177
|
+
// body was already parsed, so the second parser only sees what the first
|
|
178
|
+
// didn't own; an over-limit body throws from whichever parser matched.
|
|
179
|
+
app.use(['/v1', '/v1beta', '/mcp', '/api/chat', '/api/generate', '/api/embed', '/api/embeddings'], express.json({ limit: cfg.requestBodyLimitBytes }));
|
|
180
|
+
app.use(express.json({ limit: '10mb' }));
|
|
181
|
+
// Caller identity (IP + User-Agent) for request analytics, carried in
|
|
182
|
+
// AsyncLocalStorage so logRequest() can read it from any depth.
|
|
183
|
+
app.use(clientContextMiddleware);
|
|
184
|
+
// Ollama emulation owns only its exact fixed /api/* paths. Mount it before
|
|
185
|
+
// the dashboard session gate because real Ollama clients do not use that
|
|
186
|
+
// auth scheme. Its legacy /api/embeddings handler explicitly falls through
|
|
187
|
+
// when it sees a valid dashboard session.
|
|
188
|
+
// The same per-IP limiter as /v1 runs first: key-required mode is a
|
|
189
|
+
// brute-forceable credential check without it. Dashboard traffic on the
|
|
190
|
+
// shared /api/embeddings path shares the (generous, configurable) budget.
|
|
191
|
+
app.use(['/api/tags', '/api/version', '/api/show', '/api/chat', '/api/generate', '/api/embed', '/api/embeddings'], createProxyRateLimiter(cfg.proxyRateLimitRpm));
|
|
192
|
+
app.use(ollamaRouter);
|
|
193
|
+
// Admin API — all routes share an IP-based rate limiter to throttle
|
|
194
|
+
// brute-force attempts (auth, key export, etc). The limiter is mounted
|
|
195
|
+
// broadly on /api; requireAuth gates each sub-path individually so that
|
|
196
|
+
// unauthenticated endpoints under /api (like /api/ping) are not blocked.
|
|
197
|
+
//
|
|
198
|
+
// This MUST stay above the /api/auth mount below. Express runs middleware in
|
|
199
|
+
// registration order, so while the limiter was registered after authRouter,
|
|
200
|
+
// authRouter answered and ended /api/auth/login before the limiter was ever
|
|
201
|
+
// entered — leaving the password endpoint this comment names as the reason
|
|
202
|
+
// for the limiter as the one /api path it did not cover. It still sits below
|
|
203
|
+
// the Ollama /api/* mount above, which carries its own proxy limiter.
|
|
204
|
+
const adminRateLimiter = createAdminRateLimiter();
|
|
205
|
+
app.use('/api', adminRateLimiter);
|
|
206
|
+
// Dashboard auth (#35): /api/auth/{status,setup,login} bootstrap without a
|
|
207
|
+
// session; everything else under /api/* requires a logged-in dashboard user.
|
|
208
|
+
// The /v1 proxy keeps its own unified-API-key auth and is NOT gated here.
|
|
209
|
+
app.use('/api/auth', authRouter);
|
|
210
|
+
// Key export re-verifies the dashboard password, which makes it the one admin
|
|
211
|
+
// endpoint a guesser can attack. The broad limiter above is sized for normal
|
|
212
|
+
// dashboard traffic and far too loose for that, so this path gets its own
|
|
213
|
+
// tight per-IP bucket on top of it.
|
|
214
|
+
app.use('/api/keys/export', createAdminRateLimiter(EXPORT_RATE_LIMIT_RPM));
|
|
215
|
+
app.use('/api/keys', requireAuth, keysRouter);
|
|
216
|
+
// Per-client key management (#411). Dashboard-session gated like the rest of
|
|
217
|
+
// /api — the profile keys it mints authenticate only the /v1 inference
|
|
218
|
+
// surface and are never valid here.
|
|
219
|
+
app.use('/api/client-profiles', requireAuth, clientProfilesRouter);
|
|
220
|
+
// Saved Playground transcripts (the chat sidebar). Dashboard-session gated
|
|
221
|
+
// like every other admin route; the unified /v1 key does not open it.
|
|
222
|
+
app.use('/api/conversations', requireAuth, conversationsRouter);
|
|
223
|
+
// Server logs for the dashboard viewer. Dashboard-session gated like the rest
|
|
224
|
+
// of /api — these lines name providers, models and key ids, so the unified
|
|
225
|
+
// /v1 key must not open them.
|
|
226
|
+
app.use('/api/logs', requireAuth, logsRouter);
|
|
227
|
+
app.use('/api/models', requireAuth, modelsRouter);
|
|
228
|
+
app.use('/api/profiles', requireAuth, profilesRouter);
|
|
229
|
+
app.use('/api/fallback', requireAuth, fallbackRouter);
|
|
230
|
+
app.use('/api/embeddings', requireAuth, embeddingsRouter);
|
|
231
|
+
app.use('/api/media', requireAuth, mediaRouter);
|
|
232
|
+
app.use('/api/analytics', requireAuth, analyticsRouter);
|
|
233
|
+
app.use('/api/health', requireAuth, healthRouter);
|
|
234
|
+
app.use('/api/free-tier', requireAuth, freeTierRouter);
|
|
235
|
+
app.use('/api/settings', requireAuth, settingsRouter);
|
|
236
|
+
// Database dumps and restores. Dashboard-session gated: the dump files carry
|
|
237
|
+
// encrypted provider keys and every routing setting, so the unified /v1 key
|
|
238
|
+
// must not open this surface.
|
|
239
|
+
app.use('/api/backups', requireAuth, backupsRouter);
|
|
240
|
+
app.use('/api/cache', requireAuth, cacheRouter);
|
|
241
|
+
app.use('/api/compression', requireAuth, compressionRouter);
|
|
242
|
+
app.use('/api/update', requireAuth, updateRouter);
|
|
243
|
+
// Catalog sync — lightweight endpoint that triggers an immediate catalog
|
|
244
|
+
// sync AND auto-discover, then returns the current sync state. Replaces
|
|
245
|
+
// the old /api/premium/sync route that was removed with the premium/license
|
|
246
|
+
// system. Running both ensures all model types (catalog + user-key-discovered)
|
|
247
|
+
// are refreshed in one go.
|
|
248
|
+
app.post('/api/catalog/sync', requireAuth, async (_req, res) => {
|
|
249
|
+
try {
|
|
250
|
+
const catalogResult = await syncCatalog(true);
|
|
251
|
+
// Also run auto-discover to refresh models from user API keys
|
|
252
|
+
try {
|
|
253
|
+
const { autoDiscoverAll } = await import('./services/auto-discover.js');
|
|
254
|
+
await autoDiscoverAll();
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
console.warn(`[api] auto-discover during sync-all failed: ${err instanceof Error ? err.message : err}`);
|
|
258
|
+
}
|
|
259
|
+
res.json({ ...catalogResult, state: getSyncState() });
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
res.status(500).json({ ok: false, error: err?.message ?? String(err) });
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
// Health check — no auth required.
|
|
266
|
+
app.get('/api/ping', (_req, res) => {
|
|
267
|
+
res.json({ status: 'ok', timestamp: new Date().toISOString() });
|
|
268
|
+
});
|
|
269
|
+
// Static, unauthenticated API reference: GET /v1/docs (viewer) and
|
|
270
|
+
// GET /v1/openapi.json (spec). Mounted before the rate limiter so the docs
|
|
271
|
+
// are always reachable and don't draw down a caller's request budget. It only
|
|
272
|
+
// owns those two paths; everything else falls through to the routers below.
|
|
273
|
+
app.use('/v1', docsRouter);
|
|
274
|
+
// Read-only per-upstream status for meta-gateways (GET /v1/providers, #433).
|
|
275
|
+
// Unified-key auth is enforced inside the handler; mounted before the rate
|
|
276
|
+
// limiter (like docsRouter) so status polling doesn't draw down a caller's
|
|
277
|
+
// request budget.
|
|
278
|
+
app.use('/v1', providersRouter);
|
|
279
|
+
// Separately revocable URL tokens for clients that cannot set headers.
|
|
280
|
+
app.use('/v1/t/:token', createProxyRateLimiter(cfg.proxyRateLimitRpm));
|
|
281
|
+
app.use('/v1/t/:token', urlTokenRouter);
|
|
282
|
+
// OpenAI-compatible proxy. Per-IP rate limiting (#35 item #6) runs first so
|
|
283
|
+
// it throttles unauthenticated brute-force / flood attempts before any
|
|
284
|
+
// routing work. Tune via PROXY_RATE_LIMIT_RPM; 0 disables it.
|
|
285
|
+
app.use('/v1', createProxyRateLimiter(cfg.proxyRateLimitRpm));
|
|
286
|
+
// Anthropic-compatible Messages API (`POST /v1/messages`, `/count_tokens`) for
|
|
287
|
+
// Claude Code and anything else speaking the Anthropic SDK. Mounted BEFORE the
|
|
288
|
+
// OpenAI router so it can content-negotiate `GET /v1/models` (Anthropic shape
|
|
289
|
+
// when the caller sends `anthropic-version`, else it falls through). All other
|
|
290
|
+
// paths it doesn't own fall through to the OpenAI router untouched.
|
|
291
|
+
app.use('/v1', anthropicRouter);
|
|
292
|
+
app.use('/v1', proxyRouter);
|
|
293
|
+
// OpenAI Responses API shim (Codex CLI requires wire_api="responses"; see #96)
|
|
294
|
+
app.use('/v1', responsesRouter);
|
|
295
|
+
// Native Gemini wire surface for Gemini CLI and Gemini-lineage agents.
|
|
296
|
+
app.use('/v1beta', createProxyRateLimiter(cfg.proxyRateLimitRpm));
|
|
297
|
+
app.use('/v1beta', geminiRouter);
|
|
298
|
+
// MCP server (Model Context Protocol over stateless Streamable HTTP):
|
|
299
|
+
// gateway introspection tools for MCP-speaking agents. Unified-key auth,
|
|
300
|
+
// like /v1 — NOT behind the dashboard session gate. Same per-IP limiter as
|
|
301
|
+
// /v1 (its own bucket): both surfaces guard the same unified key, so an
|
|
302
|
+
// unauthenticated brute-force must not get a free throttle-less oracle here.
|
|
303
|
+
app.use('/mcp', createProxyRateLimiter(cfg.proxyRateLimitRpm));
|
|
304
|
+
app.use('/mcp', mcpRouter);
|
|
305
|
+
// Liveness / readiness probes for orchestrators (GET /livez, /readyz, #433).
|
|
306
|
+
// Unauthenticated so a load balancer can probe them; registered before the
|
|
307
|
+
// static / SPA-fallback block below so these root paths resolve to JSON
|
|
308
|
+
// instead of index.html.
|
|
309
|
+
app.use(statusRouter);
|
|
310
|
+
// Error handler (for API routes)
|
|
311
|
+
app.use(errorHandler);
|
|
312
|
+
// Serve client static files (after API error handler). CLIENT_DIST lets
|
|
313
|
+
// embedders relocate the built dashboard (e.g. the desktop app ships it in
|
|
314
|
+
// extraResources, where the __dirname-relative path can't reach).
|
|
315
|
+
// Set serveStaticAssets: false in Config to skip static serving entirely
|
|
316
|
+
// (e.g. in runtimes that serve assets through a different mechanism).
|
|
317
|
+
if (cfg.serveStaticAssets) {
|
|
318
|
+
// CLIENT_DIST wins (embedders: the desktop app ships the dashboard in
|
|
319
|
+
// extraResources). Otherwise try both layouts: the dev checkout first
|
|
320
|
+
// (client/dist two levels up from server/dist), then the installed npm
|
|
321
|
+
// package (client/dist staged next to dist/ by
|
|
322
|
+
// scripts/prepare-server-pack.mjs — the two-level-up guess lands above
|
|
323
|
+
// node_modules there, so it alone would 404 a packaged dashboard).
|
|
324
|
+
const clientDist = cfg.clientDist
|
|
325
|
+
? path.resolve(cfg.clientDist)
|
|
326
|
+
: ([path.resolve(__dirname, '../../client/dist'), path.resolve(__dirname, '../client/dist')]
|
|
327
|
+
.find(dir => fs.existsSync(path.join(dir, 'index.html')))
|
|
328
|
+
?? path.resolve(__dirname, '../../client/dist'));
|
|
329
|
+
// Gzip the dashboard bundle (1+ MB uncompressed). Mounted HERE — after
|
|
330
|
+
// every API/proxy router and the error handler — so it only wraps the
|
|
331
|
+
// static-file / SPA-fallback responses below it. The /v1 and /api handlers
|
|
332
|
+
// end their responses upstream and never fall through to this middleware,
|
|
333
|
+
// so nothing (crucially the /v1/chat/completions SSE streams) gets buffered
|
|
334
|
+
// or re-encoded by compression.
|
|
335
|
+
app.use(compression());
|
|
336
|
+
app.use(express.static(clientDist, {
|
|
337
|
+
// Vite emits content-hashed build assets under assets/ (index-<hash>.js,
|
|
338
|
+
// chunk-<hash>.js, *.css, fonts…). The URL changes whenever the bytes do,
|
|
339
|
+
// so cache them for a year and mark them immutable. index.html and other
|
|
340
|
+
// unhashed root entries must stay revalidated (no-cache) so a redeploy
|
|
341
|
+
// propagates the new asset URLs immediately.
|
|
342
|
+
setHeaders(res, filePath) {
|
|
343
|
+
res.setHeader('Cache-Control', isImmutableAsset(filePath)
|
|
344
|
+
? 'public, max-age=31536000, immutable'
|
|
345
|
+
: 'no-cache');
|
|
346
|
+
},
|
|
347
|
+
}));
|
|
348
|
+
// SPA fallback — serve index.html for non-API routes
|
|
349
|
+
app.use((req, res, next) => {
|
|
350
|
+
if (req.path.startsWith('/api/') || req.path.startsWith('/v1/') || req.path.startsWith('/v1beta/')) {
|
|
351
|
+
next();
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
// Same no-cache policy as the statically-served index.html: SPA deep
|
|
355
|
+
// links must revalidate so a redeploy propagates new asset URLs.
|
|
356
|
+
//
|
|
357
|
+
// Send a path RELATIVE to `root` rather than an absolute one. `send`
|
|
358
|
+
// (behind res.sendFile) rejects any request path containing a dotted
|
|
359
|
+
// segment — including segments of an absolute path — so an install under
|
|
360
|
+
// e.g. `C:\Users\me\.srouter` would 404 every deep link while `/` and
|
|
361
|
+
// /assets/* kept working (express.static passes `root` internally). With
|
|
362
|
+
// `root` set, only the relative part is inspected, so a dotted install
|
|
363
|
+
// directory resolves normally.
|
|
364
|
+
res.sendFile('index.html', {
|
|
365
|
+
root: clientDist,
|
|
366
|
+
headers: { 'Cache-Control': 'no-cache' },
|
|
367
|
+
});
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
return app;
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=app.js.map
|
package/dist/app.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { Db, DbFactory } from './types.js';
|
|
2
|
+
export type { Db, DbFactory } from './types.js';
|
|
3
|
+
export declare function getDb(): Db;
|
|
4
|
+
export declare function getDefaultDbPath(): string;
|
|
5
|
+
export declare function defaultDbFactory(platform?: NodeJS.Platform): DbFactory;
|
|
6
|
+
export declare function connectDb(dbPath?: string, opts?: {
|
|
7
|
+
/** Create the parent directory if absent. Default: true. Set false in
|
|
8
|
+
* environments that do not have a writable local filesystem. */
|
|
9
|
+
ensureDir?: boolean;
|
|
10
|
+
/** Factory that constructs the raw Db connection. Default: better-sqlite3. */
|
|
11
|
+
factory?: DbFactory;
|
|
12
|
+
}): Db;
|
|
13
|
+
/**
|
|
14
|
+
* Whether the directory holding the database may be restricted to this account.
|
|
15
|
+
*
|
|
16
|
+
* The sidecars can only be covered by the directory: SQLite creates `-wal` and
|
|
17
|
+
* `-shm` on the first write and deletes them on the last clean close, so at
|
|
18
|
+
* startup there is nothing there to chmod. But the directory is also shared
|
|
19
|
+
* state — SROUTER_DB_PATH may point anywhere — and locking down a directory
|
|
20
|
+
* that is not ours is a worse outage than the leak it prevents. Pointing the DB
|
|
21
|
+
* at `/tmp/srouter.db` must not chmod 0700 `/tmp`.
|
|
22
|
+
*
|
|
23
|
+
* So the rule is ownership by construction rather than a guess about what is
|
|
24
|
+
* safe. Two cases qualify, and nothing else does:
|
|
25
|
+
*
|
|
26
|
+
* 1. We just created the directory. Nothing else can be living in a directory
|
|
27
|
+
* that did not exist a moment ago.
|
|
28
|
+
* 2. It is the built-in default data directory, which ships as ours.
|
|
29
|
+
*
|
|
30
|
+
* Case 2 is what covers the installed base: an existing deployment already has
|
|
31
|
+
* `server/data`, so case 1 alone would harden new installs and quietly leave
|
|
32
|
+
* every upgrade behind.
|
|
33
|
+
*
|
|
34
|
+
* An operator who points SROUTER_DB_PATH at a dedicated directory can opt in
|
|
35
|
+
* with SROUTER_DB_DIR_HARDENING=1, and one who dislikes the default can opt out
|
|
36
|
+
* with =0. It is a deliberate default-on-where-safe rather than a flag, because
|
|
37
|
+
* hardening that only runs when someone remembers to ask for it is the same
|
|
38
|
+
* class of failure as hardening nobody noticed had stopped running.
|
|
39
|
+
*/
|
|
40
|
+
export declare function shouldHardenDataDir(dataDir: string, created: boolean, platform?: NodeJS.Platform): boolean;
|
|
41
|
+
export declare function initDb(dbPath?: string, opts?: {
|
|
42
|
+
ensureDir?: boolean;
|
|
43
|
+
factory?: DbFactory;
|
|
44
|
+
}): Db;
|
|
45
|
+
export declare function getUnifiedApiKey(): string;
|
|
46
|
+
export declare function regenerateUnifiedKey(): string;
|
|
47
|
+
export declare function getSetting(key: string): string | undefined;
|
|
48
|
+
export declare function setSetting(key: string, value: string): void;
|
|
49
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEhD,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQhD,wBAAgB,KAAK,IAAI,EAAE,CAK1B;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAgBD,wBAAgB,gBAAgB,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,SAAS,CAExF;AAED,wBAAgB,SAAS,CACvB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IACL;qEACiE;IACjE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB,GACA,EAAE,CAmCJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAC3C,OAAO,CAUT;AA6DD,wBAAgB,MAAM,CACpB,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAAE,GAClD,EAAE,CAuBJ;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAK7C;AAGD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI1D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAM3D"}
|