needware-cli 1.0.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 (93) hide show
  1. package/.editorconfig +21 -0
  2. package/AGENT_COMMAND_SUMMARY.md +364 -0
  3. package/CHANGELOG.md +138 -0
  4. package/FEATURE_INTERACTIVE_MODE.md +303 -0
  5. package/INTERACTIVE_EXAMPLE.md +305 -0
  6. package/LICENSE +22 -0
  7. package/PROJECT_SUMMARY.md +435 -0
  8. package/QUICK_START.md +216 -0
  9. package/README.md +310 -0
  10. package/SETUP.md +315 -0
  11. package/bin/cli.js +49 -0
  12. package/config/default.json +20 -0
  13. package/dist/commands/agent.d.ts +38 -0
  14. package/dist/commands/agent.d.ts.map +1 -0
  15. package/dist/commands/agent.js +444 -0
  16. package/dist/commands/agent.js.map +1 -0
  17. package/dist/commands/config.d.ts +48 -0
  18. package/dist/commands/config.d.ts.map +1 -0
  19. package/dist/commands/config.js +197 -0
  20. package/dist/commands/config.js.map +1 -0
  21. package/dist/commands/example.d.ts +32 -0
  22. package/dist/commands/example.d.ts.map +1 -0
  23. package/dist/commands/example.js +154 -0
  24. package/dist/commands/example.js.map +1 -0
  25. package/dist/commands/index.d.ts +8 -0
  26. package/dist/commands/index.d.ts.map +1 -0
  27. package/dist/commands/index.js +15 -0
  28. package/dist/commands/index.js.map +1 -0
  29. package/dist/commands/init.d.ts +25 -0
  30. package/dist/commands/init.d.ts.map +1 -0
  31. package/dist/commands/init.js +158 -0
  32. package/dist/commands/init.js.map +1 -0
  33. package/dist/core/cli.d.ts +37 -0
  34. package/dist/core/cli.d.ts.map +1 -0
  35. package/dist/core/cli.js +160 -0
  36. package/dist/core/cli.js.map +1 -0
  37. package/dist/core/command.d.ts +41 -0
  38. package/dist/core/command.d.ts.map +1 -0
  39. package/dist/core/command.js +87 -0
  40. package/dist/core/command.js.map +1 -0
  41. package/dist/core/logger.d.ts +30 -0
  42. package/dist/core/logger.d.ts.map +1 -0
  43. package/dist/core/logger.js +163 -0
  44. package/dist/core/logger.js.map +1 -0
  45. package/dist/index.d.ts +15 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +125 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/sdk/base-sdk.d.ts +61 -0
  50. package/dist/sdk/base-sdk.d.ts.map +1 -0
  51. package/dist/sdk/base-sdk.js +71 -0
  52. package/dist/sdk/base-sdk.js.map +1 -0
  53. package/dist/sdk/example-sdk.d.ts +40 -0
  54. package/dist/sdk/example-sdk.d.ts.map +1 -0
  55. package/dist/sdk/example-sdk.js +168 -0
  56. package/dist/sdk/example-sdk.js.map +1 -0
  57. package/dist/sdk/index.d.ts +59 -0
  58. package/dist/sdk/index.d.ts.map +1 -0
  59. package/dist/sdk/index.js +169 -0
  60. package/dist/sdk/index.js.map +1 -0
  61. package/dist/types/command.d.ts +34 -0
  62. package/dist/types/command.d.ts.map +1 -0
  63. package/dist/types/command.js +13 -0
  64. package/dist/types/command.js.map +1 -0
  65. package/dist/types/config.d.ts +30 -0
  66. package/dist/types/config.d.ts.map +1 -0
  67. package/dist/types/config.js +6 -0
  68. package/dist/types/config.js.map +1 -0
  69. package/dist/types/error.d.ts +24 -0
  70. package/dist/types/error.d.ts.map +1 -0
  71. package/dist/types/error.js +33 -0
  72. package/dist/types/error.js.map +1 -0
  73. package/dist/types/index.d.ts +8 -0
  74. package/dist/types/index.d.ts.map +1 -0
  75. package/dist/types/index.js +23 -0
  76. package/dist/types/index.js.map +1 -0
  77. package/dist/types/sdk.d.ts +21 -0
  78. package/dist/types/sdk.d.ts.map +1 -0
  79. package/dist/types/sdk.js +6 -0
  80. package/dist/types/sdk.js.map +1 -0
  81. package/dist/utils/config.d.ts +59 -0
  82. package/dist/utils/config.d.ts.map +1 -0
  83. package/dist/utils/config.js +237 -0
  84. package/dist/utils/config.js.map +1 -0
  85. package/dist/utils/file.d.ts +66 -0
  86. package/dist/utils/file.d.ts.map +1 -0
  87. package/dist/utils/file.js +162 -0
  88. package/dist/utils/file.js.map +1 -0
  89. package/dist/utils/validator.d.ts +66 -0
  90. package/dist/utils/validator.d.ts.map +1 -0
  91. package/dist/utils/validator.js +120 -0
  92. package/dist/utils/validator.js.map +1 -0
  93. package/package.json +61 -0
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ /**
3
+ * 配置管理命令
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ConfigCommand = void 0;
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const command_1 = require("../core/command");
12
+ class ConfigCommand extends command_1.Command {
13
+ name = 'config';
14
+ description = '配置管理(查看/设置)';
15
+ aliases = ['cfg'];
16
+ configManager;
17
+ constructor(logger, configManager) {
18
+ super(logger);
19
+ this.configManager = configManager;
20
+ }
21
+ async execute(options) {
22
+ try {
23
+ const action = options.args?.[0];
24
+ switch (action) {
25
+ case 'list':
26
+ case 'ls':
27
+ return this.listConfig();
28
+ case 'get':
29
+ return this.getConfig(options.args?.[1]);
30
+ case 'set':
31
+ return this.setConfig(options.args?.[1], options.args?.[2]);
32
+ case 'reset':
33
+ return this.resetConfig();
34
+ case 'path':
35
+ return this.showConfigPath();
36
+ default:
37
+ return this.showHelp();
38
+ }
39
+ }
40
+ catch (error) {
41
+ const message = error instanceof Error ? error.message : 'Config command failed';
42
+ return this.error(message, error);
43
+ }
44
+ }
45
+ /**
46
+ * 列出所有配置
47
+ */
48
+ listConfig() {
49
+ const config = this.configManager.getConfig();
50
+ console.log(chalk_1.default.blue('\n📋 当前配置:\n'));
51
+ console.log(chalk_1.default.gray('─'.repeat(70)));
52
+ this.printConfig(config, '');
53
+ console.log(chalk_1.default.gray('─'.repeat(70)));
54
+ console.log(chalk_1.default.gray(`\n配置文件: ${this.configManager.getConfigPath()}\n`));
55
+ return this.success('Config listed successfully');
56
+ }
57
+ /**
58
+ * 递归打印配置
59
+ */
60
+ printConfig(obj, prefix, indent = 0) {
61
+ const padding = ' '.repeat(indent);
62
+ for (const key in obj) {
63
+ const value = obj[key];
64
+ const fullKey = prefix ? `${prefix}.${key}` : key;
65
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
66
+ console.log(chalk_1.default.cyan(`${padding}${key}:`));
67
+ this.printConfig(value, fullKey, indent + 1);
68
+ }
69
+ else {
70
+ const displayValue = this.formatValue(value, key);
71
+ console.log(chalk_1.default.cyan(`${padding}${key}:`), chalk_1.default.white(displayValue));
72
+ }
73
+ }
74
+ }
75
+ /**
76
+ * 格式化配置值
77
+ */
78
+ formatValue(value, key) {
79
+ // 隐藏敏感信息
80
+ if (key.toLowerCase().includes('key') || key.toLowerCase().includes('secret')) {
81
+ if (value && typeof value === 'string' && value.length > 0) {
82
+ return chalk_1.default.gray('****** (hidden)');
83
+ }
84
+ return chalk_1.default.gray('(not set)');
85
+ }
86
+ if (typeof value === 'boolean') {
87
+ return value ? chalk_1.default.green('true') : chalk_1.default.red('false');
88
+ }
89
+ if (value === null || value === undefined || value === '') {
90
+ return chalk_1.default.gray('(empty)');
91
+ }
92
+ return String(value);
93
+ }
94
+ /**
95
+ * 获取配置项
96
+ */
97
+ getConfig(key) {
98
+ if (!key) {
99
+ return this.error('Please provide a config key');
100
+ }
101
+ const value = this.configManager.get(key);
102
+ if (value === undefined) {
103
+ this.logger.warn(`Configuration key '${key}' not found`);
104
+ return this.error(`Configuration key '${key}' not found`);
105
+ }
106
+ console.log(chalk_1.default.cyan(`\n${key}:`), this.formatValue(value, key));
107
+ console.log();
108
+ return this.success('Config retrieved successfully', { key, value });
109
+ }
110
+ /**
111
+ * 设置配置项
112
+ */
113
+ setConfig(key, value) {
114
+ if (!key || value === undefined) {
115
+ return this.error('Please provide both key and value');
116
+ }
117
+ try {
118
+ // 尝试解析值
119
+ let parsedValue = value;
120
+ // 布尔值
121
+ if (value === 'true') {
122
+ parsedValue = true;
123
+ }
124
+ else if (value === 'false') {
125
+ parsedValue = false;
126
+ }
127
+ // 数字
128
+ else if (!isNaN(Number(value)) && value.trim() !== '') {
129
+ parsedValue = Number(value);
130
+ }
131
+ // JSON
132
+ else if ((value.startsWith('{') && value.endsWith('}')) ||
133
+ (value.startsWith('[') && value.endsWith(']'))) {
134
+ try {
135
+ parsedValue = JSON.parse(value);
136
+ }
137
+ catch {
138
+ // 保持为字符串
139
+ }
140
+ }
141
+ this.configManager.set(key, parsedValue);
142
+ console.log(chalk_1.default.green(`\n✅ 配置已更新:`));
143
+ console.log(chalk_1.default.cyan(` ${key}:`), this.formatValue(parsedValue, key));
144
+ console.log();
145
+ return this.success('Config updated successfully', { key, value: parsedValue });
146
+ }
147
+ catch (error) {
148
+ return this.error(`Failed to set config: ${error}`, error);
149
+ }
150
+ }
151
+ /**
152
+ * 重置配置
153
+ */
154
+ resetConfig() {
155
+ try {
156
+ this.configManager.reset();
157
+ console.log(chalk_1.default.green('\n✅ 配置已重置为默认值\n'));
158
+ return this.success('Config reset successfully');
159
+ }
160
+ catch (error) {
161
+ return this.error(`Failed to reset config: ${error}`, error);
162
+ }
163
+ }
164
+ /**
165
+ * 显示配置文件路径
166
+ */
167
+ showConfigPath() {
168
+ const configPath = this.configManager.getConfigPath();
169
+ console.log(chalk_1.default.cyan('\n配置文件路径:'));
170
+ console.log(chalk_1.default.white(configPath));
171
+ console.log();
172
+ return this.success('Config path shown', { path: configPath });
173
+ }
174
+ /**
175
+ * 显示帮助信息
176
+ */
177
+ showHelp() {
178
+ console.log(chalk_1.default.blue('\n📖 配置命令帮助:\n'));
179
+ console.log(chalk_1.default.cyan('用法:'));
180
+ console.log(' needware-cli config <action> [options]\n');
181
+ console.log(chalk_1.default.cyan('操作:'));
182
+ console.log(' list, ls 列出所有配置');
183
+ console.log(' get <key> 获取配置项');
184
+ console.log(' set <key> <value> 设置配置项');
185
+ console.log(' reset 重置配置为默认值');
186
+ console.log(' path 显示配置文件路径\n');
187
+ console.log(chalk_1.default.cyan('示例:'));
188
+ console.log(chalk_1.default.gray(' needware-cli config list'));
189
+ console.log(chalk_1.default.gray(' needware-cli config get logging.level'));
190
+ console.log(chalk_1.default.gray(' needware-cli config set logging.level debug'));
191
+ console.log(chalk_1.default.gray(' needware-cli config set sdks.example.apiKey YOUR_KEY'));
192
+ console.log(chalk_1.default.gray(' needware-cli config reset\n'));
193
+ return this.success('Help shown');
194
+ }
195
+ }
196
+ exports.ConfigCommand = ConfigCommand;
197
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,kDAA0B;AAC1B,6CAA0C;AAK1C,MAAa,aAAc,SAAQ,iBAAO;IAC/B,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,aAAa,CAAC;IAC5B,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnB,aAAa,CAAgB;IAErC,YAAY,MAAc,EAAE,aAA4B;QACtD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAEjC,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,MAAM,CAAC;gBACZ,KAAK,IAAI;oBACP,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC3B,KAAK,KAAK;oBACR,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,KAAK,KAAK;oBACR,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9D,KAAK,OAAO;oBACV,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,KAAK,MAAM;oBACT,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC/B;oBACE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC;YACjF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;QAE9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAExC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAE7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QAE3E,OAAO,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,GAAQ,EAAE,MAAc,EAAE,MAAM,GAAG,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAElD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,GAAG,GAAG,CAAC,EAAE,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,KAAU,EAAE,GAAW;QACzC,SAAS;QACT,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9E,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3D,OAAO,eAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACvC,CAAC;YACD,OAAO,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC1D,OAAO,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,GAAY;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,aAAa,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,KAAK,CAAC,sBAAsB,GAAG,aAAa,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,OAAO,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,GAAY,EAAE,KAAc;QAC5C,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC;YACH,QAAQ;YACR,IAAI,WAAW,GAAQ,KAAK,CAAC;YAE7B,MAAM;YACN,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;iBAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBAC7B,WAAW,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,KAAK;iBACA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtD,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO;iBACF,IACH,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC;gBACD,IAAI,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAEzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,OAAO,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAClF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,yBAAyB,KAAK,EAAE,EAAE,KAAc,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAE3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAE5C,OAAO,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,EAAE,KAAc,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACK,QAAQ;QACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAE1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAElD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAEzD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;CACF;AAxND,sCAwNC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * 示例命令
3
+ */
4
+ import { Command } from '../core/command';
5
+ import { CommandOptions, CommandResult } from '../types';
6
+ import { SDKManager } from '../sdk';
7
+ import { Logger } from '../core/logger';
8
+ export declare class ExampleCommand extends Command {
9
+ readonly name = "example";
10
+ readonly description = "\u793A\u4F8B\u547D\u4EE4 - \u6F14\u793A SDK \u8C03\u7528";
11
+ readonly aliases: string[];
12
+ private sdkManager;
13
+ constructor(logger: Logger, sdkManager: SDKManager);
14
+ execute(options: CommandOptions): Promise<CommandResult>;
15
+ /**
16
+ * 获取数据
17
+ */
18
+ private fetchData;
19
+ /**
20
+ * 创建数据
21
+ */
22
+ private createData;
23
+ /**
24
+ * 检查健康状态
25
+ */
26
+ private checkHealth;
27
+ /**
28
+ * 显示帮助信息
29
+ */
30
+ private showHelp;
31
+ }
32
+ //# sourceMappingURL=example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../../src/commands/example.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,UAAU,EAAc,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,qBAAa,cAAe,SAAQ,OAAO;IACzC,QAAQ,CAAC,IAAI,aAAa;IAC1B,QAAQ,CAAC,WAAW,8DAAsB;IAC1C,QAAQ,CAAC,OAAO,WAAU;IAE1B,OAAO,CAAC,UAAU,CAAa;gBAEnB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU;IAK5C,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAoB9D;;OAEG;YACW,SAAS;IAkCvB;;OAEG;YACW,UAAU;IAyCxB;;OAEG;YACW,WAAW;IAgCzB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAiBjB"}
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ /**
3
+ * 示例命令
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ExampleCommand = void 0;
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const ora_1 = __importDefault(require("ora"));
12
+ const command_1 = require("../core/command");
13
+ class ExampleCommand extends command_1.Command {
14
+ name = 'example';
15
+ description = '示例命令 - 演示 SDK 调用';
16
+ aliases = ['ex'];
17
+ sdkManager;
18
+ constructor(logger, sdkManager) {
19
+ super(logger);
20
+ this.sdkManager = sdkManager;
21
+ }
22
+ async execute(options) {
23
+ try {
24
+ const action = options.args?.[0];
25
+ switch (action) {
26
+ case 'fetch':
27
+ return await this.fetchData(options.args?.[1]);
28
+ case 'create':
29
+ return await this.createData(options.args?.[1]);
30
+ case 'health':
31
+ return await this.checkHealth();
32
+ default:
33
+ return this.showHelp();
34
+ }
35
+ }
36
+ catch (error) {
37
+ const message = error instanceof Error ? error.message : 'Example command failed';
38
+ return this.error(message, error);
39
+ }
40
+ }
41
+ /**
42
+ * 获取数据
43
+ */
44
+ async fetchData(id) {
45
+ if (!id) {
46
+ return this.error('Please provide a data ID');
47
+ }
48
+ const spinner = (0, ora_1.default)('获取数据中...').start();
49
+ try {
50
+ // 获取 SDK
51
+ const sdk = this.sdkManager.getSDK('example');
52
+ // 初始化(如果需要)
53
+ if (!sdk.isInitialized()) {
54
+ spinner.text = '初始化 SDK...';
55
+ await sdk.initialize();
56
+ }
57
+ // 调用 API
58
+ spinner.text = `获取数据 (ID: ${id})...`;
59
+ const data = await sdk.fetchData(id);
60
+ spinner.succeed(chalk_1.default.green('数据获取成功'));
61
+ console.log(chalk_1.default.blue('\n📦 数据内容:'));
62
+ console.log(JSON.stringify(data, null, 2));
63
+ console.log();
64
+ return this.success('Data fetched successfully', { id, data });
65
+ }
66
+ catch (error) {
67
+ spinner.fail(chalk_1.default.red('数据获取失败'));
68
+ throw error;
69
+ }
70
+ }
71
+ /**
72
+ * 创建数据
73
+ */
74
+ async createData(dataStr) {
75
+ if (!dataStr) {
76
+ return this.error('Please provide data (JSON string)');
77
+ }
78
+ let data;
79
+ try {
80
+ data = JSON.parse(dataStr);
81
+ }
82
+ catch {
83
+ return this.error('Invalid JSON format');
84
+ }
85
+ const spinner = (0, ora_1.default)('创建数据中...').start();
86
+ try {
87
+ // 获取 SDK
88
+ const sdk = this.sdkManager.getSDK('example');
89
+ // 初始化(如果需要)
90
+ if (!sdk.isInitialized()) {
91
+ spinner.text = '初始化 SDK...';
92
+ await sdk.initialize();
93
+ }
94
+ // 调用 API
95
+ spinner.text = '创建数据...';
96
+ const result = await sdk.createData(data);
97
+ spinner.succeed(chalk_1.default.green('数据创建成功'));
98
+ console.log(chalk_1.default.blue('\n📦 创建结果:'));
99
+ console.log(JSON.stringify(result, null, 2));
100
+ console.log();
101
+ return this.success('Data created successfully', { result });
102
+ }
103
+ catch (error) {
104
+ spinner.fail(chalk_1.default.red('数据创建失败'));
105
+ throw error;
106
+ }
107
+ }
108
+ /**
109
+ * 检查健康状态
110
+ */
111
+ async checkHealth() {
112
+ const spinner = (0, ora_1.default)('检查 SDK 健康状态...').start();
113
+ try {
114
+ const healthStatus = await this.sdkManager.checkHealth();
115
+ spinner.succeed(chalk_1.default.green('健康检查完成'));
116
+ console.log(chalk_1.default.blue('\n🏥 健康状态:\n'));
117
+ for (const [name, status] of Object.entries(healthStatus)) {
118
+ const icon = status.healthy ? '✅' : '❌';
119
+ const color = status.healthy ? chalk_1.default.green : chalk_1.default.red;
120
+ console.log(color(`${icon} ${name}:`));
121
+ console.log(chalk_1.default.gray(` 状态: ${status.healthy ? '健康' : '不健康'}`));
122
+ if (status.message) {
123
+ console.log(chalk_1.default.gray(` 消息: ${status.message}`));
124
+ }
125
+ console.log(chalk_1.default.gray(` 时间: ${status.timestamp}`));
126
+ console.log();
127
+ }
128
+ return this.success('Health check completed', { healthStatus });
129
+ }
130
+ catch (error) {
131
+ spinner.fail(chalk_1.default.red('健康检查失败'));
132
+ throw error;
133
+ }
134
+ }
135
+ /**
136
+ * 显示帮助信息
137
+ */
138
+ showHelp() {
139
+ console.log(chalk_1.default.blue('\n📖 示例命令帮助:\n'));
140
+ console.log(chalk_1.default.cyan('用法:'));
141
+ console.log(' needware-cli example <action> [options]\n');
142
+ console.log(chalk_1.default.cyan('操作:'));
143
+ console.log(' fetch <id> 获取数据');
144
+ console.log(' create <json> 创建数据');
145
+ console.log(' health 检查 SDK 健康状态\n');
146
+ console.log(chalk_1.default.cyan('示例:'));
147
+ console.log(chalk_1.default.gray(' needware-cli example fetch 123'));
148
+ console.log(chalk_1.default.gray(' needware-cli example create \'{"name":"test"}\''));
149
+ console.log(chalk_1.default.gray(' needware-cli example health\n'));
150
+ return this.success('Help shown');
151
+ }
152
+ }
153
+ exports.ExampleCommand = ExampleCommand;
154
+ //# sourceMappingURL=example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","sourceRoot":"","sources":["../../src/commands/example.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 命令导出
3
+ */
4
+ export { InitCommand } from './init';
5
+ export { ConfigCommand } from './config';
6
+ export { ExampleCommand } from './example';
7
+ export { AgentCommand } from './agent';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * 命令导出
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AgentCommand = exports.ExampleCommand = exports.ConfigCommand = exports.InitCommand = void 0;
7
+ var init_1 = require("./init");
8
+ Object.defineProperty(exports, "InitCommand", { enumerable: true, get: function () { return init_1.InitCommand; } });
9
+ var config_1 = require("./config");
10
+ Object.defineProperty(exports, "ConfigCommand", { enumerable: true, get: function () { return config_1.ConfigCommand; } });
11
+ var example_1 = require("./example");
12
+ Object.defineProperty(exports, "ExampleCommand", { enumerable: true, get: function () { return example_1.ExampleCommand; } });
13
+ var agent_1 = require("./agent");
14
+ Object.defineProperty(exports, "AgentCommand", { enumerable: true, get: function () { return agent_1.AgentCommand; } });
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,mCAAyC;AAAhC,uGAAA,aAAa,OAAA;AACtB,qCAA2C;AAAlC,yGAAA,cAAc,OAAA;AACvB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 初始化命令
3
+ */
4
+ import { Command } from '../core/command';
5
+ import { CommandOptions, CommandResult } from '../types';
6
+ import { ConfigManager } from '../utils/config';
7
+ import { Logger } from '../core/logger';
8
+ export declare class InitCommand extends Command {
9
+ readonly name = "init";
10
+ readonly description = "\u521D\u59CB\u5316\u9879\u76EE\u914D\u7F6E";
11
+ readonly aliases: string[];
12
+ private configManager;
13
+ constructor(logger: Logger, configManager: ConfigManager);
14
+ execute(options: CommandOptions): Promise<CommandResult>;
15
+ /**
16
+ * 使用默认配置初始化
17
+ */
18
+ private initWithDefaults;
19
+ /**
20
+ * 交互式初始化
21
+ */
22
+ private interactiveInit;
23
+ validate(_options: CommandOptions): boolean;
24
+ }
25
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,qBAAa,WAAY,SAAQ,OAAO;IACtC,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,gDAAa;IACjC,QAAQ,CAAC,OAAO,WAAS;IAEzB,OAAO,CAAC,aAAa,CAAgB;gBAEzB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa;IAKlD,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAiB9D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;YACW,eAAe;IAqG7B,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO;CAI5C"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ /**
3
+ * 初始化命令
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.InitCommand = void 0;
10
+ const inquirer_1 = __importDefault(require("inquirer"));
11
+ const ora_1 = __importDefault(require("ora"));
12
+ const chalk_1 = __importDefault(require("chalk"));
13
+ const command_1 = require("../core/command");
14
+ const validator_1 = require("../utils/validator");
15
+ class InitCommand extends command_1.Command {
16
+ name = 'init';
17
+ description = '初始化项目配置';
18
+ aliases = ['i'];
19
+ configManager;
20
+ constructor(logger, configManager) {
21
+ super(logger);
22
+ this.configManager = configManager;
23
+ }
24
+ async execute(options) {
25
+ try {
26
+ this.logger.info('开始初始化配置...\n');
27
+ // 如果使用默认配置
28
+ if (options.default) {
29
+ return this.initWithDefaults();
30
+ }
31
+ // 交互式配置
32
+ return await this.interactiveInit(options);
33
+ }
34
+ catch (error) {
35
+ const message = error instanceof Error ? error.message : 'Initialization failed';
36
+ return this.error(message, error);
37
+ }
38
+ }
39
+ /**
40
+ * 使用默认配置初始化
41
+ */
42
+ initWithDefaults() {
43
+ const spinner = (0, ora_1.default)('创建配置文件...').start();
44
+ try {
45
+ // 配置管理器会自动创建默认配置
46
+ this.configManager.reset();
47
+ spinner.succeed(chalk_1.default.green('配置文件创建成功'));
48
+ this.logger.success('\n✅ 初始化完成!');
49
+ this.logger.info(`配置文件位置: ${this.configManager.getConfigPath()}`);
50
+ return this.success('Initialization completed successfully');
51
+ }
52
+ catch (error) {
53
+ spinner.fail(chalk_1.default.red('配置文件创建失败'));
54
+ throw error;
55
+ }
56
+ }
57
+ /**
58
+ * 交互式初始化
59
+ */
60
+ async interactiveInit(_options) {
61
+ console.log(chalk_1.default.blue('🚀 Needware CLI 初始化向导\n'));
62
+ // 获取用户输入
63
+ const answers = await inquirer_1.default.prompt([
64
+ {
65
+ type: 'list',
66
+ name: 'logLevel',
67
+ message: '选择日志级别:',
68
+ choices: [
69
+ { name: '调试 (debug)', value: 'debug' },
70
+ { name: '信息 (info)', value: 'info' },
71
+ { name: '警告 (warn)', value: 'warn' },
72
+ { name: '错误 (error)', value: 'error' },
73
+ ],
74
+ default: 'info',
75
+ },
76
+ {
77
+ type: 'input',
78
+ name: 'apiKey',
79
+ message: '请输入 API Key (可选,稍后可配置):',
80
+ validate: (input) => {
81
+ if (!input)
82
+ return true; // 可选
83
+ return validator_1.Validator.isAPIKey(input) || '请输入有效的 API Key';
84
+ },
85
+ },
86
+ {
87
+ type: 'input',
88
+ name: 'endpoint',
89
+ message: '请输入 API Endpoint:',
90
+ default: 'https://api.example.com',
91
+ validate: (input) => {
92
+ return validator_1.Validator.isURL(input) || '请输入有效的 URL';
93
+ },
94
+ },
95
+ {
96
+ type: 'number',
97
+ name: 'timeout',
98
+ message: '请输入请求超时时间 (毫秒):',
99
+ default: 30000,
100
+ validate: (input) => {
101
+ return validator_1.Validator.isPositiveInteger(input) || '请输入正整数';
102
+ },
103
+ },
104
+ {
105
+ type: 'confirm',
106
+ name: 'colorOutput',
107
+ message: '启用彩色输出?',
108
+ default: true,
109
+ },
110
+ {
111
+ type: 'confirm',
112
+ name: 'interactive',
113
+ message: '启用交互式模式?',
114
+ default: true,
115
+ },
116
+ ]);
117
+ // 创建配置
118
+ const spinner = (0, ora_1.default)('保存配置...').start();
119
+ try {
120
+ // 设置配置项
121
+ this.configManager.set('logging.level', answers.logLevel);
122
+ this.configManager.set('preferences.colorOutput', answers.colorOutput);
123
+ this.configManager.set('preferences.interactive', answers.interactive);
124
+ if (answers.apiKey) {
125
+ this.configManager.set('sdks.example.apiKey', answers.apiKey);
126
+ }
127
+ this.configManager.set('sdks.example.endpoint', answers.endpoint);
128
+ this.configManager.set('sdks.example.timeout', answers.timeout);
129
+ spinner.succeed(chalk_1.default.green('配置保存成功'));
130
+ // 显示配置摘要
131
+ console.log(chalk_1.default.blue('\n📋 配置摘要:'));
132
+ console.log(chalk_1.default.gray('─'.repeat(50)));
133
+ console.log(chalk_1.default.cyan('日志级别:'), answers.logLevel);
134
+ console.log(chalk_1.default.cyan('API Endpoint:'), answers.endpoint);
135
+ console.log(chalk_1.default.cyan('超时时间:'), `${answers.timeout}ms`);
136
+ console.log(chalk_1.default.cyan('彩色输出:'), answers.colorOutput ? '是' : '否');
137
+ console.log(chalk_1.default.cyan('交互模式:'), answers.interactive ? '是' : '否');
138
+ console.log(chalk_1.default.gray('─'.repeat(50)));
139
+ this.logger.success('\n✅ 初始化完成!');
140
+ this.logger.info(`配置文件位置: ${this.configManager.getConfigPath()}`);
141
+ if (!answers.apiKey) {
142
+ console.log(chalk_1.default.yellow('\n💡 提示: 你可以稍后使用以下命令设置 API Key:'));
143
+ console.log(chalk_1.default.gray(' needware-cli config set sdks.example.apiKey YOUR_KEY\n'));
144
+ }
145
+ return this.success('Initialization completed successfully');
146
+ }
147
+ catch (error) {
148
+ spinner.fail(chalk_1.default.red('配置保存失败'));
149
+ throw error;
150
+ }
151
+ }
152
+ validate(_options) {
153
+ // 基本验证
154
+ return true;
155
+ }
156
+ }
157
+ exports.InitCommand = InitCommand;
158
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,wDAAgC;AAChC,8CAAsB;AACtB,kDAA0B;AAC1B,6CAA0C;AAG1C,kDAA+C;AAG/C,MAAa,WAAY,SAAQ,iBAAO;IAC7B,IAAI,GAAG,MAAM,CAAC;IACd,WAAW,GAAG,SAAS,CAAC;IACxB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjB,aAAa,CAAgB;IAErC,YAAY,MAAc,EAAE,aAA4B;QACtD,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEjC,WAAW;YACX,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjC,CAAC;YAED,QAAQ;YACR,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC;YACjF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QAEzC,IAAI,CAAC;YACH,iBAAiB;YACjB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAEzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAElE,OAAO,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACpC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAAC,QAAwB;QACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAEnD,SAAS;QACT,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;oBACtC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;oBACpC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE;oBACpC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE;iBACvC;gBACD,OAAO,EAAE,MAAM;aAChB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,IAAI,CAAC,KAAK;wBAAE,OAAO,IAAI,CAAC,CAAC,KAAK;oBAC9B,OAAO,qBAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC;gBACvD,CAAC;aACF;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,mBAAmB;gBAC5B,OAAO,EAAE,yBAAyB;gBAClC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,OAAO,qBAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC;gBAChD,CAAC;aACF;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC1B,OAAO,qBAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;gBACxD,CAAC;aACF;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,IAAI;aACd;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,OAAO;QACP,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAEvC,IAAI,CAAC;YACH,QAAQ;YACR,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YACvE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAEvE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,sBAAsB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAEhE,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEvC,SAAS;YACT,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAExC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAElE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC,CAAC;YACtF,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,QAAwB;QAC/B,OAAO;QACP,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA9JD,kCA8JC"}