cartethyia 2.5.10 → 2.6.1
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/.env.example +8 -0
- package/dist/dashboard/assets/{BannedPage-Cd30Z0b9.js → BannedPage-wr370U7a.js} +1 -1
- package/dist/dashboard/assets/BannedPage-wr370U7a.js.gz +0 -0
- package/dist/dashboard/assets/{CliToolDetailPage-wf5u-ww6.js → CliToolDetailPage-D1sCezWa.js} +1 -1
- package/dist/dashboard/assets/CliToolDetailPage-D1sCezWa.js.gz +0 -0
- package/dist/dashboard/assets/{CliToolsPage-DykPvuck.js → CliToolsPage-DVWbJPEQ.js} +1 -1
- package/dist/dashboard/assets/CliToolsPage-DVWbJPEQ.js.gz +0 -0
- package/dist/dashboard/assets/{CombosPage-DwvSD3vs.js → CombosPage-CZc7fyMe.js} +1 -1
- package/dist/dashboard/assets/CombosPage-CZc7fyMe.js.gz +0 -0
- package/dist/dashboard/assets/{ConsoleLogPage-CIr7KDex.js → ConsoleLogPage-OPN3qRCa.js} +1 -1
- package/dist/dashboard/assets/ConsoleLogPage-OPN3qRCa.js.gz +0 -0
- package/dist/dashboard/assets/{CustomizationPage-82X0DDdH.js → CustomizationPage-DGTSqmwm.js} +1 -1
- package/dist/dashboard/assets/CustomizationPage-DGTSqmwm.js.gz +0 -0
- package/dist/dashboard/assets/HealthEventsModal-BujG2QP4.js +1 -0
- package/dist/dashboard/assets/HealthEventsModal-BujG2QP4.js.gz +0 -0
- package/dist/dashboard/assets/{LoginPage-CS5mPuVF.js → LoginPage-C_Jd_KgP.js} +1 -1
- package/dist/dashboard/assets/LoginPage-C_Jd_KgP.js.gz +0 -0
- package/dist/dashboard/assets/{ModelPicker-C0UCUsVJ.js → ModelPicker-DVny4S5_.js} +1 -1
- package/dist/dashboard/assets/ModelPicker-DVny4S5_.js.gz +0 -0
- package/dist/dashboard/assets/OverviewPage-Bpbu-VeU.js +1 -0
- package/dist/dashboard/assets/OverviewPage-Bpbu-VeU.js.gz +0 -0
- package/dist/dashboard/assets/ProviderDetailPage-BEhXOO4L.js +3 -0
- package/dist/dashboard/assets/ProviderDetailPage-BEhXOO4L.js.gz +0 -0
- package/dist/dashboard/assets/{ProvidersPage-vdja5ZPK.js → ProvidersPage-DbQnexQd.js} +1 -1
- package/dist/dashboard/assets/ProvidersPage-DbQnexQd.js.gz +0 -0
- package/dist/dashboard/assets/{ProxyPage-BB4CNm4-.js → ProxyPage-ByprzADo.js} +1 -1
- package/dist/dashboard/assets/ProxyPage-ByprzADo.js.gz +0 -0
- package/dist/dashboard/assets/QuotaPage-CvSfv6tP.js +1 -0
- package/dist/dashboard/assets/QuotaPage-CvSfv6tP.js.gz +0 -0
- package/dist/dashboard/assets/SettingsPage-_NzLq3C-.js +1 -0
- package/dist/dashboard/assets/SettingsPage-_NzLq3C-.js.gz +0 -0
- package/dist/dashboard/assets/{SetupPage-FadUOl9S.js → SetupPage-Bg9DcG-G.js} +1 -1
- package/dist/dashboard/assets/SetupPage-Bg9DcG-G.js.gz +0 -0
- package/dist/dashboard/assets/{SortableList-Cfy6_Khv.js → SortableList-C2PWPzJm.js} +1 -1
- package/dist/dashboard/assets/SortableList-C2PWPzJm.js.gz +0 -0
- package/dist/dashboard/assets/{StudioPage-CM92fgJf.js → StudioPage-Dky1zZMt.js} +1 -1
- package/dist/dashboard/assets/StudioPage-Dky1zZMt.js.gz +0 -0
- package/dist/dashboard/assets/{UsagePage-BT4MyQeT.js → UsagePage-C5Vdpd_c.js} +2 -2
- package/dist/dashboard/assets/UsagePage-C5Vdpd_c.js.gz +0 -0
- package/dist/dashboard/assets/{api-keys-DQYLQxpW.js → api-keys-C23S9sgp.js} +1 -1
- package/dist/dashboard/assets/api-keys-C23S9sgp.js.gz +0 -0
- package/dist/dashboard/assets/{app-B7pVRhJ1.js → app-2KhtHCv9.js} +1 -1
- package/dist/dashboard/assets/{app-B7pVRhJ1.js.gz → app-2KhtHCv9.js.gz} +0 -0
- package/dist/dashboard/assets/app-CEeaMHOy.css +2 -0
- package/dist/dashboard/assets/app-CEeaMHOy.css.gz +0 -0
- package/dist/dashboard/assets/{assert-C9FD_JwJ.js → assert-DU6qrMA_.js} +1 -1
- package/dist/dashboard/assets/assert-DU6qrMA_.js.gz +0 -0
- package/dist/dashboard/assets/{badge-Bvyr7D0u.js → badge-CKsF123d.js} +1 -1
- package/dist/dashboard/assets/badge-CKsF123d.js.gz +0 -0
- package/dist/dashboard/assets/{banner-DIvKAZih.js → banner-8j7uChA9.js} +1 -1
- package/dist/dashboard/assets/banner-8j7uChA9.js.gz +0 -0
- package/dist/dashboard/assets/{card-D5_gYIS_.js → card-CdsSlWA3.js} +1 -1
- package/dist/dashboard/assets/card-CdsSlWA3.js.gz +0 -0
- package/dist/dashboard/assets/{cli-tools-CNqzrfdb.js → cli-tools-BaFUuFFF.js} +1 -1
- package/dist/dashboard/assets/cli-tools-BaFUuFFF.js.gz +0 -0
- package/dist/dashboard/assets/{clipboard-button-B6vDBtbm.js → clipboard-button-uL5aYLfW.js} +1 -1
- package/dist/dashboard/assets/clipboard-button-uL5aYLfW.js.gz +0 -0
- package/dist/dashboard/assets/{dialog-CpjrgdwJ.js → dialog-C07hr5_G.js} +1 -1
- package/dist/dashboard/assets/dialog-C07hr5_G.js.gz +0 -0
- package/dist/dashboard/assets/{drawer-BWmt3b5y.js → drawer-BPO1TcKH.js} +1 -1
- package/dist/dashboard/assets/drawer-BPO1TcKH.js.gz +0 -0
- package/dist/dashboard/assets/entry-BNFjUjQ0.js +4 -0
- package/dist/dashboard/assets/entry-BNFjUjQ0.js.gz +0 -0
- package/dist/dashboard/assets/{entry-C_oakV3z.js → entry-Bz_CtDfC.js} +1 -1
- package/dist/dashboard/assets/entry-Bz_CtDfC.js.gz +0 -0
- package/dist/dashboard/assets/entry-GJRbmrpA.js +1 -0
- package/dist/dashboard/assets/entry-GJRbmrpA.js.gz +0 -0
- package/dist/dashboard/assets/{github-badge-RRHHWGxh.js → github-badge-DmQreSDd.js} +1 -1
- package/dist/dashboard/assets/github-badge-DmQreSDd.js.gz +0 -0
- package/dist/dashboard/assets/{index-Bhey_rg_.js → index-DyllNVCY.js} +2 -2
- package/dist/dashboard/assets/index-DyllNVCY.js.gz +0 -0
- package/dist/dashboard/assets/{inline-C2_EQ5Uf.js → inline-C9dCYaBZ.js} +1 -1
- package/dist/dashboard/assets/inline-C9dCYaBZ.js.gz +0 -0
- package/dist/dashboard/assets/{input-BMRlQ450.js → input-CjCnXweJ.js} +1 -1
- package/dist/dashboard/assets/input-CjCnXweJ.js.gz +0 -0
- package/dist/dashboard/assets/{layout-XR5xP8ew.js → layout-V6y8DAkl.js} +1 -1
- package/dist/dashboard/assets/layout-V6y8DAkl.js.gz +0 -0
- package/dist/dashboard/assets/{list-row-Cw07dioc.js → list-row-CM1AaG_y.js} +1 -1
- package/dist/dashboard/assets/list-row-CM1AaG_y.js.gz +0 -0
- package/dist/dashboard/assets/{live-BivGfuUs.js → live-ta6GMb-8.js} +1 -1
- package/dist/dashboard/assets/live-ta6GMb-8.js.gz +0 -0
- package/dist/dashboard/assets/{model-bans-CmffjLuG.js → model-bans-BmYTmbAk.js} +1 -1
- package/dist/dashboard/assets/model-bans-BmYTmbAk.js.gz +0 -0
- package/dist/dashboard/assets/{mutation-46P0oWMe.js → mutation-g_fduiNw.js} +1 -1
- package/dist/dashboard/assets/mutation-g_fduiNw.js.gz +0 -0
- package/dist/dashboard/assets/{numbers-DrdA9oSM.js → numbers-BOevJzdz.js} +1 -1
- package/dist/dashboard/assets/numbers-BOevJzdz.js.gz +0 -0
- package/dist/dashboard/assets/{query-keys-BFhGpwR1.js → query-keys-UETqfytp.js} +1 -1
- package/dist/dashboard/assets/query-keys-UETqfytp.js.gz +0 -0
- package/dist/dashboard/assets/{routing-CAb4F37R.js → routing-BPUo-W8d.js} +1 -1
- package/dist/dashboard/assets/routing-BPUo-W8d.js.gz +0 -0
- package/dist/dashboard/assets/{select-CxVVB__N.js → select-DAhoTabv.js} +1 -1
- package/dist/dashboard/assets/select-DAhoTabv.js.gz +0 -0
- package/dist/dashboard/assets/{settings-DNX9sydi.js → settings--3hxSyry.js} +1 -1
- package/dist/dashboard/assets/settings--3hxSyry.js.gz +0 -0
- package/dist/dashboard/assets/{stack-uPOwM9Hs.js → stack-_gfTdLVB.js} +1 -1
- package/dist/dashboard/assets/stack-_gfTdLVB.js.gz +0 -0
- package/dist/dashboard/assets/{state-D1Yz79iL.js → state-2c5V4zo7.js} +1 -1
- package/dist/dashboard/assets/state-2c5V4zo7.js.gz +0 -0
- package/dist/dashboard/assets/{switch-sevsRrRo.js → switch-Dkke7Naf.js} +1 -1
- package/dist/dashboard/assets/switch-Dkke7Naf.js.gz +0 -0
- package/dist/dashboard/assets/{useMutation-Dem0lXQj.js → useMutation-EDFRkn1i.js} +1 -1
- package/dist/dashboard/assets/useMutation-EDFRkn1i.js.gz +0 -0
- package/dist/dashboard/index.html +1 -1
- package/dist/dashboard/index.html.gz +0 -0
- package/dist/dashboard/precompressed-assets.json +51 -51
- package/migrations/README.md +52 -52
- package/migrations/full-postgres/0020_add_telemetry_event_analytics.sql +77 -0
- package/migrations/full-postgres/0021_add_api_key_concurrency_tolerance.sql +13 -0
- package/migrations/full-postgres/0022_add_inferhub_config_key.sql +17 -0
- package/migrations/full-postgres/0023_drop_api_key_concurrency_tolerance.sql +13 -0
- package/migrations/lite-sqlite3/0020_add_telemetry_event_analytics.sql +69 -0
- package/migrations/lite-sqlite3/0021_add_api_key_concurrency_tolerance.sql +13 -0
- package/migrations/lite-sqlite3/0022_add_inferhub_config_key.sql +17 -0
- package/migrations/lite-sqlite3/0023_drop_api_key_concurrency_tolerance.sql +13 -0
- package/package.json +96 -95
- package/scripts/cli/admin.ts +126 -128
- package/scripts/cli/autostart.ts +237 -237
- package/scripts/cli/background.ts +123 -110
- package/scripts/cli/bin/carte.cjs +8 -8
- package/scripts/cli/bin/cartethyia.cjs +177 -167
- package/scripts/cli/console-menu.ts +45 -30
- package/scripts/cli/controller.ts +145 -0
- package/scripts/cli/env.ts +99 -99
- package/scripts/cli/gateway.ts +264 -260
- package/scripts/cli/instance.ts +234 -224
- package/scripts/cli/main.ts +195 -167
- package/scripts/cli/platform.ts +64 -64
- package/scripts/cli/prompt.ts +217 -79
- package/scripts/cli/services.ts +88 -88
- package/scripts/cli/setup.ts +445 -445
- package/scripts/cli/start.ts +85 -85
- package/scripts/cli/startup-signal.ts +23 -23
- package/scripts/cli/telemetry.ts +70 -0
- package/scripts/cli/tray/hidden-window.vbs +16 -2
- package/scripts/cli/tray/index.ts +263 -263
- package/scripts/cli/tray/windows.ps1 +107 -107
- package/scripts/cli/tray.ts +29 -4
- package/scripts/cli/update.ts +39 -39
- package/scripts/cli/version.ts +67 -67
- package/scripts/cli/wordmark.ts +58 -58
- package/src/boot/app.ts +16 -1
- package/src/boot/dependencies.ts +128 -25
- package/src/config/resources.ts +137 -0
- package/src/config/runtime.ts +133 -76
- package/src/config/spec.ts +30 -29
- package/src/config/telemetry.ts +0 -25
- package/src/console/api-keys/bucket-spend.ts +14 -17
- package/src/console/api-keys/contracts.ts +410 -410
- package/src/console/api-keys/routes.ts +12 -0
- package/src/console/audit/store.ts +2 -3
- package/src/console/auth/setup-service.ts +8 -1
- package/src/console/backup/routes.ts +7 -0
- package/src/console/backup/service.ts +463 -463
- package/src/console/backup/store.ts +16 -11
- package/src/console/backup/validate.ts +1 -4
- package/src/console/cli-tools/fs-ops.ts +18 -2
- package/src/console/data-management/contracts.ts +1 -8
- package/src/console/data-management/operations.ts +61 -48
- package/src/console/data-management/routes.ts +4 -2
- package/src/console/domain-registration.ts +25 -3
- package/src/console/inferhub/client.ts +139 -0
- package/src/console/inferhub/key-store.ts +129 -0
- package/src/console/inferhub/normalize.ts +347 -0
- package/src/console/inferhub/routes.ts +411 -0
- package/src/console/inferhub/store.ts +109 -0
- package/src/console/inferhub/types.ts +183 -0
- package/src/console/observability/contracts.ts +2 -41
- package/src/console/observability/store.ts +176 -371
- package/src/console/providers/catalog/public-model-store.ts +0 -0
- package/src/console/providers/catalog/store.ts +23 -36
- package/src/console/quota/account-quota-shared.ts +52 -52
- package/src/console/quota/account-quota-tenant.ts +16 -24
- package/src/console/quota/refresh.ts +441 -441
- package/src/console/routing/pools/import-parse.ts +206 -206
- package/src/console/routing/pools/operations.ts +543 -543
- package/src/console/routing/pools/probe-verdict.ts +132 -132
- package/src/console/routing/pools/routes.ts +181 -181
- package/src/console/settings/contracts.ts +42 -40
- package/src/console/settings/store.ts +25 -25
- package/src/console/share/share-stats.ts +22 -4
- package/src/console/share/share-usage.ts +30 -4
- package/src/console/shared/cursor.ts +15 -0
- package/src/console/updates/routes.ts +12 -0
- package/src/main.ts +13 -5
- package/src/network/pool/resolver.ts +1104 -1104
- package/src/observability/client-name.ts +22 -0
- package/src/observability/event-log.ts +5 -29
- package/src/observability/event-query.ts +690 -0
- package/src/observability/log-ring.ts +26 -2
- package/src/observability/log-sanitize.ts +118 -0
- package/src/observability/logger.ts +17 -13
- package/src/observability/metrics.ts +35 -0
- package/src/observability/payload-capture.ts +114 -41
- package/src/observability/payload-store.ts +249 -24
- package/src/observability/raw-event-writer.ts +118 -0
- package/src/observability/runtime-metrics.ts +71 -1
- package/src/observability/telemetry-buffer.ts +100 -17
- package/src/observability/telemetry-reconciliation.ts +417 -0
- package/src/persistence/boot.ts +20 -9
- package/src/persistence/db-pg.ts +13 -0
- package/src/persistence/db-sqlite.ts +569 -497
- package/src/persistence/dialect.ts +3 -2
- package/src/persistence/migrate.ts +181 -181
- package/src/persistence/schema.ts +1496 -1406
- package/src/persistence/shared-cache.ts +5 -1
- package/src/persistence/stores/api-key-store.ts +581 -581
- package/src/persistence/stores/telemetry-store.ts +124 -63
- package/src/protocol/reasoning-text.ts +30 -0
- package/src/protocol/response/chat.ts +33 -7
- package/src/protocol/response/codex.ts +14 -2
- package/src/protocol/response/messages.ts +5 -2
- package/src/providers/authentication/oauth-flow-store.ts +3 -10
- package/src/providers/bundled-discovery-providers.ts +122 -122
- package/src/providers/default-registry.ts +10 -0
- package/src/providers/discovery/catalog/catalog-blob.ts +18 -18
- package/src/providers/discovery/models-dev-catalog.ts +354 -354
- package/src/providers/discovery/probe-phases.ts +43 -7
- package/src/providers/discovery/probing-service.ts +70 -32
- package/src/providers/integrations/antigravity/antigravity.ts +9 -2
- package/src/providers/integrations/buddy/buddy-catalog-shared.ts +85 -17
- package/src/providers/integrations/buddy/buddy-chat-shared.ts +934 -934
- package/src/providers/integrations/buddy/buddy-checkin.ts +5 -9
- package/src/providers/integrations/buddy/buddy-discovery-shared.ts +3 -7
- package/src/providers/integrations/buddy/buddy-quota-shared.ts +3 -1
- package/src/providers/integrations/buddy/codebuddy/cn-provider.ts +57 -49
- package/src/providers/integrations/buddy/codebuddy/provider.ts +180 -180
- package/src/providers/integrations/buddy/workbuddy/provider.ts +206 -206
- package/src/providers/integrations/buddy/workbuddy/quota.ts +161 -161
- package/src/providers/integrations/claude/claude-quota.ts +2 -2
- package/src/providers/integrations/claude/claude-user-profiles.ts +3 -2
- package/src/providers/integrations/claude/claude.ts +3 -4
- package/src/providers/integrations/cline/cline.ts +94 -8
- package/src/providers/integrations/codex/codex.ts +61 -37
- package/src/providers/integrations/cursor/cursor-catalog.ts +368 -368
- package/src/providers/integrations/cursor/cursor-http2.ts +300 -300
- package/src/providers/integrations/cursor/cursor-identity.ts +2 -4
- package/src/providers/integrations/cursor/cursor-request.ts +11 -0
- package/src/providers/integrations/cursor/cursor.ts +29 -17
- package/src/providers/integrations/cursor/protocol/framing.ts +129 -129
- package/src/providers/integrations/cursor/protocol/messages.ts +2380 -2380
- package/src/providers/integrations/cursor/protocol/struct.ts +305 -305
- package/src/providers/integrations/cursor/protocol/tool-canonical.ts +275 -0
- package/src/providers/integrations/grok/grok-quota.ts +279 -279
- package/src/providers/integrations/grok/grok-ratelimit-store.ts +73 -73
- package/src/providers/integrations/grok/grok-ratelimit.ts +218 -218
- package/src/providers/integrations/hermes.ts +7 -1
- package/src/providers/integrations/inferhub.ts +201 -73
- package/src/providers/integrations/kilo/kilo.ts +152 -152
- package/src/providers/integrations/kiro/kiro-machine-id.ts +2 -4
- package/src/providers/integrations/openrouter/provider.ts +129 -129
- package/src/providers/integrations/qoder/qoder-quota.ts +193 -192
- package/src/providers/integrations/qoder/qoder-realm.ts +106 -106
- package/src/providers/integrations/trae/trae-oauth.ts +4 -26
- package/src/providers/integrations/trae/trae-quota.ts +389 -384
- package/src/providers/integrations/trae/trae-realm.ts +15 -2
- package/src/providers/integrations/xiaomi-mimo/think-stream.ts +100 -24
- package/src/providers/integrations/zcode/oauth.ts +1 -1
- package/src/providers/operations/account-health-service.ts +605 -279
- package/src/providers/provider-metadata.ts +12 -1
- package/src/providers/provider-model-definition.ts +373 -373
- package/src/providers/quota/quota-contracts.ts +3 -7
- package/src/providers/search/search-provider.ts +2 -6
- package/src/security/admission/contracts.ts +10 -0
- package/src/security/admission/in-memory-store.ts +89 -14
- package/src/security/admission/lua.ts +191 -182
- package/src/security/admission/redis-store.ts +30 -0
- package/src/security/admission/service.ts +18 -0
- package/src/security/api-key-auth-cache.ts +96 -0
- package/src/security/api-key-auth.ts +11 -100
- package/src/security/client-router-fingerprint.ts +3 -7
- package/src/security/ip-boundary.ts +7 -3
- package/src/shared/coerce.ts +67 -0
- package/src/shared/hash.ts +6 -0
- package/src/shared/time.ts +7 -0
- package/src/transport/dispatch/attempt-finalize.ts +26 -138
- package/src/transport/dispatch/attempt-loop.ts +103 -81
- package/src/transport/dispatch/capture-policy.ts +78 -0
- package/src/transport/dispatch/proxy-request.ts +4 -2
- package/src/transport/dispatch/streaming/encoder.ts +111 -5
- package/src/transport/dispatch/streaming/stream.ts +19 -2
- package/src/transport/dispatch/streaming/thinking-loop.ts +300 -0
- package/src/transport/failure-policy.ts +27 -0
- package/src/transport/guards/abuse-guard.ts +2 -2
- package/src/transport/guards/auth-guard.ts +17 -0
- package/src/transport/guards/body-policy.ts +3 -2
- package/src/transport/guards/concurrency-guard.ts +89 -13
- package/src/transport/guards/early-rejection-capture.ts +43 -3
- package/src/transport/guards/error-lifecycle.ts +10 -2
- package/src/transport/guards/guard-errors.ts +23 -0
- package/src/transport/guards/headroom-guard.ts +41 -7
- package/src/transport/guards/pipeline.ts +24 -0
- package/src/transport/guards/request-context.ts +2 -1
- package/src/transport/routing/admission.ts +51 -9
- package/src/transport/routing/bounded-lru.ts +49 -0
- package/src/transport/routing/candidate-index.ts +88 -0
- package/src/transport/routing/reservations.ts +121 -7
- package/src/transport/routing/round-robin.ts +10 -22
- package/src/transport/routing/route-catalog.ts +26 -13
- package/src/transport/routing/route-model.ts +22 -2
- package/src/transport/routing/router.ts +53 -31
- package/src/transport/surface/chat/encode.ts +2 -3
- package/src/transport/surface/chat/parse.ts +2 -1
- package/src/transport/surface/dialects.ts +11 -3
- package/src/transport/surface/messages/encode.ts +2 -1
- package/src/transport/surface/messages/parse.ts +3 -1
- package/src/transport/surface/messages/stream.ts +2 -6
- package/src/workers/maintenance-lease.ts +200 -0
- package/src/workers/scheduler.ts +101 -1
- package/dist/dashboard/assets/BannedPage-Cd30Z0b9.js.gz +0 -0
- package/dist/dashboard/assets/CliToolDetailPage-wf5u-ww6.js.gz +0 -0
- package/dist/dashboard/assets/CliToolsPage-DykPvuck.js.gz +0 -0
- package/dist/dashboard/assets/CombosPage-DwvSD3vs.js.gz +0 -0
- package/dist/dashboard/assets/ConsoleLogPage-CIr7KDex.js.gz +0 -0
- package/dist/dashboard/assets/CustomizationPage-82X0DDdH.js.gz +0 -0
- package/dist/dashboard/assets/HealthEventsModal-BYPucTTn.js +0 -1
- package/dist/dashboard/assets/HealthEventsModal-BYPucTTn.js.gz +0 -0
- package/dist/dashboard/assets/LoginPage-CS5mPuVF.js.gz +0 -0
- package/dist/dashboard/assets/ModelPicker-C0UCUsVJ.js.gz +0 -0
- package/dist/dashboard/assets/OverviewPage-Dk_ew3YU.js +0 -1
- package/dist/dashboard/assets/OverviewPage-Dk_ew3YU.js.gz +0 -0
- package/dist/dashboard/assets/ProviderDetailPage-CAiRn2Q0.js +0 -3
- package/dist/dashboard/assets/ProviderDetailPage-CAiRn2Q0.js.gz +0 -0
- package/dist/dashboard/assets/ProvidersPage-vdja5ZPK.js.gz +0 -0
- package/dist/dashboard/assets/ProxyPage-BB4CNm4-.js.gz +0 -0
- package/dist/dashboard/assets/QuotaPage-FEc4iNyq.js +0 -1
- package/dist/dashboard/assets/QuotaPage-FEc4iNyq.js.gz +0 -0
- package/dist/dashboard/assets/SettingsPage-Dlfi5L4N.js +0 -1
- package/dist/dashboard/assets/SettingsPage-Dlfi5L4N.js.gz +0 -0
- package/dist/dashboard/assets/SetupPage-FadUOl9S.js.gz +0 -0
- package/dist/dashboard/assets/SortableList-Cfy6_Khv.js.gz +0 -0
- package/dist/dashboard/assets/StudioPage-CM92fgJf.js.gz +0 -0
- package/dist/dashboard/assets/UsagePage-BT4MyQeT.js.gz +0 -0
- package/dist/dashboard/assets/api-keys-DQYLQxpW.js.gz +0 -0
- package/dist/dashboard/assets/app-CX_Z8cMs.css +0 -2
- package/dist/dashboard/assets/app-CX_Z8cMs.css.gz +0 -0
- package/dist/dashboard/assets/assert-C9FD_JwJ.js.gz +0 -0
- package/dist/dashboard/assets/badge-Bvyr7D0u.js.gz +0 -0
- package/dist/dashboard/assets/banner-DIvKAZih.js.gz +0 -0
- package/dist/dashboard/assets/card-D5_gYIS_.js.gz +0 -0
- package/dist/dashboard/assets/cli-tools-CNqzrfdb.js.gz +0 -0
- package/dist/dashboard/assets/clipboard-button-B6vDBtbm.js.gz +0 -0
- package/dist/dashboard/assets/dialog-CpjrgdwJ.js.gz +0 -0
- package/dist/dashboard/assets/drawer-BWmt3b5y.js.gz +0 -0
- package/dist/dashboard/assets/entry-B-gvimrg.js +0 -1
- package/dist/dashboard/assets/entry-B-gvimrg.js.gz +0 -0
- package/dist/dashboard/assets/entry-C_oakV3z.js.gz +0 -0
- package/dist/dashboard/assets/entry-Dj0cHfEc.js +0 -4
- package/dist/dashboard/assets/entry-Dj0cHfEc.js.gz +0 -0
- package/dist/dashboard/assets/github-badge-RRHHWGxh.js.gz +0 -0
- package/dist/dashboard/assets/index-Bhey_rg_.js.gz +0 -0
- package/dist/dashboard/assets/inline-C2_EQ5Uf.js.gz +0 -0
- package/dist/dashboard/assets/input-BMRlQ450.js.gz +0 -0
- package/dist/dashboard/assets/layout-XR5xP8ew.js.gz +0 -0
- package/dist/dashboard/assets/list-row-Cw07dioc.js.gz +0 -0
- package/dist/dashboard/assets/live-BivGfuUs.js.gz +0 -0
- package/dist/dashboard/assets/model-bans-CmffjLuG.js.gz +0 -0
- package/dist/dashboard/assets/mutation-46P0oWMe.js.gz +0 -0
- package/dist/dashboard/assets/numbers-DrdA9oSM.js.gz +0 -0
- package/dist/dashboard/assets/query-keys-BFhGpwR1.js.gz +0 -0
- package/dist/dashboard/assets/routing-CAb4F37R.js.gz +0 -0
- package/dist/dashboard/assets/select-CxVVB__N.js.gz +0 -0
- package/dist/dashboard/assets/settings-DNX9sydi.js.gz +0 -0
- package/dist/dashboard/assets/stack-uPOwM9Hs.js.gz +0 -0
- package/dist/dashboard/assets/state-D1Yz79iL.js.gz +0 -0
- package/dist/dashboard/assets/switch-sevsRrRo.js.gz +0 -0
- package/dist/dashboard/assets/useMutation-Dem0lXQj.js.gz +0 -0
- package/src/observability/event-compaction.ts +0 -317
- package/src/observability/event-day-index.ts +0 -439
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
import type { ProviderModule } from "./provider-registry";
|
|
2
|
-
import {
|
|
3
|
-
GENERIC_API_KEY_SPECS,
|
|
4
|
-
VERSIONED_ROOT_API_KEY_SPECS,
|
|
5
|
-
} from "./configured-openai-providers";
|
|
6
|
-
import { createApiKeyAdapter, type ApiKeyProviderSpec } from "./configured-provider";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Providers whose adapter and catalog discovery are the same bearer-auth
|
|
10
|
-
* OpenAI-compatible contract. Providers with static catalogs or additional
|
|
11
|
-
* upstream behavior remain declared beside their special handling.
|
|
12
|
-
*/
|
|
13
|
-
export const DISCOVERY_BACKED_PROVIDER_IDS = [
|
|
14
|
-
"groq",
|
|
15
|
-
"together",
|
|
16
|
-
"deepinfra",
|
|
17
|
-
"siliconflow",
|
|
18
|
-
"siliconflowcn",
|
|
19
|
-
"novita",
|
|
20
|
-
"larprouter",
|
|
21
|
-
"venice",
|
|
22
|
-
"nanogpt",
|
|
23
|
-
"baseten",
|
|
24
|
-
"synthetic",
|
|
25
|
-
"stepfun",
|
|
26
|
-
"sakana",
|
|
27
|
-
"helmcode",
|
|
28
|
-
"coralbricks",
|
|
29
|
-
"aiand",
|
|
30
|
-
"wafer",
|
|
31
|
-
"firepass",
|
|
32
|
-
"zhipucoding",
|
|
33
|
-
"dashscope",
|
|
34
|
-
"qianfan",
|
|
35
|
-
] as const;
|
|
36
|
-
|
|
37
|
-
export type DiscoveryBackedProviderId = (typeof DISCOVERY_BACKED_PROVIDER_IDS)[number];
|
|
38
|
-
|
|
39
|
-
type DiscoveryBackedCapabilities = Pick<
|
|
40
|
-
ProviderModule,
|
|
41
|
-
"endpointPathsByWireFamily" | "loadAdapter" | "loadModelDiscovery"
|
|
42
|
-
>;
|
|
43
|
-
|
|
44
|
-
type ModelDiscoveryFactory = NonNullable<ProviderModule["loadModelDiscovery"]>;
|
|
45
|
-
type OpenAIModelDiscoveryFactory = (
|
|
46
|
-
providerId: string,
|
|
47
|
-
options?: {
|
|
48
|
-
readonly headers?: (credential: string) => Readonly<Record<string, string>>;
|
|
49
|
-
},
|
|
50
|
-
) => ModelDiscoveryFactory;
|
|
51
|
-
|
|
52
|
-
const DISCOVERY_BACKED_PROVIDER_SPECS = {
|
|
53
|
-
groq: VERSIONED_ROOT_API_KEY_SPECS.groq,
|
|
54
|
-
larprouter: GENERIC_API_KEY_SPECS.larprouter,
|
|
55
|
-
together: GENERIC_API_KEY_SPECS.together,
|
|
56
|
-
deepinfra: VERSIONED_ROOT_API_KEY_SPECS.deepinfra,
|
|
57
|
-
siliconflow: GENERIC_API_KEY_SPECS.siliconflow,
|
|
58
|
-
siliconflowcn: GENERIC_API_KEY_SPECS.siliconflowcn,
|
|
59
|
-
novita: VERSIONED_ROOT_API_KEY_SPECS.novita,
|
|
60
|
-
venice: VERSIONED_ROOT_API_KEY_SPECS.venice,
|
|
61
|
-
nanogpt: GENERIC_API_KEY_SPECS.nanogpt,
|
|
62
|
-
baseten: GENERIC_API_KEY_SPECS.baseten,
|
|
63
|
-
synthetic: GENERIC_API_KEY_SPECS.synthetic,
|
|
64
|
-
stepfun: GENERIC_API_KEY_SPECS.stepfun,
|
|
65
|
-
sakana: GENERIC_API_KEY_SPECS.sakana,
|
|
66
|
-
helmcode: GENERIC_API_KEY_SPECS.helmcode,
|
|
67
|
-
coralbricks: GENERIC_API_KEY_SPECS.coralbricks,
|
|
68
|
-
aiand: GENERIC_API_KEY_SPECS.aiand,
|
|
69
|
-
wafer: GENERIC_API_KEY_SPECS.wafer,
|
|
70
|
-
firepass: VERSIONED_ROOT_API_KEY_SPECS.firepass,
|
|
71
|
-
zhipucoding: VERSIONED_ROOT_API_KEY_SPECS.zhipucoding,
|
|
72
|
-
dashscope: GENERIC_API_KEY_SPECS.dashscope,
|
|
73
|
-
qianfan: VERSIONED_ROOT_API_KEY_SPECS.qianfan,
|
|
74
|
-
} satisfies Readonly<Record<DiscoveryBackedProviderId, ApiKeyProviderSpec>>;
|
|
75
|
-
|
|
76
|
-
function discoveryBackedCapabilities(
|
|
77
|
-
providerId: DiscoveryBackedProviderId,
|
|
78
|
-
spec: ApiKeyProviderSpec,
|
|
79
|
-
openAIModelDiscovery: OpenAIModelDiscoveryFactory,
|
|
80
|
-
): DiscoveryBackedCapabilities {
|
|
81
|
-
return {
|
|
82
|
-
...(spec.endpoint_paths_by_wire_family === undefined
|
|
83
|
-
? {}
|
|
84
|
-
: { endpointPathsByWireFamily: spec.endpoint_paths_by_wire_family }),
|
|
85
|
-
loadAdapter: async () => createApiKeyAdapter(spec),
|
|
86
|
-
loadModelDiscovery: openAIModelDiscovery(providerId, {
|
|
87
|
-
headers: (credential) => ({ authorization: `Bearer ${credential}` }),
|
|
88
|
-
}),
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Creates the standard provider capability table using the registry's shared
|
|
94
|
-
* discovery loader, keeping its lazy import and authentication behavior intact.
|
|
95
|
-
*/
|
|
96
|
-
export function createDiscoveryBackedProviderCapabilities(
|
|
97
|
-
openAIModelDiscovery: OpenAIModelDiscoveryFactory,
|
|
98
|
-
): Readonly<Record<DiscoveryBackedProviderId, DiscoveryBackedCapabilities>> {
|
|
99
|
-
return {
|
|
100
|
-
groq: discoveryBackedCapabilities("groq", DISCOVERY_BACKED_PROVIDER_SPECS.groq, openAIModelDiscovery),
|
|
101
|
-
together: discoveryBackedCapabilities("together", DISCOVERY_BACKED_PROVIDER_SPECS.together, openAIModelDiscovery),
|
|
102
|
-
deepinfra: discoveryBackedCapabilities("deepinfra", DISCOVERY_BACKED_PROVIDER_SPECS.deepinfra, openAIModelDiscovery),
|
|
103
|
-
siliconflow: discoveryBackedCapabilities("siliconflow", DISCOVERY_BACKED_PROVIDER_SPECS.siliconflow, openAIModelDiscovery),
|
|
104
|
-
siliconflowcn: discoveryBackedCapabilities("siliconflowcn", DISCOVERY_BACKED_PROVIDER_SPECS.siliconflowcn, openAIModelDiscovery),
|
|
105
|
-
novita: discoveryBackedCapabilities("novita", DISCOVERY_BACKED_PROVIDER_SPECS.novita, openAIModelDiscovery),
|
|
106
|
-
larprouter: discoveryBackedCapabilities("larprouter", DISCOVERY_BACKED_PROVIDER_SPECS.larprouter, openAIModelDiscovery),
|
|
107
|
-
venice: discoveryBackedCapabilities("venice", DISCOVERY_BACKED_PROVIDER_SPECS.venice, openAIModelDiscovery),
|
|
108
|
-
nanogpt: discoveryBackedCapabilities("nanogpt", DISCOVERY_BACKED_PROVIDER_SPECS.nanogpt, openAIModelDiscovery),
|
|
109
|
-
baseten: discoveryBackedCapabilities("baseten", DISCOVERY_BACKED_PROVIDER_SPECS.baseten, openAIModelDiscovery),
|
|
110
|
-
synthetic: discoveryBackedCapabilities("synthetic", DISCOVERY_BACKED_PROVIDER_SPECS.synthetic, openAIModelDiscovery),
|
|
111
|
-
stepfun: discoveryBackedCapabilities("stepfun", DISCOVERY_BACKED_PROVIDER_SPECS.stepfun, openAIModelDiscovery),
|
|
112
|
-
sakana: discoveryBackedCapabilities("sakana", DISCOVERY_BACKED_PROVIDER_SPECS.sakana, openAIModelDiscovery),
|
|
113
|
-
helmcode: discoveryBackedCapabilities("helmcode", DISCOVERY_BACKED_PROVIDER_SPECS.helmcode, openAIModelDiscovery),
|
|
114
|
-
coralbricks: discoveryBackedCapabilities("coralbricks", DISCOVERY_BACKED_PROVIDER_SPECS.coralbricks, openAIModelDiscovery),
|
|
115
|
-
aiand: discoveryBackedCapabilities("aiand", DISCOVERY_BACKED_PROVIDER_SPECS.aiand, openAIModelDiscovery),
|
|
116
|
-
wafer: discoveryBackedCapabilities("wafer", DISCOVERY_BACKED_PROVIDER_SPECS.wafer, openAIModelDiscovery),
|
|
117
|
-
firepass: discoveryBackedCapabilities("firepass", DISCOVERY_BACKED_PROVIDER_SPECS.firepass, openAIModelDiscovery),
|
|
118
|
-
zhipucoding: discoveryBackedCapabilities("zhipucoding", DISCOVERY_BACKED_PROVIDER_SPECS.zhipucoding, openAIModelDiscovery),
|
|
119
|
-
dashscope: discoveryBackedCapabilities("dashscope", DISCOVERY_BACKED_PROVIDER_SPECS.dashscope, openAIModelDiscovery),
|
|
120
|
-
qianfan: discoveryBackedCapabilities("qianfan", DISCOVERY_BACKED_PROVIDER_SPECS.qianfan, openAIModelDiscovery),
|
|
121
|
-
};
|
|
122
|
-
}
|
|
1
|
+
import type { ProviderModule } from "./provider-registry";
|
|
2
|
+
import {
|
|
3
|
+
GENERIC_API_KEY_SPECS,
|
|
4
|
+
VERSIONED_ROOT_API_KEY_SPECS,
|
|
5
|
+
} from "./configured-openai-providers";
|
|
6
|
+
import { createApiKeyAdapter, type ApiKeyProviderSpec } from "./configured-provider";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Providers whose adapter and catalog discovery are the same bearer-auth
|
|
10
|
+
* OpenAI-compatible contract. Providers with static catalogs or additional
|
|
11
|
+
* upstream behavior remain declared beside their special handling.
|
|
12
|
+
*/
|
|
13
|
+
export const DISCOVERY_BACKED_PROVIDER_IDS = [
|
|
14
|
+
"groq",
|
|
15
|
+
"together",
|
|
16
|
+
"deepinfra",
|
|
17
|
+
"siliconflow",
|
|
18
|
+
"siliconflowcn",
|
|
19
|
+
"novita",
|
|
20
|
+
"larprouter",
|
|
21
|
+
"venice",
|
|
22
|
+
"nanogpt",
|
|
23
|
+
"baseten",
|
|
24
|
+
"synthetic",
|
|
25
|
+
"stepfun",
|
|
26
|
+
"sakana",
|
|
27
|
+
"helmcode",
|
|
28
|
+
"coralbricks",
|
|
29
|
+
"aiand",
|
|
30
|
+
"wafer",
|
|
31
|
+
"firepass",
|
|
32
|
+
"zhipucoding",
|
|
33
|
+
"dashscope",
|
|
34
|
+
"qianfan",
|
|
35
|
+
] as const;
|
|
36
|
+
|
|
37
|
+
export type DiscoveryBackedProviderId = (typeof DISCOVERY_BACKED_PROVIDER_IDS)[number];
|
|
38
|
+
|
|
39
|
+
type DiscoveryBackedCapabilities = Pick<
|
|
40
|
+
ProviderModule,
|
|
41
|
+
"endpointPathsByWireFamily" | "loadAdapter" | "loadModelDiscovery"
|
|
42
|
+
>;
|
|
43
|
+
|
|
44
|
+
type ModelDiscoveryFactory = NonNullable<ProviderModule["loadModelDiscovery"]>;
|
|
45
|
+
type OpenAIModelDiscoveryFactory = (
|
|
46
|
+
providerId: string,
|
|
47
|
+
options?: {
|
|
48
|
+
readonly headers?: (credential: string) => Readonly<Record<string, string>>;
|
|
49
|
+
},
|
|
50
|
+
) => ModelDiscoveryFactory;
|
|
51
|
+
|
|
52
|
+
const DISCOVERY_BACKED_PROVIDER_SPECS = {
|
|
53
|
+
groq: VERSIONED_ROOT_API_KEY_SPECS.groq,
|
|
54
|
+
larprouter: GENERIC_API_KEY_SPECS.larprouter,
|
|
55
|
+
together: GENERIC_API_KEY_SPECS.together,
|
|
56
|
+
deepinfra: VERSIONED_ROOT_API_KEY_SPECS.deepinfra,
|
|
57
|
+
siliconflow: GENERIC_API_KEY_SPECS.siliconflow,
|
|
58
|
+
siliconflowcn: GENERIC_API_KEY_SPECS.siliconflowcn,
|
|
59
|
+
novita: VERSIONED_ROOT_API_KEY_SPECS.novita,
|
|
60
|
+
venice: VERSIONED_ROOT_API_KEY_SPECS.venice,
|
|
61
|
+
nanogpt: GENERIC_API_KEY_SPECS.nanogpt,
|
|
62
|
+
baseten: GENERIC_API_KEY_SPECS.baseten,
|
|
63
|
+
synthetic: GENERIC_API_KEY_SPECS.synthetic,
|
|
64
|
+
stepfun: GENERIC_API_KEY_SPECS.stepfun,
|
|
65
|
+
sakana: GENERIC_API_KEY_SPECS.sakana,
|
|
66
|
+
helmcode: GENERIC_API_KEY_SPECS.helmcode,
|
|
67
|
+
coralbricks: GENERIC_API_KEY_SPECS.coralbricks,
|
|
68
|
+
aiand: GENERIC_API_KEY_SPECS.aiand,
|
|
69
|
+
wafer: GENERIC_API_KEY_SPECS.wafer,
|
|
70
|
+
firepass: VERSIONED_ROOT_API_KEY_SPECS.firepass,
|
|
71
|
+
zhipucoding: VERSIONED_ROOT_API_KEY_SPECS.zhipucoding,
|
|
72
|
+
dashscope: GENERIC_API_KEY_SPECS.dashscope,
|
|
73
|
+
qianfan: VERSIONED_ROOT_API_KEY_SPECS.qianfan,
|
|
74
|
+
} satisfies Readonly<Record<DiscoveryBackedProviderId, ApiKeyProviderSpec>>;
|
|
75
|
+
|
|
76
|
+
function discoveryBackedCapabilities(
|
|
77
|
+
providerId: DiscoveryBackedProviderId,
|
|
78
|
+
spec: ApiKeyProviderSpec,
|
|
79
|
+
openAIModelDiscovery: OpenAIModelDiscoveryFactory,
|
|
80
|
+
): DiscoveryBackedCapabilities {
|
|
81
|
+
return {
|
|
82
|
+
...(spec.endpoint_paths_by_wire_family === undefined
|
|
83
|
+
? {}
|
|
84
|
+
: { endpointPathsByWireFamily: spec.endpoint_paths_by_wire_family }),
|
|
85
|
+
loadAdapter: async () => createApiKeyAdapter(spec),
|
|
86
|
+
loadModelDiscovery: openAIModelDiscovery(providerId, {
|
|
87
|
+
headers: (credential) => ({ authorization: `Bearer ${credential}` }),
|
|
88
|
+
}),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Creates the standard provider capability table using the registry's shared
|
|
94
|
+
* discovery loader, keeping its lazy import and authentication behavior intact.
|
|
95
|
+
*/
|
|
96
|
+
export function createDiscoveryBackedProviderCapabilities(
|
|
97
|
+
openAIModelDiscovery: OpenAIModelDiscoveryFactory,
|
|
98
|
+
): Readonly<Record<DiscoveryBackedProviderId, DiscoveryBackedCapabilities>> {
|
|
99
|
+
return {
|
|
100
|
+
groq: discoveryBackedCapabilities("groq", DISCOVERY_BACKED_PROVIDER_SPECS.groq, openAIModelDiscovery),
|
|
101
|
+
together: discoveryBackedCapabilities("together", DISCOVERY_BACKED_PROVIDER_SPECS.together, openAIModelDiscovery),
|
|
102
|
+
deepinfra: discoveryBackedCapabilities("deepinfra", DISCOVERY_BACKED_PROVIDER_SPECS.deepinfra, openAIModelDiscovery),
|
|
103
|
+
siliconflow: discoveryBackedCapabilities("siliconflow", DISCOVERY_BACKED_PROVIDER_SPECS.siliconflow, openAIModelDiscovery),
|
|
104
|
+
siliconflowcn: discoveryBackedCapabilities("siliconflowcn", DISCOVERY_BACKED_PROVIDER_SPECS.siliconflowcn, openAIModelDiscovery),
|
|
105
|
+
novita: discoveryBackedCapabilities("novita", DISCOVERY_BACKED_PROVIDER_SPECS.novita, openAIModelDiscovery),
|
|
106
|
+
larprouter: discoveryBackedCapabilities("larprouter", DISCOVERY_BACKED_PROVIDER_SPECS.larprouter, openAIModelDiscovery),
|
|
107
|
+
venice: discoveryBackedCapabilities("venice", DISCOVERY_BACKED_PROVIDER_SPECS.venice, openAIModelDiscovery),
|
|
108
|
+
nanogpt: discoveryBackedCapabilities("nanogpt", DISCOVERY_BACKED_PROVIDER_SPECS.nanogpt, openAIModelDiscovery),
|
|
109
|
+
baseten: discoveryBackedCapabilities("baseten", DISCOVERY_BACKED_PROVIDER_SPECS.baseten, openAIModelDiscovery),
|
|
110
|
+
synthetic: discoveryBackedCapabilities("synthetic", DISCOVERY_BACKED_PROVIDER_SPECS.synthetic, openAIModelDiscovery),
|
|
111
|
+
stepfun: discoveryBackedCapabilities("stepfun", DISCOVERY_BACKED_PROVIDER_SPECS.stepfun, openAIModelDiscovery),
|
|
112
|
+
sakana: discoveryBackedCapabilities("sakana", DISCOVERY_BACKED_PROVIDER_SPECS.sakana, openAIModelDiscovery),
|
|
113
|
+
helmcode: discoveryBackedCapabilities("helmcode", DISCOVERY_BACKED_PROVIDER_SPECS.helmcode, openAIModelDiscovery),
|
|
114
|
+
coralbricks: discoveryBackedCapabilities("coralbricks", DISCOVERY_BACKED_PROVIDER_SPECS.coralbricks, openAIModelDiscovery),
|
|
115
|
+
aiand: discoveryBackedCapabilities("aiand", DISCOVERY_BACKED_PROVIDER_SPECS.aiand, openAIModelDiscovery),
|
|
116
|
+
wafer: discoveryBackedCapabilities("wafer", DISCOVERY_BACKED_PROVIDER_SPECS.wafer, openAIModelDiscovery),
|
|
117
|
+
firepass: discoveryBackedCapabilities("firepass", DISCOVERY_BACKED_PROVIDER_SPECS.firepass, openAIModelDiscovery),
|
|
118
|
+
zhipucoding: discoveryBackedCapabilities("zhipucoding", DISCOVERY_BACKED_PROVIDER_SPECS.zhipucoding, openAIModelDiscovery),
|
|
119
|
+
dashscope: discoveryBackedCapabilities("dashscope", DISCOVERY_BACKED_PROVIDER_SPECS.dashscope, openAIModelDiscovery),
|
|
120
|
+
qianfan: discoveryBackedCapabilities("qianfan", DISCOVERY_BACKED_PROVIDER_SPECS.qianfan, openAIModelDiscovery),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
@@ -238,6 +238,11 @@ export const PROVIDER_CAPABILITIES = {
|
|
|
238
238
|
loadModels: async () => (await import("./integrations/codex/codex")).CODEX_MODELS,
|
|
239
239
|
loadAuthentication: oauthCapability(() => import("./integrations/codex/codex-oauth"), "codexOAuthClient", { withRefresher: true }),
|
|
240
240
|
loadQuotaCollector: quotaCapability(() => import("./integrations/codex/codex-quota"), "fetchCodexQuota"),
|
|
241
|
+
loadModelDiscovery: async () => async ({ credential, fetcher }) =>
|
|
242
|
+
(await import("./integrations/codex/codex")).discoverCodexModels({
|
|
243
|
+
credential,
|
|
244
|
+
...(fetcher === undefined ? {} : { fetcher }),
|
|
245
|
+
}),
|
|
241
246
|
},
|
|
242
247
|
grok: {
|
|
243
248
|
loadAdapter: async () => (await import("./integrations/grok/grok")).grokAdapter,
|
|
@@ -527,7 +532,12 @@ export const PROVIDER_CAPABILITIES = {
|
|
|
527
532
|
},
|
|
528
533
|
inferhub: {
|
|
529
534
|
loadAdapter: async () => (await import("./integrations/inferhub")).createInferhubAdapter(),
|
|
535
|
+
// Live `/v1/models` is the primary source: the marketplace republishes its
|
|
536
|
+
// whole roster and it moves faster than a committed array can. The static
|
|
537
|
+
// list stays as the offline fallback when the fetch fails.
|
|
530
538
|
loadModels: async () => (await import("./integrations/inferhub")).INFERHUB_MODELS,
|
|
539
|
+
loadModelDiscovery: async () =>
|
|
540
|
+
(await import("./integrations/inferhub")).inferhubModelDiscovery()(),
|
|
531
541
|
loadQuotaCollector: quotaCapability(() => import("./integrations/inferhub"), "fetchInferhubQuota"),
|
|
532
542
|
},
|
|
533
543
|
hermes: {
|