expxdev 0.3.0 → 0.4.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.
@@ -3,53 +3,104 @@ import { avaliarSelecao } from "./selecao.js";
3
3
  import { detectarProjeto } from "./projeto.js";
4
4
  import { HARNESS_VALIDOS } from "./init-flags.js";
5
5
  import { interpretarEscolhaMultipla, interpretarSimNao } from "./perguntar.js";
6
+ import { pintar, secao, temCor } from "./visual.js";
6
7
  const TENTATIVAS = 3;
7
- function listarSkills(p) {
8
- p.escrever("\nQuais skills instalar neste projeto?\n\n");
9
- CATALOGO.forEach((s, i) => {
10
- const marca = s.camada ? " (camada)" : "";
11
- p.escrever(` ${String(i + 1)}. ${s.nome}${marca} — ${s.papel}\n`);
12
- });
13
- p.escrever("\nResponda com os numeros separados por virgula (ex.: 1,5).\n");
8
+ /** Cancelar no menu (Esc/Ctrl+C) vira erro; aqui vira "cancelado", não travamento. */
9
+ function foiCancelado(e) {
10
+ return e instanceof Error && (e.name === "ExitPromptError" || e.name === "AbortPromptError");
14
11
  }
15
- async function escolherSkills(p) {
16
- listarSkills(p);
12
+ function rotuloDaSkill(nome, papel, camada, cor) {
13
+ const marca = camada ? ` ${pintar("(camada)", "cinza", cor)}` : "";
14
+ return `${pintar(nome, "branco", cor)}${marca} ${pintar(papel, "cinza", cor)}`;
15
+ }
16
+ async function marcarSkills(p) {
17
+ const cor = temCor();
17
18
  for (let tentativa = 0; tentativa < TENTATIVAS; tentativa++) {
18
- const resposta = await p.linha("skills: ");
19
- const indices = interpretarEscolhaMultipla(resposta, CATALOGO.length);
20
- if (indices === undefined) {
21
- p.escrever(`numero invalido: responda entre 1 e ${String(CATALOGO.length)}\n`);
22
- continue;
19
+ let selecao;
20
+ if (p.marcar !== undefined) {
21
+ const escolhido = await p.marcar({
22
+ titulo: "Quais skills instalar neste projeto?",
23
+ itens: CATALOGO.map((s) => ({
24
+ valor: s.nome,
25
+ rotulo: rotuloDaSkill(s.nome, s.papel, s.camada, cor),
26
+ })),
27
+ });
28
+ if (escolhido === undefined)
29
+ return undefined;
30
+ selecao = escolhido;
23
31
  }
24
- if (indices.length === 0) {
25
- p.escrever("nenhuma skill escolhida: escolha ao menos uma\n");
32
+ else {
33
+ const lido = await escolherPorNumero(p);
34
+ if (lido === undefined)
35
+ continue;
36
+ selecao = lido;
37
+ }
38
+ if (selecao.length === 0) {
39
+ p.escrever(`${pintar("nenhuma skill marcada: marque ao menos uma", "cinza", cor)}\n`);
26
40
  continue;
27
41
  }
28
- const selecao = indices.map((i) => CATALOGO[i]?.nome ?? "");
29
42
  const aval = avaliarSelecao(selecao);
30
43
  // Aviso nunca impede: a combinação incomum pode ser exatamente a pedida.
31
44
  // O CLI explica a consequência e deixa a pessoa confirmar (selecao.ts).
32
45
  if (aval.precisaConfirmar) {
33
46
  for (const a of aval.avisos)
34
- p.escrever(`\naviso: ${a}\n`);
35
- const segue = interpretarSimNao(await p.linha("seguir assim mesmo? [s/N] "), false);
36
- if (!segue) {
47
+ p.escrever(`\n${pintar("aviso:", "negrito", cor)} ${a}\n`);
48
+ if (!(await p.confirmar("seguir assim mesmo?", false))) {
37
49
  p.escrever("\nescolha de novo:\n");
38
50
  continue;
39
51
  }
40
52
  }
41
53
  for (const i of aval.integracoes) {
42
- p.escrever(`integracao disponivel: ${i} se conecta com as skills escolhidas\n`);
54
+ p.escrever(`${pintar("integracao:", "azulClaro", cor)} ${i} se conecta com as skills escolhidas\n`);
43
55
  }
44
56
  return selecao;
45
57
  }
46
58
  return undefined;
47
59
  }
48
- async function escolherHarness(p) {
49
- p.escrever("\nQual harness configurar?\n\n");
50
- p.escrever(" 1. claude Claude Code\n");
51
- p.escrever(" 2. opencode OpenCode\n");
52
- p.escrever("\nOs dois: 1,2. Vazio usa claude.\n");
60
+ /** O caminho sem navegação: a lista numerada e uma linha de resposta. */
61
+ async function escolherPorNumero(p) {
62
+ const cor = temCor();
63
+ p.escrever(secao("Quais skills instalar neste projeto?", cor));
64
+ CATALOGO.forEach((s, i) => {
65
+ p.escrever(` ${String(i + 1)}. ${rotuloDaSkill(s.nome, s.papel, s.camada, cor)}\n`);
66
+ });
67
+ p.escrever(`\n${pintar("numeros separados por virgula (ex.: 1,5)", "cinza", cor)}\n`);
68
+ const indices = interpretarEscolhaMultipla(await p.linha("skills: "), CATALOGO.length);
69
+ if (indices === undefined) {
70
+ p.escrever(`numero invalido: responda entre 1 e ${String(CATALOGO.length)}\n`);
71
+ return undefined;
72
+ }
73
+ return indices.map((i) => CATALOGO[i]?.nome ?? "");
74
+ }
75
+ async function marcarHarness(p) {
76
+ const cor = temCor();
77
+ const descricao = {
78
+ claude: "Claude Code",
79
+ opencode: "OpenCode",
80
+ };
81
+ if (p.marcar !== undefined) {
82
+ for (let tentativa = 0; tentativa < TENTATIVAS; tentativa++) {
83
+ const escolhido = await p.marcar({
84
+ titulo: "Qual harness configurar?",
85
+ itens: HARNESS_VALIDOS.map((h) => ({
86
+ valor: h,
87
+ rotulo: `${pintar(h, "branco", cor)} ${pintar(descricao[h], "cinza", cor)}`,
88
+ marcado: h === "claude",
89
+ })),
90
+ });
91
+ if (escolhido === undefined)
92
+ return undefined;
93
+ if (escolhido.length > 0)
94
+ return escolhido;
95
+ p.escrever(`${pintar("marque ao menos um harness", "cinza", cor)}\n`);
96
+ }
97
+ return undefined;
98
+ }
99
+ p.escrever(secao("Qual harness configurar?", cor));
100
+ HARNESS_VALIDOS.forEach((h, i) => {
101
+ p.escrever(` ${String(i + 1)}. ${h} — ${descricao[h]}\n`);
102
+ });
103
+ p.escrever(`\n${pintar("os dois: 1,2. vazio usa claude.", "cinza", cor)}\n`);
53
104
  for (let tentativa = 0; tentativa < TENTATIVAS; tentativa++) {
54
105
  const resposta = await p.linha("harness [1]: ");
55
106
  if (resposta.trim() === "")
@@ -72,30 +123,45 @@ async function escolherHarness(p) {
72
123
  async function confirmarReconfiguracao(p, raiz) {
73
124
  if (!detectarProjeto(raiz).existe)
74
125
  return true;
75
- p.escrever("\nEste projeto ja tem um .expx/ instalado.\n");
76
- p.escrever("Seguir remonta a instalacao a partir da nova selecao, substituindo a atual.\n");
77
- return interpretarSimNao(await p.linha("reconfigurar? [s/N] "), false);
126
+ const cor = temCor();
127
+ p.escrever(`\n${pintar("este projeto ja tem um .expx/ instalado", "negrito", cor)}\n`);
128
+ p.escrever(`${pintar("seguir remonta a instalacao a partir da nova selecao", "cinza", cor)}\n`);
129
+ return p.confirmar("reconfigurar?", false);
78
130
  }
79
131
  export async function executarWizard(p, parciais, raiz) {
80
- if (!(await confirmarReconfiguracao(p, raiz))) {
81
- return { ok: false, erro: "reconfiguracao cancelada: nada foi alterado" };
132
+ const cor = temCor();
133
+ try {
134
+ if (!(await confirmarReconfiguracao(p, raiz))) {
135
+ return { ok: false, erro: "reconfiguracao cancelada: nada foi alterado" };
136
+ }
137
+ const skills = parciais.skills.length > 0 ? parciais.skills : await marcarSkills(p);
138
+ if (skills === undefined)
139
+ return { ok: false, erro: "cancelado: nada foi alterado" };
140
+ const harness = parciais.harness.length > 0 ? parciais.harness : await marcarHarness(p);
141
+ if (harness === undefined)
142
+ return { ok: false, erro: "cancelado: nada foi alterado" };
143
+ const painel = parciais.painel
144
+ ? true
145
+ : await p.confirmar("instalar o painel como devDependency?", false);
146
+ p.escrever(secao("Resumo", cor));
147
+ p.escrever(` skills ${pintar(skills.join(", "), "branco", cor)}\n`);
148
+ p.escrever(` harness ${pintar(harness.join(", "), "branco", cor)}\n`);
149
+ if (painel)
150
+ p.escrever(` painel ${pintar("sim", "branco", cor)}\n`);
151
+ p.escrever("\n");
152
+ if (!(await p.confirmar("confirmar?", true))) {
153
+ return { ok: false, erro: "cancelado: nada foi alterado" };
154
+ }
155
+ return {
156
+ ok: true,
157
+ opcoes: { skills: [...skills], harness: [...harness], painel, sim: true, simular: parciais.simular },
158
+ };
82
159
  }
83
- const skills = parciais.skills.length > 0 ? parciais.skills : await escolherSkills(p);
84
- if (skills === undefined)
85
- return { ok: false, erro: "selecao de skills invalida apos varias tentativas" };
86
- const harness = parciais.harness.length > 0 ? parciais.harness : await escolherHarness(p);
87
- if (harness === undefined)
88
- return { ok: false, erro: "harness invalido apos varias tentativas" };
89
- const painel = parciais.painel
90
- ? true
91
- : interpretarSimNao(await p.linha("\nInstalar o painel como devDependency? [s/N] "), false);
92
- p.escrever(`\nvai instalar: ${skills.join(", ")}\n`);
93
- p.escrever(`harness: ${harness.join(", ")}\n`);
94
- if (painel)
95
- p.escrever("painel: sim\n");
96
- if (!interpretarSimNao(await p.linha("\nconfirmar? [S/n] "), true)) {
97
- return { ok: false, erro: "cancelado: nada foi alterado" };
160
+ catch (e) {
161
+ if (foiCancelado(e))
162
+ return { ok: false, erro: "cancelado: nada foi alterado" };
163
+ throw e;
98
164
  }
99
- return { ok: true, opcoes: { skills: [...skills], harness: [...harness], painel, sim: true, simular: parciais.simular } };
100
165
  }
166
+ export { interpretarSimNao };
101
167
  //# sourceMappingURL=wizard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/cli/wizard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/cli/wizard.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expxdev",
3
- "version": "0.3.0",
3
+ "version": "0.4.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": {
@@ -29,6 +29,7 @@
29
29
  ],
30
30
  "license": "MIT",
31
31
  "dependencies": {
32
+ "@inquirer/prompts": "^8.7.0",
32
33
  "chokidar": "^5.0.0",
33
34
  "ws": "^8.18.0",
34
35
  "yaml": "^2.5.0",
@@ -41,7 +42,7 @@
41
42
  "@types/react": "^18.3.0",
42
43
  "@types/react-dom": "^18.3.0",
43
44
  "@types/ws": "^8.5.0",
44
- "@vitejs/plugin-react": "^4.3.0",
45
+ "@vitejs/plugin-react": "^6.1.1",
45
46
  "gray-matter": "^4.0.3",
46
47
  "jsdom": "^25.0.0",
47
48
  "react": "^18.3.1",