mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-14 08:53:11 +00:00
Modo "Por tema" no acervo de falas: expansão determinística do tema via DeepSeek (generateObject, timeout, fallback null) alimenta o motor lexical existente (searchText/keywords OR), mantendo facetas AND, paginação por fala, o OR de cortes do C174 e o access control intacto. Resultado de tema mostra selo e "Por que apareceu" com trecho real (frase contínua), sem score; degradação honesta para termo exato com aviso e vazio honesto com saídas. - URL: mode=tema (default omitido; canonicaliza sem q), seletor otimista - ai/expandSpeechSearchTheme + lib/speechThemeTerms (sanitiza saída do modelo) - view model com themeMatchTerm + espelho speechMatchesSearchTerm - UI do card de tema (selos, proveniência, ações) e aviso degradado - sem migration/Consent/exposição pública; gate de leitura inalterado - testes unit/int/e2e; design hi-fi estendido e certificado pelo designer
21 lines
573 B
TypeScript
21 lines
573 B
TypeScript
'use client'
|
|
|
|
import { Button } from '@/components/ui/button'
|
|
import { SPEECH_OMNIBOX_ID } from '@/utilities/speech/speechOmnibox'
|
|
|
|
/** C192 — the honest empty state's "reformulate" exit: focuses the omnibox. */
|
|
export const SpeechRefineSearchButton = () => (
|
|
<Button
|
|
type="button"
|
|
className="min-h-11"
|
|
onClick={() => {
|
|
const input = document.getElementById(SPEECH_OMNIBOX_ID)
|
|
if (input instanceof HTMLInputElement) {
|
|
input.scrollIntoView({ block: 'nearest' })
|
|
input.focus()
|
|
}
|
|
}}
|
|
>
|
|
Reformular busca
|
|
</Button>
|
|
)
|