aitk-cli 0.2.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 (118) hide show
  1. package/README.md +147 -0
  2. package/dist/bin/aitk.d.ts +3 -0
  3. package/dist/bin/aitk.d.ts.map +1 -0
  4. package/dist/bin/aitk.js +108 -0
  5. package/dist/bin/aitk.js.map +1 -0
  6. package/dist/commands/completions.d.ts +3 -0
  7. package/dist/commands/completions.d.ts.map +1 -0
  8. package/dist/commands/completions.js +244 -0
  9. package/dist/commands/completions.js.map +1 -0
  10. package/dist/commands/config.d.ts +3 -0
  11. package/dist/commands/config.d.ts.map +1 -0
  12. package/dist/commands/config.js +108 -0
  13. package/dist/commands/config.js.map +1 -0
  14. package/dist/commands/init.d.ts +3 -0
  15. package/dist/commands/init.d.ts.map +1 -0
  16. package/dist/commands/init.js +232 -0
  17. package/dist/commands/init.js.map +1 -0
  18. package/dist/commands/install.d.ts +3 -0
  19. package/dist/commands/install.d.ts.map +1 -0
  20. package/dist/commands/install.js +250 -0
  21. package/dist/commands/install.js.map +1 -0
  22. package/dist/commands/list.d.ts +3 -0
  23. package/dist/commands/list.d.ts.map +1 -0
  24. package/dist/commands/list.js +78 -0
  25. package/dist/commands/list.js.map +1 -0
  26. package/dist/commands/login.d.ts +3 -0
  27. package/dist/commands/login.d.ts.map +1 -0
  28. package/dist/commands/login.js +362 -0
  29. package/dist/commands/login.js.map +1 -0
  30. package/dist/commands/logout.d.ts +3 -0
  31. package/dist/commands/logout.d.ts.map +1 -0
  32. package/dist/commands/logout.js +10 -0
  33. package/dist/commands/logout.js.map +1 -0
  34. package/dist/commands/publish.d.ts +3 -0
  35. package/dist/commands/publish.d.ts.map +1 -0
  36. package/dist/commands/publish.js +245 -0
  37. package/dist/commands/publish.js.map +1 -0
  38. package/dist/commands/remove.d.ts +3 -0
  39. package/dist/commands/remove.d.ts.map +1 -0
  40. package/dist/commands/remove.js +150 -0
  41. package/dist/commands/remove.js.map +1 -0
  42. package/dist/commands/search.d.ts +3 -0
  43. package/dist/commands/search.d.ts.map +1 -0
  44. package/dist/commands/search.js +77 -0
  45. package/dist/commands/search.js.map +1 -0
  46. package/dist/commands/status.d.ts +3 -0
  47. package/dist/commands/status.d.ts.map +1 -0
  48. package/dist/commands/status.js +177 -0
  49. package/dist/commands/status.js.map +1 -0
  50. package/dist/commands/sync.d.ts +3 -0
  51. package/dist/commands/sync.d.ts.map +1 -0
  52. package/dist/commands/sync.js +178 -0
  53. package/dist/commands/sync.js.map +1 -0
  54. package/dist/commands/team.d.ts +3 -0
  55. package/dist/commands/team.d.ts.map +1 -0
  56. package/dist/commands/team.js +236 -0
  57. package/dist/commands/team.js.map +1 -0
  58. package/dist/commands/update.d.ts +3 -0
  59. package/dist/commands/update.d.ts.map +1 -0
  60. package/dist/commands/update.js +311 -0
  61. package/dist/commands/update.js.map +1 -0
  62. package/dist/core/api-client.d.ts +44 -0
  63. package/dist/core/api-client.d.ts.map +1 -0
  64. package/dist/core/api-client.js +111 -0
  65. package/dist/core/api-client.js.map +1 -0
  66. package/dist/core/auth.d.ts +12 -0
  67. package/dist/core/auth.d.ts.map +1 -0
  68. package/dist/core/auth.js +48 -0
  69. package/dist/core/auth.js.map +1 -0
  70. package/dist/core/config.d.ts +13 -0
  71. package/dist/core/config.d.ts.map +1 -0
  72. package/dist/core/config.js +42 -0
  73. package/dist/core/config.js.map +1 -0
  74. package/dist/core/lockfile.d.ts +22 -0
  75. package/dist/core/lockfile.d.ts.map +1 -0
  76. package/dist/core/lockfile.js +75 -0
  77. package/dist/core/lockfile.js.map +1 -0
  78. package/dist/core/manifest.d.ts +12 -0
  79. package/dist/core/manifest.d.ts.map +1 -0
  80. package/dist/core/manifest.js +57 -0
  81. package/dist/core/manifest.js.map +1 -0
  82. package/dist/core/resolver.d.ts +52 -0
  83. package/dist/core/resolver.d.ts.map +1 -0
  84. package/dist/core/resolver.js +108 -0
  85. package/dist/core/resolver.js.map +1 -0
  86. package/dist/index.d.ts +8 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +8 -0
  89. package/dist/index.js.map +1 -0
  90. package/dist/installers/base-installer.d.ts +19 -0
  91. package/dist/installers/base-installer.d.ts.map +1 -0
  92. package/dist/installers/base-installer.js +4 -0
  93. package/dist/installers/base-installer.js.map +1 -0
  94. package/dist/installers/config-installer.d.ts +10 -0
  95. package/dist/installers/config-installer.d.ts.map +1 -0
  96. package/dist/installers/config-installer.js +108 -0
  97. package/dist/installers/config-installer.js.map +1 -0
  98. package/dist/installers/hook-installer.d.ts +10 -0
  99. package/dist/installers/hook-installer.d.ts.map +1 -0
  100. package/dist/installers/hook-installer.js +41 -0
  101. package/dist/installers/hook-installer.js.map +1 -0
  102. package/dist/installers/mcp-installer.d.ts +14 -0
  103. package/dist/installers/mcp-installer.d.ts.map +1 -0
  104. package/dist/installers/mcp-installer.js +152 -0
  105. package/dist/installers/mcp-installer.js.map +1 -0
  106. package/dist/installers/skill-installer.d.ts +10 -0
  107. package/dist/installers/skill-installer.d.ts.map +1 -0
  108. package/dist/installers/skill-installer.js +41 -0
  109. package/dist/installers/skill-installer.js.map +1 -0
  110. package/dist/installers/template-installer.d.ts +16 -0
  111. package/dist/installers/template-installer.d.ts.map +1 -0
  112. package/dist/installers/template-installer.js +123 -0
  113. package/dist/installers/template-installer.js.map +1 -0
  114. package/dist/utils/logger.d.ts +66 -0
  115. package/dist/utils/logger.d.ts.map +1 -0
  116. package/dist/utils/logger.js +211 -0
  117. package/dist/utils/logger.js.map +1 -0
  118. package/package.json +81 -0
