expxdev 0.4.1 → 0.5.0
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.
- package/README.md +27 -9
- package/dist/cli/expx.js +2 -0
- package/dist/cli/expx.js.map +1 -1
- package/dist/cli/principal.js +30 -6
- package/dist/cli/principal.js.map +1 -1
- package/dist/cli/selecao.js +3 -0
- package/dist/cli/selecao.js.map +1 -1
- package/dist/cli/subcomandos.d.ts +1 -1
- package/dist/cli/subcomandos.js +3 -2
- package/dist/cli/subcomandos.js.map +1 -1
- package/dist/nucleo/caminhos.d.ts +1 -1
- package/dist/nucleo/catalogo.d.ts +1 -1
- package/dist/nucleo/catalogo.js +7 -1
- package/dist/nucleo/catalogo.js.map +1 -1
- package/dist/nucleo/layout.d.ts +2 -2
- package/dist/nucleo/versao.d.ts +1 -1
- package/dist/parser/esquema/enums.d.ts +3 -2
- package/dist/parser/esquema/enums.js +3 -2
- package/dist/parser/esquema/enums.js.map +1 -1
- package/dist/parser/esquema/evento.d.ts +1 -0
- package/dist/servidor/http.d.ts +11 -0
- package/dist/servidor/http.js +31 -1
- package/dist/servidor/http.js.map +1 -1
- package/dist/watch/desenho/arvore.d.ts +3 -0
- package/dist/watch/desenho/arvore.js +62 -0
- package/dist/watch/desenho/arvore.js.map +1 -0
- package/dist/watch/desenho/bloqueios.d.ts +5 -0
- package/dist/watch/desenho/bloqueios.js +41 -0
- package/dist/watch/desenho/bloqueios.js.map +1 -0
- package/dist/watch/desenho/cabecalho.d.ts +11 -0
- package/dist/watch/desenho/cabecalho.js +49 -0
- package/dist/watch/desenho/cabecalho.js.map +1 -0
- package/dist/watch/desenho/cor.d.ts +44 -0
- package/dist/watch/desenho/cor.js +66 -0
- package/dist/watch/desenho/cor.js.map +1 -0
- package/dist/watch/desenho/desenhar.d.ts +16 -0
- package/dist/watch/desenho/desenhar.js +54 -0
- package/dist/watch/desenho/desenhar.js.map +1 -0
- package/dist/watch/desenho/eventos.d.ts +3 -0
- package/dist/watch/desenho/eventos.js +37 -0
- package/dist/watch/desenho/eventos.js.map +1 -0
- package/dist/watch/desenho/largura.d.ts +23 -0
- package/dist/watch/desenho/largura.js +42 -0
- package/dist/watch/desenho/largura.js.map +1 -0
- package/dist/watch/desenho/lista.d.ts +9 -0
- package/dist/watch/desenho/lista.js +28 -0
- package/dist/watch/desenho/lista.js.map +1 -0
- package/dist/watch/fontes/estado-schema.d.ts +1 -0
- package/dist/watch/fontes/observar.d.ts +32 -0
- package/dist/watch/fontes/observar.js +101 -0
- package/dist/watch/fontes/observar.js.map +1 -0
- package/dist/watch/fontes/raiz.d.ts +12 -0
- package/dist/watch/fontes/raiz.js +25 -0
- package/dist/watch/fontes/raiz.js.map +1 -0
- package/dist/watch/opcoes.d.ts +25 -0
- package/dist/watch/opcoes.js +73 -0
- package/dist/watch/opcoes.js.map +1 -0
- package/dist/watch/principal.d.ts +12 -0
- package/dist/watch/principal.js +49 -0
- package/dist/watch/principal.js.map +1 -0
- package/dist/watch/terminal/restaurar.d.ts +24 -0
- package/dist/watch/terminal/restaurar.js +58 -0
- package/dist/watch/terminal/restaurar.js.map +1 -0
- package/dist/watch/terminal/tela.d.ts +17 -0
- package/dist/watch/terminal/tela.js +64 -0
- package/dist/watch/terminal/tela.js.map +1 -0
- package/dist/watch/visao/escolher.d.ts +18 -0
- package/dist/watch/visao/escolher.js +57 -0
- package/dist/watch/visao/escolher.js.map +1 -0
- package/dist/watch/visao/projetar.d.ts +51 -0
- package/dist/watch/visao/projetar.js +38 -0
- package/dist/watch/visao/projetar.js.map +1 -0
- package/dist/watch/watch.d.ts +26 -0
- package/dist/watch/watch.js +89 -0
- package/dist/watch/watch.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { desenhar } from "./desenho/desenhar.js";
|
|
4
|
+
import { desenharLista } from "./desenho/lista.js";
|
|
5
|
+
import { lerEstadoExpx } from "./fontes/estado.js";
|
|
6
|
+
import { observarFontes } from "./fontes/observar.js";
|
|
7
|
+
import { lerRastro } from "./fontes/rastro.js";
|
|
8
|
+
import { criarTela } from "./terminal/tela.js";
|
|
9
|
+
import { projetarVisao } from "./visao/projetar.js";
|
|
10
|
+
/** Largura de trabalho: a do terminal, o pedido explícito, ou 80. */
|
|
11
|
+
function larguraDe(op) {
|
|
12
|
+
if (op.opcoes.colunas !== undefined)
|
|
13
|
+
return op.opcoes.colunas;
|
|
14
|
+
const cols = process.stdout.columns;
|
|
15
|
+
// Abaixo de 80 continuamos desenhando: o corte é elegante por construção.
|
|
16
|
+
return typeof cols === "number" && cols > 0 ? cols : 80;
|
|
17
|
+
}
|
|
18
|
+
export async function executarWatch(op) {
|
|
19
|
+
// Sem `.expx/`, o projeto não tem o Expx instalado. Mensagem curta e saída
|
|
20
|
+
// limpa, como manda a tolerância a falha — não é erro, é ausência.
|
|
21
|
+
if (!existsSync(join(op.raiz, ".expx"))) {
|
|
22
|
+
op.escrever([
|
|
23
|
+
"este projeto nao tem o Expx instalado (falta a pasta .expx/).",
|
|
24
|
+
"",
|
|
25
|
+
" npx expxdev init instala as skills neste projeto",
|
|
26
|
+
"",
|
|
27
|
+
].join("\n"));
|
|
28
|
+
return { parar: async () => undefined, codigo: 0, encerrou: true };
|
|
29
|
+
}
|
|
30
|
+
const subiuEm = new Date();
|
|
31
|
+
const colunas = larguraDe(op);
|
|
32
|
+
const tela = criarTela(op.escrever);
|
|
33
|
+
// A visão fica guardada de propósito: é ela que carrega a árvore, cara de
|
|
34
|
+
// montar. O gatilho de estado NÃO a reconstrói.
|
|
35
|
+
let visao = lerTudo();
|
|
36
|
+
function lerTudo() {
|
|
37
|
+
op.aoLerPlano?.();
|
|
38
|
+
return projetarVisao(op.raiz, {
|
|
39
|
+
...(op.opcoes.trabalho !== undefined ? { trabalhoPedido: op.opcoes.trabalho } : {}),
|
|
40
|
+
subiuEm,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function redesenhar() {
|
|
44
|
+
const linhas = op.opcoes.todos
|
|
45
|
+
? desenharLista(visao, colunas, op.cor)
|
|
46
|
+
: desenhar(visao, { colunas, cor: op.cor, agora: new Date() });
|
|
47
|
+
tela.desenhar(linhas);
|
|
48
|
+
}
|
|
49
|
+
redesenhar();
|
|
50
|
+
const observador = await observarFontes(op.raiz, {
|
|
51
|
+
// O plano mudou: reconstrói tudo. É a releitura cara, e ela só acontece
|
|
52
|
+
// aqui.
|
|
53
|
+
aoMudarPlano: () => {
|
|
54
|
+
visao = lerTudo();
|
|
55
|
+
redesenhar();
|
|
56
|
+
},
|
|
57
|
+
// Só o estado.json mudou: atualiza o barato e redesenha com a árvore
|
|
58
|
+
// que já estava em mãos.
|
|
59
|
+
aoMudarEstado: () => {
|
|
60
|
+
const estado = lerEstadoExpx(op.raiz);
|
|
61
|
+
visao = { ...visao, estado, degradado: estado === null };
|
|
62
|
+
redesenhar();
|
|
63
|
+
},
|
|
64
|
+
// Só o rastro cresceu: relê os eventos, que é leitura de cauda, e
|
|
65
|
+
// preserva a árvore. É o caminho mais percorrido durante uma execução
|
|
66
|
+
// autônoma — cada hook grava uma linha.
|
|
67
|
+
aoMudarRastro: () => {
|
|
68
|
+
if (visao.trabalho === null)
|
|
69
|
+
return;
|
|
70
|
+
const eventos = lerRastro(op.raiz, visao.trabalho.trabalho_id);
|
|
71
|
+
const fronteira = subiuEm.toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
72
|
+
visao = {
|
|
73
|
+
...visao,
|
|
74
|
+
eventos,
|
|
75
|
+
violacoesAviso: eventos.filter((e) => e.evento === "regra_violada" && e.ts >= fronteira)
|
|
76
|
+
.length,
|
|
77
|
+
};
|
|
78
|
+
redesenhar();
|
|
79
|
+
},
|
|
80
|
+
}, op.debounceMs ?? 150);
|
|
81
|
+
return {
|
|
82
|
+
parar: async () => {
|
|
83
|
+
await observador.parar();
|
|
84
|
+
},
|
|
85
|
+
codigo: 0,
|
|
86
|
+
encerrou: false,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/watch/watch.ts"],"names":[],"mappings":"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"}
|