auroq-os 2.4.11 → 2.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  project:
2
2
  name: "Auroq OS"
3
3
  type: greenfield
4
- version: 2.4.11
4
+ version: 2.4.13
5
5
  installedAt: '2026-03-16'
6
6
 
7
7
  ide:
@@ -4,7 +4,7 @@ Bootstrap e operação do Auroq OS.
4
4
 
5
5
  O corpo deste guia (FASES 0–N) vem pelo MCP `arcane` (catálogo `auroq-core`). Chame a tool `forja_bundle` com forge_id `ops` e a fase atual. Nunca procurar o texto longo em disco; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
6
6
 
7
- **Pack Arcane — vence o MCP se ele estiver velho:** o Pack da mentoria chega ao vivo. NUNCA peça zip, `pack-arcane.zip`, caminho de arquivo nem `npx arcane-pack`. Se o aluno pedir o Pack: pasta do negócio, `/euriler` (Codex: `$euriler`), fale `oi`. Se não responder, é o cadeado da jornada (contrato ativo e assinado), não instalação faltando. Zip só vale pra agente que ELE criou.
7
+ **Pack Arcane — vence o MCP se ele estiver velho:** o Pack da mentoria chega ao vivo. NUNCA peça zip, `pack-arcane.zip`, caminho de arquivo nem `npx arcane-pack`. Se o aluno pedir o Pack: pasta do negócio, `/euriler` (Codex: `$euriler`), fale `oi`. Se não responder, é o cadeado da jornada (contrato ativo e assinado), não instalação faltando. Zip só vale pra agente que ELE criou. Única exceção ao `npx arcane-pack`: a parte executável dos squads híbridos (Edição, Carrossel, Anúncios, Tráfego, Low Ticket, Bia) chega por `npx arcane-pack update` na pasta do negócio — é o que se roda quando um desses squads reclama que `agents/<squad>/` não existe (ex.: `doctor.py` não encontrado); o método continua vindo ao vivo.
8
8
 
9
9
  Ao ativar, mostre o selo de acesso que a tool devolver (as duas primeiras linhas) antes de qualquer outra coisa — é como o aluno vê que a licença dele foi conferida agora.
10
10
 
@@ -2,10 +2,12 @@
2
2
 
3
3
  Instalação da agente de WhatsApp Bia, ao vivo.
4
4
 
5
- Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `instalacao-bia`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
5
+ Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `instalacao-bia`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar o método em arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
6
6
 
7
7
  Ao ativar, mostre o selo de acesso que a tool devolver (as duas primeiras linhas) antes de qualquer outra coisa — é como o aluno vê que a licença dele foi conferida agora.
8
8
 
9
9
  Se a tool recusar porque o Pack ainda não abriu (cadeado da jornada: contrato ativo e assinado), mostre a mensagem exatamente como veio — não é defeito, é o contrato. Se recusar por acesso vencido, cancelado ou suspenso, mostre a mensagem com o contato do suporte da Arcane e pare. Não improvisar, não tentar de novo, não usar memória.
10
10
 
11
- CRITICAL: Do not read local files for this agent. Use the MCP `arcane` tools.
11
+ **Parte que roda na máquina:** este squad tem arquivos executáveis (workflows n8n e scripts). Eles não vêm pelo MCP: ficam em `agents/instalacao-bia/` na pasta do negócio e chegam por `npx arcane-pack update`, rodado na pasta do negócio (exige acesso ativo; baixa só a parte executável, o método continua vindo ao vivo). A ativação avisa isso. Se um passo citar essa pasta e ela não existir, rode o comando e continue — nunca improvise script de memória.
12
+
13
+ CRITICAL: Do not read `agents/instalacao-bia/**` looking for instructions — use the MCP `arcane` tools. Use those files only to EXECUTE what a step asks.
@@ -2,10 +2,12 @@
2
2
 
3
3
  Squad de anúncios da Arcane, ao vivo.
4
4
 