@@ -0,0 +1,178 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { createApiClient } from '../core/api-client.js';
5
+ import { readManifest } from '../core/manifest.js';
6
+ import { readLockFile, writeLockFile, createLockFile, addLockEntry, createLockEntry, isLocked, } from '../core/lockfile.js';
7
+ import { SkillInstaller } from '../installers/skill-installer.js';
8
+ import { McpInstaller } from '../installers/mcp-installer.js';
9
+ import { ConfigInstaller } from '../installers/config-installer.js';
10
+ import { HookInstaller } from '../installers/hook-installer.js';
11
+ import { TemplateInstaller } from '../installers/template-installer.js';
12
+ import { logger } from '../utils/logger.js';
13
+ import { writeFileSync, existsSync, mkdirSync, rmSync } from 'node:fs';
14
+ import { join } from 'node:path';
15
+ import { tmpdir } from 'node:os';
16
+ import { execSync } from 'node:child_process';
17
+ /** Retorna o instalador adequado para o tipo do artefato */
18
+ function getInstaller(type) {
19
+ const installers = {
20
+ skill: new SkillInstaller(),
21
+ mcp: new McpInstaller(),
22
+ config: new ConfigInstaller(),
23
+ hook: new HookInstaller(),
24
+ template: new TemplateInstaller(),
25
+ };
26
+ return installers[type] || new SkillInstaller();
27
+ }
28
+ /** Extrai um tarball para um diretório temporário */
29
+ function extractTarball(tarballPath) {
30
+ const extractDir = join(tmpdir(), `aitk-sync-${Date.now()}`);
31
+ mkdirSync(extractDir, { recursive: true });
32
+ execSync(`tar -xzf "${tarballPath}" -C "${extractDir}"`, { stdio: 'pipe' });
33
+ return extractDir;
34
+ }
35
+ /** Limpa arquivos temporários */
36
+ function cleanup(...paths) {
37
+ for (const p of paths) {
38
+ try {
39
+ if (existsSync(p)) {
40
+ rmSync(p, { recursive: true, force: true });
41
+ }
42
+ }
43
+ catch {
44
+ // Ignora erros de limpeza
45
+ }
46
+ }
47
+ }
48
+ export const syncCommand = new Command('sync')
49
+ .description('Sincronizar artefatos do projeto com o registry')
50
+ .option('--force', 'Forçar reinstalação mesmo se versão já está no lock file')
51
+ .option('--tool <tool>', 'Ferramenta alvo (padrão: claude-code)')
52
+ .action(async (options) => {
53
+ const manifest = readManifest();
54
+ if (!manifest) {
55
+ logger.blank();
56
+ logger.error('Nenhum manifesto encontrado (aitk.json)');
57
+ logger.print(chalk.gray(' Execute aitk install <artefato> para iniciar.'));
58
+ logger.blank();
59
+ return;
60
+ }
61
+ const tool = (options.tool || manifest.tool || 'claude-code');
62
+ const allArtifacts = {
63
+ ...manifest.artifacts,
64
+ ...(manifest.devArtifacts || {}),
65
+ };
66
+ const slugs = Object.keys(allArtifacts);
67
+ if (slugs.length === 0) {
68
+ logger.blank();
69
+ logger.info('Nenhum artefato no manifesto para sincronizar.');
70
+ logger.blank();
71
+ return;
72
+ }
73
+ logger.blank();
74
+ logger.print(` ${chalk.white.bold('Sincronizando')} ${chalk.gray(`${slugs.length} artefato(s)`)}`);
75
+ logger.print(chalk.gray(` Ferramenta alvo: ${tool}`));
76
+ logger.blank();
77
+ let lockFile = readLockFile() || createLockFile();
78
+ const client = createApiClient();
79
+ let installed = 0;
80
+ let skipped = 0;
81
+ let failed = 0;
82
+ const tmpFiles = [];
83
+ for (const slug of slugs) {
84
+ const [scope, name] = slug.split('/');
85
+ const versionRange = allArtifacts[slug];
86
+ // Verificar se já está no lock file com a mesma versão
87
+ if (!options.force && isLocked(lockFile, slug, lockFile.artifacts[slug]?.resolved || '')) {
88
+ logger.print(` ${chalk.gray('⏭')} ${chalk.gray(slug)} ${chalk.gray('(já instalado)')}`);
89
+ skipped++;
90
+ continue;
91
+ }
92
+ const spinner = ora({
93
+ text: ` Sincronizando ${chalk.cyan(slug)}...`,
94
+ color: 'cyan',
95
+ }).start();
96
+ try {
97
+ // Buscar detalhes e resolver versão
98
+ const artifactResponse = await client.getArtifact(scope, name);
99
+ const artifactData = artifactResponse.data;
100
+ // Determinar versão a instalar
101
+ let resolvedVersion;
102
+ if (versionRange.startsWith('^') || versionRange.startsWith('~') || versionRange === 'latest' || versionRange === '*') {
103
+ resolvedVersion = artifactData.latestVersion || '';
104
+ }
105
+ else {
106
+ resolvedVersion = versionRange;
107
+ }
108
+ if (!resolvedVersion) {
109
+ spinner.warn(` ${chalk.yellow(slug)} — sem versão disponível`);
110
+ failed++;
111
+ continue;
112
+ }
113
+ // Verificar se lock file já tem essa versão exata
114
+ if (!options.force && isLocked(lockFile, slug, resolvedVersion)) {
115
+ spinner.info(` ${chalk.gray(slug)} ${chalk.gray(`v${resolvedVersion} (já sincronizado)`)}`);
116
+ skipped++;
117
+ continue;
118
+ }
119
+ // Baixar e instalar
120
+ const { buffer } = await client.downloadVersion(scope, name, resolvedVersion);
121
+ const tmpDir = join(tmpdir(), `aitk-sync-dl-${Date.now()}`);
122
+ mkdirSync(tmpDir, { recursive: true });
123
+ tmpFiles.push(tmpDir);
124
+ const tarballPath = join(tmpDir, `${scope}-${name}-${resolvedVersion}.tgz`);
125
+ writeFileSync(tarballPath, Buffer.from(buffer));
126
+ const extractDir = extractTarball(tarballPath);
127
+ tmpFiles.push(extractDir);
128
+ const installer = getInstaller(artifactData.type);
129
+ const installManifest = {
130
+ name: artifactData.name,
131
+ scope: artifactData.scope,
132
+ version: resolvedVersion,
133
+ type: artifactData.type,
134
+ description: artifactData.description,
135
+ keywords: artifactData.keywords,
136
+ categories: artifactData.categories,
137
+ license: artifactData.license,
138
+ repository: artifactData.repository,
139
+ toolTargets: artifactData.toolTargets,
140
+ files: [],
141
+ install: {},
142
+ };
143
+ const projectRoot = process.cwd();
144
+ const result = await installer.install(installManifest, extractDir, projectRoot, tool);
145
+ if (!result.success) {
146
+ spinner.fail(` ${chalk.red(slug)} — falha na instalação`);
147
+ failed++;
148
+ continue;
149
+ }
150
+ // Atualizar lock file
151
+ // Gerar checksum simples (em produção usaria SHA256 do tarball)
152
+ const checksum = Buffer.from(buffer).length.toString(16);
153
+ lockFile = addLockEntry(lockFile, slug, createLockEntry(resolvedVersion, checksum));
154
+ spinner.succeed(` ${chalk.green(slug)} ${chalk.gray(`v${resolvedVersion}`)}`);
155
+ installed++;
156
+ }
157
+ catch (error) {
158
+ spinner.fail(` ${chalk.red(slug)} — ${error instanceof Error ? error.message : 'erro'}`);
159
+ failed++;
160
+ }
161
+ }
162
+ // Salvar lock file atualizado
163
+ writeLockFile(lockFile);
164
+ // Relatório final
165
+ logger.blank();
166
+ const summaryBox = logger.box([
167
+ chalk.white.bold('Sincronização concluída'),
168
+ '',
169
+ `${chalk.green('✓')} Instalados: ${chalk.green.bold(String(installed))}`,
170
+ `${chalk.gray('⏭')} Pulados: ${chalk.gray(String(skipped))}`,
171
+ ...(failed > 0 ? [`${chalk.red('✗')} Falhas: ${chalk.red.bold(String(failed))}`] : []),
172
+ ]);
173
+ logger.print(summaryBox);
174
+ logger.blank();
175
+ // Limpeza
176
+ cleanup(...tmpFiles);
177
+ });
178
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const teamCommand: Command;
3
+ //# sourceMappingURL=team.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BpC,eAAO,MAAM,WAAW,SACW,CAAC"}
@@ -0,0 +1,236 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { createApiClient } from '../core/api-client.js';
5
+ import { getAuth } from '../core/auth.js';
6
+ import { logger } from '../utils/logger.js';
7
+ /** Badge de role colorido */
8
+ function roleBadge(role) {
9
+ switch (role) {
10
+ case 'owner': return chalk.bgYellow.black.bold(' OWNER ');
11
+ case 'admin': return chalk.bgCyan.black.bold(' ADMIN ');
12
+ case 'member': return chalk.bgGray.white(' MEMBER ');
13
+ default: return chalk.gray(role);
14
+ }
15
+ }
16
+ export const teamCommand = new Command('team')
17
+ .description('Gerenciar equipes');
18
+ // ── team list ─────────────────────────────────────────────────────────────
19
+ teamCommand
20
+ .command('list')
21
+ .description('Listar suas equipes')
22
+ .action(async () => {
23
+ const auth = getAuth();
24
+ if (!auth) {
25
+ logger.error('Voce precisa estar autenticado. Execute: aitk login');
26
+ return;
27
+ }
28
+ const spinner = ora({ text: 'Buscando equipes...', color: 'cyan' }).start();
29
+ try {
30
+ const client = createApiClient();
31
+ const response = await client.request('/teams');
32
+ const teams = response.data;
33
+ spinner.stop();
34
+ logger.blank();
35
+ if (!teams || teams.length === 0) {
36
+ logger.print(` ${chalk.gray('Voce nao participa de nenhuma equipe.')}`);
37
+ logger.blank();
38
+ logger.print(` ${chalk.gray('Crie uma com:')} ${chalk.cyan('aitk team create <slug> <nome>')}`);
39
+ logger.blank();
40
+ return;
41
+ }
42
+ logger.print(` ${chalk.white.bold('Suas equipes')} ${chalk.gray(`(${teams.length})`)}`);
43
+ logger.blank();
44
+ const rows = teams.map((t) => [
45
+ chalk.cyan.bold(t.teams.slug),
46
+ chalk.white(t.teams.name),
47
+ roleBadge(t.role),
48
+ chalk.gray(new Date(t.joined_at).toLocaleDateString('pt-BR')),
49
+ ]);
50
+ logger.print(logger.table({
51
+ columns: [
52
+ { header: 'Slug', width: 20 },
53
+ { header: 'Nome', width: 25 },
54
+ { header: 'Role', width: 10 },
55
+ { header: 'Desde', width: 12 },
56
+ ],
57
+ rows,
58
+ }));
59
+ logger.blank();
60
+ }
61
+ catch (error) {
62
+ spinner.fail('Erro ao buscar equipes');
63
+ logger.error(error instanceof Error ? error.message : 'Erro desconhecido');
64
+ }
65
+ });
66
+ // ── team create ───────────────────────────────────────────────────────────
67
+ teamCommand
68
+ .command('create')
69
+ .description('Criar nova equipe')
70
+ .argument('<slug>', 'Identificador unico (ex: minha-equipe)')
71
+ .argument('<name>', 'Nome da equipe')
72
+ .option('-d, --description <desc>', 'Descricao da equipe')
73
+ .action(async (slug, name, options) => {
74
+ const auth = getAuth();
75
+ if (!auth) {
76
+ logger.error('Voce precisa estar autenticado. Execute: aitk login');
77
+ return;
78
+ }
79
+ const spinner = ora({ text: 'Criando equipe...', color: 'cyan' }).start();
80
+ try {
81
+ const client = createApiClient();
82
+ const response = await client.request('/teams', {
83
+ method: 'POST',
84
+ body: JSON.stringify({
85
+ slug,
86
+ name,
87
+ description: options.description || null,
88
+ }),
89
+ });
90
+ spinner.succeed(`Equipe ${chalk.cyan.bold(slug)} criada com sucesso!`);
91
+ logger.blank();
92
+ const team = response.data;
93
+ const infoBox = logger.box([
94
+ chalk.green.bold('Equipe criada!'),
95
+ '',
96
+ `${chalk.gray('Slug:')} ${chalk.cyan.bold(team.slug)}`,
97
+ `${chalk.gray('Nome:')} ${chalk.white(team.name)}`,
98
+ `${chalk.gray('Descricao:')} ${chalk.gray(team.description || '—')}`,
99
+ '',
100
+ chalk.gray(`Use ${chalk.cyan(`aitk team invite ${slug} <username>`)} para convidar membros.`),
101
+ ]);
102
+ logger.print(infoBox);
103
+ logger.blank();
104
+ }
105
+ catch (error) {
106
+ spinner.fail('Erro ao criar equipe');
107
+ logger.error(error instanceof Error ? error.message : 'Erro desconhecido');
108
+ }
109
+ });
110
+ // ── team info ─────────────────────────────────────────────────────────────
111
+ teamCommand
112
+ .command('info')
113
+ .description('Ver detalhes de uma equipe')
114
+ .argument('<slug>', 'Slug da equipe')
115
+ .action(async (slug) => {
116
+ const spinner = ora({ text: 'Buscando detalhes...', color: 'cyan' }).start();
117
+ try {
118
+ const client = createApiClient();
119
+ const response = await client.request(`/teams/${slug}`);
120
+ const team = response.data;
121
+ spinner.stop();
122
+ logger.blank();
123
+ // Informacoes basicas
124
+ logger.print(` ${chalk.white.bold(team.name)} ${chalk.gray(`(${team.slug})`)}`);
125
+ if (team.description) {
126
+ logger.print(` ${chalk.gray(team.description)}`);
127
+ }
128
+ logger.blank();
129
+ // Membros
130
+ logger.print(` ${chalk.yellow.bold('MEMBROS')} ${chalk.gray(`(${team.members.length})`)}`);
131
+ for (const member of team.members) {
132
+ const profile = member.profiles;
133
+ const name = profile?.display_name || profile?.username || 'desconhecido';
134
+ logger.print(` ${roleBadge(member.role)} ${chalk.white(name)} ${chalk.gray(`@${profile?.username}`)}`);
135
+ }
136
+ logger.blank();
137
+ // Artefatos
138
+ if (team.artifacts.length > 0) {
139
+ logger.print(` ${chalk.yellow.bold('ARTEFATOS')} ${chalk.gray(`(${team.artifacts.length})`)}`);
140
+ for (const art of team.artifacts) {
141
+ logger.print(` ${logger.typeBadge(art.type)} ${chalk.cyan.bold(`${art.scope}/${art.name}`)} ` +
142
+ `${chalk.gray(`v${art.latest_version || '?'}`)} ` +
143
+ `${logger.downloadsBadge(art.total_downloads)}`);
144
+ }
145
+ logger.blank();
146
+ }
147
+ }
148
+ catch (error) {
149
+ spinner.fail('Erro ao buscar detalhes');
150
+ logger.error(error instanceof Error ? error.message : 'Erro desconhecido');
151
+ }
152
+ });
153
+ // ── team invite ───────────────────────────────────────────────────────────
154
+ teamCommand
155
+ .command('invite')
156
+ .description('Convidar membro para equipe')
157
+ .argument('<slug>', 'Slug da equipe')
158
+ .argument('<username>', 'Username do usuario')
159
+ .option('-r, --role <role>', 'Role do membro (member, admin)', 'member')
160
+ .action(async (slug, username, options) => {
161
+ const auth = getAuth();
162
+ if (!auth) {
163
+ logger.error('Voce precisa estar autenticado. Execute: aitk login');
164
+ return;
165
+ }
166
+ const spinner = ora({ text: `Adicionando ${username}...`, color: 'cyan' }).start();
167
+ try {
168
+ const client = createApiClient();
169
+ await client.request(`/teams/${slug}/members`, {
170
+ method: 'POST',
171
+ body: JSON.stringify({
172
+ username,
173
+ role: options.role,
174
+ }),
175
+ });
176
+ spinner.succeed(`${chalk.white.bold(username)} adicionado como ${roleBadge(options.role)} na equipe ${chalk.cyan.bold(slug)}`);
177
+ logger.blank();
178
+ }
179
+ catch (error) {
180
+ spinner.fail('Erro ao adicionar membro');
181
+ logger.error(error instanceof Error ? error.message : 'Erro desconhecido');
182
+ }
183
+ });
184
+ // ── team kick ─────────────────────────────────────────────────────────────
185
+ teamCommand
186
+ .command('kick')
187
+ .description('Remover membro da equipe')
188
+ .argument('<slug>', 'Slug da equipe')
189
+ .argument('<username>', 'Username do usuario')
190
+ .action(async (slug, username) => {
191
+ const auth = getAuth();
192
+ if (!auth) {
193
+ logger.error('Voce precisa estar autenticado. Execute: aitk login');
194
+ return;
195
+ }
196
+ const spinner = ora({ text: `Removendo ${username}...`, color: 'cyan' }).start();
197
+ try {
198
+ const client = createApiClient();
199
+ await client.request(`/teams/${slug}/members`, {
200
+ method: 'DELETE',
201
+ body: JSON.stringify({ username }),
202
+ });
203
+ spinner.succeed(`${chalk.white.bold(username)} removido da equipe ${chalk.cyan.bold(slug)}`);
204
+ logger.blank();
205
+ }
206
+ catch (error) {
207
+ spinner.fail('Erro ao remover membro');
208
+ logger.error(error instanceof Error ? error.message : 'Erro desconhecido');
209
+ }
210
+ });
211
+ // ── team delete ───────────────────────────────────────────────────────────
212
+ teamCommand
213
+ .command('delete')
214
+ .description('Deletar equipe')
215
+ .argument('<slug>', 'Slug da equipe')
216
+ .action(async (slug) => {
217
+ const auth = getAuth();
218
+ if (!auth) {
219
+ logger.error('Voce precisa estar autenticado. Execute: aitk login');
220
+ return;
221
+ }
222
+ const spinner = ora({ text: 'Deletando equipe...', color: 'cyan' }).start();
223
+ try {
224
+ const client = createApiClient();
225
+ await client.request(`/teams/${slug}`, {
226
+ method: 'DELETE',
227
+ });
228
+ spinner.succeed(`Equipe ${chalk.cyan.bold(slug)} deletada`);
229
+ logger.blank();
230
+ }
231
+ catch (error) {
232
+ spinner.fail('Erro ao deletar equipe');
233
+ logger.error(error instanceof Error ? error.message : 'Erro desconhecido');
234
+ }
235
+ });
236
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const updateCommand: Command;
3
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsQpC,eAAO,MAAM,aAAa,SAgKtB,CAAC"}