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.
- package/.editorconfig +21 -0
- package/AGENT_COMMAND_SUMMARY.md +364 -0
- package/CHANGELOG.md +138 -0
- package/FEATURE_INTERACTIVE_MODE.md +303 -0
- package/INTERACTIVE_EXAMPLE.md +305 -0
- package/LICENSE +22 -0
- package/PROJECT_SUMMARY.md +435 -0
- package/QUICK_START.md +216 -0
- package/README.md +310 -0
- package/SETUP.md +315 -0
- package/bin/cli.js +49 -0
- package/config/default.json +20 -0
- package/dist/commands/agent.d.ts +38 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +444 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/config.d.ts +48 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +197 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/example.d.ts +32 -0
- package/dist/commands/example.d.ts.map +1 -0
- package/dist/commands/example.js +154 -0
- package/dist/commands/example.js.map +1 -0
- package/dist/commands/index.d.ts +8 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +15 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/init.d.ts +25 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +158 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/core/cli.d.ts +37 -0
- package/dist/core/cli.d.ts.map +1 -0
- package/dist/core/cli.js +160 -0
- package/dist/core/cli.js.map +1 -0
- package/dist/core/command.d.ts +41 -0
- package/dist/core/command.d.ts.map +1 -0
- package/dist/core/command.js +87 -0
- package/dist/core/command.js.map +1 -0
- package/dist/core/logger.d.ts +30 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +163 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +125 -0
- package/dist/index.js.map +1 -0
- package/dist/sdk/base-sdk.d.ts +61 -0
- package/dist/sdk/base-sdk.d.ts.map +1 -0
- package/dist/sdk/base-sdk.js +71 -0
- package/dist/sdk/base-sdk.js.map +1 -0
- package/dist/sdk/example-sdk.d.ts +40 -0
- package/dist/sdk/example-sdk.d.ts.map +1 -0
- package/dist/sdk/example-sdk.js +168 -0
- package/dist/sdk/example-sdk.js.map +1 -0
- package/dist/sdk/index.d.ts +59 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +169 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/types/command.d.ts +34 -0
- package/dist/types/command.d.ts.map +1 -0
- package/dist/types/command.js +13 -0
- package/dist/types/command.js.map +1 -0
- package/dist/types/config.d.ts +30 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +6 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/error.d.ts +24 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +33 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/sdk.d.ts +21 -0
- package/dist/types/sdk.d.ts.map +1 -0
- package/dist/types/sdk.js +6 -0
- package/dist/types/sdk.js.map +1 -0
- package/dist/utils/config.d.ts +59 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +237 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/file.d.ts +66 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +162 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/validator.d.ts +66 -0
- package/dist/utils/validator.d.ts.map +1 -0
- package/dist/utils/validator.js +120 -0
- package/dist/utils/validator.js.map +1 -0
- 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":"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"}
|
|
@@ -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 @@
|
|
|
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":"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"}
|