auroq-os 2.4.1 → 2.4.3

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.2.4
4
+ version: 2.4.3
5
5
  installedAt: '2026-03-16'
6
6
 
7
7
  ide:
@@ -4,6 +4,8 @@ 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 (8 dias ou contrato), não instalação faltando. Zip só vale pra agente que ELE criou.
8
+
7
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.
8
10
 
9
11
  Se a tool recusar (acesso vencido, cancelado ou suspenso), mostre a mensagem exatamente como veio, com o contato do suporte da Arcane, e pare. Não improvisar, não tentar de novo, não usar memória.
package/bin/auroq-os.js CHANGED
@@ -59,6 +59,20 @@ function sleep(ms) { return new Promise(r => setTimeout(r, ms)); }
59
59
  // Pergunta sim/nao no terminal. Funciona em TTY e com stdin encadeado (pipe).
60
60
  // Se o stdin estiver fechado (automatos/CI), question() nunca resolve — por isso
61
61
  // a corrida com o evento 'close': EOF vira resposta vazia, ou seja, "nao".
62
+ /**
63
+ * Grava no core-config da instalacao a versao que esta sendo instalada agora e
64
+ * o dia de hoje. Sem isso os dois campos ficam congelados no que o arquivo
65
+ * modelo trazia dentro do pacote.
66
+ */
67
+ async function carimbarVersao(configPath) {
68
+ if (!(await fs.pathExists(configPath))) return;
69
+ let texto = await fs.readFile(configPath, 'utf8');
70
+ const hoje = new Date().toISOString().slice(0, 10);
71
+ texto = texto.replace(/^(\s*version:).*$/m, `$1 ${PKG_VERSION}`);
72
+ texto = texto.replace(/^(\s*installedAt:).*$/m, `$1 '${hoje}'`);
73
+ await fs.writeFile(configPath, texto);
74
+ }
75
+
62
76
  async function askYesNo(question) {
63
77
  const readline = require('node:readline/promises');
64
78
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
@@ -736,6 +750,13 @@ async function init({ pasta = null } = {}) {
736
750
  }
737
751
  success(`${copied} arquivos instalados`);
738
752
 
753
+ // O core-config.yaml e copiado cru do pacote. Como ninguem lembra de edita-lo
754
+ // a cada release, toda instalacao nova jurava ser a versao de quando o arquivo
755
+ // foi escrito — 2.2.4 numa maquina rodando 2.4.1, no piloto de 27/08. Quem
756
+ // abre um chamado com esse numero manda o suporte investigar a versao errada.
757
+ // Carimbar aqui e a unica forma de nunca mais divergir.
758
+ await carimbarVersao(path.join(targetDir, '.auroq-core', 'core-config.yaml'));
759
+
739
760
  const seedRoot = path.join(sourceDir, 'seeds');
740
761
  if (await fs.pathExists(seedRoot)) {
741
762
  await fs.copy(seedRoot, targetDir, { overwrite: false });
@@ -142,6 +142,44 @@ function Set-AuroqPath {
142
142
  $env:Path = "$Bin;$env:Path"
143
143
  }
144
144
 
145
+ # --- Como chamar o npx sem esbarrar na politica do Windows ----------------------
146
+
147
+ # O PowerShell resolve `.ps1` antes de `.cmd`. Chamado pelado, `npx` vira
148
+ # `npx.ps1` (um arquivo em disco) e a politica padrao do Windows recusa abrir
149
+ # arquivo de script. Num piloto real a instalacao morreu exatamente ai, com
150
+ # "npx.ps1 cannot be loaded because running scripts is disabled on this system".
151
+ #
152
+ # Mexer na politica resolveria e esta proibido (ADR-3: zero privilegio, e mudar
153
+ # regra de seguranca da maquina do aluno pra instalar um sistema e abuso).
154
+ # O `.cmd` faz o mesmo trabalho e nao passa pelo interpretador de script.
155
+ function Get-AuroqNpx {
156
+ $doMotor = Join-Path (Get-AuroqNodeDir) 'npx.cmd'
157
+ if (Test-Path $doMotor) { return $doMotor }
158
+
159
+ # Quem ja tinha Node nem baixa o motor de bolso: a pasta acima nao existe.
160
+ $noCaminho = Get-Command 'npx.cmd' -ErrorAction SilentlyContinue
161
+ if ($noCaminho) { return $noCaminho.Source }
162
+
163
+ return 'npx.cmd'
164
+ }
165
+
166
+ # --- A ferramenta do aluno, visivel de qualquer janela --------------------------
167
+
168
+ # O Claude Code se instala em %USERPROFILE%\.local\bin e nao publica essa pasta
169
+ # no ambiente do usuario. Resultado do piloto: o aluno terminava a parada 1,
170
+ # digitava `claude`, nao acontecia nada, e concluia que a instalacao falhou.
171
+ function Set-AuroqCaminhoDaFerramenta {
172
+ $bin = Join-Path $env:USERPROFILE '.local\bin'
173
+ if (-not (Test-Path (Join-Path $bin 'claude.exe'))) { return }
174
+
175
+ $atual = [Environment]::GetEnvironmentVariable('Path', 'User')
176
+ if ($atual -and ($atual -split ';' | Where-Object { $_ -eq $bin })) { return }
177
+
178
+ Set-AuroqPath $bin
179
+ Write-AuroqOk 'Deixei o Claude Code visivel em qualquer janela'
180
+ Write-AuroqLog 'ferramenta' 'claude-publicado'
181
+ }
182
+
145
183
  # --- Passo 1: diagnostico (sec. 5.1) ----------------------------------------------
146
184
 
147
185
  function Test-AuroqMaquina {
@@ -388,7 +426,7 @@ function Invoke-AuroqLogin {
388
426
  # sucesso. Usado como pergunta de sim/nao, ele dizia "voce ja estava logado"
389
427
  # pra quem nunca logou, pulava o portao e deixava a conta sem acesso chegar ate
390
428
  # a criacao da pasta.
391
- & npx -y auroq-os@latest check-access
429
+ & (Get-AuroqNpx) -y auroq-os@latest check-access
392
430
  if ($LASTEXITCODE -ne 0) {
393
431
  Write-AuroqLog 'login' 'recusado'
394
432
  Write-Host ''
@@ -465,7 +503,7 @@ function Invoke-AuroqInit {
465
503
  if ($env:AUROQ_INSTALL_DRY_RUN) { Write-AuroqOk 'Sistema - seria montado aqui'; return }
466
504
 
467
505
  Set-Location $script:AuroqPastaAlvo
468
- & npx -y auroq-os@latest init
506
+ & (Get-AuroqNpx) -y auroq-os@latest init
469
507
  if ($LASTEXITCODE -ne 0) {
470
508
  Write-AuroqLog 'init' 'falhou'
471
509
  Write-AuroqErro 'A montagem do sistema parou no meio.' 'Rode o mesmo comando de novo. Se repetir, mande pro suporte o arquivo install.log da pasta .auroq.'
@@ -484,11 +522,13 @@ function Write-AuroqFecho {
484
522
  Write-Host ''
485
523
  Write-AuroqDiz 'Falta um detalhe importante:'
486
524
  Write-Host ''
487
- Write-AuroqDiz ' 1. FECHE o Claude Code (ou o Codex) por completo e abra de novo'
525
+ Write-AuroqDiz ' 1. FECHE esta janela por completo e abra o PowerShell de novo'
488
526
  Write-AuroqDiz ' - sem isso ele nao enxerga o que acabou de ser instalado'
489
- Write-AuroqDiz " 2. Abra a pasta $nome"
490
- Write-AuroqDiz ' 3. Chame o Ops: /AuroqOS:agents:ops (no Codex: $ops)'
491
- Write-AuroqDiz ' 4. Digite: *bootstrap'
527
+ Write-AuroqDiz ' 2. Entre na pasta do seu negocio. Copie e cole esta linha:'
528
+ Write-AuroqDiz " cd `"$script:AuroqPastaAlvo`""
529
+ Write-AuroqDiz ' 3. Abra a ferramenta escrevendo: claude (no Codex: codex)'
530
+ Write-AuroqDiz ' 4. Chame o Ops: /AuroqOS:agents:ops (no Codex: $ops)'
531
+ Write-AuroqDiz ' 5. Digite: *bootstrap'
492
532
  Write-Host ''
493
533
  Write-AuroqDiz 'O Ops instala o resto e te guia daqui pra frente.'
494
534
  Write-Host ''
@@ -500,6 +540,7 @@ function Write-AuroqFecho {
500
540
  function Invoke-AuroqInstalacao {
501
541
  Write-AuroqTitulo 'Auroq OS - instalacao'
502
542
  Test-AuroqMaquina
543
+ Set-AuroqCaminhoDaFerramenta
503
544
  Install-AuroqGit
504
545
  Install-AuroqNode
505
546
  Invoke-AuroqLogin
@@ -216,6 +216,22 @@ auroq_publicar_node_no_path() {
216
216
  esac
217
217
  }
218
218
 
219
+ # A ferramenta do aluno (Claude Code) se instala em ~/.local/bin e nem sempre
220
+ # publica essa pasta. Achado num piloto real no Windows: o aluno terminava a
221
+ # parada 1, escrevia `claude`, nao acontecia nada, e concluia que tinha falhado.
222
+ # O mesmo vale aqui — e o conserto e o mesmo caminho que ja publica o motor.
223
+ auroq_publicar_ferramenta_no_path() {
224
+ local bin="${HOME}/.local/bin"
225
+ [ -x "${bin}/claude" ] || return 0
226
+ case ":${PATH}:" in *":${bin}:"* ) return 0 ;; esac
227
+
228
+ auroq_publicar_node_no_path "$bin"
229
+ PATH="${bin}:${PATH}"
230
+ export PATH
231
+ ok_feito "Deixei o Claude Code visivel em qualquer janela"
232
+ auroq_registrar_log "ferramenta" "claude-publicado"
233
+ }
234
+
219
235
  # ─── Passo 1: diagnostico (§5.1) ──────────────────────────────────────────────
220
236
 
221
237
  auroq_diagnostico() {
@@ -520,11 +536,13 @@ auroq_fecho() {
520
536
  printf '\n'
521
537
  diz "Falta um detalhe importante:"
522
538
  printf '\n'
523
- diz " 1. FECHE o Claude Code (ou o Codex) por completo e abra de novo"
539
+ diz " 1. FECHE esta janela por completo e abra o Terminal de novo"
524
540
  diz " ${FRACO}— sem isso ele nao enxerga o que acabou de ser instalado${FIM}"
525
- diz " 2. Abra a pasta ${PASTA_ALVO##*/}"
526
- diz " 3. Chame o Ops: ${CIANO}/AuroqOS:agents:ops${FIM} ${FRACO}(no Codex: \$ops)${FIM}"
527
- diz " 4. Digite: ${CIANO}*bootstrap${FIM}"
541
+ diz " 2. Entre na pasta do seu negocio. Copie e cole esta linha:"
542
+ diz " ${CIANO}cd \"${PASTA_ALVO}\"${FIM}"
543
+ diz " 3. Abra a ferramenta escrevendo: ${CIANO}claude${FIM} ${FRACO}(no Codex: codex)${FIM}"
544
+ diz " 4. Chame o Ops: ${CIANO}/AuroqOS:agents:ops${FIM} ${FRACO}(no Codex: \$ops)${FIM}"
545
+ diz " 5. Digite: ${CIANO}*bootstrap${FIM}"
528
546
  printf '\n'
529
547
  diz "O Ops instala o resto e te guia daqui pra frente."
530
548
  printf '\n'
@@ -536,6 +554,7 @@ auroq_fecho() {
536
554
  auroq_main() {
537
555
  titulo "Auroq OS — instalacao"
538
556
  auroq_diagnostico
557
+ auroq_publicar_ferramenta_no_path
539
558
  auroq_garantir_git
540
559
  auroq_garantir_node
541
560
  auroq_login_mentoria
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auroq-os",
3
- "version": "2.4.1",
3
+ "version": "2.4.3",
4
4
  "description": "Auroq OS — Sistema Operacional de IA para Experts",
5
5
  "bin": {
6
6
  "auroq-os": "bin/auroq-os.js"