# Correção: precedência de parâmetros sobre semantic intent shift

## Problema

Durante uma transação ativa em `COLLECTING_PARAMETERS`, o roteador executava o
`semantic_classifier` de mudança de intenção **antes** da extração dos parâmetros
quando `ENABLE_LLM_ROUTER=true`. Com isso, respostas referenciais válidas, como
`"a de quatorze e noventa e nove"`, podiam ser roubadas por outra intent
semanticamente plausível antes de o contrato da transação tentar consumi-las.

## Regra restaurada

A ordem agora é:

1. `AWAITING_CONFIRMATION`: confirmação explícita continua com precedência absoluta.
2. `COLLECTING_PARAMETERS`: tentar primeiro extrair pelo menos um parâmetro pendente.
3. Se algum parâmetro for consumido, manter a transação e **não** executar intent shift.
4. Somente quando nenhum parâmetro for consumido, avaliar `semantic_classifier` para
   `CONTINUE`/`SHIFT`.
5. Um novo objetivo explícito continua podendo mudar a intenção, desde que o extrator
   corretamente não o converta em parâmetro da transação anterior.

## Resolução contextual

O extrator do roteador agora recebe um contexto conversacional recente e limitado,
apenas como auxílio não-autoritativo para resolver referências. Exemplo: se o histórico
recente contém `Tamboro Mensal = R$ 14,99`, a fala `"a de 14,99"` pode produzir o
candidato `subject=Tamboro Mensal`. A validação/pre-validation da transação continua
sendo responsável por provar a entidade contra evidência de backend/MCP antes da
confirmação ou execução.

## Arquivo principal alterado

- `agent_framework_oci/libs/agent_framework/src/agent_framework/routing/enterprise_router.py`

## Testes

Foram atualizados/adicionados testes em:

- `agent_framework_oci/tests/test_transaction_parameter_llm_precedence.py`

Validação executada:

- 8/8 testes do arquivo de precedência passaram.
- 81/81 testes combinados de transaction routing, state interruption, contextual reentry,
  expected input semantic classifier e route stickiness passaram.