5
- Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `squad-anuncios-arcane`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
5
+ Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `squad-anuncios-arcane`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar o método em arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
6
6
 
7
7
  Ao ativar, mostre o selo de acesso que a tool devolver (as duas primeiras linhas) antes de qualquer outra coisa — é como o aluno vê que a licença dele foi conferida agora.
8
8
 
9
9
  Se a tool recusar porque o Pack ainda não abriu (cadeado da jornada: contrato ativo e assinado), mostre a mensagem exatamente como veio — não é defeito, é o contrato. Se recusar por acesso vencido, cancelado ou suspenso, mostre a mensagem com o contato do suporte da Arcane e pare. Não improvisar, não tentar de novo, não usar memória.
10
10
 
11
- CRITICAL: Do not read local files for this agent. Use the MCP `arcane` tools.
11
+ **Parte que roda na máquina:** este squad tem arquivos executáveis (scripts). Eles não vêm pelo MCP: ficam em `agents/squad-anuncios-arcane/` na pasta do negócio e chegam por `npx arcane-pack update`, rodado na pasta do negócio (exige acesso ativo; baixa só a parte executável, o método continua vindo ao vivo). A ativação avisa isso. Se um passo citar essa pasta e ela não existir, rode o comando e continue — nunca improvise script de memória.
12
+
13
+ CRITICAL: Do not read `agents/squad-anuncios-arcane/**` looking for instructions — use the MCP `arcane` tools. Use those files only to EXECUTE what a step asks.
@@ -2,10 +2,12 @@
2
2
 
3
3
  Squad de carrosséis da Arcane, ao vivo.
4
4
 
5
- Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `squad-carrossel-arcane`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
5
+ Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `squad-carrossel-arcane`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar o método em arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
6
6
 
7
7
  Ao ativar, mostre o selo de acesso que a tool devolver (as duas primeiras linhas) antes de qualquer outra coisa — é como o aluno vê que a licença dele foi conferida agora.
8
8
 
9
9
  Se a tool recusar porque o Pack ainda não abriu (cadeado da jornada: contrato ativo e assinado), mostre a mensagem exatamente como veio — não é defeito, é o contrato. Se recusar por acesso vencido, cancelado ou suspenso, mostre a mensagem com o contato do suporte da Arcane e pare. Não improvisar, não tentar de novo, não usar memória.
10
10
 
11
- CRITICAL: Do not read local files for this agent. Use the MCP `arcane` tools.
11
+ **Parte que roda na máquina:** este squad tem arquivos executáveis (ferramentas de render e template). Eles não vêm pelo MCP: ficam em `agents/squad-carrossel-arcane/` na pasta do negócio e chegam por `npx arcane-pack update`, rodado na pasta do negócio (exige acesso ativo; baixa só a parte executável, o método continua vindo ao vivo). A ativação avisa isso. Se um passo citar essa pasta e ela não existir, rode o comando e continue — nunca improvise script de memória.
12
+
13
+ CRITICAL: Do not read `agents/squad-carrossel-arcane/**` looking for instructions — use the MCP `arcane` tools. Use those files only to EXECUTE what a step asks.
@@ -2,10 +2,12 @@
2
2
 
3
3
  Squad de edição de vídeo da Arcane, ao vivo.
4
4
 
5
- Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `squad-edicao-arcane`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
5
+ Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `squad-edicao-arcane`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar o método em arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
6
6
 
7
7
  Ao ativar, mostre o selo de acesso que a tool devolver (as duas primeiras linhas) antes de qualquer outra coisa — é como o aluno vê que a licença dele foi conferida agora.
8
8
 
9
9
  Se a tool recusar porque o Pack ainda não abriu (cadeado da jornada: contrato ativo e assinado), mostre a mensagem exatamente como veio — não é defeito, é o contrato. Se recusar por acesso vencido, cancelado ou suspenso, mostre a mensagem com o contato do suporte da Arcane e pare. Não improvisar, não tentar de novo, não usar memória.
10
10
 
