Pix Force Connection Validator - Agente local
=============================================

VERSAO DO PACOTE: 1.4.1

COMO USAR (3 passos)
--------------------
1. Windows: duplo clique em INICIAR_AGENTE.bat
   Linux/macOS: bash iniciar_agente.sh
2. Deixe a janela ABERTA. Ela mostra duas informacoes:
     Endereco do agente : http://127.0.0.1:<porta>
     Codigo do agente   : <codigo aleatorio>
   Se o firewall do Windows perguntar, libere a porta.
3. Na pagina "Agente local" da interface Pix Force, informe o endereco e o codigo
   (ou clique em "Detectar porta") e clique em Testar. O indicador passa para
   "Agente conectado" e todos os testes saem do IP desta maquina.

SEGURANCA
---------
- CODIGO DE SESSAO: qualquer pagina aberta no navegador consegue chamar 127.0.0.1.
  Por isso todo endpoint que executa varredura ou devolve dados de rede exige o
  codigo mostrado na janela. O codigo muda a cada inicializacao. Sem ele, o agente
  responde apenas o proprio status (versao, porta, maquina) e nada mais.
- ORIGEM AUTORIZADA: o agente aceita chamadas apenas das origens oficiais da
  ferramenta Pix Force. Outros sites sao bloqueados antes de qualquer execucao.
- SOMENTE LOOPBACK: o agente escuta apenas em 127.0.0.1 e recusa requisicoes com
  Host diferente de loopback (protecao contra DNS rebinding). Ele nao fica exposto
  na rede do cliente.
- O script NUNCA encerra programas de terceiros. Um processo so e encerrado quando o
  PID consta no arquivo .agent-lock.json escrito pelo proprio agente E a porta
  responde como agente Pix Force. Servicos Python do cliente ficam intactos.

PORTAS
------
O agente tenta 8765 e, se estiver em uso, segue para 8766, 8767... ate 8770.
Se todas estiverem ocupadas, sobe em uma porta livre escolhida pelo sistema.
A porta em uso sempre aparece na janela e tambem em .agent-lock.json.

O script cuida do resto sozinho: se nao houver Python 3.11+, ele instala a versao
correta (winget ou instalador oficial); cria o ambiente isolado (.venv), instala as
dependencias e baixa o ffprobe para a pasta bin/ na primeira execucao.
Isso exige internet e acontece apenas uma vez.

Para desligar o agente, feche a janela (no X).
Se aparecer "Deseja finalizar o arquivo em lotes (S/N)?", responda N e Enter.

OBSERVACOES
-----------
- O endereco do agente e apenas a API/pagina de status. A ferramenta em si e usada
  na interface Pix Force Connection Validator, no navegador.
- Rode o agente na maquina que esta DENTRO da rede do cliente e com a interface
  aberta nela mesma. Sem o agente, nenhum teste sai do IP do cliente.

VERSAO PORTATIL (.EXE)
----------------------
Em uma maquina Windows com Python instalado, rode:
  powershell -ExecutionPolicy Bypass -File build_exe.ps1
O resultado e um executavel portatil que ja serve a interface junto, sem precisar de Python.
