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.
Files changed (76) hide show
  1. package/README.md +27 -9
  2. package/dist/cli/expx.js +2 -0
  3. package/dist/cli/expx.js.map +1 -1
  4. package/dist/cli/principal.js +30 -6
  5. package/dist/cli/principal.js.map +1 -1
  6. package/dist/cli/selecao.js +3 -0
  7. package/dist/cli/selecao.js.map +1 -1
  8. package/dist/cli/subcomandos.d.ts +1 -1
  9. package/dist/cli/subcomandos.js +3 -2
  10. package/dist/cli/subcomandos.js.map +1 -1
  11. package/dist/nucleo/caminhos.d.ts +1 -1
  12. package/dist/nucleo/catalogo.d.ts +1 -1
  13. package/dist/nucleo/catalogo.js +7 -1
  14. package/dist/nucleo/catalogo.js.map +1 -1
  15. package/dist/nucleo/layout.d.ts +2 -2
  16. package/dist/nucleo/versao.d.ts +1 -1
  17. package/dist/parser/esquema/enums.d.ts +3 -2
  18. package/dist/parser/esquema/enums.js +3 -2
  19. package/dist/parser/esquema/enums.js.map +1 -1
  20. package/dist/parser/esquema/evento.d.ts +1 -0
  21. package/dist/servidor/http.d.ts +11 -0
  22. package/dist/servidor/http.js +31 -1
  23. package/dist/servidor/http.js.map +1 -1
  24. package/dist/watch/desenho/arvore.d.ts +3 -0
  25. package/dist/watch/desenho/arvore.js +62 -0
  26. package/dist/watch/desenho/arvore.js.map +1 -0
  27. package/dist/watch/desenho/bloqueios.d.ts +5 -0
  28. package/dist/watch/desenho/bloqueios.js +41 -0
  29. package/dist/watch/desenho/bloqueios.js.map +1 -0
  30. package/dist/watch/desenho/cabecalho.d.ts +11 -0
  31. package/dist/watch/desenho/cabecalho.js +49 -0
  32. package/dist/watch/desenho/cabecalho.js.map +1 -0
  33. package/dist/watch/desenho/cor.d.ts +44 -0
  34. package/dist/watch/desenho/cor.js +66 -0
  35. package/dist/watch/desenho/cor.js.map +1 -0
  36. package/dist/watch/desenho/desenhar.d.ts +16 -0
  37. package/dist/watch/desenho/desenhar.js +54 -0
  38. package/dist/watch/desenho/desenhar.js.map +1 -0
  39. package/dist/watch/desenho/eventos.d.ts +3 -0
  40. package/dist/watch/desenho/eventos.js +37 -0
  41. package/dist/watch/desenho/eventos.js.map +1 -0
  42. package/dist/watch/desenho/largura.d.ts +23 -0
  43. package/dist/watch/desenho/largura.js +42 -0
  44. package/dist/watch/desenho/largura.js.map +1 -0
  45. package/dist/watch/desenho/lista.d.ts +9 -0
  46. package/dist/watch/desenho/lista.js +28 -0
  47. package/dist/watch/desenho/lista.js.map +1 -0
  48. package/dist/watch/fontes/estado-schema.d.ts +1 -0
  49. package/dist/watch/fontes/observar.d.ts +32 -0
  50. package/dist/watch/fontes/observar.js +101 -0
  51. package/dist/watch/fontes/observar.js.map +1 -0
  52. package/dist/watch/fontes/raiz.d.ts +12 -0
  53. package/dist/watch/fontes/raiz.js +25 -0
  54. package/dist/watch/fontes/raiz.js.map +1 -0
  55. package/dist/watch/opcoes.d.ts +25 -0
  56. package/dist/watch/opcoes.js +73 -0
  57. package/dist/watch/opcoes.js.map +1 -0
  58. package/dist/watch/principal.d.ts +12 -0
  59. package/dist/watch/principal.js +49 -0
  60. package/dist/watch/principal.js.map +1 -0
  61. package/dist/watch/terminal/restaurar.d.ts +24 -0
  62. package/dist/watch/terminal/restaurar.js +58 -0
  63. package/dist/watch/terminal/restaurar.js.map +1 -0
  64. package/dist/watch/terminal/tela.d.ts +17 -0
  65. package/dist/watch/terminal/tela.js +64 -0
  66. package/dist/watch/terminal/tela.js.map +1 -0
  67. package/dist/watch/visao/escolher.d.ts +18 -0
  68. package/dist/watch/visao/escolher.js +57 -0
  69. package/dist/watch/visao/escolher.js.map +1 -0
  70. package/dist/watch/visao/projetar.d.ts +51 -0
  71. package/dist/watch/visao/projetar.js +38 -0
  72. package/dist/watch/visao/projetar.js.map +1 -0
  73. package/dist/watch/watch.d.ts +26 -0
  74. package/dist/watch/watch.js +89 -0
  75. package/dist/watch/watch.js.map +1 -0
  76. 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expxdev",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "CLI do metodo Expx: instala, atualiza e opera o ecossistema de skills, e sobe o painel de operacao",
5
5
  "type": "module",
6
6
  "bin": {