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
package/README.md ADDED
@@ -0,0 +1,147 @@
1
+ <p align="center">
2
+ <img src="https://aitk.dev/logo.svg" alt="AI Toolkit" width="80" />
3
+ </p>
4
+
5
+ <h1 align="center">aitk-cli</h1>
6
+
7
+ <p align="center">
8
+ <strong>Package manager for AI coding tools</strong>
9
+ <br />
10
+ Install and share skills, MCPs, templates, configs and hooks for
11
+ <br />
12
+ Claude Code &bull; OpenCode &bull; Gemini CLI &bull; Cursor &bull; Windsurf
13
+ </p>
14
+
15
+ <p align="center">
16
+ <a href="https://www.npmjs.com/package/aitk-cli"><img src="https://img.shields.io/npm/v/aitk-cli.svg?style=flat-square&color=00d4ff" alt="npm version" /></a>
17
+ <a href="https://www.npmjs.com/package/aitk-cli"><img src="https://img.shields.io/npm/dm/aitk-cli.svg?style=flat-square&color=00ff88" alt="npm downloads" /></a>
18
+ <a href="https://github.com/tarcisiojr/ai-toolkit/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="license" /></a>
19
+ </p>
20
+
21
+ ---
22
+
23
+ ## Quick Start
24
+
25
+ ```bash
26
+ # Install a skill with npx (no install needed)
27
+ npx aitk-cli search "code review"
28
+ npx aitk-cli install official/code-review
29
+
30
+ # Or install globally
31
+ npm install -g aitk-cli
32
+ aitk search "memory"
33
+ aitk install official/memory-bank
34
+ ```
35
+
36
+ ## What is AI Toolkit?
37
+
38
+ AI Toolkit is a **package manager for AI coding tool artifacts**. Think of it as npm, but for the prompts, skills, MCP servers, templates, and configurations that power your AI coding assistants.
39
+
40
+ ### Supported artifact types
41
+
42
+ | Type | Description |
43
+ |------|-------------|
44
+ | **skill** | Reusable prompts and workflows (slash commands) |
45
+ | **mcp** | Model Context Protocol server configurations |
46
+ | **template** | Project starter templates and boilerplates |
47
+ | **config** | Tool configuration files and settings |
48
+ | **hook** | Git hooks, pre/post-commit scripts |
49
+
50
+ ### Supported tools
51
+
52
+ - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (Anthropic)
53
+ - [OpenCode](https://github.com/opencode-ai/opencode)
54
+ - [Gemini CLI](https://github.com/google-gemini/gemini-cli)
55
+ - Cursor, Windsurf, and more
56
+
57
+ ## Commands
58
+
59
+ ### Registry
60
+
61
+ ```bash
62
+ aitk search <query> # Search the registry
63
+ aitk install <scope>/<name> # Install an artifact
64
+ aitk update [scope/name] # Update installed artifacts
65
+ aitk remove <scope>/<name> # Remove an artifact
66
+ aitk publish # Publish your artifact
67
+ ```
68
+
69
+ ### Project
70
+
71
+ ```bash
72
+ aitk init # Initialize a new project
73
+ aitk init <scope>/<template> # Initialize from a template
74
+ aitk list # List installed artifacts
75
+ aitk status # Check for available updates
76
+ aitk sync # Sync artifacts with the registry
77
+ aitk config # Manage CLI configuration
78
+ ```
79
+
80
+ ### Teams
81
+
82
+ ```bash
83
+ aitk team create <slug> # Create a team
84
+ aitk team list # List your teams
85
+ aitk team add-member <slug> <user> # Add a team member
86
+ ```
87
+
88
+ ### Authentication
89
+
90
+ ```bash
91
+ aitk login # Authenticate with the registry
92
+ aitk logout # Remove local credentials
93
+ ```
94
+
95
+ ## Configuration
96
+
97
+ The CLI stores its configuration in `~/.aitk/`:
98
+
99
+ ```
100
+ ~/.aitk/
101
+ auth.json # Authentication credentials
102
+ config.json # CLI settings (registry URL, default tool)
103
+ ```
104
+
105
+ ## CI/CD Integration
106
+
107
+ Publish artifacts automatically with GitHub Actions:
108
+
109
+ ```yaml
110
+ # .github/workflows/publish.yml
111
+ name: Publish to AI Toolkit
112
+ on:
113
+ release:
114
+ types: [published]
115
+ jobs:
116
+ publish:
117
+ runs-on: ubuntu-latest
118
+ steps:
119
+ - uses: actions/checkout@v4
120
+ - uses: tarcisiojr/ai-toolkit/.github/actions/aitk-publish@main
121
+ with:
122
+ api-token: ${{ secrets.AITK_API_TOKEN }}
123
+ ```
124
+
125
+ ## Shell Completions
126
+
127
+ ```bash
128
+ # Bash
129
+ eval "$(aitk completions bash)"
130
+
131
+ # Zsh
132
+ eval "$(aitk completions zsh)"
133
+
134
+ # Fish
135
+ aitk completions fish | source
136
+ ```
137
+
138
+ ## Links
139
+
140
+ - **Registry**: [aitk.dev](https://aitk.dev)
141
+ - **Documentation**: [aitk.dev/docs](https://aitk.dev/docs)
142
+ - **GitHub**: [github.com/tarcisiojr/ai-toolkit](https://github.com/tarcisiojr/ai-toolkit)
143
+ - **Issues**: [github.com/tarcisiojr/ai-toolkit/issues](https://github.com/tarcisiojr/ai-toolkit/issues)
144
+
145
+ ## License
146
+
147
+ MIT &copy; [tarcisiojr](https://github.com/tarcisiojr)
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=aitk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aitk.d.ts","sourceRoot":"","sources":["../../src/bin/aitk.ts"],"names":[],"mappings":""}
@@ -0,0 +1,108 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { loginCommand } from '../commands/login.js';
5
+ import { logoutCommand } from '../commands/logout.js';
6
+ import { searchCommand } from '../commands/search.js';
7
+ import { installCommand } from '../commands/install.js';
8
+ import { updateCommand } from '../commands/update.js';
9
+ import { removeCommand } from '../commands/remove.js';
10
+ import { publishCommand } from '../commands/publish.js';
11
+ import { listCommand } from '../commands/list.js';
12
+ import { statusCommand } from '../commands/status.js';
13
+ import { teamCommand } from '../commands/team.js';
14
+ import { configCommand } from '../commands/config.js';
15
+ import { syncCommand } from '../commands/sync.js';
16
+ import { initCommand } from '../commands/init.js';
17
+ import { completionsCommand } from '../commands/completions.js';
18
+ import { logger } from '../utils/logger.js';
19
+ const program = new Command();
20
+ program
21
+ .name('aitk')
22
+ .description('AI Toolkit — Gerenciador de artefatos para ferramentas de AI coding')
23
+ .version('0.1.0');
24
+ program.addCommand(loginCommand);
25
+ program.addCommand(logoutCommand);
26
+ program.addCommand(searchCommand);
27
+ program.addCommand(installCommand);
28
+ program.addCommand(updateCommand);
29
+ program.addCommand(removeCommand);
30
+ program.addCommand(publishCommand);
31
+ program.addCommand(listCommand);
32
+ program.addCommand(statusCommand);
33
+ program.addCommand(teamCommand);
34
+ program.addCommand(configCommand);
35
+ program.addCommand(syncCommand);
36
+ program.addCommand(initCommand);
37
+ program.addCommand(completionsCommand);
38
+ // ── Help personalizado com banner e cores ────────────────────────────────
39
+ program.configureHelp({
40
+ formatHelp: (cmd, helper) => {
41
+ const output = [];
42
+ // Banner ASCII
43
+ logger.banner();
44
+ // Descricao
45
+ const description = helper.commandDescription(cmd);
46
+ if (description) {
47
+ output.push(` ${chalk.gray(description)}`);
48
+ output.push('');
49
+ }
50
+ // Versao
51
+ output.push(` ${chalk.gray('Versao:')} ${chalk.white.bold('v0.1.0')}`);
52
+ output.push('');
53
+ // Uso
54
+ output.push(` ${chalk.yellow.bold('USO')}`);
55
+ output.push(` ${chalk.gray('$')} ${chalk.cyan('aitk')} ${chalk.white('<comando>')} ${chalk.gray('[opcoes]')}`);
56
+ output.push('');
57
+ // Comandos
58
+ output.push(` ${chalk.yellow.bold('COMANDOS')}`);
59
+ const commands = helper.visibleCommands(cmd);
60
+ const maxNameLen = Math.max(...commands.map((c) => c.name().length));
61
+ // Agrupar comandos por categoria
62
+ const authCommands = ['login', 'logout'];
63
+ const registryCommands = ['search', 'install', 'update', 'remove', 'publish'];
64
+ const projectCommands = ['init', 'list', 'status', 'sync', 'config'];
65
+ const teamCommands = ['team'];
66
+ const utilCommands = ['completions'];
67
+ const groups = [
68
+ { label: 'Registry', names: registryCommands },
69
+ { label: 'Projeto', names: projectCommands },
70
+ { label: 'Equipes', names: teamCommands },
71
+ { label: 'Autenticacao', names: authCommands },
72
+ { label: 'Utilitarios', names: utilCommands },
73
+ ];
74
+ for (const group of groups) {
75
+ output.push(` ${chalk.gray(group.label)}`);
76
+ for (const cmdName of group.names) {
77
+ const subcmd = commands.find((c) => c.name() === cmdName);
78
+ if (subcmd) {
79
+ const padding = ' '.repeat(maxNameLen - subcmd.name().length + 2);
80
+ output.push(` ${chalk.cyan.bold(subcmd.name())}${padding}${chalk.gray(helper.subcommandDescription(subcmd))}`);
81
+ }
82
+ }
83
+ output.push('');
84
+ }
85
+ // Opcoes
86
+ output.push(` ${chalk.yellow.bold('OPCOES')}`);
87
+ const globalOptions = helper.visibleOptions(cmd);
88
+ for (const opt of globalOptions) {
89
+ const flags = opt.flags;
90
+ output.push(` ${chalk.green(flags)} ${chalk.gray(opt.description)}`);
91
+ }
92
+ output.push('');
93
+ // Exemplos
94
+ output.push(` ${chalk.yellow.bold('EXEMPLOS')}`);
95
+ output.push(` ${chalk.gray('$')} ${chalk.cyan('aitk init')} ${chalk.gray('# Inicializar projeto')}`);
96
+ output.push(` ${chalk.gray('$')} ${chalk.cyan('aitk init')} ${chalk.white('official/starter-kit')} ${chalk.gray('# Iniciar com template')}`);
97
+ output.push(` ${chalk.gray('$')} ${chalk.cyan('aitk search')} ${chalk.white('"memory"')}`);
98
+ output.push(` ${chalk.gray('$')} ${chalk.cyan('aitk install')} ${chalk.white('official/code-review')}`);
99
+ output.push(` ${chalk.gray('$')} ${chalk.cyan('aitk list')}`);
100
+ output.push('');
101
+ // Link
102
+ output.push(` ${chalk.gray('Documentacao:')} ${chalk.cyan.underline('https://aitk.dev/docs')}`);
103
+ output.push('');
104
+ return output.join('\n');
105
+ },
106
+ });
107
+ program.parse();
108
+ //# sourceMappingURL=aitk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aitk.js","sourceRoot":"","sources":["../../src/bin/aitk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const completionsCommand: Command;
3
+ //# sourceMappingURL=completions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/commands/completions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0NpC,eAAO,MAAM,kBAAkB,SAgC3B,CAAC"}
@@ -0,0 +1,244 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { logger } from '../utils/logger.js';
4
+ /**
5
+ * Script de autocompletion para Bash.
6
+ * Gera completions para todos os comandos e subcomandos do aitk.
7
+ */
8
+ function generateBashCompletions() {
9
+ return `#!/bin/bash
10
+ # Autocompletion para o CLI aitk (AI Toolkit)
11
+ # Instalacao: eval "$(aitk completions bash)"
12
+
13
+ _aitk_completions() {
14
+ local cur prev commands subcommands
15
+ COMPREPLY=()
16
+ cur="\${COMP_WORDS[COMP_CWORD]}"
17
+ prev="\${COMP_WORDS[COMP_CWORD-1]}"
18
+
19
+ # Comandos principais
20
+ commands="login logout search install update remove publish list status init config sync team completions help"
21
+
22
+ # Subcomandos do team
23
+ local team_subcommands="list create add-member remove-member delete"
24
+
25
+ # Subcomandos do config
26
+ local config_subcommands="list get set unset"
27
+
28
+ case "\${prev}" in
29
+ aitk)
30
+ COMPREPLY=( $(compgen -W "\${commands}" -- "\${cur}") )
31
+ return 0
32
+ ;;
33
+ team)
34
+ COMPREPLY=( $(compgen -W "\${team_subcommands}" -- "\${cur}") )
35
+ return 0
36
+ ;;
37
+ config)
38
+ COMPREPLY=( $(compgen -W "\${config_subcommands}" -- "\${cur}") )
39
+ return 0
40
+ ;;
41
+ install|update|remove)
42
+ # Completar com scope/name — sem sugestoes automaticas (depende do registry)
43
+ return 0
44
+ ;;
45
+ completions)
46
+ COMPREPLY=( $(compgen -W "bash zsh fish" -- "\${cur}") )
47
+ return 0
48
+ ;;
49
+ --tool)
50
+ COMPREPLY=( $(compgen -W "claude-code opencode gemini-cli cursor aider copilot-cli" -- "\${cur}") )
51
+ return 0
52
+ ;;
53
+ *)
54
+ # Opcoes globais
55
+ COMPREPLY=( $(compgen -W "--help --version" -- "\${cur}") )
56
+ return 0
57
+ ;;
58
+ esac
59
+ }
60
+
61
+ complete -F _aitk_completions aitk
62
+ `;
63
+ }
64
+ /**
65
+ * Script de autocompletion para Zsh.
66
+ * Gera completions com descricoes para todos os comandos.
67
+ */
68
+ function generateZshCompletions() {
69
+ return `#compdef aitk
70
+ # Autocompletion para o CLI aitk (AI Toolkit)
71
+ # Instalacao: eval "$(aitk completions zsh)"
72
+
73
+ _aitk() {
74
+ local -a commands
75
+ commands=(
76
+ 'login:Autenticar com o registry'
77
+ 'logout:Remover credenciais salvas'
78
+ 'search:Buscar artefatos no registry'
79
+ 'install:Instalar um artefato'
80
+ 'update:Atualizar artefatos instalados'
81
+ 'remove:Remover um artefato instalado'
82
+ 'publish:Publicar um artefato'
83
+ 'list:Listar artefatos instalados'
84
+ 'status:Verificar atualizacoes disponiveis'
85
+ 'init:Inicializar projeto ou aplicar template'
86
+ 'config:Gerenciar configuracao'
87
+ 'sync:Sincronizar dependencias do manifesto'
88
+ 'team:Gerenciar equipes'
89
+ 'completions:Gerar script de autocompletion'
90
+ 'help:Mostrar ajuda'
91
+ )
92
+
93
+ local -a tools
94
+ tools=(
95
+ 'claude-code:Claude Code (Anthropic)'
96
+ 'opencode:OpenCode'
97
+ 'gemini-cli:Gemini CLI (Google)'
98
+ 'cursor:Cursor'
99
+ 'aider:Aider'
100
+ 'copilot-cli:GitHub Copilot CLI'
101
+ )
102
+
103
+ _arguments -C \\
104
+ '1:command:->command' \\
105
+ '*::arg:->args'
106
+
107
+ case "$state" in
108
+ command)
109
+ _describe 'command' commands
110
+ ;;
111
+ args)
112
+ case "$words[1]" in
113
+ team)
114
+ local -a team_cmds
115
+ team_cmds=(
116
+ 'list:Listar equipes'
117
+ 'create:Criar equipe'
118
+ 'add-member:Adicionar membro'
119
+ 'remove-member:Remover membro'
120
+ 'delete:Deletar equipe'
121
+ )
122
+ _describe 'team command' team_cmds
123
+ ;;
124
+ config)
125
+ local -a config_cmds
126
+ config_cmds=(
127
+ 'list:Listar configuracoes'
128
+ 'get:Obter valor de configuracao'
129
+ 'set:Definir configuracao'
130
+ 'unset:Remover configuracao'
131
+ )
132
+ _describe 'config command' config_cmds
133
+ ;;
134
+ completions)
135
+ local -a shells
136
+ shells=('bash' 'zsh' 'fish')
137
+ _describe 'shell' shells
138
+ ;;
139
+ install|update|remove)
140
+ _arguments \\
141
+ '--tool[Ferramenta alvo]:tool:->tool' \\
142
+ '--save-dev[Salvar como dev dependency]'
143
+ if [[ "$state" == "tool" ]]; then
144
+ _describe 'tool' tools
145
+ fi
146
+ ;;
147
+ init)
148
+ _arguments \\
149
+ '--tool[Ferramenta alvo]:tool:->tool' \\
150
+ '--force[Sobrescrever manifesto existente]'
151
+ if [[ "$state" == "tool" ]]; then
152
+ _describe 'tool' tools
153
+ fi
154
+ ;;
155
+ esac
156
+ ;;
157
+ esac
158
+ }
159
+
160
+ _aitk "$@"
161
+ `;
162
+ }
163
+ /**
164
+ * Script de autocompletion para Fish shell.
165
+ * Gera completions nativas do Fish.
166
+ */
167
+ function generateFishCompletions() {
168
+ return `# Autocompletion para o CLI aitk (AI Toolkit)
169
+ # Instalacao: aitk completions fish | source
170
+ # Ou para permanente: aitk completions fish > ~/.config/fish/completions/aitk.fish
171
+
172
+ # Desabilitar completions de arquivo por padrao
173
+ complete -c aitk -f
174
+
175
+ # Comandos principais
176
+ complete -c aitk -n '__fish_use_subcommand' -a login -d 'Autenticar com o registry'
177
+ complete -c aitk -n '__fish_use_subcommand' -a logout -d 'Remover credenciais salvas'
178
+ complete -c aitk -n '__fish_use_subcommand' -a search -d 'Buscar artefatos no registry'
179
+ complete -c aitk -n '__fish_use_subcommand' -a install -d 'Instalar um artefato'
180
+ complete -c aitk -n '__fish_use_subcommand' -a update -d 'Atualizar artefatos instalados'
181
+ complete -c aitk -n '__fish_use_subcommand' -a remove -d 'Remover um artefato instalado'
182
+ complete -c aitk -n '__fish_use_subcommand' -a publish -d 'Publicar um artefato'
183
+ complete -c aitk -n '__fish_use_subcommand' -a list -d 'Listar artefatos instalados'
184
+ complete -c aitk -n '__fish_use_subcommand' -a status -d 'Verificar atualizacoes disponiveis'
185
+ complete -c aitk -n '__fish_use_subcommand' -a init -d 'Inicializar projeto ou aplicar template'
186
+ complete -c aitk -n '__fish_use_subcommand' -a config -d 'Gerenciar configuracao'
187
+ complete -c aitk -n '__fish_use_subcommand' -a sync -d 'Sincronizar dependencias do manifesto'
188
+ complete -c aitk -n '__fish_use_subcommand' -a team -d 'Gerenciar equipes'
189
+ complete -c aitk -n '__fish_use_subcommand' -a completions -d 'Gerar script de autocompletion'
190
+
191
+ # Subcomandos do team
192
+ complete -c aitk -n '__fish_seen_subcommand_from team' -a list -d 'Listar equipes'
193
+ complete -c aitk -n '__fish_seen_subcommand_from team' -a create -d 'Criar equipe'
194
+ complete -c aitk -n '__fish_seen_subcommand_from team' -a add-member -d 'Adicionar membro'
195
+ complete -c aitk -n '__fish_seen_subcommand_from team' -a remove-member -d 'Remover membro'
196
+ complete -c aitk -n '__fish_seen_subcommand_from team' -a delete -d 'Deletar equipe'
197
+
198
+ # Subcomandos do config
199
+ complete -c aitk -n '__fish_seen_subcommand_from config' -a list -d 'Listar configuracoes'
200
+ complete -c aitk -n '__fish_seen_subcommand_from config' -a get -d 'Obter configuracao'
201
+ complete -c aitk -n '__fish_seen_subcommand_from config' -a set -d 'Definir configuracao'
202
+ complete -c aitk -n '__fish_seen_subcommand_from config' -a unset -d 'Remover configuracao'
203
+
204
+ # Shells para completions
205
+ complete -c aitk -n '__fish_seen_subcommand_from completions' -a 'bash zsh fish' -d 'Shell'
206
+
207
+ # Opcao --tool para install/update/init
208
+ complete -c aitk -n '__fish_seen_subcommand_from install update init' -l tool -d 'Ferramenta alvo' -xa 'claude-code opencode gemini-cli cursor aider copilot-cli'
209
+
210
+ # Opcoes globais
211
+ complete -c aitk -s h -l help -d 'Mostrar ajuda'
212
+ complete -c aitk -s V -l version -d 'Mostrar versao'
213
+ `;
214
+ }
215
+ export const completionsCommand = new Command('completions')
216
+ .description('Gerar script de autocompletion para o shell')
217
+ .argument('<shell>', 'Shell alvo (bash, zsh, fish)')
218
+ .action((shell) => {
219
+ const shellLower = shell.toLowerCase();
220
+ switch (shellLower) {
221
+ case 'bash':
222
+ // Imprime direto para stdout (sem logger) para permitir eval
223
+ process.stdout.write(generateBashCompletions());
224
+ break;
225
+ case 'zsh':
226
+ process.stdout.write(generateZshCompletions());
227
+ break;
228
+ case 'fish':
229
+ process.stdout.write(generateFishCompletions());
230
+ break;
231
+ default:
232
+ logger.blank();
233
+ logger.error(`Shell "${shell}" nao suportado.`);
234
+ logger.print(chalk.gray(' Shells suportados: bash, zsh, fish'));
235
+ logger.blank();
236
+ logger.print(chalk.gray(' Exemplos de instalacao:'));
237
+ logger.print(` ${chalk.gray('Bash:')} ${chalk.cyan('eval "$(aitk completions bash)"')}`);
238
+ logger.print(` ${chalk.gray('Zsh:')} ${chalk.cyan('eval "$(aitk completions zsh)"')}`);
239
+ logger.print(` ${chalk.gray('Fish:')} ${chalk.cyan('aitk completions fish | source')}`);
240
+ logger.blank();
241
+ process.exitCode = 1;
242
+ }
243
+ });
244
+ //# sourceMappingURL=completions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/commands/completions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C;;;GAGG;AACH,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDR,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB;IAC7B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4FR,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB;IAC9B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CR,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACzD,WAAW,CAAC,6CAA6C,CAAC;KAC1D,QAAQ,CAAC,SAAS,EAAE,8BAA8B,CAAC;KACnD,MAAM,CAAC,CAAC,KAAa,EAAE,EAAE;IACxB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEvC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,6DAA6D;YAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC;YAChD,MAAM;QAER,KAAK,KAAK;YACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC;YAC/C,MAAM;QAER,KAAK,MAAM;YACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC;YAChD,MAAM;QAER;YACE,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,kBAAkB,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;YACjE,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;YAC7F,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;YAC5F,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;YAC5F,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const configCommand: Command;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,eAAO,MAAM,aAAa,SACqB,CAAC"}
@@ -0,0 +1,108 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import { getConfig, saveConfig } from '../core/config.js';
4
+ import { logger } from '../utils/logger.js';
5
+ /** Chaves configuráveis e suas descrições */
6
+ const CONFIG_KEYS = {
7
+ registry: 'URL do registry (ex: https://aitk.dev)',
8
+ defaultScope: 'Scope padrão para publicação',
9
+ defaultTool: 'Ferramenta alvo padrão (claude-code, opencode, gemini-cli)',
10
+ cacheDir: 'Diretório do cache local',
11
+ cacheMaxSize: 'Tamanho máximo do cache (ex: 500MB)',
12
+ };
13
+ export const configCommand = new Command('config')
14
+ .description('Gerenciar configuração do CLI');
15
+ // ── config list ───────────────────────────────────────────────────────────
16
+ configCommand
17
+ .command('list')
18
+ .alias('ls')
19
+ .description('Listar todas as configurações')
20
+ .action(() => {
21
+ const config = getConfig();
22
+ logger.blank();
23
+ logger.print(` ${chalk.white.bold('Configuração do AITK')}`);
24
+ logger.blank();
25
+ const rows = [];
26
+ for (const [key, desc] of Object.entries(CONFIG_KEYS)) {
27
+ const value = config[key];
28
+ rows.push([
29
+ chalk.cyan.bold(key),
30
+ chalk.white(String(value || '—')),
31
+ chalk.gray(desc),
32
+ ]);
33
+ }
34
+ logger.print(logger.table({
35
+ columns: [
36
+ { header: 'Chave', width: 16 },
37
+ { header: 'Valor', width: 35 },
38
+ { header: 'Descrição', width: 40 },
39
+ ],
40
+ rows,
41
+ }));
42
+ logger.blank();
43
+ });
44
+ // ── config get ────────────────────────────────────────────────────────────
45
+ configCommand
46
+ .command('get')
47
+ .description('Obter valor de uma configuração')
48
+ .argument('<key>', 'Chave da configuração')
49
+ .action((key) => {
50
+ if (!(key in CONFIG_KEYS)) {
51
+ logger.error(`Chave desconhecida: ${chalk.white(key)}`);
52
+ logger.print(chalk.gray(` Chaves disponíveis: ${Object.keys(CONFIG_KEYS).join(', ')}`));
53
+ return;
54
+ }
55
+ const config = getConfig();
56
+ const value = config[key];
57
+ logger.print(String(value || ''));
58
+ });
59
+ // ── config set ────────────────────────────────────────────────────────────
60
+ configCommand
61
+ .command('set')
62
+ .description('Definir valor de uma configuração')
63
+ .argument('<key>', 'Chave da configuração')
64
+ .argument('<value>', 'Novo valor')
65
+ .action((key, value) => {
66
+ if (!(key in CONFIG_KEYS)) {
67
+ logger.error(`Chave desconhecida: ${chalk.white(key)}`);
68
+ logger.print(chalk.gray(` Chaves disponíveis: ${Object.keys(CONFIG_KEYS).join(', ')}`));
69
+ return;
70
+ }
71
+ const config = getConfig();
72
+ const oldValue = config[key];
73
+ saveConfig({ [key]: value });
74
+ logger.blank();
75
+ logger.success(`${chalk.cyan(key)} atualizado`);
76
+ logger.print(` ${chalk.gray('Anterior:')} ${chalk.gray(String(oldValue || '—'))}`);
77
+ logger.print(` ${chalk.gray('Novo:')} ${chalk.white(value)}`);
78
+ logger.blank();
79
+ });
80
+ // ── config reset ──────────────────────────────────────────────────────────
81
+ configCommand
82
+ .command('reset')
83
+ .description('Restaurar configuração padrão')
84
+ .argument('[key]', 'Chave específica para resetar (opcional, reseta todas se omitido)')
85
+ .action((key) => {
86
+ // Importar default config
87
+ const defaults = {
88
+ registry: 'https://aitk.dev',
89
+ defaultTool: 'claude-code',
90
+ cacheDir: '',
91
+ cacheMaxSize: '500MB',
92
+ };
93
+ if (key) {
94
+ if (!(key in CONFIG_KEYS)) {
95
+ logger.error(`Chave desconhecida: ${chalk.white(key)}`);
96
+ return;
97
+ }
98
+ const defaultValue = defaults[key];
99
+ saveConfig({ [key]: defaultValue });
100
+ logger.success(`${chalk.cyan(key)} restaurado para: ${chalk.white(String(defaultValue || '—'))}`);
101
+ }
102
+ else {
103
+ saveConfig(defaults);
104
+ logger.success('Todas as configurações restauradas para o padrão');
105
+ }
106
+ logger.blank();
107
+ });
108
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const initCommand: Command;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkEpC,eAAO,MAAM,WAAW,SAuMpB,CAAC"}