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
package/README.md
ADDED
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
# Needware CLI
|
|
2
|
+
|
|
3
|
+
> 一个功能强大的 Node.js 命令行工具
|
|
4
|
+
|
|
5
|
+
[](https://nodejs.org/)
|
|
6
|
+
[](https://www.typescriptlang.org/)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
|
|
9
|
+
## ✨ 特性
|
|
10
|
+
|
|
11
|
+
- 🚀 **模块化命令架构** - 易于扩展和维护
|
|
12
|
+
- 🔌 **第三方 SDK 集成** - 灵活的 SDK 管理系统
|
|
13
|
+
- ⚙️ **灵活的配置管理** - 支持多层配置(默认、用户、环境变量)
|
|
14
|
+
- 🎨 **美观的命令行界面** - 彩色输出和交互式提示
|
|
15
|
+
- 📝 **完善的日志系统** - 多级日志和文件持久化
|
|
16
|
+
- ✅ **完整的错误处理** - 友好的错误提示和解决建议
|
|
17
|
+
- 🧪 **单元测试覆盖** - 高质量代码保证
|
|
18
|
+
|
|
19
|
+
## 📦 安装
|
|
20
|
+
|
|
21
|
+
### 全局安装
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install -g needware-cli
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 项目本地安装
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install --save-dev needware-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 使用 npx
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npx needware-cli <command>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 🚀 快速开始
|
|
40
|
+
|
|
41
|
+
### 1. 初始化配置
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# 交互式初始化
|
|
45
|
+
needware-cli init
|
|
46
|
+
|
|
47
|
+
# 使用默认配置
|
|
48
|
+
needware-cli init --default
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 2. 配置管理
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# 查看所有配置
|
|
55
|
+
needware-cli config list
|
|
56
|
+
|
|
57
|
+
# 获取配置项
|
|
58
|
+
needware-cli config get logging.level
|
|
59
|
+
|
|
60
|
+
# 设置配置项
|
|
61
|
+
needware-cli config set logging.level debug
|
|
62
|
+
|
|
63
|
+
# 设置 API Key
|
|
64
|
+
needware-cli config set sdks.example.apiKey YOUR_API_KEY
|
|
65
|
+
|
|
66
|
+
# 重置配置
|
|
67
|
+
needware-cli config reset
|
|
68
|
+
|
|
69
|
+
# 查看配置文件路径
|
|
70
|
+
needware-cli config path
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 3. 使用 Agent 命令(AI 智能助手)
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# 配置 API Key(必需)
|
|
77
|
+
export ANTHROPIC_API_KEY=your_api_key_here
|
|
78
|
+
|
|
79
|
+
# 单次对话 - 在当前目录执行任务
|
|
80
|
+
needware-cli agent "创建一个待办事项应用"
|
|
81
|
+
|
|
82
|
+
# 单次对话 - 指定工作目录
|
|
83
|
+
needware-cli agent "修复登录页面的样式问题" --working-dir ./my-project
|
|
84
|
+
|
|
85
|
+
# 多轮对话 - 交互式模式(推荐用于复杂任务)
|
|
86
|
+
needware-cli agent --interactive
|
|
87
|
+
# 或使用简写
|
|
88
|
+
needware-cli agent -i
|
|
89
|
+
|
|
90
|
+
# 多轮对话 - 带初始提示
|
|
91
|
+
needware-cli agent -i "创建一个待办事项应用"
|
|
92
|
+
|
|
93
|
+
# 指定额外目录
|
|
94
|
+
needware-cli agent "优化性能" --additional-dirs ./shared,./utils
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**交互式模式特性**:
|
|
98
|
+
- 🔄 支持多轮对话,AI 记住上下文
|
|
99
|
+
- 💬 可以持续调整需求和代码
|
|
100
|
+
- 🚪 输入 `exit` 或 `quit` 退出对话
|
|
101
|
+
|
|
102
|
+
查看 [交互式模式详细文档](docs/INTERACTIVE_MODE.md)
|
|
103
|
+
|
|
104
|
+
### 4. 使用示例命令
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
# 获取数据
|
|
108
|
+
needware-cli example fetch 123
|
|
109
|
+
|
|
110
|
+
# 创建数据
|
|
111
|
+
needware-cli example create '{"name":"test"}'
|
|
112
|
+
|
|
113
|
+
# 健康检查
|
|
114
|
+
needware-cli example health
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## 📚 命令列表
|
|
118
|
+
|
|
119
|
+
| 命令 | 别名 | 描述 | 示例 |
|
|
120
|
+
|------|------|------|------|
|
|
121
|
+
| `init` | `i` | 初始化项目配置 | `needware-cli init` |
|
|
122
|
+
| `config` | `cfg` | 配置管理 | `needware-cli config list` |
|
|
123
|
+
| `agent` | `ag` | AI 智能助手 | `needware-cli agent "创建应用"` |
|
|
124
|
+
| `example` | `ex` | 示例命令 | `needware-cli example health` |
|
|
125
|
+
|
|
126
|
+
## 🔧 全局选项
|
|
127
|
+
|
|
128
|
+
| 选项 | 简写 | 描述 | 默认值 |
|
|
129
|
+
|------|------|------|--------|
|
|
130
|
+
| `--verbose` | `-V` | 详细输出模式 | false |
|
|
131
|
+
| `--quiet` | `-q` | 静默模式 | false |
|
|
132
|
+
| `--config <path>` | `-c` | 指定配置文件路径 | ~/.needware/config.json |
|
|
133
|
+
| `--version` | `-v` | 显示版本信息 | - |
|
|
134
|
+
| `--help` | `-h` | 显示帮助信息 | - |
|
|
135
|
+
|
|
136
|
+
## ⚙️ 配置
|
|
137
|
+
|
|
138
|
+
### 配置文件位置
|
|
139
|
+
|
|
140
|
+
默认配置文件位于 `~/.needware/config.json`
|
|
141
|
+
|
|
142
|
+
### 配置结构
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"version": "1.0.0",
|
|
147
|
+
"logging": {
|
|
148
|
+
"level": "info",
|
|
149
|
+
"file": "~/.needware/logs/cli.log"
|
|
150
|
+
},
|
|
151
|
+
"sdks": {
|
|
152
|
+
"example": {
|
|
153
|
+
"apiKey": "",
|
|
154
|
+
"endpoint": "https://api.example.com",
|
|
155
|
+
"timeout": 30000,
|
|
156
|
+
"retries": 3
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"preferences": {
|
|
160
|
+
"colorOutput": true,
|
|
161
|
+
"interactive": true
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 环境变量
|
|
167
|
+
|
|
168
|
+
你可以使用环境变量覆盖配置:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# 日志级别
|
|
172
|
+
export NEEDWARE_LOG_LEVEL=debug
|
|
173
|
+
|
|
174
|
+
# API 配置
|
|
175
|
+
export NEEDWARE_API_KEY=your-api-key
|
|
176
|
+
export NEEDWARE_ENDPOINT=https://api.example.com
|
|
177
|
+
|
|
178
|
+
# Anthropic API 配置(Agent 命令需要)
|
|
179
|
+
export ANTHROPIC_API_KEY=your_anthropic_api_key
|
|
180
|
+
export ANTHROPIC_BASE_URL=https://api.anthropic.com # 可选
|
|
181
|
+
|
|
182
|
+
# 偏好设置
|
|
183
|
+
export NEEDWARE_COLOR_OUTPUT=true
|
|
184
|
+
export NEEDWARE_INTERACTIVE=true
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## 🛠️ 开发
|
|
188
|
+
|
|
189
|
+
### 环境要求
|
|
190
|
+
|
|
191
|
+
- Node.js >= 18.0.0
|
|
192
|
+
- npm >= 8.0.0
|
|
193
|
+
|
|
194
|
+
### 安装依赖
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
npm install
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### 开发模式
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
npm run dev
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### 构建项目
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
npm run build
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 运行测试
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# 运行所有测试
|
|
216
|
+
npm test
|
|
217
|
+
|
|
218
|
+
# 单元测试
|
|
219
|
+
npm run test:unit
|
|
220
|
+
|
|
221
|
+
# 集成测试
|
|
222
|
+
npm run test:integration
|
|
223
|
+
|
|
224
|
+
# 覆盖率报告
|
|
225
|
+
npm run test:coverage
|
|
226
|
+
|
|
227
|
+
# 监听模式
|
|
228
|
+
npm run test:watch
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### 代码检查
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# 运行 ESLint
|
|
235
|
+
npm run lint
|
|
236
|
+
|
|
237
|
+
# 自动修复
|
|
238
|
+
npm run lint:fix
|
|
239
|
+
|
|
240
|
+
# 格式化代码
|
|
241
|
+
npm run format
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## 📖 文档
|
|
245
|
+
|
|
246
|
+
- [架构文档](ARCHITECTURE.md) - 详细的系统架构说明
|
|
247
|
+
- [API 文档](docs/API.md) - API 使用说明
|
|
248
|
+
- [开发指南](docs/DEVELOPMENT.md) - 开发环境配置和贡献指南
|
|
249
|
+
- [Agent 命令指南](docs/AGENT_COMMAND.md) - AI 智能助手详细使用说明
|
|
250
|
+
- [交互式模式文档](docs/INTERACTIVE_MODE.md) - 多轮对话功能详解
|
|
251
|
+
|
|
252
|
+
## 🧪 测试
|
|
253
|
+
|
|
254
|
+
项目使用 Jest 进行测试,目标覆盖率为 80%。
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
npm test
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## 🤝 贡献
|
|
261
|
+
|
|
262
|
+
欢迎贡献!请查看 [贡献指南](CONTRIBUTING.md)。
|
|
263
|
+
|
|
264
|
+
### 提交规范
|
|
265
|
+
|
|
266
|
+
本项目遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范:
|
|
267
|
+
|
|
268
|
+
```
|
|
269
|
+
feat: 新功能
|
|
270
|
+
fix: 修复问题
|
|
271
|
+
docs: 文档更新
|
|
272
|
+
style: 代码格式调整
|
|
273
|
+
refactor: 代码重构
|
|
274
|
+
test: 测试相关
|
|
275
|
+
chore: 构建工具或辅助工具
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## 📝 变更日志
|
|
279
|
+
|
|
280
|
+
查看 [CHANGELOG.md](CHANGELOG.md) 了解版本变更详情。
|
|
281
|
+
|
|
282
|
+
## 📄 许可证
|
|
283
|
+
|
|
284
|
+
[MIT](LICENSE) © Needware Team
|
|
285
|
+
|
|
286
|
+
## 🙏 致谢
|
|
287
|
+
|
|
288
|
+
感谢以下开源项目:
|
|
289
|
+
|
|
290
|
+
- [Commander.js](https://github.com/tj/commander.js) - 命令行参数解析
|
|
291
|
+
- [Inquirer.js](https://github.com/SBoudrias/Inquirer.js) - 交互式命令行提示
|
|
292
|
+
- [Chalk](https://github.com/chalk/chalk) - 终端颜色输出
|
|
293
|
+
- [Ora](https://github.com/sindresorhus/ora) - 优雅的终端加载动画
|
|
294
|
+
|
|
295
|
+
## 📧 联系方式
|
|
296
|
+
|
|
297
|
+
- 问题反馈: [GitHub Issues](https://github.com/needware/needware-cli/issues)
|
|
298
|
+
- 邮箱: support@needware.com
|
|
299
|
+
|
|
300
|
+
## 🔗 相关链接
|
|
301
|
+
|
|
302
|
+
- [官方网站](https://needware.com)
|
|
303
|
+
- [文档中心](https://docs.needware.com)
|
|
304
|
+
- [GitHub](https://github.com/needware/needware-cli)
|
|
305
|
+
- [npm](https://www.npmjs.com/package/needware-cli)
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
**Made with ❤️ by Needware Team**
|
|
310
|
+
|
package/SETUP.md
ADDED
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
# 项目设置说明
|
|
2
|
+
|
|
3
|
+
## 🎉 项目已成功生成!
|
|
4
|
+
|
|
5
|
+
根据架构文档,已为您创建了完整的 Needware CLI 项目代码。
|
|
6
|
+
|
|
7
|
+
## 📋 项目结构
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
needware-code/
|
|
11
|
+
├── bin/ # CLI 可执行文件
|
|
12
|
+
├── src/ # TypeScript 源代码
|
|
13
|
+
│ ├── commands/ # 命令实现
|
|
14
|
+
│ ├── core/ # 核心功能
|
|
15
|
+
│ ├── sdk/ # SDK 集成层
|
|
16
|
+
│ ├── utils/ # 工具函数
|
|
17
|
+
│ └── types/ # 类型定义
|
|
18
|
+
├── tests/ # 测试文件
|
|
19
|
+
├── config/ # 配置文件
|
|
20
|
+
├── docs/ # 文档
|
|
21
|
+
└── dist/ # 构建输出(需要构建后生成)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 🚀 快速开始
|
|
25
|
+
|
|
26
|
+
### 1. 安装依赖
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
这将安装所有必需的依赖包:
|
|
33
|
+
- TypeScript 和相关工具
|
|
34
|
+
- Commander.js (命令行框架)
|
|
35
|
+
- Inquirer.js (交互式提示)
|
|
36
|
+
- Chalk (彩色输出)
|
|
37
|
+
- Ora (加载动画)
|
|
38
|
+
- Axios (HTTP 客户端)
|
|
39
|
+
- Jest (测试框架)
|
|
40
|
+
- ESLint & Prettier (代码质量工具)
|
|
41
|
+
|
|
42
|
+
### 2. 构建项目
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm run build
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
这将把 TypeScript 代码编译为 JavaScript,输出到 `dist/` 目录。
|
|
49
|
+
|
|
50
|
+
### 3. 测试运行
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# 开发模式(使用 ts-node)
|
|
54
|
+
npm run dev
|
|
55
|
+
|
|
56
|
+
# 或者链接到全局
|
|
57
|
+
npm link
|
|
58
|
+
needware-cli --help
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 📝 已实现的功能
|
|
62
|
+
|
|
63
|
+
### ✅ 核心模块
|
|
64
|
+
|
|
65
|
+
- **CLI 主类** (`src/core/cli.ts`)
|
|
66
|
+
- 命令注册和管理
|
|
67
|
+
- 全局选项处理
|
|
68
|
+
- 错误处理
|
|
69
|
+
|
|
70
|
+
- **命令基类** (`src/core/command.ts`)
|
|
71
|
+
- 命令生命周期管理
|
|
72
|
+
- 统一的接口规范
|
|
73
|
+
- 验证和错误处理
|
|
74
|
+
|
|
75
|
+
- **日志系统** (`src/core/logger.ts`)
|
|
76
|
+
- 多级日志(debug, info, warn, error, success)
|
|
77
|
+
- 彩色输出
|
|
78
|
+
- 文件持久化
|
|
79
|
+
|
|
80
|
+
### ✅ 命令实现
|
|
81
|
+
|
|
82
|
+
1. **init 命令** (`src/commands/init.ts`)
|
|
83
|
+
- 交互式配置初始化
|
|
84
|
+
- 默认配置生成
|
|
85
|
+
- 配置验证
|
|
86
|
+
|
|
87
|
+
2. **config 命令** (`src/commands/config.ts`)
|
|
88
|
+
- 列出所有配置
|
|
89
|
+
- 获取/设置配置项
|
|
90
|
+
- 重置配置
|
|
91
|
+
- 查看配置文件路径
|
|
92
|
+
|
|
93
|
+
3. **example 命令** (`src/commands/example.ts`)
|
|
94
|
+
- SDK 调用示例
|
|
95
|
+
- 数据获取和创建
|
|
96
|
+
- 健康检查
|
|
97
|
+
|
|
98
|
+
### ✅ SDK 集成
|
|
99
|
+
|
|
100
|
+
- **SDK 基类** (`src/sdk/base-sdk.ts`)
|
|
101
|
+
- 统一的 SDK 接口
|
|
102
|
+
- 生命周期管理
|
|
103
|
+
- 健康检查
|
|
104
|
+
|
|
105
|
+
- **SDK 管理器** (`src/sdk/index.ts`)
|
|
106
|
+
- SDK 注册和获取
|
|
107
|
+
- 批量初始化
|
|
108
|
+
- 健康状态监控
|
|
109
|
+
|
|
110
|
+
- **示例 SDK** (`src/sdk/example-sdk.ts`)
|
|
111
|
+
- HTTP 客户端集成
|
|
112
|
+
- 重试机制
|
|
113
|
+
- 错误处理
|
|
114
|
+
|
|
115
|
+
### ✅ 工具函数
|
|
116
|
+
|
|
117
|
+
- **配置管理** (`src/utils/config.ts`)
|
|
118
|
+
- 多层配置(默认、用户、环境变量)
|
|
119
|
+
- 配置读写和合并
|
|
120
|
+
- 路径解析
|
|
121
|
+
|
|
122
|
+
- **输入验证** (`src/utils/validator.ts`)
|
|
123
|
+
- 邮箱、URL、端口验证
|
|
124
|
+
- 自定义验证器
|
|
125
|
+
- 类型检查
|
|
126
|
+
|
|
127
|
+
- **文件操作** (`src/utils/file.ts`)
|
|
128
|
+
- 文件读写
|
|
129
|
+
- JSON 处理
|
|
130
|
+
- 目录管理
|
|
131
|
+
|
|
132
|
+
### ✅ 类型定义
|
|
133
|
+
|
|
134
|
+
完整的 TypeScript 类型定义 (`src/types/`):
|
|
135
|
+
- 命令相关类型
|
|
136
|
+
- 配置相关类型
|
|
137
|
+
- SDK 相关类型
|
|
138
|
+
- 错误类型
|
|
139
|
+
|
|
140
|
+
### ✅ 测试
|
|
141
|
+
|
|
142
|
+
- 单元测试示例
|
|
143
|
+
- 集成测试示例
|
|
144
|
+
- Jest 配置
|
|
145
|
+
- 测试覆盖率设置
|
|
146
|
+
|
|
147
|
+
### ✅ 文档
|
|
148
|
+
|
|
149
|
+
- `README.md` - 项目说明和使用指南
|
|
150
|
+
- `ARCHITECTURE.md` - 架构设计文档
|
|
151
|
+
- `CHANGELOG.md` - 版本变更记录
|
|
152
|
+
- `CONTRIBUTING.md` - 贡献指南
|
|
153
|
+
- `docs/API.md` - API 文档
|
|
154
|
+
- `docs/DEVELOPMENT.md` - 开发指南
|
|
155
|
+
- `QUICK_START.md` - 快速开始
|
|
156
|
+
|
|
157
|
+
### ✅ 开发工具
|
|
158
|
+
|
|
159
|
+
- TypeScript 配置
|
|
160
|
+
- ESLint 配置
|
|
161
|
+
- Prettier 配置
|
|
162
|
+
- Jest 配置
|
|
163
|
+
- Git 忽略文件
|
|
164
|
+
- npm 发布配置
|
|
165
|
+
|
|
166
|
+
## 🔧 开发命令
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# 开发模式
|
|
170
|
+
npm run dev
|
|
171
|
+
|
|
172
|
+
# 构建
|
|
173
|
+
npm run build
|
|
174
|
+
|
|
175
|
+
# 测试
|
|
176
|
+
npm test
|
|
177
|
+
npm run test:watch
|
|
178
|
+
npm run test:coverage
|
|
179
|
+
|
|
180
|
+
# 代码检查
|
|
181
|
+
npm run lint
|
|
182
|
+
npm run lint:fix
|
|
183
|
+
|
|
184
|
+
# 代码格式化
|
|
185
|
+
npm run format
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## 📚 使用示例
|
|
189
|
+
|
|
190
|
+
### 初始化配置
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# 交互式初始化
|
|
194
|
+
needware-cli init
|
|
195
|
+
|
|
196
|
+
# 使用默认配置
|
|
197
|
+
needware-cli init --default
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### 配置管理
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# 查看所有配置
|
|
204
|
+
needware-cli config list
|
|
205
|
+
|
|
206
|
+
# 设置配置
|
|
207
|
+
needware-cli config set sdks.example.apiKey YOUR_KEY
|
|
208
|
+
|
|
209
|
+
# 获取配置
|
|
210
|
+
needware-cli config get logging.level
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### SDK 调用示例
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# 健康检查
|
|
217
|
+
needware-cli example health
|
|
218
|
+
|
|
219
|
+
# 获取数据
|
|
220
|
+
needware-cli example fetch 123
|
|
221
|
+
|
|
222
|
+
# 创建数据
|
|
223
|
+
needware-cli example create '{"name":"test"}'
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## 🔍 关键文件说明
|
|
227
|
+
|
|
228
|
+
| 文件 | 说明 |
|
|
229
|
+
|------|------|
|
|
230
|
+
| `package.json` | 项目配置和依赖 |
|
|
231
|
+
| `tsconfig.json` | TypeScript 配置 |
|
|
232
|
+
| `jest.config.js` | Jest 测试配置 |
|
|
233
|
+
| `.eslintrc.json` | ESLint 代码检查配置 |
|
|
234
|
+
| `.prettierrc` | Prettier 格式化配置 |
|
|
235
|
+
| `src/index.ts` | 主入口文件 |
|
|
236
|
+
| `bin/cli.js` | CLI 可执行文件 |
|
|
237
|
+
| `config/default.json` | 默认配置 |
|
|
238
|
+
|
|
239
|
+
## 🎯 下一步
|
|
240
|
+
|
|
241
|
+
1. **安装依赖**
|
|
242
|
+
```bash
|
|
243
|
+
npm install
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
2. **构建项目**
|
|
247
|
+
```bash
|
|
248
|
+
npm run build
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
3. **初始化配置**
|
|
252
|
+
```bash
|
|
253
|
+
npm link
|
|
254
|
+
needware-cli init
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
4. **开始开发**
|
|
258
|
+
- 添加自定义命令
|
|
259
|
+
- 集成更多 SDK
|
|
260
|
+
- 编写测试
|
|
261
|
+
- 完善文档
|
|
262
|
+
|
|
263
|
+
## 📖 相关文档
|
|
264
|
+
|
|
265
|
+
- [README.md](README.md) - 完整使用说明
|
|
266
|
+
- [ARCHITECTURE.md](ARCHITECTURE.md) - 架构设计详解
|
|
267
|
+
- [QUICK_START.md](QUICK_START.md) - 快速开始指南
|
|
268
|
+
- [docs/API.md](docs/API.md) - API 参考文档
|
|
269
|
+
- [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) - 开发指南
|
|
270
|
+
|
|
271
|
+
## ⚠️ 注意事项
|
|
272
|
+
|
|
273
|
+
1. 需要 Node.js >= 18.0.0
|
|
274
|
+
2. 首次运行前请先执行 `npm install`
|
|
275
|
+
3. 开发时建议使用 `npm run dev` 而不是直接运行编译后的代码
|
|
276
|
+
4. 修改代码后需要重新构建(`npm run build`)
|
|
277
|
+
5. 测试前确保所有依赖已安装
|
|
278
|
+
|
|
279
|
+
## 🐛 故障排除
|
|
280
|
+
|
|
281
|
+
### 构建失败
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
rm -rf dist node_modules
|
|
285
|
+
npm install
|
|
286
|
+
npm run build
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### TypeScript 错误
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
# 确保类型定义已安装
|
|
293
|
+
npm install --save-dev @types/node @types/inquirer
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### 链接问题
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
npm unlink -g needware-cli
|
|
300
|
+
npm link
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
## 🎉 开始使用
|
|
304
|
+
|
|
305
|
+
现在您可以开始使用和开发 Needware CLI 了!
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
npm install
|
|
309
|
+
npm run build
|
|
310
|
+
npm link
|
|
311
|
+
needware-cli init
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
祝您使用愉快! 🚀
|
|
315
|
+
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Needware CLI 可执行文件入口
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
// 检查 Node.js 版本
|
|
10
|
+
const nodeVersion = process.versions.node;
|
|
11
|
+
const majorVersion = parseInt(nodeVersion.split('.')[0], 10);
|
|
12
|
+
|
|
13
|
+
if (majorVersion < 18) {
|
|
14
|
+
console.error(
|
|
15
|
+
'\x1b[31m%s\x1b[0m',
|
|
16
|
+
`Error: Needware CLI requires Node.js 18 or higher. Current version: ${nodeVersion}`
|
|
17
|
+
);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// 加载并运行主模块
|
|
22
|
+
async function run() {
|
|
23
|
+
try {
|
|
24
|
+
// 尝试加载编译后的代码
|
|
25
|
+
const indexPath = require.resolve('../dist/index.js');
|
|
26
|
+
delete require.cache[indexPath];
|
|
27
|
+
require(indexPath);
|
|
28
|
+
} catch (error) {
|
|
29
|
+
// 如果 dist 不存在,尝试使用 ts-node 运行源代码(开发模式)
|
|
30
|
+
try {
|
|
31
|
+
require('ts-node/register');
|
|
32
|
+
require('../src/index.ts');
|
|
33
|
+
} catch (tsError) {
|
|
34
|
+
console.error('\x1b[31m%s\x1b[0m', 'Error: Failed to load CLI');
|
|
35
|
+
console.error(
|
|
36
|
+
'\x1b[33m%s\x1b[0m',
|
|
37
|
+
'Please run "npm run build" to build the project first, or install ts-node for development mode.'
|
|
38
|
+
);
|
|
39
|
+
console.error('\x1b[90m%s\x1b[0m', error.message);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
run().catch((error) => {
|
|
46
|
+
console.error('Fatal error:', error);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
});
|
|
49
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"logging": {
|
|
4
|
+
"level": "info",
|
|
5
|
+
"file": "~/.needware/logs/cli.log"
|
|
6
|
+
},
|
|
7
|
+
"sdks": {
|
|
8
|
+
"example": {
|
|
9
|
+
"apiKey": "",
|
|
10
|
+
"endpoint": "https://api.example.com",
|
|
11
|
+
"timeout": 30000,
|
|
12
|
+
"retries": 3
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"preferences": {
|
|
16
|
+
"colorOutput": true,
|
|
17
|
+
"interactive": true
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent 命令 - 使用 Claude Agent SDK 执行智能任务
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from '../core/command';
|
|
5
|
+
import { CommandOptions, CommandResult } from '../types';
|
|
6
|
+
import { Logger } from '../core/logger';
|
|
7
|
+
export declare class AgentCommand extends Command {
|
|
8
|
+
readonly name = "agent";
|
|
9
|
+
readonly description = "Execute AI agent tasks using Claude Agent SDK";
|
|
10
|
+
readonly aliases: string[];
|
|
11
|
+
constructor(logger: Logger);
|
|
12
|
+
execute(options: CommandOptions): Promise<CommandResult>;
|
|
13
|
+
/**
|
|
14
|
+
* 运行 Agent 查询
|
|
15
|
+
*/
|
|
16
|
+
private runAgent;
|
|
17
|
+
/**
|
|
18
|
+
* 运行交互式 Agent 查询(多轮对话)
|
|
19
|
+
*/
|
|
20
|
+
private runInteractiveAgent;
|
|
21
|
+
/**
|
|
22
|
+
* 创建消息流生成器
|
|
23
|
+
*/
|
|
24
|
+
private createMessageStream;
|
|
25
|
+
/**
|
|
26
|
+
* 处理 Agent 消息
|
|
27
|
+
*/
|
|
28
|
+
private handleAgentMessage;
|
|
29
|
+
/**
|
|
30
|
+
* 获取系统提示词
|
|
31
|
+
*/
|
|
32
|
+
private getSystemPrompt;
|
|
33
|
+
/**
|
|
34
|
+
* 显示帮助信息
|
|
35
|
+
*/
|
|
36
|
+
private showHelp;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=agent.d.ts.map
|