expxdev 0.4.1 → 0.5.1
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/autonomo.d.ts +21 -0
- package/dist/cli/autonomo.js +37 -0
- package/dist/cli/autonomo.js.map +1 -0
- package/dist/cli/expx.js +6 -0
- package/dist/cli/expx.js.map +1 -1
- package/dist/cli/principal.js +39 -10
- 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 +4 -1
- package/dist/cli/subcomandos.js +9 -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
package/README.md
CHANGED
|
@@ -19,6 +19,18 @@
|
|
|
19
19
|
<strong>O CLI do método Expx</strong> — instala, atualiza e diagnostica o ecossistema<br>
|
|
20
20
|
de skills para <a href="https://claude.com/claude-code">Claude Code</a> e <a href="https://opencode.ai">OpenCode</a>, e sobe o painel de operação.
|
|
21
21
|
|
|
22
|
+
<p>
|
|
23
|
+
<a href="https://bittencourtthulio.github.io/expxdev/"><strong>📘 Documentação completa</strong></a>
|
|
24
|
+
·
|
|
25
|
+
<a href="https://bittencourtthulio.github.io/expxdev/#instalacao">Instalação</a>
|
|
26
|
+
·
|
|
27
|
+
<a href="https://bittencourtthulio.github.io/expxdev/#ecossistema">As sete skills</a>
|
|
28
|
+
·
|
|
29
|
+
<a href="https://bittencourtthulio.github.io/expxdev/#comandos">Referência do CLI</a>
|
|
30
|
+
·
|
|
31
|
+
<a href="https://bittencourtthulio.github.io/expxdev/#schema">Contratos</a>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
22
34
|
</div>
|
|
23
35
|
|
|
24
36
|
```bash
|
|
@@ -41,7 +53,7 @@ com namespace no Claude Code (`/expx:sprintx-sprints`) e sem namespace no OpenCo
|
|
|
41
53
|
| | |
|
|
42
54
|
|---|---|
|
|
43
55
|
| **[O problema que o método resolve](#o-problema-que-o-método-resolve)** | por que existe um método, e não só um prompt melhor |
|
|
44
|
-
| **[O ecossistema](#o-ecossistema)** | as
|
|
56
|
+
| **[O ecossistema](#o-ecossistema)** | as sete skills, o que cada uma faz e quando usar |
|
|
45
57
|
| **[Como as peças se encaixam](#como-as-peças-se-encaixam)** | o fluxo de ponta a ponta, com o diagrama |
|
|
46
58
|
| **[As três camadas de garantia](#as-três-camadas-de-garantia)** | skill, hook e agente — da mais fraca à mais forte |
|
|
47
59
|
| **[Os dois contratos](#os-dois-contratos-compartilhados)** | `expx-schema` e `expx-eventos`, o que faz tudo se encaixar |
|
|
@@ -87,7 +99,7 @@ painel que lê o que elas gravam.
|
|
|
87
99
|
<picture>
|
|
88
100
|
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/bittencourtthulio/expxdev/main/.github/assets/ecossistema-dark.svg">
|
|
89
101
|
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/bittencourtthulio/expxdev/main/.github/assets/ecossistema-light.svg">
|
|
90
|
-
<img alt="O CLI busca as
|
|
102
|
+
<img alt="O CLI busca as sete skills, empacota como plugin e configura os dois harnesses" src="https://raw.githubusercontent.com/bittencourtthulio/expxdev/main/.github/assets/ecossistema-light.svg" width="100%">
|
|
91
103
|
</picture>
|
|
92
104
|
|
|
93
105
|
| Skill | O que faz | Quando usar |
|
|
@@ -98,11 +110,16 @@ painel que lê o que elas gravam.
|
|
|
98
110
|
| **[stackx](https://github.com/bittencourtthulio/stackx)** | **Camada** que descobre o dialeto técnico do repositório — convenções, padrões e aderência — para o código novo parecer com o que já existe. | Entrar em base desconhecida |
|
|
99
111
|
| **[mergex](https://github.com/bittencourtthulio/mergex)** | Versionamento, entrega e revisão: branch, um commit por task, portão de prontidão, descrição de PR, pacote de QA e abertura do pull request. | Levar o trabalho pronto até o merge |
|
|
100
112
|
| **[memox](https://github.com/bittencourtthulio/MemoX)** | **Camada** de memória: indexa os artefatos já fechados — relatórios, causas raiz, decisões, QA, entregas — e responde o que já se sabe sobre um arquivo antes de alguém mexer nele. | Saber se este arquivo já quebrou antes |
|
|
113
|
+
| **[prodx](https://github.com/bittencourtthulio/prodx)** | **Camada** de produto: recebe o pedido cru, tria, verifica se o que foi pedido já existe e emite um veredito com evidência para assinatura humana. Três dos quatro vereditos encerram o pedido sem gerar código. | Decidir se vale fazer, antes de planejar |
|
|
101
114
|
|
|
102
|
-
**Camadas** (`legadox`, `stackx`, `memox`) sozinhas não fazem nada — elas modificam o
|
|
115
|
+
**Camadas** (`legadox`, `stackx`, `memox`, `prodx`) sozinhas não fazem nada — elas modificam o
|
|
103
116
|
comportamento de `sprintx` e `runx`. O CLI avisa se você selecionar uma camada sem base, mas
|
|
104
117
|
nunca impede.
|
|
105
118
|
|
|
119
|
+
A `prodx` é a única que roda **antes** das outras: ela decide *se* existe trabalho; as demais
|
|
120
|
+
tratam de *como* fazê-lo. Sem ela, o método planeja com rigor uma feature que não deveria
|
|
121
|
+
existir — o desperdício mais caro de uma software house, porque passa em todos os testes.
|
|
122
|
+
|
|
106
123
|
### Build e Run são a mesma disciplina
|
|
107
124
|
|
|
108
125
|
`sprintx` e `runx` não são dois métodos: são o mesmo método com gatilhos diferentes.
|
|
@@ -131,9 +148,9 @@ execução autônoma guiada por um arquivo orquestrador.
|
|
|
131
148
|
<img alt="O metodo Expx de ponta a ponta: o gatilho escolhe entre sprintx e runx, as camadas stackx e legadox modificam as duas, a mergex entrega e o painel le tudo" src="https://raw.githubusercontent.com/bittencourtthulio/expxdev/main/.github/assets/metodo-light.svg" width="100%">
|
|
132
149
|
</picture>
|
|
133
150
|
|
|
134
|
-
Em uma frase: **`stackx` diz como este projeto escreve código,
|
|
135
|
-
medo, `sprintx` e `runx` fazem o trabalho, `mergex` entrega, e o
|
|
136
|
-
mostra o andamento.**
|
|
151
|
+
Em uma frase: **`prodx` diz se vale fazer, `stackx` diz como este projeto escreve código,
|
|
152
|
+
`legadox` diz o quanto ter medo, `sprintx` e `runx` fazem o trabalho, `mergex` entrega, e o
|
|
153
|
+
`expxdev` instala todos e mostra o andamento.**
|
|
137
154
|
|
|
138
155
|
A composição concreta, skill a skill:
|
|
139
156
|
|
|
@@ -142,8 +159,9 @@ A composição concreta, skill a skill:
|
|
|
142
159
|
| **`docs/stack/CONVENCOES.md`** *(stackx)* | a ingestão lê as convenções; a descoberta transforma cada PROPOSTA em pergunta; o plano define caminho do teste, camada e padrão de erro **por task**, em vez de deixar para o executor; a auditoria roda a verificação de aderência | a investigação consulta o cartucho conforme o sintoma; o fix obedece o padrão de teste e o isolamento de banco |
|
|
143
160
|
| **`docs/legado/PERFIL.md`** *(legadox)* | cada fase ganha rigor proporcional ao raio: caracterização antes de alterar, orçamento de diff por task, plano de reversão, aprovação humana em raio ALTO | idem, sobre os cinco estágios |
|
|
144
161
|
| **`mergex` instalada** | abre a branch no início da F6, commita cada task, e entrega ao fim | abre a branch no início do E3, e entrega entre o E4 e o E5 |
|
|
162
|
+
| **`docs/produto/` com veredito assinado** *(prodx)* | a F1 recebe o `BRIEFING.md` como entrada, e o plano referencia o `PD-ID` de origem | o `BRIEFING.md` vira o `00-OCORRENCIA.md`, com o tipo já classificado e o comportamento intencional já verificado |
|
|
145
163
|
|
|
146
|
-
> **A ausência nunca quebra.** Sem `CONVENCOES.md`, sem `PERFIL.md` ou sem a `
|
|
164
|
+
> **A ausência nunca quebra.** Sem `CONVENCOES.md`, sem `PERFIL.md`, sem a `mergex` ou sem a `prodx`, as
|
|
147
165
|
> outras skills se comportam exatamente como se comportariam sem elas. Insumo que não existe
|
|
148
166
|
> vira aviso do que falta — nunca invenção, e nunca um erro que trava o trabalho.
|
|
149
167
|
|
|
@@ -213,7 +231,7 @@ o contrato `expx-eventos`, documentado abaixo.
|
|
|
213
231
|
|
|
214
232
|
## Os dois contratos compartilhados
|
|
215
233
|
|
|
216
|
-
As
|
|
234
|
+
As sete skills não se conhecem por código: elas se encontram em dois contratos escritos. É
|
|
217
235
|
isso que permite instalar três delas e não as outras duas, atualizar uma sem tocar nas demais,
|
|
218
236
|
ou escrever uma sexta amanhã.
|
|
219
237
|
|
|
@@ -610,7 +628,7 @@ src/
|
|
|
610
628
|
servidor/ o painel: HTTP, websocket e o observador de arquivos (somente leitura)
|
|
611
629
|
cli/ linha de comando: roteamento de subcomando, flags e seleção interativa
|
|
612
630
|
ui/ a interface do painel (React + Vite)
|
|
613
|
-
docs/contrato/ os dois contratos compartilhados pelas
|
|
631
|
+
docs/contrato/ os dois contratos compartilhados pelas sete skills
|
|
614
632
|
```
|
|
615
633
|
|
|
616
634
|
Este projeto foi planejado e executado com o próprio método — o plano completo, a base de
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* O que `panel` e `watch` precisam garantir sozinhos para funcionar logo
|
|
3
|
+
* depois de um `init`, sem passo manual nenhum.
|
|
4
|
+
*
|
|
5
|
+
* A regra de ouro do painel continua valendo: ele nunca escreve nos arquivos
|
|
6
|
+
* do projeto. Criar a pasta vazia que ele observa não fere isso — nenhum
|
|
7
|
+
* conteúdo é inventado, e sem a pasta o comando simplesmente não subia.
|
|
8
|
+
*/
|
|
9
|
+
export type ResultadoPasta = {
|
|
10
|
+
criada: boolean;
|
|
11
|
+
};
|
|
12
|
+
/** Cria a pasta observada quando ela ainda não existe. */
|
|
13
|
+
export declare function garantirPasta(caminho: string): ResultadoPasta;
|
|
14
|
+
/**
|
|
15
|
+
* Devolve a primeira porta livre a partir da pedida.
|
|
16
|
+
*
|
|
17
|
+
* Porta 0 é o "escolha você" do próprio SO: devolvemos como veio, sem sondar,
|
|
18
|
+
* porque sondar o 0 daria uma porta efêmera que estaria livre agora e não na
|
|
19
|
+
* hora do listen de verdade.
|
|
20
|
+
*/
|
|
21
|
+
export declare function escolherPorta(pedida: number): Promise<number>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { existsSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { createServer } from "node:http";
|
|
3
|
+
/** Cria a pasta observada quando ela ainda não existe. */
|
|
4
|
+
export function garantirPasta(caminho) {
|
|
5
|
+
if (existsSync(caminho))
|
|
6
|
+
return { criada: false };
|
|
7
|
+
mkdirSync(caminho, { recursive: true });
|
|
8
|
+
return { criada: true };
|
|
9
|
+
}
|
|
10
|
+
/** Quantas portas tentar acima da pedida antes de desistir. */
|
|
11
|
+
const TENTATIVAS = 20;
|
|
12
|
+
function livre(porta) {
|
|
13
|
+
return new Promise((ok) => {
|
|
14
|
+
const s = createServer();
|
|
15
|
+
s.once("error", () => ok(false));
|
|
16
|
+
s.listen(porta, "127.0.0.1", () => {
|
|
17
|
+
s.close(() => ok(true));
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Devolve a primeira porta livre a partir da pedida.
|
|
23
|
+
*
|
|
24
|
+
* Porta 0 é o "escolha você" do próprio SO: devolvemos como veio, sem sondar,
|
|
25
|
+
* porque sondar o 0 daria uma porta efêmera que estaria livre agora e não na
|
|
26
|
+
* hora do listen de verdade.
|
|
27
|
+
*/
|
|
28
|
+
export async function escolherPorta(pedida) {
|
|
29
|
+
if (pedida === 0)
|
|
30
|
+
return 0;
|
|
31
|
+
for (let p = pedida; p < pedida + TENTATIVAS && p <= 65535; p++) {
|
|
32
|
+
if (await livre(p))
|
|
33
|
+
return p;
|
|
34
|
+
}
|
|
35
|
+
return pedida;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=autonomo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autonomo.js","sourceRoot":"","sources":["../../src/cli/autonomo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAazC,0DAA0D;AAC1D,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAClD,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;QACzB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE;YAChC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,GAAG,UAAU,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,IAAI,MAAM,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/cli/expx.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { interpretarSubcomando, ajudaGeral } from "./subcomandos.js";
|
|
2
2
|
import { principal as principalPainel } from "./principal.js";
|
|
3
|
+
import { principalWatch } from "../watch/principal.js";
|
|
3
4
|
import { interpretarFlagsInit } from "./init-flags.js";
|
|
4
5
|
import { executarInit } from "./init.js";
|
|
5
6
|
import { adicionarSkills, removerSkills } from "./selecionar.js";
|
|
@@ -40,6 +41,7 @@ function comoEscolherSkills() {
|
|
|
40
41
|
}
|
|
41
42
|
const EXECUTORES = {
|
|
42
43
|
panel: async (resto) => principalPainel(resto),
|
|
44
|
+
watch: async (resto, saida) => principalWatch(resto, saida),
|
|
43
45
|
init: async (resto, saida) => {
|
|
44
46
|
const f = interpretarFlagsInit(resto);
|
|
45
47
|
if (!f.ok) {
|
|
@@ -167,6 +169,10 @@ export async function executarExpx(argv, saida = {}) {
|
|
|
167
169
|
escreverErro(`${r.erro}\n\n${ajudaGeral()}\n`);
|
|
168
170
|
return 1;
|
|
169
171
|
}
|
|
172
|
+
if ("versao" in r) {
|
|
173
|
+
escrever(`${versaoDoCli()}\n`);
|
|
174
|
+
return 0;
|
|
175
|
+
}
|
|
170
176
|
if (r.ajuda) {
|
|
171
177
|
escrever(`${ajudaGeral()}\n`);
|
|
172
178
|
return 0;
|
package/dist/cli/expx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expx.js","sourceRoot":"","sources":["../../src/cli/expx.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"expx.js","sourceRoot":"","sources":["../../src/cli/expx.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/principal.js
CHANGED
|
@@ -4,7 +4,11 @@ import { resolve, dirname, join } from "node:path";
|
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import { spawn } from "node:child_process";
|
|
6
6
|
import { interpretar, textoDeAjuda } from "./argumentos.js";
|
|
7
|
+
import { garantirPasta, escolherPorta } from "./autonomo.js";
|
|
7
8
|
import { iniciarPainel } from "../servidor/painel.js";
|
|
9
|
+
import { ErroDePorta } from "../servidor/http.js";
|
|
10
|
+
/** O painel escuta exclusivamente em loopback (ver http.ts). */
|
|
11
|
+
const HOST_PAINEL = "127.0.0.1";
|
|
8
12
|
/** Abre o navegador no sistema em que estamos, sem dependência externa. */
|
|
9
13
|
function abrirNavegador(url) {
|
|
10
14
|
const cmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
@@ -35,17 +39,42 @@ export async function principal(argv) {
|
|
|
35
39
|
return 0;
|
|
36
40
|
}
|
|
37
41
|
const raiz = resolve(r.opcoes.dir);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
// Um projeto recém-inicializado ainda não tem `docs/`. Exigir que a pessoa
|
|
43
|
+
// criasse a pasta na mão era o único passo manual entre `init` e `panel`.
|
|
44
|
+
const pasta = garantirPasta(raiz);
|
|
45
|
+
if (pasta.criada)
|
|
46
|
+
process.stdout.write(` criada a pasta ${r.opcoes.dir}\n`);
|
|
47
|
+
// A porta pedida pode estar ocupada por outro painel. Pular para a próxima
|
|
48
|
+
// livre entrega o painel funcionando em vez de um erro com instrução.
|
|
49
|
+
const porta = await escolherPorta(r.opcoes.porta);
|
|
42
50
|
const estaticos = pastaEstaticos();
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
let painel;
|
|
52
|
+
try {
|
|
53
|
+
painel = await iniciarPainel({
|
|
54
|
+
raiz,
|
|
55
|
+
porta,
|
|
56
|
+
diasBloqueio: r.opcoes.diasBloqueio,
|
|
57
|
+
...(estaticos !== undefined ? { estaticos } : {}),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
if (e instanceof ErroDePorta) {
|
|
62
|
+
// Quase sempre é um painel que já está no ar: mandar abrir aquele
|
|
63
|
+
// resolve mais rápido do que mandar matar processo.
|
|
64
|
+
process.stderr.write([
|
|
65
|
+
`a porta ${String(e.porta)} ja esta em uso`,
|
|
66
|
+
"",
|
|
67
|
+
" se o painel ja estiver rodando, abra:",
|
|
68
|
+
` http://${HOST_PAINEL}:${String(e.porta)}`,
|
|
69
|
+
"",
|
|
70
|
+
" ou suba numa porta livre:",
|
|
71
|
+
` npx expxdev panel --porta ${String(e.porta + 1)}`,
|
|
72
|
+
"",
|
|
73
|
+
].join("\n"));
|
|
74
|
+
return 1;
|
|
75
|
+
}
|
|
76
|
+
throw e;
|
|
77
|
+
}
|
|
49
78
|
const e = painel.estado();
|
|
50
79
|
const url = painel.url();
|
|
51
80
|
process.stdout.write([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"principal.js","sourceRoot":"","sources":["../../src/cli/principal.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"principal.js","sourceRoot":"","sources":["../../src/cli/principal.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/selecao.js
CHANGED
|
@@ -17,6 +17,9 @@ export function avaliarSelecao(selecao) {
|
|
|
17
17
|
}
|
|
18
18
|
if (selecao.includes("mergex") && temBase)
|
|
19
19
|
integracoes.push("mergex");
|
|
20
|
+
// o prodx entrega o BRIEFING.md que a sprintx lê na F1 e a runx vira 00-OCORRENCIA.md
|
|
21
|
+
if (selecao.includes("prodx") && temBase)
|
|
22
|
+
integracoes.push("prodx");
|
|
20
23
|
return {
|
|
21
24
|
permitido: erros.length === 0,
|
|
22
25
|
precisaConfirmar: avisos.length > 0,
|
package/dist/cli/selecao.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selecao.js","sourceRoot":"","sources":["../../src/cli/selecao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAsBnE,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAElC,MAAM,UAAU,cAAc,CAAC,OAA0B;IACvD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CACT,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,YAAY,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,uCAAuC,CACnM,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO;QAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"selecao.js","sourceRoot":"","sources":["../../src/cli/selecao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAsBnE,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAElC,MAAM,UAAU,cAAc,CAAC,OAA0B;IACvD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAElE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CACT,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,YAAY,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,uCAAuC,CACnM,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO;QAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,sFAAsF;IACtF,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO;QAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpE,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC;QAC7B,gBAAgB,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;QACnC,MAAM;QACN,KAAK;QACL,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
* `panel` delega para o parser antigo, que continua sendo o dono das opções do
|
|
8
8
|
* painel.
|
|
9
9
|
*/
|
|
10
|
-
export declare const SUBCOMANDOS: readonly ["init", "panel", "add", "remove", "update", "doctor"];
|
|
10
|
+
export declare const SUBCOMANDOS: readonly ["init", "panel", "watch", "add", "remove", "update", "doctor"];
|
|
11
11
|
export type Subcomando = (typeof SUBCOMANDOS)[number];
|
|
12
12
|
export type Roteamento = {
|
|
13
|
+
ok: true;
|
|
14
|
+
versao: true;
|
|
15
|
+
} | {
|
|
13
16
|
ok: true;
|
|
14
17
|
ajuda: true;
|
|
15
18
|
} | {
|
package/dist/cli/subcomandos.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* `panel` delega para o parser antigo, que continua sendo o dono das opções do
|
|
8
8
|
* painel.
|
|
9
9
|
*/
|
|
10
|
-
export const SUBCOMANDOS = ["init", "panel", "add", "remove", "update", "doctor"];
|
|
10
|
+
export const SUBCOMANDOS = ["init", "panel", "watch", "add", "remove", "update", "doctor"];
|
|
11
11
|
const AJUDA = `
|
|
12
12
|
expx — CLI do metodo Expx
|
|
13
13
|
|
|
@@ -15,14 +15,16 @@ expx — CLI do metodo Expx
|
|
|
15
15
|
|
|
16
16
|
expx init instala as skills escolhidas neste projeto
|
|
17
17
|
expx panel sobe o painel de operacao lendo o docs/ do projeto
|
|
18
|
+
expx watch acompanha um trabalho no terminal, ao vivo
|
|
18
19
|
expx add <skill...> acrescenta skills a selecao
|
|
19
20
|
expx remove <skill...> remove skills da selecao
|
|
20
21
|
expx update [skill...] atualiza as skills instaladas
|
|
21
22
|
expx doctor diagnostica uma instalacao quebrada
|
|
22
23
|
|
|
23
24
|
--ajuda mostra esta ajuda
|
|
25
|
+
--version mostra a versao do CLI
|
|
24
26
|
|
|
25
|
-
O painel
|
|
27
|
+
O painel e o watch funcionam sem init: nenhum dos dois escreve no projeto.
|
|
26
28
|
`.trim();
|
|
27
29
|
export function ajudaGeral() {
|
|
28
30
|
return AJUDA;
|
|
@@ -32,6 +34,11 @@ function ehSubcomando(v) {
|
|
|
32
34
|
}
|
|
33
35
|
export function interpretarSubcomando(argv) {
|
|
34
36
|
const primeiro = argv[0];
|
|
37
|
+
// `--version` é a primeira coisa que se digita para conferir uma atualização;
|
|
38
|
+
// antes ele caía em "subcomando desconhecido".
|
|
39
|
+
if (primeiro === "--version" || primeiro === "-v") {
|
|
40
|
+
return { ok: true, versao: true };
|
|
41
|
+
}
|
|
35
42
|
if (primeiro === undefined || primeiro === "--ajuda" || primeiro === "--help" || primeiro === "-h") {
|
|
36
43
|
return { ok: true, ajuda: true };
|
|
37
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subcomandos.js","sourceRoot":"","sources":["../../src/cli/subcomandos.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"subcomandos.js","sourceRoot":"","sources":["../../src/cli/subcomandos.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AASpG,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;CAiBb,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,UAAU,UAAU;IACxB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAQ,WAAiC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAuB;IAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,8EAA8E;IAC9E,+CAA+C;IAC/C,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAClD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACnG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,4BAA4B,QAAQ,EAAE,EAAE,CAAC;IACrE,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrF,CAAC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* para o vazio. O experimento está em
|
|
8
8
|
* `docs/expx-cli/base/09-validacao-marketplace-local.md`.
|
|
9
9
|
*
|
|
10
|
-
* Hoje as
|
|
10
|
+
* Hoje as sete skills reais estão limpas; a verificação existe para pegar a
|
|
11
11
|
* regressão futura antes que ela chegue no usuário.
|
|
12
12
|
*/
|
|
13
13
|
export type Achado = {
|
package/dist/nucleo/catalogo.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* As
|
|
2
|
+
* As sete skills do ecossistema Expx.
|
|
3
3
|
*
|
|
4
4
|
* Fonte única do que o CLI sabe instalar. `papel` é o texto mostrado na seleção
|
|
5
5
|
* do `init`; `camada` marca as skills que, sozinhas, não fazem nada — elas
|
|
@@ -43,6 +43,12 @@ export const CATALOGO = [
|
|
|
43
43
|
papel: "memoria do projeto, indexa os artefatos ja fechados",
|
|
44
44
|
camada: true,
|
|
45
45
|
},
|
|
46
|
+
{
|
|
47
|
+
nome: "prodx",
|
|
48
|
+
repositorio: "https://github.com/bittencourtthulio/prodx",
|
|
49
|
+
papel: "camada de produto, decide se o pedido vira trabalho",
|
|
50
|
+
camada: true,
|
|
51
|
+
},
|
|
46
52
|
];
|
|
47
53
|
/** Os nomes na ordem em que a seleção do `init` os apresenta. */
|
|
48
54
|
export const NOMES = CATALOGO.map((s) => s.nome);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalogo.js","sourceRoot":"","sources":["../../src/nucleo/catalogo.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE,kCAAkC;QACzC,MAAM,EAAE,KAAK;KACd;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,2CAA2C;QACxD,KAAK,EAAE,wCAAwC;QAC/C,MAAM,EAAE,KAAK;KACd;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE,8BAA8B;QACrC,MAAM,EAAE,IAAI;KACb;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,6CAA6C;QAC1D,KAAK,EAAE,2CAA2C;QAClD,MAAM,EAAE,IAAI;KACb;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,6CAA6C;QAC1D,KAAK,EAAE,mDAAmD;QAC1D,MAAM,EAAE,KAAK;KACd;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,4CAA4C;QACzD,KAAK,EAAE,qDAAqD;QAC5D,MAAM,EAAE,IAAI;KACb;CACO,CAAC;AAEX,iEAAiE;AACjE,MAAM,CAAC,MAAM,KAAK,GAAsB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAEpE,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"catalogo.js","sourceRoot":"","sources":["../../src/nucleo/catalogo.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE,kCAAkC;QACzC,MAAM,EAAE,KAAK;KACd;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,2CAA2C;QACxD,KAAK,EAAE,wCAAwC;QAC/C,MAAM,EAAE,KAAK;KACd;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE,8BAA8B;QACrC,MAAM,EAAE,IAAI;KACb;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,6CAA6C;QAC1D,KAAK,EAAE,2CAA2C;QAClD,MAAM,EAAE,IAAI;KACb;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,6CAA6C;QAC1D,KAAK,EAAE,mDAAmD;QAC1D,MAAM,EAAE,KAAK;KACd;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,4CAA4C;QACzD,KAAK,EAAE,qDAAqD;QAC5D,MAAM,EAAE,IAAI;KACb;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,4CAA4C;QACzD,KAAK,EAAE,qDAAqD;QAC5D,MAAM,EAAE,IAAI;KACb;CACO,CAAC;AAEX,iEAAiE;AACjE,MAAM,CAAC,MAAM,KAAK,GAAsB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAEpE,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC;AACjD,CAAC"}
|
package/dist/nucleo/layout.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Normaliza os layouts de repositório de skill.
|
|
3
3
|
*
|
|
4
|
-
* Os
|
|
4
|
+
* Os sete repositórios reais têm DOIS layouts distintos
|
|
5
5
|
* (`base/08-repositorios-reais.md`):
|
|
6
6
|
*
|
|
7
|
-
* embutido — `.claude/skills/<nome>/` + `.claude/commands/` (sprintx, stackx, mergex, memox)
|
|
7
|
+
* embutido — `.claude/skills/<nome>/` + `.claude/commands/` (sprintx, stackx, mergex, memox, prodx)
|
|
8
8
|
* plano — `skill/` + `commands/` (runx, legadox)
|
|
9
9
|
*
|
|
10
10
|
* Por isso a detecção NÃO assume caminho fixo: procura o `SKILL.md` e toma o
|
package/dist/nucleo/versao.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* explicitamente que a skill não está travada em versão publicada — nunca
|
|
7
7
|
* segue a branch em silêncio quando existe tag.
|
|
8
8
|
*
|
|
9
|
-
* Hoje NENHUMA das
|
|
9
|
+
* Hoje NENHUMA das sete skills tem tag (`base/08-repositorios-reais.md`), então
|
|
10
10
|
* o caminho de fallback é o corrente na prática, não a exceção.
|
|
11
11
|
*/
|
|
12
12
|
export type Alvo = {
|
|
@@ -17,8 +17,8 @@ import { z } from "zod";
|
|
|
17
17
|
* próprio nesse contrato.
|
|
18
18
|
*
|
|
19
19
|
* Não confundir com `ferramenta`, do rastro de eventos (`Ferramenta`, abaixo),
|
|
20
|
-
* que aceita as
|
|
21
|
-
*
|
|
20
|
+
* que aceita as sete. Tratar os dois como o mesmo enum rejeita o rastro de
|
|
21
|
+
* cinco skills.
|
|
22
22
|
*/
|
|
23
23
|
export declare const ExpxTool: z.ZodEnum<{
|
|
24
24
|
sprintx: "sprintx";
|
|
@@ -33,6 +33,7 @@ export declare const Ferramenta: z.ZodEnum<{
|
|
|
33
33
|
legadox: "legadox";
|
|
34
34
|
stackx: "stackx";
|
|
35
35
|
memox: "memox";
|
|
36
|
+
prodx: "prodx";
|
|
36
37
|
}>;
|
|
37
38
|
export type Ferramenta = z.infer<typeof Ferramenta>;
|
|
38
39
|
export declare const TipoTrabalho: z.ZodEnum<{
|
|
@@ -17,8 +17,8 @@ import { z } from "zod";
|
|
|
17
17
|
* próprio nesse contrato.
|
|
18
18
|
*
|
|
19
19
|
* Não confundir com `ferramenta`, do rastro de eventos (`Ferramenta`, abaixo),
|
|
20
|
-
* que aceita as
|
|
21
|
-
*
|
|
20
|
+
* que aceita as sete. Tratar os dois como o mesmo enum rejeita o rastro de
|
|
21
|
+
* cinco skills.
|
|
22
22
|
*/
|
|
23
23
|
export const ExpxTool = z.enum(["sprintx", "runx"]);
|
|
24
24
|
/** `ferramenta` — quem EMITIU um evento no rastro. Todas as skills emitem. */
|
|
@@ -29,6 +29,7 @@ export const Ferramenta = z.enum([
|
|
|
29
29
|
"legadox",
|
|
30
30
|
"stackx",
|
|
31
31
|
"memox",
|
|
32
|
+
"prodx",
|
|
32
33
|
]);
|
|
33
34
|
export const TipoTrabalho = z.enum(["feature", "ocorrencia"]);
|
|
34
35
|
export const TipoOcorrencia = z.enum([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/parser/esquema/enums.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/parser/esquema/enums.ts"],"names":[],"mappings":"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"}
|
package/dist/servidor/http.d.ts
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import { type Server } from "node:http";
|
|
2
2
|
import { type EstadoPainel } from "./estado.js";
|
|
3
|
+
/**
|
|
4
|
+
* Porta ocupada, tipada — para o CLI reconhecer o caso e explicar a saída em
|
|
5
|
+
* vez de repassar um `EADDRINUSE` cru.
|
|
6
|
+
*
|
|
7
|
+
* Na prática quase sempre é um painel anterior ainda no ar, e a ação certa é
|
|
8
|
+
* abrir aquele, não matar processo.
|
|
9
|
+
*/
|
|
10
|
+
export declare class ErroDePorta extends Error {
|
|
11
|
+
readonly porta: number;
|
|
12
|
+
constructor(porta: number);
|
|
13
|
+
}
|
|
3
14
|
export type OpcoesServidor = {
|
|
4
15
|
raiz: string;
|
|
5
16
|
porta: number;
|
package/dist/servidor/http.js
CHANGED
|
@@ -12,6 +12,21 @@ import { paginaRelatorio } from "../relatorio/pagina.js";
|
|
|
12
12
|
* flag, variável de ambiente ou opção que mude o bind.
|
|
13
13
|
*/
|
|
14
14
|
const HOST = "127.0.0.1";
|
|
15
|
+
/**
|
|
16
|
+
* Porta ocupada, tipada — para o CLI reconhecer o caso e explicar a saída em
|
|
17
|
+
* vez de repassar um `EADDRINUSE` cru.
|
|
18
|
+
*
|
|
19
|
+
* Na prática quase sempre é um painel anterior ainda no ar, e a ação certa é
|
|
20
|
+
* abrir aquele, não matar processo.
|
|
21
|
+
*/
|
|
22
|
+
export class ErroDePorta extends Error {
|
|
23
|
+
porta;
|
|
24
|
+
constructor(porta) {
|
|
25
|
+
super(`a porta ${String(porta)} ja esta em uso`);
|
|
26
|
+
this.name = "ErroDePorta";
|
|
27
|
+
this.porta = porta;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
15
30
|
const TIPOS = {
|
|
16
31
|
".html": "text/html; charset=utf-8",
|
|
17
32
|
".js": "text/javascript; charset=utf-8",
|
|
@@ -82,7 +97,22 @@ export async function criarServidor(op) {
|
|
|
82
97
|
res.writeHead(404, { "content-type": "text/plain; charset=utf-8" });
|
|
83
98
|
res.end("nao encontrado");
|
|
84
99
|
});
|
|
85
|
-
|
|
100
|
+
// O `error` do servidor precisa ser tratado JUNTO do listen. Sem isto, uma
|
|
101
|
+
// porta ocupada vira exceção não capturada e o processo morre com stack
|
|
102
|
+
// trace de Node na cara de quem só queria subir o painel — o caso comum é
|
|
103
|
+
// um painel que já está rodando na mesma porta.
|
|
104
|
+
await new Promise((ok, falhar) => {
|
|
105
|
+
const aoErrar = (e) => {
|
|
106
|
+
falhar(e.code === "EADDRINUSE"
|
|
107
|
+
? new ErroDePorta(op.porta)
|
|
108
|
+
: e);
|
|
109
|
+
};
|
|
110
|
+
http.once("error", aoErrar);
|
|
111
|
+
http.listen(op.porta, HOST, () => {
|
|
112
|
+
http.removeListener("error", aoErrar);
|
|
113
|
+
ok();
|
|
114
|
+
});
|
|
115
|
+
});
|
|
86
116
|
const endereco = () => {
|
|
87
117
|
const e = http.address();
|
|
88
118
|
if (e === null || typeof e === "string")
|