diff --git a/apps/desktop/src/app/settings/memory/field-control.tsx b/apps/desktop/src/app/settings/memory/field-control.tsx index 8d485d3f3a2e..5c4a2a905fe5 100644 --- a/apps/desktop/src/app/settings/memory/field-control.tsx +++ b/apps/desktop/src/app/settings/memory/field-control.tsx @@ -1,14 +1,31 @@ import { Input } from '@/components/ui/input' +import { Tip } from '@/components/ui/tooltip' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' import { Switch } from '@/components/ui/switch' import { Textarea } from '@/components/ui/textarea' -import { Check } from '@/lib/icons' +import { Check, Info } from '@/lib/icons' import type { MemoryProviderField } from '@/types/hermes' import { CONTROL_TEXT } from '../constants' // Fade the placeholder well below set values so example text never reads as data. -const FIELD_INPUT = `border-(--ui-stroke-tertiary) bg-(--ui-bg-quaternary) font-mono ${CONTROL_TEXT} placeholder:text-muted-foreground/45` +const FIELD_INPUT = `border-(--ui-stroke-secondary) bg-background font-mono ${CONTROL_TEXT} placeholder:text-muted-foreground/45` + +// Field label with an optional info tooltip, shared by the panel and modal rows. +export function FieldTitle({ field }: { field: MemoryProviderField }) { + if (!field.info) { + return <>{field.label} + } + + return ( + + {field.label} + + + + + ) +} // Values are edited as strings; the backend coerces them to native types. export function FieldControl({