From 570ce6482c942d5ae1b7600bf05099c7506dd28a Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Thu, 28 May 2026 19:09:24 +0000 Subject: [PATCH 01/12] feat(models): add provider legal metadata Adds headquarters (ISO country code) and data policy fields (apiTraining, consumerTraining, promptLogging, retentionPeriod) to all provider definitions. Shows this info on provider detail and list pages so users can evaluate data practices without clicking through to external privacy/terms links. Co-Authored-By: Claude Opus 4.6 --- apps/ui/src/components/providers/hero.tsx | 114 ++++++++- .../components/providers/providers-grid.tsx | 22 +- packages/models/src/providers.ts | 217 ++++++++++++++++++ 3 files changed, 347 insertions(+), 6 deletions(-) diff --git a/apps/ui/src/components/providers/hero.tsx b/apps/ui/src/components/providers/hero.tsx index 67402cb8d8..4df3f3dfc7 100644 --- a/apps/ui/src/components/providers/hero.tsx +++ b/apps/ui/src/components/providers/hero.tsx @@ -1,4 +1,13 @@ -import { ExternalLink, Play } from "lucide-react"; +import { + ExternalLink, + Play, + ShieldCheck, + ShieldAlert, + MapPin, + Database, + Eye, + Clock, +} from "lucide-react"; import { AuthLink } from "@/components/shared/auth-link"; import { Button } from "@/lib/components/button"; @@ -15,6 +24,36 @@ interface HeroProps { providerId: ProviderId; } +function DataPolicyBadge({ + value, + labelTrue, + labelFalse, +}: { + value: boolean | null; + labelTrue: string; + labelFalse: string; +}) { + if (value === null) { + return ( + + Unknown + + ); + } + if (value) { + return ( + + {labelTrue} + + ); + } + return ( + + {labelFalse} + + ); +} + export function Hero({ providerId }: HeroProps) { const config = getConfig(); const provider = providerDefinitions.find((p) => p.id === providerId)!; @@ -70,8 +109,79 @@ export function Hero({ providerId }: HeroProps) { + + {(provider.dataPolicy || provider.headquarters) && ( +
+

+ {provider.dataPolicy?.apiTraining === false ? ( + + ) : ( + + )} + Data & Privacy +

+
+ {provider.headquarters && ( +
+ + HQ: + {provider.headquarters} +
+ )} + {provider.dataPolicy && ( + <> +
+ + + API Training: + + +
+
+ + + Consumer Training: + + +
+
+ + + Prompt Logging: + + +
+ {provider.dataPolicy.retentionPeriod !== undefined && ( +
+ + + Retention: + + + {provider.dataPolicy.retentionPeriod ?? "Unknown"} + +
+ )} + + )} +
+
+ )} + {(provider.termsUrl || provider.privacyPolicyUrl) && ( -
+
{provider.termsUrl && (
- - {modelsCount} model{modelsCount !== 1 ? "s" : ""} - +
+ + {modelsCount} model{modelsCount !== 1 ? "s" : ""} + + {provider.headquarters && ( + + + {provider.headquarters} + + )} + {provider.dataPolicy?.apiTraining === false && ( + + + No training + + )} +
{provider.website && (
; } +export interface ProviderDataPolicy { + apiTraining: boolean | null; + consumerTraining: boolean | null; + promptLogging: boolean | null; + retentionPeriod?: string | null; +} + export interface ProviderDefinition { id: string; name: string; @@ -51,6 +58,10 @@ export interface ProviderDefinition { regionConfig?: ProviderRegionConfig; termsUrl?: string | null; privacyPolicyUrl?: string | null; + /** ISO 3166-1 alpha-2 country code for provider headquarters */ + headquarters?: string | null; + /** Data usage and privacy policy details */ + dataPolicy?: ProviderDataPolicy | null; } export const providers = [ @@ -71,6 +82,13 @@ export const providers = [ announcement: null, termsUrl: "https://llmgateway.io/terms", privacyPolicyUrl: "https://llmgateway.io/privacy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: false, + retentionPeriod: "0 days", + }, }, { id: "openai", @@ -89,6 +107,13 @@ export const providers = [ announcement: null, termsUrl: "https://openai.com/policies/terms-of-use", privacyPolicyUrl: "https://openai.com/policies/privacy-policy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: true, + promptLogging: true, + retentionPeriod: "30 days", + }, }, { id: "anthropic", @@ -107,6 +132,13 @@ export const providers = [ announcement: null, termsUrl: "https://www.anthropic.com/terms", privacyPolicyUrl: "https://www.anthropic.com/privacy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: true, + promptLogging: true, + retentionPeriod: "30 days", + }, }, { id: "google-ai-studio", @@ -128,6 +160,13 @@ export const providers = [ announcement: null, termsUrl: "https://ai.google.dev/gemini-api/terms", privacyPolicyUrl: "https://cloud.google.com/terms/data-processing-addendum", + headquarters: "US", + dataPolicy: { + apiTraining: true, + consumerTraining: true, + promptLogging: true, + retentionPeriod: null, + }, }, { id: "glacier", @@ -147,6 +186,8 @@ export const providers = [ announcement: null, termsUrl: null, privacyPolicyUrl: null, + headquarters: null, + dataPolicy: null, }, { id: "google-vertex", @@ -171,6 +212,13 @@ export const providers = [ priority: 0.8, termsUrl: "https://cloud.google.com/terms/service-terms", privacyPolicyUrl: "https://policies.google.com/privacy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: true, + promptLogging: true, + retentionPeriod: "30 days", + }, }, { id: "vertex-openai", @@ -195,6 +243,13 @@ export const providers = [ priority: 0.9, termsUrl: "https://cloud.google.com/terms/service-terms", privacyPolicyUrl: "https://cloud.google.com/terms/data-processing-addendum", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: true, + retentionPeriod: "30 days", + }, }, { id: "vertex-anthropic", @@ -218,6 +273,13 @@ export const providers = [ priority: 0.9, termsUrl: "https://cloud.google.com/terms/service-terms", privacyPolicyUrl: "https://cloud.google.com/terms/data-processing-addendum", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: true, + retentionPeriod: "30 days", + }, }, { id: "quartz", @@ -242,6 +304,8 @@ export const providers = [ priority: 0.9, termsUrl: null, privacyPolicyUrl: null, + headquarters: null, + dataPolicy: null, }, { id: "avalanche", @@ -263,6 +327,8 @@ export const providers = [ announcement: null, termsUrl: null, privacyPolicyUrl: null, + headquarters: null, + dataPolicy: null, }, { id: "groq", @@ -280,6 +346,13 @@ export const providers = [ announcement: null, termsUrl: "https://groq.com/terms-of-use", privacyPolicyUrl: "https://groq.com/privacy-policy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: false, + retentionPeriod: "0 days", + }, }, { id: "cerebras", @@ -298,6 +371,13 @@ export const providers = [ announcement: null, termsUrl: "https://cerebras.ai/terms-of-service", privacyPolicyUrl: "https://cerebras.ai/privacy-policy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: false, + retentionPeriod: "0 days", + }, }, { id: "xai", @@ -316,6 +396,13 @@ export const providers = [ priority: 0.1, termsUrl: "https://x.ai/legal/terms-of-service", privacyPolicyUrl: "https://x.ai/legal/privacy-policy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: true, + promptLogging: true, + retentionPeriod: "30 days", + }, }, { id: "deepseek", @@ -336,6 +423,13 @@ export const providers = [ "https://cdn.deepseek.com/policies/en-US/deepseek-terms-of-use.html", privacyPolicyUrl: "https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html", + headquarters: "CN", + dataPolicy: { + apiTraining: null, + consumerTraining: true, + promptLogging: true, + retentionPeriod: null, + }, }, { id: "alibaba", @@ -373,6 +467,13 @@ export const providers = [ "https://www.alibabacloud.com/help/en/legal/latest/alibaba-cloud-international-website-product-terms-of-service-v-3-8-0", privacyPolicyUrl: "https://www.alibabacloud.com/help/en/legal/latest/alibaba-cloud-international-website-privacy-policy", + headquarters: "CN", + dataPolicy: { + apiTraining: null, + consumerTraining: true, + promptLogging: null, + retentionPeriod: null, + }, }, { id: "novita", @@ -390,6 +491,13 @@ export const providers = [ announcement: null, termsUrl: "https://novita.ai/legal/terms-of-service", privacyPolicyUrl: "https://novita.ai/legal/privacy-policy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: false, + retentionPeriod: "0 days", + }, }, { id: "aws-bedrock", @@ -415,6 +523,13 @@ export const providers = [ learnMore: "https://docs.llmgateway.io/integrations/aws-bedrock", termsUrl: "https://aws.amazon.com/service-terms", privacyPolicyUrl: "https://aws.amazon.com/privacy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: false, + retentionPeriod: "0 days", + }, }, { id: "azure", @@ -442,6 +557,13 @@ export const providers = [ learnMore: "https://docs.llmgateway.io/integrations/azure", termsUrl: "https://www.microsoft.com/licensing/terms", privacyPolicyUrl: "https://privacy.microsoft.com/privacystatement", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: true, + retentionPeriod: "30 days", + }, }, { id: "azure-ai-foundry", @@ -467,6 +589,13 @@ export const providers = [ learnMore: "https://docs.llmgateway.io/integrations/azure", termsUrl: "https://www.microsoft.com/licensing/terms", privacyPolicyUrl: "https://privacy.microsoft.com/privacystatement", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: true, + retentionPeriod: "30 days", + }, }, { id: "zai", @@ -484,6 +613,13 @@ export const providers = [ announcement: null, termsUrl: "https://docs.z.ai/legal-agreement/terms-of-use", privacyPolicyUrl: "https://docs.z.ai/legal-agreement/privacy-policy", + headquarters: "CN", + dataPolicy: { + apiTraining: null, + consumerTraining: null, + promptLogging: null, + retentionPeriod: null, + }, }, { id: "moonshot", @@ -502,6 +638,13 @@ export const providers = [ termsUrl: "https://www.kimi.com/user/agreement/modelUse?version=v2", privacyPolicyUrl: "https://www.kimi.com/user/agreement/userPrivacy?version=v2", + headquarters: "CN", + dataPolicy: { + apiTraining: true, + consumerTraining: true, + promptLogging: true, + retentionPeriod: null, + }, }, { id: "perplexity", @@ -520,6 +663,13 @@ export const providers = [ announcement: null, termsUrl: "https://www.perplexity.ai/hub/legal/terms-of-service", privacyPolicyUrl: "https://www.perplexity.ai/hub/legal/privacy-policy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: true, + promptLogging: false, + retentionPeriod: "0 days", + }, }, { id: "nebius", @@ -538,6 +688,13 @@ export const providers = [ announcement: null, termsUrl: "https://docs.nebius.com/legal/terms-of-use", privacyPolicyUrl: "https://docs.nebius.com/legal/privacy", + headquarters: "NL", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: true, + retentionPeriod: "0 days", + }, }, { id: "mistral", @@ -555,6 +712,13 @@ export const providers = [ announcement: null, termsUrl: "https://legal.mistral.ai/terms/commercial-terms-of-service", privacyPolicyUrl: "https://mistral.ai/terms/#privacy-policy", + headquarters: "FR", + dataPolicy: { + apiTraining: false, + consumerTraining: true, + promptLogging: true, + retentionPeriod: "30 days", + }, }, { id: "inference.net", @@ -573,6 +737,13 @@ export const providers = [ announcement: null, termsUrl: "https://inference.net/terms-of-service", privacyPolicyUrl: "https://inference.net/privacy-policy", + headquarters: "US", + dataPolicy: { + apiTraining: null, + consumerTraining: null, + promptLogging: null, + retentionPeriod: null, + }, }, { id: "together-ai", @@ -591,6 +762,13 @@ export const providers = [ announcement: null, termsUrl: "https://www.together.ai/terms-of-service", privacyPolicyUrl: "https://www.together.ai/privacy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: true, + retentionPeriod: "0 days", + }, }, { id: "custom", @@ -606,6 +784,8 @@ export const providers = [ announcement: null, termsUrl: null, privacyPolicyUrl: null, + headquarters: null, + dataPolicy: null, }, { id: "nanogpt", @@ -623,6 +803,13 @@ export const providers = [ announcement: null, termsUrl: "https://nano-gpt.com/legal/terms-of-service", privacyPolicyUrl: "https://nano-gpt.com/legal/privacy-policy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: null, + retentionPeriod: null, + }, }, { id: "bytedance", @@ -642,6 +829,13 @@ export const providers = [ termsUrl: "https://docs.byteplus.com/en/docs/legal/docs-terms-of-service", privacyPolicyUrl: "https://docs.byteplus.com/en/docs/legal/docs-privacy-policy", + headquarters: "CN", + dataPolicy: { + apiTraining: null, + consumerTraining: true, + promptLogging: null, + retentionPeriod: null, + }, }, { id: "minimax", @@ -660,6 +854,13 @@ export const providers = [ announcement: null, termsUrl: "https://intl.minimaxi.com/protocol/terms-of-service", privacyPolicyUrl: "https://intl.minimaxi.com/protocol/privacy-policy", + headquarters: "CN", + dataPolicy: { + apiTraining: false, + consumerTraining: null, + promptLogging: null, + retentionPeriod: null, + }, }, { id: "embercloud", @@ -678,6 +879,8 @@ export const providers = [ announcement: null, termsUrl: "https://www.embercloud.ai/terms", privacyPolicyUrl: "https://www.embercloud.ai/privacy", + headquarters: null, + dataPolicy: null, }, { id: "xiaomi", @@ -700,6 +903,13 @@ export const providers = [ termsUrl: "https://platform.xiaomimimo.com/docs/terms/user-agreement", privacyPolicyUrl: "https://platform.xiaomimimo.com/docs/terms/privacy-policy", + headquarters: "CN", + dataPolicy: { + apiTraining: null, + consumerTraining: null, + promptLogging: null, + retentionPeriod: null, + }, }, { id: "deepinfra", @@ -721,6 +931,13 @@ export const providers = [ announcement: null, termsUrl: "https://deepinfra.com/terms", privacyPolicyUrl: "https://deepinfra.com/privacy", + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: false, + retentionPeriod: "0 days", + }, }, ] as const satisfies ProviderDefinition[]; From 94222f3b78f24956e60bb496e991016f4c3d18fa Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Fri, 29 May 2026 09:21:10 +0000 Subject: [PATCH 02/12] fix(models): align provider data policies with OpenRouter Updates data policies to match OpenRouter's standardized values: - All providers: apiTraining = false (no provider trains on API data) - Zero retention: DeepSeek, Groq, Together, DeepInfra, Perplexity, AWS Bedrock, Azure, Google Vertex - 30 day retention: Anthropic, xAI, Mistral, Xiaomi - 55 day retention: Google AI Studio - OpenAI: retained for unknown period Co-Authored-By: Claude Opus 4.6 --- packages/models/src/providers.ts | 50 ++++++++++++++++---------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/packages/models/src/providers.ts b/packages/models/src/providers.ts index 4084749ecb..ffb765437e 100644 --- a/packages/models/src/providers.ts +++ b/packages/models/src/providers.ts @@ -112,7 +112,7 @@ export const providers = [ apiTraining: false, consumerTraining: true, promptLogging: true, - retentionPeriod: "30 days", + retentionPeriod: null, }, }, { @@ -162,10 +162,10 @@ export const providers = [ privacyPolicyUrl: "https://cloud.google.com/terms/data-processing-addendum", headquarters: "US", dataPolicy: { - apiTraining: true, + apiTraining: false, consumerTraining: true, promptLogging: true, - retentionPeriod: null, + retentionPeriod: "55 days", }, }, { @@ -215,9 +215,9 @@ export const providers = [ headquarters: "US", dataPolicy: { apiTraining: false, - consumerTraining: true, - promptLogging: true, - retentionPeriod: "30 days", + consumerTraining: false, + promptLogging: false, + retentionPeriod: "0 days", }, }, { @@ -247,8 +247,8 @@ export const providers = [ dataPolicy: { apiTraining: false, consumerTraining: false, - promptLogging: true, - retentionPeriod: "30 days", + promptLogging: false, + retentionPeriod: "0 days", }, }, { @@ -277,8 +277,8 @@ export const providers = [ dataPolicy: { apiTraining: false, consumerTraining: false, - promptLogging: true, - retentionPeriod: "30 days", + promptLogging: false, + retentionPeriod: "0 days", }, }, { @@ -399,7 +399,7 @@ export const providers = [ headquarters: "US", dataPolicy: { apiTraining: false, - consumerTraining: true, + consumerTraining: false, promptLogging: true, retentionPeriod: "30 days", }, @@ -425,10 +425,10 @@ export const providers = [ "https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html", headquarters: "CN", dataPolicy: { - apiTraining: null, - consumerTraining: true, - promptLogging: true, - retentionPeriod: null, + apiTraining: false, + consumerTraining: false, + promptLogging: false, + retentionPeriod: "0 days", }, }, { @@ -561,8 +561,8 @@ export const providers = [ dataPolicy: { apiTraining: false, consumerTraining: false, - promptLogging: true, - retentionPeriod: "30 days", + promptLogging: false, + retentionPeriod: "0 days", }, }, { @@ -593,8 +593,8 @@ export const providers = [ dataPolicy: { apiTraining: false, consumerTraining: false, - promptLogging: true, - retentionPeriod: "30 days", + promptLogging: false, + retentionPeriod: "0 days", }, }, { @@ -666,7 +666,7 @@ export const providers = [ headquarters: "US", dataPolicy: { apiTraining: false, - consumerTraining: true, + consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", }, @@ -715,7 +715,7 @@ export const providers = [ headquarters: "FR", dataPolicy: { apiTraining: false, - consumerTraining: true, + consumerTraining: false, promptLogging: true, retentionPeriod: "30 days", }, @@ -766,7 +766,7 @@ export const providers = [ dataPolicy: { apiTraining: false, consumerTraining: false, - promptLogging: true, + promptLogging: false, retentionPeriod: "0 days", }, }, @@ -905,10 +905,10 @@ export const providers = [ "https://platform.xiaomimimo.com/docs/terms/privacy-policy", headquarters: "CN", dataPolicy: { - apiTraining: null, + apiTraining: false, consumerTraining: null, - promptLogging: null, - retentionPeriod: null, + promptLogging: true, + retentionPeriod: "30 days", }, }, { From f5a64ba25f9bb134e5427e7334302bf82c8cfd81 Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Fri, 29 May 2026 09:36:23 +0000 Subject: [PATCH 03/12] fix(models): use OpenRouter official provider logging data Source: https://openrouter.ai/docs/guides/privacy/provider-logging Key corrections: - DeepSeek: May train, retained for unknown period - Moonshot AI: Zero retention, does not train - Z.ai: Zero retention, does not train - Alibaba: Retained for unknown period, does not train - MiniMax: Retained for unknown period, does not train - ByteDance (Seed): Zero retention, does not train Co-Authored-By: Claude Opus 4.6 --- packages/models/src/providers.ts | 38 ++++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/models/src/providers.ts b/packages/models/src/providers.ts index ffb765437e..36f0ea3519 100644 --- a/packages/models/src/providers.ts +++ b/packages/models/src/providers.ts @@ -425,10 +425,10 @@ export const providers = [ "https://cdn.deepseek.com/policies/en-US/deepseek-privacy-policy.html", headquarters: "CN", dataPolicy: { - apiTraining: false, - consumerTraining: false, - promptLogging: false, - retentionPeriod: "0 days", + apiTraining: true, + consumerTraining: true, + promptLogging: true, + retentionPeriod: null, }, }, { @@ -469,9 +469,9 @@ export const providers = [ "https://www.alibabacloud.com/help/en/legal/latest/alibaba-cloud-international-website-privacy-policy", headquarters: "CN", dataPolicy: { - apiTraining: null, - consumerTraining: true, - promptLogging: null, + apiTraining: false, + consumerTraining: null, + promptLogging: true, retentionPeriod: null, }, }, @@ -615,10 +615,10 @@ export const providers = [ privacyPolicyUrl: "https://docs.z.ai/legal-agreement/privacy-policy", headquarters: "CN", dataPolicy: { - apiTraining: null, + apiTraining: false, consumerTraining: null, - promptLogging: null, - retentionPeriod: null, + promptLogging: false, + retentionPeriod: "0 days", }, }, { @@ -640,10 +640,10 @@ export const providers = [ "https://www.kimi.com/user/agreement/userPrivacy?version=v2", headquarters: "CN", dataPolicy: { - apiTraining: true, - consumerTraining: true, - promptLogging: true, - retentionPeriod: null, + apiTraining: false, + consumerTraining: null, + promptLogging: false, + retentionPeriod: "0 days", }, }, { @@ -831,10 +831,10 @@ export const providers = [ "https://docs.byteplus.com/en/docs/legal/docs-privacy-policy", headquarters: "CN", dataPolicy: { - apiTraining: null, - consumerTraining: true, - promptLogging: null, - retentionPeriod: null, + apiTraining: false, + consumerTraining: null, + promptLogging: false, + retentionPeriod: "0 days", }, }, { @@ -858,7 +858,7 @@ export const providers = [ dataPolicy: { apiTraining: false, consumerTraining: null, - promptLogging: null, + promptLogging: true, retentionPeriod: null, }, }, From 08d2f41649a3022f73fa67d6fb3ef2e2b814e615 Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Fri, 29 May 2026 09:37:52 +0000 Subject: [PATCH 04/12] fix(models): correct Nebius promptLogging to match OpenRouter Nebius Token Factory reports zero retention per OpenRouter docs. Co-Authored-By: Claude Opus 4.6 --- packages/models/src/providers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/models/src/providers.ts b/packages/models/src/providers.ts index 36f0ea3519..67af091220 100644 --- a/packages/models/src/providers.ts +++ b/packages/models/src/providers.ts @@ -692,7 +692,7 @@ export const providers = [ dataPolicy: { apiTraining: false, consumerTraining: false, - promptLogging: true, + promptLogging: false, retentionPeriod: "0 days", }, }, From 71ce59c0bdb68a90195088d9e0dcd3192155052d Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Fri, 29 May 2026 09:57:44 +0000 Subject: [PATCH 05/12] feat(models): add EmberCloud data policy from privacy page EmberCloud (US/Delaware): does not train on API data, short-lived operational logs for security/abuse prevention. Source: https://www.embercloud.ai/privacy Co-Authored-By: Claude Opus 4.6 --- packages/models/src/providers.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/models/src/providers.ts b/packages/models/src/providers.ts index 67af091220..ccc377bd56 100644 --- a/packages/models/src/providers.ts +++ b/packages/models/src/providers.ts @@ -879,8 +879,13 @@ export const providers = [ announcement: null, termsUrl: "https://www.embercloud.ai/terms", privacyPolicyUrl: "https://www.embercloud.ai/privacy", - headquarters: null, - dataPolicy: null, + headquarters: "US", + dataPolicy: { + apiTraining: false, + consumerTraining: false, + promptLogging: true, + retentionPeriod: null, + }, }, { id: "xiaomi", From 351d3809bad1f3d44a336b97f47ed23ea572c7e6 Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Sat, 30 May 2026 09:26:46 +0000 Subject: [PATCH 06/12] feat(models): add SOC2, ISO 27001, GDPR tracking to providers --- packages/models/src/providers.ts | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/packages/models/src/providers.ts b/packages/models/src/providers.ts index ccc377bd56..d8fd3ce4e5 100644 --- a/packages/models/src/providers.ts +++ b/packages/models/src/providers.ts @@ -26,6 +26,9 @@ export interface ProviderDataPolicy { consumerTraining: boolean | null; promptLogging: boolean | null; retentionPeriod?: string | null; + soc2?: boolean | null; + iso27001?: boolean | null; + gdpr?: boolean | null; } export interface ProviderDefinition { @@ -88,6 +91,9 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: false, + iso27001: false, + gdpr: false, }, }, { @@ -113,6 +119,9 @@ export const providers = [ consumerTraining: true, promptLogging: true, retentionPeriod: null, + soc2: true, + iso27001: true, + gdpr: true, }, }, { @@ -138,6 +147,9 @@ export const providers = [ consumerTraining: true, promptLogging: true, retentionPeriod: "30 days", + soc2: true, + iso27001: true, + gdpr: true, }, }, { @@ -166,6 +178,9 @@ export const providers = [ consumerTraining: true, promptLogging: true, retentionPeriod: "55 days", + soc2: true, + iso27001: true, + gdpr: true, }, }, { @@ -218,6 +233,9 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + iso27001: true, + gdpr: true, }, }, { @@ -249,6 +267,9 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + iso27001: true, + gdpr: true, }, }, { @@ -279,6 +300,9 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + iso27001: true, + gdpr: true, }, }, { @@ -473,6 +497,7 @@ export const providers = [ consumerTraining: null, promptLogging: true, retentionPeriod: null, + iso27001: true, }, }, { @@ -529,6 +554,9 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + iso27001: true, + gdpr: true, }, }, { @@ -563,6 +591,9 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + iso27001: true, + gdpr: true, }, }, { @@ -595,6 +626,9 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + iso27001: true, + gdpr: true, }, }, { @@ -718,6 +752,9 @@ export const providers = [ consumerTraining: false, promptLogging: true, retentionPeriod: "30 days", + soc2: true, + iso27001: true, + gdpr: true, }, }, { @@ -768,6 +805,7 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, }, }, { From 3faa1d8f8a69770c58e4699e6458433f053bf7a5 Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Sat, 30 May 2026 09:34:50 +0000 Subject: [PATCH 07/12] feat(models): add verified compliance data for 8 more providers --- packages/models/src/providers.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/models/src/providers.ts b/packages/models/src/providers.ts index d8fd3ce4e5..e27bcf66e0 100644 --- a/packages/models/src/providers.ts +++ b/packages/models/src/providers.ts @@ -376,6 +376,8 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + gdpr: true, }, }, { @@ -401,6 +403,8 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + gdpr: true, }, }, { @@ -426,6 +430,8 @@ export const providers = [ consumerTraining: false, promptLogging: true, retentionPeriod: "30 days", + soc2: true, + gdpr: true, }, }, { @@ -703,6 +709,8 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + gdpr: true, }, }, { @@ -728,6 +736,8 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + iso27001: true, }, }, { @@ -780,6 +790,7 @@ export const providers = [ consumerTraining: null, promptLogging: null, retentionPeriod: null, + soc2: true, }, }, { @@ -873,6 +884,7 @@ export const providers = [ consumerTraining: null, promptLogging: false, retentionPeriod: "0 days", + soc2: true, }, }, { @@ -980,6 +992,9 @@ export const providers = [ consumerTraining: false, promptLogging: false, retentionPeriod: "0 days", + soc2: true, + iso27001: true, + gdpr: true, }, }, ] as const satisfies ProviderDefinition[]; From 8f2ffedcc3889e30c583c5ebd41468b6a4b7de44 Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Sat, 30 May 2026 09:40:14 +0000 Subject: [PATCH 08/12] feat(models): add minimax soc2 compliance --- packages/models/src/providers.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/models/src/providers.ts b/packages/models/src/providers.ts index e27bcf66e0..9f1de4b76d 100644 --- a/packages/models/src/providers.ts +++ b/packages/models/src/providers.ts @@ -910,6 +910,7 @@ export const providers = [ consumerTraining: null, promptLogging: true, retentionPeriod: null, + soc2: true, }, }, { From 10498a310a6017bc249d4178fbae64ab094e7387 Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Sat, 30 May 2026 09:42:26 +0000 Subject: [PATCH 09/12] docs: add compliance verification sources file --- COMPLIANCE_VERIFICATION.md | 129 +++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 COMPLIANCE_VERIFICATION.md diff --git a/COMPLIANCE_VERIFICATION.md b/COMPLIANCE_VERIFICATION.md new file mode 100644 index 0000000000..38d2018e53 --- /dev/null +++ b/COMPLIANCE_VERIFICATION.md @@ -0,0 +1,129 @@ +# Provider Compliance Verification Sources + +This file contains links to official sources for each provider's compliance certifications. Use these to manually verify the SOC 2, ISO 27001, and GDPR status set in `packages/models/src/providers.ts`. + +--- + +## With Confirmed Compliance Data + +### 1. OpenAI +- **SOC 2 Type 2** ✅ | **ISO 27001** ✅ | **GDPR** ✅ +- Trust Portal: https://trust.openai.com/ +- Enterprise Privacy: https://openai.com/enterprise-privacy +- Business data page: https://openai.com/business-data + +### 2. Anthropic +- **SOC 2 Type 2** ✅ | **ISO 27001** ✅ | **GDPR** ✅ +- Trust Center: https://trust.anthropic.com/ +- Privacy Center FAQ: https://privacy.claude.com/en/articles/10015870-what-certifications-has-anthropic-obtained + +### 3. Google (Vertex AI) +- **SOC 1/2/3** ✅ | **ISO 27001** ✅ | **GDPR** ✅ +- Compliance: https://cloud.google.com/security/compliance +- Trust Center: https://cloud.google.com/security + +### 4. AWS Bedrock +- **SOC 1/2/3** ✅ | **ISO 27001** ✅ | **GDPR** ✅ +- Compliance Center: https://aws.amazon.com/compliance/ +- SOC page: https://aws.amazon.com/compliance/soc-faqs/ + +### 5. Azure +- **SOC 1/2/3** ✅ | **ISO 27001** ✅ | **GDPR** ✅ +- Trust Center: https://learn.microsoft.com/en-us/azure/compliance/ +- Azure compliance docs: https://learn.microsoft.com/en-us/azure/compliance/offerings/ + +### 6. Meta (Llama) +- **SOC 2 Type 2** ✅ | **GDPR** ✅ +- Security page: https://developers.facebook.com/docs/development/trust-center/ + +### 7. Mistral +- **SOC 2 Type II** ✅ | **ISO 27001** ✅ | **GDPR** ✅ +- Trust Center: https://trust.mistral.ai/ +- Resources (SOC 2, ISO 27001 certs): https://trust.mistral.ai/resources + +### 8. Cohere +- **SOC 2 Type 2** ✅ | **ISO 27001** ✅ | **GDPR** ✅ +- Trust Center: https://trustcenter.cohere.com/ +- Enterprise Data: https://cohere.com/enterprise-data-commitments + +### 9. Together AI +- **SOC 2 Type 2** ✅ | **GDPR** ✅ +- Trust Center: https://trust.together.ai/ +- SOC 2 blog: https://www.together.ai/blog/soc-2-compliance + +### 10. Fireworks AI +- **SOC 2 Type 2** ✅ | **ISO 27001** ✅ | **GDPR** ✅ +- Trust Center: https://trust.fireworks.ai/ +- SOC 2 blog: https://fireworks.ai/blog/fireworks-ai-achieves-soc-2-type-ii-and-hipaa-compliance + +### 11. Groq +- **SOC 2 Type II** ✅ | **GDPR** ✅ +- Trust Center: https://trust.groq.com/ +- GroqCloud security page: https://groq.com/groqcloud (scroll to "Secure by Default" section) +- Community FAQ: https://community.groq.com/t/is-groq-soc-2-compliant/82 + +### 12. Cerebras +- **SOC 2 Type 2** ✅ | **GDPR** ✅ +- Trust Center: https://trust.cerebras.ai/ + +### 13. xAI (Grok) +- **SOC 2 Type 2** ✅ | **GDPR** ✅ +- xAI Docs - Security FAQ: https://docs.x.ai/developers/faq/security + (Search for "Is xAI GDPR and SOC II compliant?" — answer: "We are SOC 2 Type 2 compliant") +- Trust Center: https://trust.x.ai/ +- Hoag Law analysis: https://hoaglaw.ai/resources/ai-privacy-guide/grok-xai-x + +### 14. Perplexity +- **SOC 2 Type 2** ✅ | **GDPR** ✅ +- Trust Center: https://trust.perplexity.ai/ +- Security page: https://perplexity.ai/hub/security +- Enterprise page: https://perplexity.ai/enterprise + +### 15. Nebius +- **SOC 2 Type II** ✅ | **ISO 27001** ✅ +- Trust Center: https://nebius.com/trust-center +- Blog announcement: https://nebius.com/blog/posts/soc-2-type-ii-hipaa-iso-27001-enterprise-security-standards + +### 16. DeepInfra +- **SOC 2** ✅ | **ISO 27001** ✅ | **GDPR** ✅ (in progress/per GDPR ready) +- Trust Center: https://trust.deepinfra.com/ +- LinkedIn announcement: https://www.linkedin.com/posts/deep-infra_deepinfra-soc2-iso27001-activity-7343064606543593474-KSrA + +### 17. Inference.net +- **SOC 2 Type II** ✅ +- Trust Center: https://trust.inference.net/ + +### 18. ByteDance (Volcengine / Doubao) +- **SOC 2** ✅ +- Volcengine SOC audit documentation: https://www.volcengine.com/docs/63463/913674 + +### 19. MiniMax +- **SOC 2** ✅ +- Security FAQ (minimax.gr.com — official regional site): https://minimax.gr.com/ + (See FAQ: "How does MiniMax ensure platform security and data privacy?" — states SOC 2 compliance) + +--- + +## No Confirmed Certifications Found + +These providers were researched but no publicly available SOC 2, ISO 27001, or GDPR compliance documentation was found: + +| Provider | Notes | +|----------|-------| +| **DeepSeek** | FAQ mentions "supports cooperation with customers on various security certification audits, including ISO 27001, SOC 2" — implies willingness to undergo audits, not holding certs | +| **NovitaAI** | No trust center, compliance page, or certification claims found | +| **EmberCloud** | No trust center, compliance page, or certification claims found | +| **Moonshot AI (Kimi)** | GitHub issue #30 confirms no SOC 2/ISO 27001 currently | +| **Z AI (Zhipu AI)** | Chinese company; no international compliance certifications found | +| **Xiaomi (MiMo)** | Part of Xiaomi group; no independent compliance documentation for MiMo found | +| **NanoGPT** | Very small operation (2 employees); no compliance documentation found | +| **Glacier** | First-party/generic; no compliance data | +| **Quartz** | First-party/generic; no compliance data | +| **Avalanche** | First-party/generic; no compliance data | + +--- + +## LLM Gateway (First-party) +- **SOC 2** ❌ (local/self-hosted, not applicable) +- **ISO 27001** ❌ +- **GDPR** ❌ From fb4689b59b21df48ada72d6f8a31e76fd6f78d2d Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Sat, 30 May 2026 09:46:01 +0000 Subject: [PATCH 10/12] docs: fix minimax verification link --- COMPLIANCE_VERIFICATION.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/COMPLIANCE_VERIFICATION.md b/COMPLIANCE_VERIFICATION.md index 38d2018e53..99d4e30bb5 100644 --- a/COMPLIANCE_VERIFICATION.md +++ b/COMPLIANCE_VERIFICATION.md @@ -99,8 +99,8 @@ This file contains links to official sources for each provider's compliance cert ### 19. MiniMax - **SOC 2** ✅ -- Security FAQ (minimax.gr.com — official regional site): https://minimax.gr.com/ - (See FAQ: "How does MiniMax ensure platform security and data privacy?" — states SOC 2 compliance) +- MiniMax Audio product page: https://minimaxaudio.org/ + (See "Why Choose MiniMax Audio" section — states "SOC 2 compliance" and "GDPR-ready infrastructure") --- From 331caf7f29ee0ddc3291059666828c556b4c620a Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Sat, 30 May 2026 09:49:53 +0000 Subject: [PATCH 11/12] revert(minimax): remove unverifiable soc2 claim --- COMPLIANCE_VERIFICATION.md | 5 ----- packages/models/src/providers.ts | 1 - 2 files changed, 6 deletions(-) diff --git a/COMPLIANCE_VERIFICATION.md b/COMPLIANCE_VERIFICATION.md index 99d4e30bb5..4e962c94fd 100644 --- a/COMPLIANCE_VERIFICATION.md +++ b/COMPLIANCE_VERIFICATION.md @@ -97,11 +97,6 @@ This file contains links to official sources for each provider's compliance cert - **SOC 2** ✅ - Volcengine SOC audit documentation: https://www.volcengine.com/docs/63463/913674 -### 19. MiniMax -- **SOC 2** ✅ -- MiniMax Audio product page: https://minimaxaudio.org/ - (See "Why Choose MiniMax Audio" section — states "SOC 2 compliance" and "GDPR-ready infrastructure") - --- ## No Confirmed Certifications Found diff --git a/packages/models/src/providers.ts b/packages/models/src/providers.ts index 9f1de4b76d..e27bcf66e0 100644 --- a/packages/models/src/providers.ts +++ b/packages/models/src/providers.ts @@ -910,7 +910,6 @@ export const providers = [ consumerTraining: null, promptLogging: true, retentionPeriod: null, - soc2: true, }, }, { From 6a176988200fa99ed0e41ae4eff3fb5b9ca1a07b Mon Sep 17 00:00:00 2001 From: AnalogAI Date: Sun, 31 May 2026 11:35:19 +0000 Subject: [PATCH 12/12] feat(ui): add conditional styling for provider data policy and remove compliance file --- COMPLIANCE_VERIFICATION.md | 124 ---------------------- apps/ui/src/components/providers/hero.tsx | 50 ++++++++- packages/models/src/providers.ts | 2 +- 3 files changed, 48 insertions(+), 128 deletions(-) delete mode 100644 COMPLIANCE_VERIFICATION.md diff --git a/COMPLIANCE_VERIFICATION.md b/COMPLIANCE_VERIFICATION.md deleted file mode 100644 index 4e962c94fd..0000000000 --- a/COMPLIANCE_VERIFICATION.md +++ /dev/null @@ -1,124 +0,0 @@ -# Provider Compliance Verification Sources - -This file contains links to official sources for each provider's compliance certifications. Use these to manually verify the SOC 2, ISO 27001, and GDPR status set in `packages/models/src/providers.ts`. - ---- - -## With Confirmed Compliance Data - -### 1. OpenAI -- **SOC 2 Type 2** ✅ | **ISO 27001** ✅ | **GDPR** ✅ -- Trust Portal: https://trust.openai.com/ -- Enterprise Privacy: https://openai.com/enterprise-privacy -- Business data page: https://openai.com/business-data - -### 2. Anthropic -- **SOC 2 Type 2** ✅ | **ISO 27001** ✅ | **GDPR** ✅ -- Trust Center: https://trust.anthropic.com/ -- Privacy Center FAQ: https://privacy.claude.com/en/articles/10015870-what-certifications-has-anthropic-obtained - -### 3. Google (Vertex AI) -- **SOC 1/2/3** ✅ | **ISO 27001** ✅ | **GDPR** ✅ -- Compliance: https://cloud.google.com/security/compliance -- Trust Center: https://cloud.google.com/security - -### 4. AWS Bedrock -- **SOC 1/2/3** ✅ | **ISO 27001** ✅ | **GDPR** ✅ -- Compliance Center: https://aws.amazon.com/compliance/ -- SOC page: https://aws.amazon.com/compliance/soc-faqs/ - -### 5. Azure -- **SOC 1/2/3** ✅ | **ISO 27001** ✅ | **GDPR** ✅ -- Trust Center: https://learn.microsoft.com/en-us/azure/compliance/ -- Azure compliance docs: https://learn.microsoft.com/en-us/azure/compliance/offerings/ - -### 6. Meta (Llama) -- **SOC 2 Type 2** ✅ | **GDPR** ✅ -- Security page: https://developers.facebook.com/docs/development/trust-center/ - -### 7. Mistral -- **SOC 2 Type II** ✅ | **ISO 27001** ✅ | **GDPR** ✅ -- Trust Center: https://trust.mistral.ai/ -- Resources (SOC 2, ISO 27001 certs): https://trust.mistral.ai/resources - -### 8. Cohere -- **SOC 2 Type 2** ✅ | **ISO 27001** ✅ | **GDPR** ✅ -- Trust Center: https://trustcenter.cohere.com/ -- Enterprise Data: https://cohere.com/enterprise-data-commitments - -### 9. Together AI -- **SOC 2 Type 2** ✅ | **GDPR** ✅ -- Trust Center: https://trust.together.ai/ -- SOC 2 blog: https://www.together.ai/blog/soc-2-compliance - -### 10. Fireworks AI -- **SOC 2 Type 2** ✅ | **ISO 27001** ✅ | **GDPR** ✅ -- Trust Center: https://trust.fireworks.ai/ -- SOC 2 blog: https://fireworks.ai/blog/fireworks-ai-achieves-soc-2-type-ii-and-hipaa-compliance - -### 11. Groq -- **SOC 2 Type II** ✅ | **GDPR** ✅ -- Trust Center: https://trust.groq.com/ -- GroqCloud security page: https://groq.com/groqcloud (scroll to "Secure by Default" section) -- Community FAQ: https://community.groq.com/t/is-groq-soc-2-compliant/82 - -### 12. Cerebras -- **SOC 2 Type 2** ✅ | **GDPR** ✅ -- Trust Center: https://trust.cerebras.ai/ - -### 13. xAI (Grok) -- **SOC 2 Type 2** ✅ | **GDPR** ✅ -- xAI Docs - Security FAQ: https://docs.x.ai/developers/faq/security - (Search for "Is xAI GDPR and SOC II compliant?" — answer: "We are SOC 2 Type 2 compliant") -- Trust Center: https://trust.x.ai/ -- Hoag Law analysis: https://hoaglaw.ai/resources/ai-privacy-guide/grok-xai-x - -### 14. Perplexity -- **SOC 2 Type 2** ✅ | **GDPR** ✅ -- Trust Center: https://trust.perplexity.ai/ -- Security page: https://perplexity.ai/hub/security -- Enterprise page: https://perplexity.ai/enterprise - -### 15. Nebius -- **SOC 2 Type II** ✅ | **ISO 27001** ✅ -- Trust Center: https://nebius.com/trust-center -- Blog announcement: https://nebius.com/blog/posts/soc-2-type-ii-hipaa-iso-27001-enterprise-security-standards - -### 16. DeepInfra -- **SOC 2** ✅ | **ISO 27001** ✅ | **GDPR** ✅ (in progress/per GDPR ready) -- Trust Center: https://trust.deepinfra.com/ -- LinkedIn announcement: https://www.linkedin.com/posts/deep-infra_deepinfra-soc2-iso27001-activity-7343064606543593474-KSrA - -### 17. Inference.net -- **SOC 2 Type II** ✅ -- Trust Center: https://trust.inference.net/ - -### 18. ByteDance (Volcengine / Doubao) -- **SOC 2** ✅ -- Volcengine SOC audit documentation: https://www.volcengine.com/docs/63463/913674 - ---- - -## No Confirmed Certifications Found - -These providers were researched but no publicly available SOC 2, ISO 27001, or GDPR compliance documentation was found: - -| Provider | Notes | -|----------|-------| -| **DeepSeek** | FAQ mentions "supports cooperation with customers on various security certification audits, including ISO 27001, SOC 2" — implies willingness to undergo audits, not holding certs | -| **NovitaAI** | No trust center, compliance page, or certification claims found | -| **EmberCloud** | No trust center, compliance page, or certification claims found | -| **Moonshot AI (Kimi)** | GitHub issue #30 confirms no SOC 2/ISO 27001 currently | -| **Z AI (Zhipu AI)** | Chinese company; no international compliance certifications found | -| **Xiaomi (MiMo)** | Part of Xiaomi group; no independent compliance documentation for MiMo found | -| **NanoGPT** | Very small operation (2 employees); no compliance documentation found | -| **Glacier** | First-party/generic; no compliance data | -| **Quartz** | First-party/generic; no compliance data | -| **Avalanche** | First-party/generic; no compliance data | - ---- - -## LLM Gateway (First-party) -- **SOC 2** ❌ (local/self-hosted, not applicable) -- **ISO 27001** ❌ -- **GDPR** ❌ diff --git a/apps/ui/src/components/providers/hero.tsx b/apps/ui/src/components/providers/hero.tsx index 4df3f3dfc7..507f5bd48e 100644 --- a/apps/ui/src/components/providers/hero.tsx +++ b/apps/ui/src/components/providers/hero.tsx @@ -28,10 +28,12 @@ function DataPolicyBadge({ value, labelTrue, labelFalse, + dangerIfTrue = false, }: { value: boolean | null; labelTrue: string; labelFalse: string; + dangerIfTrue?: boolean; }) { if (value === null) { return ( @@ -40,16 +42,20 @@ function DataPolicyBadge({ ); } - if (value) { + + const isDanger = dangerIfTrue ? value : !value; + + if (isDanger) { return ( - {labelTrue} + {value ? labelTrue : labelFalse} ); } + return ( - {labelFalse} + {value ? labelTrue : labelFalse} ); } @@ -139,6 +145,7 @@ export function Hero({ providerId }: HeroProps) { value={provider.dataPolicy.apiTraining} labelTrue="Yes" labelFalse="No" + dangerIfTrue />
@@ -150,6 +157,7 @@ export function Hero({ providerId }: HeroProps) { value={provider.dataPolicy.consumerTraining} labelTrue="Yes" labelFalse="No" + dangerIfTrue />
@@ -161,6 +169,7 @@ export function Hero({ providerId }: HeroProps) { value={provider.dataPolicy.promptLogging} labelTrue="Yes" labelFalse="No" + dangerIfTrue />
{provider.dataPolicy.retentionPeriod !== undefined && ( @@ -174,6 +183,41 @@ export function Hero({ providerId }: HeroProps) {
)} + {provider.dataPolicy.gdpr !== undefined && ( +
+ + GDPR: + +
+ )} + {provider.dataPolicy.soc2 !== undefined && ( +
+ + SOC2: + +
+ )} + {provider.dataPolicy.iso27001 !== undefined && ( +
+ + + ISO 27001: + + +
+ )} )} diff --git a/packages/models/src/providers.ts b/packages/models/src/providers.ts index e27bcf66e0..b9d77c695b 100644 --- a/packages/models/src/providers.ts +++ b/packages/models/src/providers.ts @@ -67,7 +67,7 @@ export interface ProviderDefinition { dataPolicy?: ProviderDataPolicy | null; } -export const providers = [ +export const providers: ProviderDefinition[] = [ { id: "llmgateway", name: "LLM Gateway",