11
- CRITICAL: Do not read local files for this agent. Use the MCP `arcane` tools.
11
+ **Parte que roda na máquina:** este squad tem arquivos executáveis (scripts de vídeo, instalador, fontes, trilha e configs de estilo). Eles não vêm pelo MCP: ficam em `agents/squad-edicao-arcane/` na pasta do negócio e chegam por `npx arcane-pack update`, rodado na pasta do negócio (exige acesso ativo; baixa só a parte executável, o método continua vindo ao vivo). A ativação avisa isso. Se um passo citar essa pasta e ela não existir, rode o comando e continue — nunca improvise script de memória.
12
+
13
+ CRITICAL: Do not read `agents/squad-edicao-arcane/**` looking for instructions — use the MCP `arcane` tools. Use those files only to EXECUTE what a step asks.
@@ -2,10 +2,12 @@
2
2
 
3
3
  Squad de produto low ticket da Arcane, ao vivo.
4
4
 
5
- Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `squad-low-ticket-arcane`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
5
+ Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `squad-low-ticket-arcane`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar o método em arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
6
6
 
7
7
  Ao ativar, mostre o selo de acesso que a tool devolver (as duas primeiras linhas) antes de qualquer outra coisa — é como o aluno vê que a licença dele foi conferida agora.
8
8
 
9
9
  Se a tool recusar porque o Pack ainda não abriu (cadeado da jornada: contrato ativo e assinado), mostre a mensagem exatamente como veio — não é defeito, é o contrato. Se recusar por acesso vencido, cancelado ou suspenso, mostre a mensagem com o contato do suporte da Arcane e pare. Não improvisar, não tentar de novo, não usar memória.
10
10
 
11
- CRITICAL: Do not read local files for this agent. Use the MCP `arcane` tools.
11
+ **Parte que roda na máquina:** este squad tem arquivos executáveis (templates de página). Eles não vêm pelo MCP: ficam em `agents/squad-low-ticket-arcane/` na pasta do negócio e chegam por `npx arcane-pack update`, rodado na pasta do negócio (exige acesso ativo; baixa só a parte executável, o método continua vindo ao vivo). A ativação avisa isso. Se um passo citar essa pasta e ela não existir, rode o comando e continue — nunca improvise script de memória.
12
+
13
+ CRITICAL: Do not read `agents/squad-low-ticket-arcane/**` looking for instructions — use the MCP `arcane` tools. Use those files only to EXECUTE what a step asks.
@@ -2,10 +2,12 @@
2
2
 
3
3
  Tráfego pago via Meta Marketing API (Método Andromeda), ao vivo.
4
4
 
5
- Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `trafego-arcane`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
5
+ Todo conteúdo deste agente vem pelo MCP `arcane` (catálogo `arcane-pack`). Chame a tool `squad_ativar` com recurso_id `trafego-arcane`; o índice devolvido mostra os tópicos, e as tools `squad_passo` e `squad_conhecimento` trazem cada parte. Nunca procurar o método em arquivo local deste agente; se a tool falhar, mostrar a mensagem e parar — não improvisar de memória.
6
6
 
7
7
  Ao ativar, mostre o selo de acesso que a tool devolver (as duas primeiras linhas) antes de qualquer outra coisa — é como o aluno vê que a licença dele foi conferida agora.
8
8
 
9
9
  Se a tool recusar porque o Pack ainda não abriu (cadeado da jornada: contrato ativo e assinado), mostre a mensagem exatamente como veio — não é defeito, é o contrato. Se recusar por acesso vencido, cancelado ou suspenso, mostre a mensagem com o contato do suporte da Arcane e pare. Não improvisar, não tentar de novo, não usar memória.
10
10
 
