mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-23 15:42:12 +03:00
feat(sse): add STRICT_ZERO_COST opt-in free-access policy (#10965)
⭐5 — freeAccessPolicy "strict" opt-in (default off): verifica candidatos de auto-combo contra estado de quota ao vivo + segurança econômica por conexão antes do dispatch (fail-closed — estado desconhecido/stale/incompleto é excluído). Zero mudança de comportamento com o default "off". 82 testes focados, eslint/prettier/typecheck limpos, docs em docs/routing/STRICT_ZERO_COST.md.
This commit is contained in:
@@ -128,6 +128,16 @@ export const updateSettingsSchema = z.object({
|
||||
blockedProviders: z.array(z.string().max(100)).optional(),
|
||||
noAuthFallbackDisabledProviders: z.array(z.string().max(100)).optional(),
|
||||
hidePaidModels: z.boolean().optional(),
|
||||
// STRICT_ZERO_COST (opt-in, default "off"): stricter than hidePaidModels — a
|
||||
// candidate must be keyless (no credential exists, so no request against it
|
||||
// can ever be billed) OR pass a live, fresh, hard-stop-guaranteed quota
|
||||
// check, per candidate, before ranking/dispatch. See
|
||||
// open-sse/services/autoCombo/strictZeroCostFilter.ts.
|
||||
freeAccessPolicy: z.enum(["off", "strict"]).optional(),
|
||||
// Separate from freeAccessPolicy on purpose: excludes candidates whose
|
||||
// curated `tos` verdict is "avoid" (proxy/self-hosted use conflicts with the
|
||||
// provider's own terms) — a contractual concern, not an economic one.
|
||||
excludeTosAvoid: z.boolean().optional(),
|
||||
hideHealthCheckLogs: z.boolean().optional(),
|
||||
hideEndpointCloudflaredTunnel: z.boolean().optional(),
|
||||
hideEndpointTailscaleFunnel: z.boolean().optional(),
|
||||
|
||||
Reference in New Issue
Block a user