# Comandos

## Contrato

```json
{
  "requestId": "uuid-ou-identificador",
  "command": "ensure-session",
  "input": {}
}
```

## ensure-session

Garante que o módulo solicitado esteja disponível.

```json
{
  "command": "ensure-session",
  "input": {
    "module": "escrita-fiscal",
    "sessionPolicy": "REUTILIZAR"
  }
}
```

## heartbeat-session

Mantém a sessão ativa com F15 ou recupera a sessão quando necessário.

Estados principais: `SESSION_OK`, `SESSION_RECOVERED`, `SESSION_RECOVERY_FAILED`.

## ensure-web-session

Abre o Domínio Web, realiza login somente quando necessário, trata o modal de segurança e aguarda a Lista de Programas.


# Arquitetura

## Visão geral

```text
n8n
  -> PES2B Agent
    -> pacote dominio-desktop-worker
      -> HTTP local autenticado
        -> PES2B Desktop Worker
          -> PowerShell / Playwright / Win32
            -> Domínio Web / GraphOn / Windows
```

## Worker

O Worker permanece ativo na sessão gráfica do usuário. Ele expõe uma API local, mantém exclusão mútua de comandos e executa automações que dependem de interface gráfica.

## Agent Bridge

A ponte é um pacote de automação do PES2B Agent. Ela recebe o comando, chama o Worker em `127.0.0.1:3100` e converte o resultado para o contrato `PES2B_RESULT_JSON`.

## Estado atual e evolução

A release v1.0.0 preserva a estrutura funcional já validada. A migração para plugins será incremental para evitar regressões. A lógica específica da Domínio será gradualmente movida para `plugins/dominio` nas próximas versões.


# Instalação

## Pré-requisitos

- Windows 10 ou 11.
- Node.js 20 ou superior.
- PES2B Agent instalado.
- Sessão gráfica persistente.
- Domínio Web e GraphOn instalados.

## Caminhos padrão

```text
C:\PES2B\Plataforma\PES2B-Desktop-Worker
C:\PES2B\Automacoes\DOMINIO_DESKTOP_WORKER
```

## Atualização automática

Na raiz do pacote da sprint:

```powershell
Set-ExecutionPolicy -Scope Process Bypass
.\ATUALIZAR_SPRINT_0_3.ps1
```

O instalador preserva `.env`, `runtime`, `logs`, perfil do navegador e pastas operacionais da ponte.

## Configuração

Copie `worker/.env.example` para `.env` na instalação e configure as chaves e credenciais. Não versionar o arquivo real.

## Validação

```powershell
Invoke-RestMethod http://127.0.0.1:3100/health
```
