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.
- package/README.md +147 -0
- package/dist/bin/aitk.d.ts +3 -0
- package/dist/bin/aitk.d.ts.map +1 -0
- package/dist/bin/aitk.js +108 -0
- package/dist/bin/aitk.js.map +1 -0
- package/dist/commands/completions.d.ts +3 -0
- package/dist/commands/completions.d.ts.map +1 -0
- package/dist/commands/completions.js +244 -0
- package/dist/commands/completions.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +108 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +232 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/install.d.ts +3 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +250 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +78 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +362 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +3 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +10 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/publish.d.ts +3 -0
- package/dist/commands/publish.d.ts.map +1 -0
- package/dist/commands/publish.js +245 -0
- package/dist/commands/publish.js.map +1 -0
- package/dist/commands/remove.d.ts +3 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +150 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/search.d.ts +3 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +77 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +177 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts +3 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +178 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/team.d.ts +3 -0
- package/dist/commands/team.d.ts.map +1 -0
- package/dist/commands/team.js +236 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/commands/update.d.ts +3 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +311 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/core/api-client.d.ts +44 -0
- package/dist/core/api-client.d.ts.map +1 -0
- package/dist/core/api-client.js +111 -0
- package/dist/core/api-client.js.map +1 -0
- package/dist/core/auth.d.ts +12 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js +48 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/config.d.ts +13 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +42 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/lockfile.d.ts +22 -0
- package/dist/core/lockfile.d.ts.map +1 -0
- package/dist/core/lockfile.js +75 -0
- package/dist/core/lockfile.js.map +1 -0
- package/dist/core/manifest.d.ts +12 -0
- package/dist/core/manifest.d.ts.map +1 -0
- package/dist/core/manifest.js +57 -0
- package/dist/core/manifest.js.map +1 -0
- package/dist/core/resolver.d.ts +52 -0
- package/dist/core/resolver.d.ts.map +1 -0
- package/dist/core/resolver.js +108 -0
- package/dist/core/resolver.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/installers/base-installer.d.ts +19 -0
- package/dist/installers/base-installer.d.ts.map +1 -0
- package/dist/installers/base-installer.js +4 -0
- package/dist/installers/base-installer.js.map +1 -0
- package/dist/installers/config-installer.d.ts +10 -0
- package/dist/installers/config-installer.d.ts.map +1 -0
- package/dist/installers/config-installer.js +108 -0
- package/dist/installers/config-installer.js.map +1 -0
- package/dist/installers/hook-installer.d.ts +10 -0
- package/dist/installers/hook-installer.d.ts.map +1 -0
- package/dist/installers/hook-installer.js +41 -0
- package/dist/installers/hook-installer.js.map +1 -0
- package/dist/installers/mcp-installer.d.ts +14 -0
- package/dist/installers/mcp-installer.d.ts.map +1 -0
- package/dist/installers/mcp-installer.js +152 -0
- package/dist/installers/mcp-installer.js.map +1 -0
- package/dist/installers/skill-installer.d.ts +10 -0
- package/dist/installers/skill-installer.d.ts.map +1 -0
- package/dist/installers/skill-installer.js +41 -0
- package/dist/installers/skill-installer.js.map +1 -0
- package/dist/installers/template-installer.d.ts +16 -0
- package/dist/installers/template-installer.d.ts.map +1 -0
- package/dist/installers/template-installer.js +123 -0
- package/dist/installers/template-installer.js.map +1 -0
- package/dist/utils/logger.d.ts +66 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +211 -0
- package/dist/utils/logger.js.map +1 -0
- 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 • OpenCode • Gemini CLI • Cursor • 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 © [tarcisiojr](https://github.com/tarcisiojr)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aitk.d.ts","sourceRoot":"","sources":["../../src/bin/aitk.ts"],"names":[],"mappings":""}
|
package/dist/bin/aitk.js
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAkB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,WAAW,GAA2B;IAC1C,QAAQ,EAAE,wCAAwC;IAClD,YAAY,EAAE,8BAA8B;IAC5C,WAAW,EAAE,4DAA4D;IACzE,QAAQ,EAAE,0BAA0B;IACpC,YAAY,EAAE,qCAAqC;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,+BAA+B,CAAC,CAAC;AAEhD,6EAA6E;AAC7E,aAAa;KACV,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAsB,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC;YACR,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YACpB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACxB,OAAO,EAAE;YACP,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9B,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;SACnC;QACD,IAAI;KACL,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEL,6EAA6E;AAC7E,aAAa;KACV,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;KAC1C,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE;IACtB,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAsB,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEL,6EAA6E;AAC7E,aAAa;KACV,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,mCAAmC,CAAC;KAChD,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;KAC1C,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;KACjC,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;IACrC,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAsB,CAAC,CAAC;IAEhD,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACpF,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEL,6EAA6E;AAC7E,aAAa;KACV,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,QAAQ,CAAC,OAAO,EAAE,mEAAmE,CAAC;KACtF,MAAM,CAAC,CAAC,GAAY,EAAE,EAAE;IACvB,0BAA0B;IAC1B,MAAM,QAAQ,GAAc;QAC1B,QAAQ,EAAE,kBAAkB;QAC5B,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,OAAO;KACtB,CAAC;IAEF,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAsB,CAAC,CAAC;QACtD,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACpG,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,QAAQ,CAAC,CAAC;QACrB,MAAM,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -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"}
|