11
- CRITICAL: Do not read local files for this agent. Use the MCP `arcane` tools.
11
+ **Parte que roda na máquina:** este squad tem arquivos executáveis (helpers, template de política e formulário de contas). Eles não vêm pelo MCP: ficam em `agents/trafego-arcane/` na pasta do negócio e chegam por `npx arcane-pack update`, rodado na pasta do negócio (exige acesso ativo; baixa só a parte executável, o método continua vindo ao vivo). A ativação avisa isso. Se um passo citar essa pasta e ela não existir, rode o comando e continue — nunca improvise script de memória.
12
+
13
+ CRITICAL: Do not read `agents/trafego-arcane/**` looking for instructions — use the MCP `arcane` tools. Use those files only to EXECUTE what a step asks.
package/AGENTS.md CHANGED
@@ -9,9 +9,11 @@ Sistema operacional de IA. Runtimes oficiais desta versão: Claude Code e Codex.
9
9
 
10
10
  Todo conteúdo Arcane vem pelo MCP `arcane` (catálogos `auroq-core` e `arcane-pack`). Nunca procurar esse conteúdo em `agents/`. Se a tool falhar, mostre a mensagem e pare.
11
11
 
12
+ Exceção: seis squads do Pack têm **parte executável** (Edição, Carrossel, Anúncios, Tráfego, Low Ticket, Bia) — scripts, instalador, fontes e configs que os scripts leem ficam em `agents/<squad>/` e chegam por `npx arcane-pack update` na pasta do negócio. Servem pra EXECUTAR o que um passo mandar, nunca pra ler método.
13
+
12
14
  ## O que fica no disco
13
15
 
14
- Motor (CLI, hooks, scripts), pastas, git, casca (estes ponteiros) e o que VOCÊ criar (memória, docs, cockpit).
16
+ Motor (CLI, hooks, scripts), pastas, git, casca (estes ponteiros), a parte executável dos squads híbridos do Pack (chega por `npx arcane-pack update`) e o que VOCÊ criar (memória, docs, cockpit).
15
17
 
16
18
  ## O que vem ao vivo
