Você pode testar esta rota diretamente em nossa documentação interativa.

Executa o focusIssueTemplate (resolveIssueContext + verifyIssueV4) síncronamente via motor sequentialThinking. Não usa fila nem Socket.IO — o caller bloqueia até a verificação concluir.

O verifyIssueV4 compara via LLM o snippet / problemDescription persistidos na issue com o conteúdo atual das entidades vinculadas (advisor_issue_entities), sem reexecutar o tracer original. Veredicto fica em verification_status; o status (open / resolved) não é mutado por esta rota.

Tenant guard via resolveIssueContext: rota rejeita se issue.host_id !== hostId.

Endpoint

POST /api/externalAPIs/public/advisor/v4/verifyIssue

Parâmetros

issueId
string (UUID)
required

ID da issue em advisor_issues_v2.

hostId
string (UUID)

Opcional em produção (auth resolve via KrakenD). Obrigatório em dev local sem KrakenD.

requestControlId
string (UUID)

Opcional. Propaga cost_control para o tracker do caller, agregando o custo desta verificação ao request original.

instructions
string

Sobrescreve a instrução default do template ("Verifique esta issue e me diga se ainda está presente.").

locale
string

Locale para narração do resultado. Fallback: header Accept-Languagept-BR.

Exemplo

curl -X POST {{BASE_URL}}/api/externalAPIs/public/advisor/v4/verifyIssue \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "issueId": "f1a2b3c4-d5e6-7890-abcd-ef1234567890"
  }'

Resposta

{
  "result": {
    "finalAnswer": {
      "verdict": "confirmed_fixed",
      "evidence": [
        {
          "entityRef": "avatars/984c2dee-.../prompt_envelop.identity.languages",
          "summary": "Campo agora lista apenas 'pt-BR'. Promessa de inglês foi removida."
        }
      ],
      "narration": "A issue foi corrigida — o envelope não promete mais fluência em inglês."
    }
  },
  "events": [
    { "type": "step_started", "actionName": "resolveIssueContext", "timestamp": "..." },
    { "type": "step_completed", "actionName": "resolveIssueContext", "timestamp": "..." },
    { "type": "step_started", "actionName": "verifyIssueV4", "timestamp": "..." },
    { "type": "step_completed", "actionName": "verifyIssueV4", "timestamp": "..." }
  ]
}

Veredictos possíveis

VerdictSignificado
confirmed_fixedLLM julga que o problema descrito não existe mais nas entidades atuais.
still_presentProblema persiste; texto/config das entidades ainda casa com problemDescription.
partialAlgumas entidades foram corrigidas, outras ainda contêm o problema.
inconclusiveLLM não conseguiu decidir (entidades sumiram, contexto insuficiente, etc.).

Esta rota não muda status da issue. Para marcar como resolved quando verdict='confirmed_fixed', use Resolve Issue.

Campos da Resposta

result.finalAnswer
object

Resultado do verifyIssueV4.

events
array

Timeline dos eventos do motor sequentialThinking durante a execução.

Erros

CódigoDescrição
400issueId ausente ou hostId ausente (em dev local sem KrakenD)
401Token inválido ou ausente
404Issue não encontrada, ou não pertence ao host autenticado
500Erro interno do servidor