diff --git a/packages/stage-pages/src/pages/v2/settings/providers/edit/[providerId]/index.vue b/packages/stage-pages/src/pages/v2/settings/providers/edit/[providerId]/index.vue index fe0cf4e15..85764526e 100644 --- a/packages/stage-pages/src/pages/v2/settings/providers/edit/[providerId]/index.vue +++ b/packages/stage-pages/src/pages/v2/settings/providers/edit/[providerId]/index.vue @@ -3,6 +3,9 @@ import type { ProviderValidationStep } from '@proj-airi/stage-ui/libs' import type { ZodType } from 'zod' import type { $ZodType } from 'zod/v4/core' +// TODO: https://developer.mozilla.org/en-US/docs/Web/API/HTML_Sanitizer_API +import DOMPurify from 'dompurify' + import { merge } from '@moeru/std' import { Alert, @@ -69,6 +72,10 @@ const isOllamaProvider = computed(() => providerDefinition.value?.id === 'ollama const shouldShowTroubleshootingOllamaConnectivity = computed(() => { return isOllamaProvider.value && validationSteps.value.some(step => step.id === 'openai-compatible:check-connectivity' && step.status === 'invalid') }) +const safeOllamaConnectivityTroubleshootingHtml = computed(() => { + const content = providerDefinition.value?.business?.({ t }).troubleshooting?.validators?.openaiCompatibleCheckConnectivity?.content + return DOMPurify.sanitize(content || '') +}) function getSchemaShape(schema: $ZodType): Record { const anySchema = schema as unknown as { shape?: Record | (() => Record), _def?: { shape?: Record | (() => Record) } } @@ -481,7 +488,7 @@ function handleDeleteProvider() { v-if="shouldShowTroubleshootingOllamaConnectivity && providerDefinition.business?.({ t }).troubleshooting?.validators?.openaiCompatibleCheckConnectivity" :label="providerDefinition.business?.({ t }).troubleshooting?.validators?.openaiCompatibleCheckConnectivity?.label" > -
+