17
19
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.4.13] — 2026-09-03
4
+
5
+ ### Squad Edicao ativava, mas nao tinha script nenhum no computador
6
+ Aluno com Pack liberado ativou o Squad Edicao pelo MCP e, ao diagnosticar, o squad procurou
7
+ `agents/squad-edicao-arcane/scripts/doctor.py` — arquivo que nunca chegou. Seis squads do Pack
8
+ sao hibridos: o metodo vem ao vivo, mas scripts, instalador, fontes e configs lidas por script
9
+ ficam no disco e so chegam por `npx arcane-pack update`. Ninguem mandava rodar isso — o Ops e
10
+ os atalhos ate proibiam citar o comando.
11
+
12
+ - **Os atalhos dos seis squads hibridos** (Edicao, Carrossel, Anuncios, Trafego, Low Ticket,
13
+ Bia) dizem onde fica a parte executavel e qual comando a traz. Se um passo citar a pasta e
14
+ ela nao existir, o agente roda o comando e continua.
15
+ - **O Ops** ganha a excecao unica: `npx arcane-pack update` quando um squad hibrido reclama que
16
+ `agents/<squad>/` nao existe. Pra receber o Pack, a regra segue: nada de zip, nada de comando.
17
+ - **Do lado do servidor** (independe desta versao): a ativacao desses squads ja avisa a pasta e
18
+ o comando, e o pacote do Squad Edicao voltou a trazer as configs de estilo que o script le.
19
+ - Quem ja instalou nao precisa atualizar pra ser atendido — o aviso vem do servidor. Atualizar
20
+ ("atualiza o sistema") traz os atalhos novos.
21
+
22
+ ## [2.4.12] — 2026-09-03
23
+
24
+ ### "Status: ativo" e logo em seguida "Sem acesso ativo" no Windows
25
+ Aluna com contrato em dia rodou o instalador no Windows, viu o acesso confirmado e o
26
+ instalador parou dizendo que nao havia acesso, com um "Assertion failed" no meio. Nao
27
+ era o acesso: e um defeito do proprio Node 24 no Windows (nodejs/node#56645) — o
28
+ programa morre ao encerrar logo depois de falar com a internet, e o codigo de saida
29
+ vira erro. O instalador so olha o codigo de saida.
30
+
31
+ - **O `check-access` encerra de forma segura.** No Windows ele deixa o processo
32
+ terminar sozinho (com folga de 300 ms pro socket fechar) em vez de forcar a saida.
33
+ - **O instalador do Windows baixa o Node 22 (LTS ate abril/2027)** em vez do 24, e
34
+ troca um motor de bolso 24+ que ja estiver instalado. Node que o aluno instalou por
35
+ conta propria nao e tocado. O Mac segue no 24: o defeito e so do Windows.
36
+ - **Pra quem ja travou nisso:** colar o mesmo endereco de novo resolve. Nada precisa
37
+ ser desinstalado.
38
+
3
39
  ## [2.4.11] — 2026-09-02
4
40
 
5
41
  ### Os comandos pararam de prometer "8 dias"
package/bin/auroq-os.js CHANGED
@@ -1175,8 +1175,10 @@ if (command === 'init' || command === 'install') {
1175
1175
  } else if (command === 'check-access') {
1176
1176
  // Gate estrito (online) — usado pelo Ops antes de *update e pelo arcane-pack.
1177
1177
  // Exit 0 = contrato ativo validado agora; exit 1 = bloqueado / sem conexao.
1178
+ // `auth.sair` em vez de process.exit: no Windows, sair na hora depois do fetch
1179
+ // derruba o Node 24+ com "Assertion failed" e o instalador le como sem acesso.
1178
1180
  auth.requireActiveAccess()
1179
- .then(() => process.exit(0))
1181
+ .then(() => auth.sair(0))
1180
1182
  .catch(err => {
1181
1183
  error(`Falha ao verificar acesso: ${err.message}`);
1182
1184
  process.exit(1);
@@ -43,6 +43,14 @@ $script:AuroqRodaDeArquivo = [bool]$PSCommandPath
43
43
 
44
44
  $AuroqSuporte = '11 93621-4486'
45
45
  $AuroqNodeMin = 20
46
+ # No Windows o Node 24+ morre ao encerrar logo depois de falar com a rede
47
+ # ("Assertion failed: !(handle->flags & UV_HANDLE_CLOSING)", nodejs/node#56645).
48
+ # O check-access imprimia "Status: ativo" e saia com erro, e o instalador lia
49
+ # "sem acesso ativo". Enquanto o Node nao corrige, o motor de bolso fica na 22
50
+ # (LTS ate abril/2027) e um motor de bolso 24+ ja instalado e trocado. Node que
51
+ # o proprio aluno instalou nao se mexe: o auroq-os tambem se protege ao sair.
52
+ $AuroqNodeEvitarDe = 24
53
+ $AuroqNodeSerie = 'v22.*'
46
54
  $AuroqBuildMin = 17763 # Windows 10 1809
47
55
  $AuroqDiscoMinMb = 2048
48
56
 
@@ -148,6 +156,15 @@ function Test-AuroqNode {
148
156
  return ($numero -ge $AuroqNodeMin)
149
157
  }
150
158
 
159
+ function Test-AuroqNodeTrocar {
160
+ param([string]$Versao = '')
161
+ if ([string]::IsNullOrWhiteSpace($Versao)) { return $false }
162
+ $maior = ($Versao.TrimStart('v') -split '\.')[0]
163
+ $numero = 0
164
+ if (-not [int]::TryParse($maior, [ref]$numero)) { return $false }
165
+ return ($numero -ge $AuroqNodeEvitarDe)
166
+ }
167
+
151
168
  function Get-AuroqNodeZip {
152
169
  param([string]$Versao = '', [string]$Arquitetura = 'AMD64')
153
170
  $alvo = 'x64'
@@ -377,12 +394,18 @@ function Install-AuroqNode {
377
394
  } catch {
378
395
  $atual = ''
379
396
  }
380
- if (Test-AuroqNode $atual) {
397
+ $nodeDir = Get-AuroqNodeDir
398
+ $deBolso = Test-Path (Join-Path $nodeDir 'node.exe')
399
+ $trocar = $deBolso -and (Test-AuroqNodeTrocar $atual)
400
+ if ((Test-AuroqNode $atual) -and -not $trocar) {
381
401
  Write-AuroqOk "O motor ja estava instalado ($atual)"
382
402
  Write-AuroqLog 'motor' "ja-existia versao=$atual"
383
403
  return
384
404
  }
385
- if ($atual) {
405
+ if ($trocar) {
406
+ Write-AuroqAviso "O motor $atual tem um defeito conhecido no Windows; vou trocar pela versao estavel anterior."
407
+ Write-AuroqLog 'motor' "troca versao=$atual"
408
+ } elseif ($atual) {
386
409
  Write-AuroqAviso "Voce ja tinha um motor antigo ($atual); vou instalar um novo do lado, sem mexer no seu."
387
410
  }
388
411
  Write-AuroqDiz ' (e um programa que fica numa pasta sua, nao pede senha e nao mexe em nada do seu Windows)'
@@ -395,7 +418,7 @@ function Install-AuroqNode {
395
418
  } catch {
396
419
  Write-AuroqErro 'Nao consegui baixar o motor do sistema.' 'Confira a internet (ou o antivirus, se houver) e rode o mesmo comando de novo.'
397
420
  }
398
- $escolhido = $indice | Where-Object { $_.version -like 'v24.*' } | Select-Object -First 1
421
+ $escolhido = $indice | Where-Object { $_.version -like $AuroqNodeSerie } | Select-Object -First 1
399
422
  if (-not $escolhido) { $escolhido = $indice | Where-Object { $_.lts } | Select-Object -First 1 }
400
423
  if (-not $escolhido) {
401
424
  Write-AuroqErro 'Nao consegui descobrir qual motor baixar.' 'Rode o mesmo comando de novo em alguns minutos. Se insistir, chame o suporte.'
@@ -428,7 +451,6 @@ function Install-AuroqNode {
428
451
  # mark-of-the-web: sem desbloquear, o Windows recusa abrir o que veio da internet
429
452
  Unblock-File -Path $destino -ErrorAction SilentlyContinue
430
453
 
431
- $nodeDir = Get-AuroqNodeDir
432
454
  $pai = Split-Path $nodeDir
433
455
  try {
434
456
  if (-not (Test-Path $pai)) { New-Item -ItemType Directory -Path $pai -Force | Out-Null }
package/lib/auth.js CHANGED
@@ -412,7 +412,24 @@ async function requireActiveAccess() {
412
412
  return saved;
413
413
  }
414
414
 
415
+ // Encerrar logo depois de falar com a rede derruba o Node 24+ no Windows com
416
+ // "Assertion failed: !(handle->flags & UV_HANDLE_CLOSING)" (nodejs/node#56645):
417
+ // o socket do fetch ainda esta fechando quando o process.exit desmonta o processo,
418
+ // e o codigo de saida vira 3 — o instalador lia isso como "sem acesso ativo" logo
419
+ // depois de imprimir "Status: ativo". Aqui o processo termina por conta propria;
420
+ // no Windows, se algo segurar o loop, forca a saida em 300 ms (tempo de sobra pro
421
+ // socket fechar). Fora do Windows nada muda.
422
+ function sair(codigo) {
423
+ process.exitCode = codigo;
424
+ if (process.platform !== 'win32') {
425
+ process.exit(codigo);
426
+ return;
427
+ }
428
+ setTimeout(() => process.exit(codigo), 300).unref();
429
+ }
430
+
415
431
  module.exports = {
432
+ sair,
416
433
  interactiveLogin,
417
434
  getValidSession,
418
435
  requireActiveAccess,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auroq-os",
3
- "version": "2.4.11",
3
+ "version": "2.4.13",
4
4
  "description": "Auroq OS — Sistema Operacional de IA para Experts",
5
5
  "bin": {
6
6
  "auroq-os": "bin/auroq-os.js"