@eximia-ventures/claude-code-toolkit 3.0.1 → 3.0.2
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/package.json +1 -1
- package/src/index.js +2 -7
- package/src/installer.js +88 -100
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -17,15 +17,10 @@ program
|
|
|
17
17
|
program
|
|
18
18
|
.command('install', { isDefault: true })
|
|
19
19
|
.description('Instala o toolkit (wizard interativo)')
|
|
20
|
-
.
|
|
21
|
-
.option('--handoff-only', 'Instala apenas o session handoff')
|
|
22
|
-
.option('--no-aios', 'Pula a configuração do AIOS')
|
|
23
|
-
.option('--currency <symbol>', 'Símbolo da moeda (ex: R$, $, €)')
|
|
24
|
-
.option('--currency-rate <rate>', 'Taxa de conversão USD→moeda', parseFloat)
|
|
25
|
-
.action(async (options) => {
|
|
20
|
+
.action(async () => {
|
|
26
21
|
logger.banner(pkg.version);
|
|
27
22
|
try {
|
|
28
|
-
await runInstaller(
|
|
23
|
+
await runInstaller();
|
|
29
24
|
} catch (err) {
|
|
30
25
|
if (err.name === 'ExitPromptError' || err.message?.includes('prompt')) {
|
|
31
26
|
logger.blank();
|
package/src/installer.js
CHANGED
|
@@ -16,127 +16,115 @@ const CURRENCY_PRESETS = [
|
|
|
16
16
|
{ name: 'Personalizada — Definir símbolo e taxa', value: null }
|
|
17
17
|
];
|
|
18
18
|
|
|
19
|
-
async function runInstaller(
|
|
19
|
+
async function runInstaller() {
|
|
20
20
|
let selectedModules;
|
|
21
21
|
let currencyConfig;
|
|
22
22
|
let aiosOptions = {};
|
|
23
23
|
|
|
24
|
-
// ---
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
24
|
+
// --- Step 1: Module selection (tudo desmarcado) ---
|
|
25
|
+
const { selected } = await inquirer.prompt([
|
|
26
|
+
{
|
|
27
|
+
type: 'checkbox',
|
|
28
|
+
name: 'selected',
|
|
29
|
+
message: 'Selecione o que deseja instalar:',
|
|
30
|
+
choices: [
|
|
31
|
+
{
|
|
32
|
+
name: `${modules.statusline.name} — ${modules.statusline.description}`,
|
|
33
|
+
value: 'statusline',
|
|
34
|
+
checked: false
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: `${modules.handoff.name} — ${modules.handoff.description}`,
|
|
38
|
+
value: 'handoff',
|
|
39
|
+
checked: false
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
]);
|
|
44
|
+
selectedModules = selected;
|
|
45
|
+
|
|
46
|
+
// --- Step 2: Currency config (if statusline selected) ---
|
|
47
|
+
if (selectedModules.includes('statusline')) {
|
|
48
|
+
logger.section('Configuração da Statusline');
|
|
49
|
+
|
|
50
|
+
const { currencyPreset } = await inquirer.prompt([
|
|
38
51
|
{
|
|
39
|
-
type: '
|
|
40
|
-
name: '
|
|
41
|
-
message: '
|
|
42
|
-
choices:
|
|
43
|
-
{
|
|
44
|
-
name: `${modules.statusline.name} — ${modules.statusline.description}`,
|
|
45
|
-
value: 'statusline',
|
|
46
|
-
checked: true
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: `${modules.handoff.name} — ${modules.handoff.description}`,
|
|
50
|
-
value: 'handoff',
|
|
51
|
-
checked: true
|
|
52
|
-
}
|
|
53
|
-
]
|
|
52
|
+
type: 'list',
|
|
53
|
+
name: 'currencyPreset',
|
|
54
|
+
message: 'Moeda para exibição de custo:',
|
|
55
|
+
choices: CURRENCY_PRESETS
|
|
54
56
|
}
|
|
55
57
|
]);
|
|
56
|
-
selectedModules = selected;
|
|
57
|
-
|
|
58
|
-
if (selectedModules.length === 0) {
|
|
59
|
-
logger.warn('Nenhum módulo selecionado. Saindo.');
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// Step 2: Currency config (if statusline selected)
|
|
64
|
-
if (selectedModules.includes('statusline')) {
|
|
65
|
-
logger.section('Configuração da Statusline');
|
|
66
58
|
|
|
67
|
-
|
|
59
|
+
if (currencyPreset === null) {
|
|
60
|
+
const custom = await inquirer.prompt([
|
|
61
|
+
{
|
|
62
|
+
type: 'input',
|
|
63
|
+
name: 'symbol',
|
|
64
|
+
message: 'Símbolo da moeda:',
|
|
65
|
+
default: '$'
|
|
66
|
+
},
|
|
68
67
|
{
|
|
69
|
-
type: '
|
|
70
|
-
name: '
|
|
71
|
-
message: '
|
|
72
|
-
|
|
68
|
+
type: 'number',
|
|
69
|
+
name: 'rate',
|
|
70
|
+
message: 'Taxa de conversão USD→moeda:',
|
|
71
|
+
default: 1
|
|
73
72
|
}
|
|
74
73
|
]);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
{
|
|
79
|
-
type: 'input',
|
|
80
|
-
name: 'symbol',
|
|
81
|
-
message: 'Símbolo da moeda:',
|
|
82
|
-
default: '$'
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
type: 'number',
|
|
86
|
-
name: 'rate',
|
|
87
|
-
message: 'Taxa de conversão USD→moeda:',
|
|
88
|
-
default: 1
|
|
89
|
-
}
|
|
90
|
-
]);
|
|
91
|
-
currencyConfig = custom;
|
|
92
|
-
} else {
|
|
93
|
-
currencyConfig = currencyPreset;
|
|
94
|
-
}
|
|
74
|
+
currencyConfig = custom;
|
|
75
|
+
} else {
|
|
76
|
+
currencyConfig = currencyPreset;
|
|
95
77
|
}
|
|
78
|
+
}
|
|
96
79
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
logger.section('AIOS Framework');
|
|
80
|
+
// --- Step 3: AIOS (sempre wizard) ---
|
|
81
|
+
logger.section('AIOS Framework');
|
|
100
82
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
83
|
+
const { useAios } = await inquirer.prompt([
|
|
84
|
+
{
|
|
85
|
+
type: 'confirm',
|
|
86
|
+
name: 'useAios',
|
|
87
|
+
message: 'Vai utilizar o AIOS?',
|
|
88
|
+
default: false
|
|
89
|
+
}
|
|
90
|
+
]);
|
|
109
91
|
|
|
110
|
-
|
|
111
|
-
|
|
92
|
+
if (useAios) {
|
|
93
|
+
const { aiosChoices } = await inquirer.prompt([
|
|
94
|
+
{
|
|
95
|
+
type: 'checkbox',
|
|
96
|
+
name: 'aiosChoices',
|
|
97
|
+
message: 'Selecione as opções AIOS:',
|
|
98
|
+
choices: [
|
|
112
99
|
{
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
name: 'Instalar Skill /aios-integrate (integrar e gerenciar artefatos)',
|
|
124
|
-
value: 'skill',
|
|
125
|
-
checked: true
|
|
126
|
-
}
|
|
127
|
-
]
|
|
100
|
+
name: 'Instalar/Atualizar AIOS Core',
|
|
101
|
+
value: 'core',
|
|
102
|
+
checked: false
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
name: 'Instalar Skill /aios-integrate (integrar e gerenciar artefatos)',
|
|
106
|
+
value: 'skill',
|
|
107
|
+
checked: false
|
|
128
108
|
}
|
|
129
|
-
]
|
|
130
|
-
|
|
131
|
-
selectedModules.push('aios');
|
|
132
|
-
aiosOptions = {
|
|
133
|
-
installAiosCore: aiosChoices.includes('core'),
|
|
134
|
-
installAiosSkill: aiosChoices.includes('skill')
|
|
135
|
-
};
|
|
109
|
+
]
|
|
136
110
|
}
|
|
111
|
+
]);
|
|
112
|
+
|
|
113
|
+
if (aiosChoices.length > 0) {
|
|
114
|
+
selectedModules.push('aios');
|
|
115
|
+
aiosOptions = {
|
|
116
|
+
installAiosCore: aiosChoices.includes('core'),
|
|
117
|
+
installAiosSkill: aiosChoices.includes('skill')
|
|
118
|
+
};
|
|
137
119
|
}
|
|
138
120
|
}
|
|
139
121
|
|
|
122
|
+
// --- Validate selection ---
|
|
123
|
+
if (selectedModules.length === 0) {
|
|
124
|
+
logger.warn('Nenhum módulo selecionado. Saindo.');
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
|
|
140
128
|
// --- Execute installation ---
|
|
141
129
|
logger.section('Instalando...');
|
|
142
130
|
|