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

Executa o proposeFixTemplate (resolveIssueContext + proposeFixForIssueV4) síncronamente via motor sequentialThinking. Não usa fila nem Socket.IO.

Devolve um changeSet[] com correções propostas (alvo: {table, recordId, path, proposedValue}) e persiste as sugestões em advisor_issue_rewrites para auditoria e follow-up. Nada é mutado nas entidades originais — aplicar o changeSet é responsabilidade do copilot / agente autorizado.

Endpoint

POST /api/externalAPIs/public/advisor/v4/proposeFix

Parâmetros

issueId
string (UUID)
required

ID da issue em advisor_issues_v2.

hostId
string (UUID)

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

requestControlId
string (UUID)

Opcional. Propaga cost_control para o tracker do caller.

instructions
string

Sobrescreve a instrução default ("Sugira uma correção para esta issue.").

locale
string

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

Exemplo

curl -X POST {{BASE_URL}}/api/externalAPIs/public/advisor/v4/proposeFix \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "issueId": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
    "instructions": "Foque na correção do envelope. Não toque nos chunks."
  }'

Resposta

{
  "result": {
    "finalAnswer": {
      "changeSet": [
        {
          "table": "avatars",
          "recordId": "984c2dee-4f81-4fdf-b299-88baa0be86df",
          "path": "prompt_envelop.identity.languages",
          "currentValue": ["pt-BR", "en-US"],
          "proposedValue": ["pt-BR"],
          "rationale": "Avatar não tem chunks nem chains em inglês — claim cria falsa expectativa."
        },
        {
          "table": "chunks",
          "recordId": "...",
          "path": "content",
          "currentValue": "...",
          "proposedValue": "...",
          "rationale": "..."
        }
      ],
      "narration": "Proponho remover 'en-US' do envelope e ajustar dois chunks que ainda mencionam atendimento em inglês."
    }
  },
  "events": [ ]
}

Campos da Resposta

result.finalAnswer.changeSet
array

Lista ordenada de mudanças propostas.

result.finalAnswer.narration
string

Narração textual no locale informado.

events
array

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

As sugestões também são persistidas em advisor_issue_rewrites — você pode listá-las depois sem precisar rodar proposeFix novamente. Consulte via entities[].rewrites no endpoint de listagem.

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