expxdev 0.2.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.
@@ -0,0 +1,167 @@
1
+ import { CATALOGO } from "../nucleo/catalogo.js";
2
+ import { avaliarSelecao } from "./selecao.js";
3
+ import { detectarProjeto } from "./projeto.js";
4
+ import { HARNESS_VALIDOS } from "./init-flags.js";
5
+ import { interpretarEscolhaMultipla, interpretarSimNao } from "./perguntar.js";
6
+ import { pintar, secao, temCor } from "./visual.js";
7
+ const TENTATIVAS = 3;
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");
11
+ }
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();
18
+ for (let tentativa = 0; tentativa < TENTATIVAS; tentativa++) {
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;
31
+ }
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`);
40
+ continue;
41
+ }
42
+ const aval = avaliarSelecao(selecao);
43
+ // Aviso nunca impede: a combinação incomum pode ser exatamente a pedida.
44
+ // O CLI explica a consequência e deixa a pessoa confirmar (selecao.ts).
45
+ if (aval.precisaConfirmar) {
46
+ for (const a of aval.avisos)
47
+ p.escrever(`\n${pintar("aviso:", "negrito", cor)} ${a}\n`);
48
+ if (!(await p.confirmar("seguir assim mesmo?", false))) {
49
+ p.escrever("\nescolha de novo:\n");
50
+ continue;
51
+ }
52
+ }
53
+ for (const i of aval.integracoes) {
54
+ p.escrever(`${pintar("integracao:", "azulClaro", cor)} ${i} se conecta com as skills escolhidas\n`);
55
+ }
56
+ return selecao;
57
+ }
58
+ return undefined;
59
+ }
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`);
104
+ for (let tentativa = 0; tentativa < TENTATIVAS; tentativa++) {
105
+ const resposta = await p.linha("harness [1]: ");
106
+ if (resposta.trim() === "")
107
+ return ["claude"];
108
+ const indices = interpretarEscolhaMultipla(resposta, HARNESS_VALIDOS.length);
109
+ if (indices === undefined || indices.length === 0) {
110
+ p.escrever("responda 1, 2 ou 1,2\n");
111
+ continue;
112
+ }
113
+ return indices.map((i) => HARNESS_VALIDOS[i] ?? "claude");
114
+ }
115
+ return undefined;
116
+ }
117
+ /**
118
+ * Reconfiguração nunca apaga sem confirmar (promptcli1.md:51-53).
119
+ *
120
+ * O `.expx/` existente é remontado do zero pelo `init`, então seguir sem
121
+ * perguntar destruiria a seleção anterior em silêncio.
122
+ */
123
+ async function confirmarReconfiguracao(p, raiz) {
124
+ if (!detectarProjeto(raiz).existe)
125
+ return true;
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);
130
+ }
131
+ export async function executarWizard(p, parciais, raiz) {
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
+ };
159
+ }
160
+ catch (e) {
161
+ if (foiCancelado(e))
162
+ return { ok: false, erro: "cancelado: nada foi alterado" };
163
+ throw e;
164
+ }
165
+ }
166
+ export { interpretarSimNao };
167
+ //# sourceMappingURL=wizard.js.map
@@ -0,0 +1 @@
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.2.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",