aico-cli 2.0.26 → 2.0.28

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 (37) hide show
  1. package/README.md +3 -0
  2. package/bin/cli/cli.js +1345 -1336
  3. package/bin/cli/package.json +2 -2
  4. package/bin/cli/sdk-tools.d.ts +9 -1
  5. package/bin/cli/vendor/claude-code-jetbrains-plugin/lib/claude-code-jetbrains-plugin-0.1.12-beta-searchableOptions.jar +0 -0
  6. package/bin/cli/vendor/claude-code-jetbrains-plugin/lib/{claude-code-jetbrains-plugin-0.1.11-beta.jar → claude-code-jetbrains-plugin-0.1.12-beta.jar} +0 -0
  7. package/dist/chunks/simple-config.mjs +1 -1
  8. package/dist/cli.mjs +0 -1
  9. package/package.json +3 -3
  10. package/templates/agents/aico/requirement/requirement-aligner.md +0 -47
  11. package/templates/agents/aico/requirement/requirement-identifier.md +0 -45
  12. package/templates/agents/aico/requirement/task-executor-validator.md +24 -67
  13. package/templates/agents/aico/requirement/task-executor.md +13 -58
  14. package/templates/agents/aico/requirement/task-splitter-validator.md +32 -75
  15. package/templates/commands/base//350/275/257/344/273/266/345/274/200/345/217/221/345/257/274/345/270/210.md +61 -0
  16. package/templates/personality.md +6 -3
  17. package/templates/settings.json +2 -2
  18. package/bin/cli/sdk.d.ts +0 -446
  19. package/bin/cli/sdk.mjs +0 -14840
  20. package/bin/cli/vendor/claude-code-jetbrains-plugin/lib/claude-code-jetbrains-plugin-0.1.11-beta-searchableOptions.jar +0 -0
  21. package/templates/agents/aico/requirement/WINDOWS_USAGE.md +0 -478
  22. package/templates/agents/aico/requirement/crossplatform-utils.ps1 +0 -465
  23. package/templates/agents/aico/requirement/crossplatform-utils.sh +0 -307
  24. package/templates/agents/aico/requirement/requirement-functions-crossplatform.ps1 +0 -458
  25. package/templates/agents/aico/requirement/requirement-functions-crossplatform.sh +0 -472
  26. package/templates/agents/aico/requirement/requirement-launcher.ps1 +0 -223
  27. package/templates/agents/aico/requirement/requirement-launcher.sh +0 -146
  28. package/templates/agents/aico/requirement/test-crossplatform.ps1 +0 -506
  29. package/templates/agents/aico/requirement/test-crossplatform.sh +0 -456
  30. package/templates/hooks/README.md +0 -291
  31. package/templates/hooks/pre-requirement-identifier.ps1 +0 -160
  32. package/templates/hooks/requirement-processor.sh +0 -180
  33. package/templates/hooks/subagent-context-injector.sh +0 -65
  34. package/templates/hooks/utils/crossplatform-detector.ps1 +0 -117
  35. package/templates/hooks/utils/crossplatform-detector.sh +0 -111
  36. package/templates/utils/platform-launcher.ps1 +0 -333
  37. package/templates/utils/task-manager.sh +0 -401
@@ -1,146 +0,0 @@
1
- #!/usr/bin/env bash
2
- # 需求场景识别智能体 - 跨平台启动器
3
- # 支持 Windows (Git Bash/Cygwin/WSL)、Linux、macOS
4
-
5
- # 设置脚本目录
6
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
7
-
8
- # 平台检测函数
9
- detect_platform() {
10
- case "$(uname -s)" in
11
- Darwin)
12
- PLATFORM="macos"
13
- ;;
14
- Linux)
15
- PLATFORM="linux"
16
- ;;
17
- CYGWIN*|MINGW*|MSYS*)
18
- PLATFORM="windows"
19
- ;;
20
- *)
21
- PLATFORM="unknown"
22
- ;;
23
- esac
24
- echo "🌐 检测到平台: $PLATFORM"
25
- }
26
-
27
- # 检查依赖
28
- check_dependencies() {
29
- echo "🔍 检查系统依赖..."
30
-
31
- local missing_deps=()
32
-
33
- # 基本命令检查
34
- for cmd in bash grep sed head tail mkdir cat echo; do
35
- if ! command -v "$cmd" >/dev/null 2>&1; then
36
- missing_deps+=("$cmd")
37
- fi
38
- done
39
-
40
- if [ ${#missing_deps[@]} -gt 0 ]; then
41
- echo "❌ 缺少必要的系统命令: ${missing_deps[*]}"
42
- echo "请安装以下依赖:"
43
- case "$PLATFORM" in
44
- windows)
45
- echo "- 安装 Git for Windows: https://git-scm.com/download/win"
46
- echo "- 或安装 Cygwin: https://www.cygwin.com/"
47
- echo "- 或启用 WSL: https://docs.microsoft.com/windows/wsl/install"
48
- ;;
49
- macos)
50
- echo "- 确保已安装 Xcode Command Line Tools"
51
- echo "- 运行: xcode-select --install"
52
- ;;
53
- linux)
54
- echo "- 使用包管理器安装基本工具:"
55
- echo " Ubuntu/Debian: sudo apt install coreutils"
56
- echo " CentOS/RHEL: sudo yum install coreutils"
57
- ;;
58
- esac
59
- return 1
60
- fi
61
-
62
- echo "✅ 所有依赖检查通过"
63
- return 0
64
- }
65
-
66
- # 加载函数库
67
- load_functions() {
68
- local lib_file="$SCRIPT_DIR/requirement-functions-crossplatform.sh"
69
-
70
- if [ -f "$lib_file" ]; then
71
- source "$lib_file"
72
- echo "✅ 跨平台函数库加载成功"
73
- return 0
74
- else
75
- echo "❌ 找不到函数库文件: $lib_file"
76
- echo "请确保 requirement-functions-crossplatform.sh 文件存在"
77
- return 1
78
- fi
79
- }
80
-
81
- # 显示使用帮助
82
- show_usage() {
83
- cat << EOF
84
-
85
- 📋 需求场景识别智能体 - 跨平台启动器
86
-
87
- 使用方法:
88
- ./requirement-launcher.sh "您的需求描述"
89
-
90
- 示例:
91
- ./requirement-launcher.sh "需要开发一个用户登录功能"
92
- ./requirement-launcher.sh "修复页面加载速度慢的问题"
93
-
94
- 环境要求:
95
- - Windows: Git Bash、Cygwin 或 WSL
96
- - macOS: 标准终端环境
97
- - Linux: 标准终端环境
98
-
99
- 支持的功能:
100
- - ✅ 需求分析与识别
101
- - ✅ 跨平台文件操作
102
- - ✅ 共识文档生成
103
- - ✅ 状态管理
104
- - ✅ 异常处理
105
-
106
- EOF
107
- }
108
-
109
- # 主函数
110
- main() {
111
- # 检测平台
112
- detect_platform
113
-
114
- # 检查依赖
115
- if ! check_dependencies; then
116
- exit 1
117
- fi
118
-
119
- # 加载函数库
120
- if ! load_functions; then
121
- exit 1
122
- fi
123
-
124
- # 处理命令行参数
125
- if [ $# -eq 0 ]; then
126
- show_usage
127
- exit 0
128
- fi
129
-
130
- local user_input="$*"
131
-
132
- echo "🚀 开始处理需求..."
133
- echo "📝 需求描述: $user_input"
134
- echo "---"
135
-
136
- # 执行主工作流
137
- main_workflow "$user_input"
138
-
139
- echo ""
140
- echo "🎯 处理完成!请根据提示进行确认或修改。"
141
- }
142
-
143
- # 如果是直接执行而不是被 source,则运行主函数
144
- if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
145
- main "$@"
146
- fi
@@ -1,506 +0,0 @@
1
- # 跨平台兼容性测试脚本 - PowerShell 版本
2
- # 验证 Windows/Linux/macOS 环境下的功能完整性
3
-
4
- # 脚本配置
5
- $TestResults = @()
6
- $FailedTests = 0
7
- $PassedTests = 0
8
-
9
- # 颜色配置
10
- $Colors = @{
11
- Red = "Red"
12
- Green = "Green"
13
- Yellow = "Yellow"
14
- Cyan = "Cyan"
15
- White = "White"
16
- Gray = "Gray"
17
- }
18
-
19
- # 写日志函数
20
- function Write-Log {
21
- param(
22
- [string]$Message,
23
- [string]$Level = "INFO",
24
- [string]$Color = "White"
25
- )
26
-
27
- $timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
28
- Write-Host "[$timestamp] [$Level] $Message" -ForegroundColor $Colors[$Color]
29
- }
30
-
31
- # 测试结果记录
32
- function Add-TestResult {
33
- param(
34
- [string]$TestName,
35
- [bool]$Passed,
36
- [string]$Message = ""
37
- )
38
-
39
- $result = @{
40
- Name = $TestName
41
- Passed = $Passed
42
- Message = $Message
43
- Timestamp = Get-Date
44
- }
45
-
46
- $TestResults += $result
47
-
48
- if ($Passed -eq $true) {
49
- Write-Log "✅ $TestName - PASSED" -Level "PASS" -Color "Green"
50
- $script:PassedTests++
51
- } else {
52
- Write-Log "❌ $TestName - FAILED - $Message" -Level "FAIL" -Color "Red"
53
- $script:FailedTests++
54
- }
55
- }
56
-
57
- # 1. 环境检测测试
58
- function Test-Environment {
59
- Write-Log "🔍 开始环境检测测试..." -Level "TEST" -Color "Cyan"
60
-
61
- # 加载工具库
62
- try {
63
- . "$PSScriptRoot\crossplatform-utils.ps1"
64
- Add-TestResult -TestName "PowerShell 工具库加载" -Passed $true
65
- } catch {
66
- Add-TestResult -TestName "PowerShell 工具库加载" -Passed $false -Message $_
67
- return $false
68
- }
69
-
70
- # 平台检测
71
- try {
72
- $platform = Get-Platform
73
- if ($platform -in @("windows", "linux", "macos", "unknown")) {
74
- Add-TestResult -TestName "平台检测功能" -Passed $true -Message "检测到: $platform"
75
- } else {
76
- Add-TestResult -TestName "平台检测功能" -Passed $false -Message "未知平台: $platform"
77
- }
78
- } catch {
79
- Add-TestResult -TestName "平台检测功能" -Passed $false -Message $_
80
- }
81
-
82
- # PowerShell 版本检测
83
- try {
84
- $version = $PSVersionTable.PSVersion
85
- Add-TestResult -TestName "PowerShell 版本检测" -Passed $true -Message "版本: $version"
86
- } catch {
87
- Add-TestResult -TestName "PowerShell 版本检测" -Passed $false -Message $_
88
- }
89
-
90
- # 执行策略检测
91
- try {
92
- $policy = Get-ExecutionPolicy -Scope CurrentUser
93
- if ($policy -in @("RemoteSigned", "Unrestricted", "Bypass")) {
94
- Add-TestResult -TestName "执行策略检查" -Passed $true -Message "策略: $policy"
95
- } else {
96
- Add-TestResult -TestName "执行策略检查" -Passed $false -Message "政策可能阻止脚本执行: $policy"
97
- }
98
- } catch {
99
- Add-TestResult -TestName "执行策略检查" -Passed $false -Message $_
100
- }
101
- }
102
-
103
- # 2. 跨平台工具函数测试
104
- function Test-CrossPlatformUtils {
105
- Write-Log "🔧 测试跨平台工具函数..." -Level "TEST" -Color "Cyan"
106
-
107
- # 临时目录测试
108
- try {
109
- $tempDir = Get-TempDirectory
110
- if (Test-Path $tempDir) {
111
- Add-TestResult -TestName "临时目录获取" -Passed $true -Message "路径: $tempDir"
112
- } else {
113
- Add-TestResult -TestName "临时目录获取" -Passed $false -Message "临时目录不存在: $tempDir"
114
- }
115
- } catch {
116
- Add-TestResult -TestName "临时目录获取" -Passed $false -Message $_
117
- }
118
-
119
- # 家目录测试
120
- try {
121
- $homeDir = Get-HomeDirectory
122
- if (Test-Path $homeDir) {
123
- Add-TestResult -TestName "家目录获取" -Passed $true -Message "路径: $homeDir"
124
- } else {
125
- Add-TestResult -TestName "家目录获取" -Passed $false -Message "家目录不存在: $homeDir"
126
- }
127
- } catch {
128
- Add-TestResult -TestName "家目录获取" -Passed $false -Message $_
129
- }
130
-
131
- # 路径标准化测试
132
- try {
133
- $testPath = "src/components/test.js"
134
- $normalized = Normalize-Path -Path $testPath
135
- $platform = Get-Platform
136
-
137
- if ($platform -eq "windows" -and $normalized -like "*\*") {
138
- Add-TestResult -TestName "路径标准化" -Passed $true -Message "标准化: $normalized"
139
- } elseif ($platform -ne "windows" -and $normalized -eq $testPath) {
140
- Add-TestResult -TestName "路径标准化" -Passed $true -Message "标准化: $normalized"
141
- } else {
142
- Add-TestResult -TestName "路径标准化" -Passed $false -Message "标准化失败: $testPath -> $normalized"
143
- }
144
- } catch {
145
- Add-TestResult -TestName "路径标准化" -Passed $false -Message $_
146
- }
147
-
148
- # 命令存在性测试
149
- try {
150
- $existsPwsh = Test-CommandExists -CommandName "powershell"
151
- Add-TestResult -TestName "PowerShell 命令检测" -Passed $existsPwsh -Message "PowerShell 可用: $existsPwsh"
152
-
153
- if ($platform -eq "windows") {
154
- $existsCmd = Test-CommandExists -CommandName "cmd"
155
- Add-TestResult -TestName "CMD 命令检测" -Passed $existsCmd -Message "CMD 可用: $existsCmd"
156
- }
157
- } catch {
158
- Add-TestResult -TestName "命令存在性检测" -Passed $false -Message $_
159
- }
160
-
161
- # 文件操作测试
162
- try {
163
- $testDir = Join-Path (Get-TempDirectory) "aico-test-$(Get-Random)"
164
- $testFile = Join-Path $testDir "test.txt"
165
-
166
- # 创建目录
167
- $createResult = New-DirectorySafe -Path $testDir
168
- if ($createResult -and (Test-Path $testDir)) {
169
- Add-TestResult -TestName "目录创建" -Passed $true
170
- } else {
171
- Add-TestResult -TestName "目录创建" -Passed $false -Message "无法创建: $testDir"
172
- }
173
-
174
- # 写入文件
175
- Set-Content -Path $testFile -Value "测试内容" -Encoding UTF8
176
- if (Test-Path $testFile) {
177
- Add-TestResult -TestName "文件创建" -Passed $true
178
- } else {
179
- Add-TestResult -TestName "文件创建" -Passed $false -Message "无法创建: $testFile"
180
- }
181
-
182
- # 读取文件
183
- $content = Read-FileSafe -FilePath $testFile -MaxLines 5
184
- if ($content -contains "测试内容") {
185
- Add-TestResult -TestName "文件读取" -Passed $true
186
- } else {
187
- Add-TestResult -TestName "文件读取" -Passed $false -Message "内容读取失败"
188
- }
189
-
190
- # 复制文件
191
- $copiedFile = Join-Path $testDir "test-copy.txt"
192
- $copyResult = Copy-FileSafe -Source $testFile -Destination $copiedFile
193
- if ($copyResult -and (Test-Path $copiedFile)) {
194
- Add-TestResult -TestName "文件复制" -Passed $true
195
- } else {
196
- Add-TestResult -TestName "文件复制" -Passed $false -Message "复制失败"
197
- }
198
-
199
- # 清理测试文件
200
- Remove-DirectorySafe -Path $testDir
201
- if (-not (Test-Path $testDir)) {
202
- Add-TestResult -TestName "目录删除" -Passed $true
203
- } else {
204
- Add-TestResult -TestName "目录删除" -Passed $false -Message "删除失败: $testDir"
205
- }
206
- } catch {
207
- Add-TestResult -TestName "文件操作测试" -Passed $false -Message $_
208
- }
209
- }
210
-
211
- # 3. 需求功能库测试
212
- function Test-RequirementFunctions {
213
- Write-Log "📋 测试需求功能库..." -Level "TEST" -Color "Cyan"
214
-
215
- # 加载需求功能库
216
- try {
217
- . "$PSScriptRoot\requirement-functions-crossplatform.ps1"
218
- Add-TestResult -TestName "需求功能库加载" -Passed $true
219
- } catch {
220
- Add-TestResult -TestName "需求功能库加载" -Passed $false -Message $_
221
- return $false
222
- }
223
-
224
- # 项目类型检测测试
225
- try {
226
- $projectType = Get-ProjectType
227
- Add-TestResult -TestName "项目类型检测" -Passed $true -Message "类型: $projectType"
228
- } catch {
229
- Add-TestResult -TestName "项目类型检测" -Passed $false -Message $_
230
- }
231
-
232
- # 代码文件类型检测测试
233
- try {
234
- $codeTypes = Get-CodeFileTypes
235
- Add-TestResult -TestName "代码文件类型检测" -Passed $true -Message "检测到: $codeTypes"
236
- } catch {
237
- Add-TestResult -TestName "代码文件类型检测" -Passed $false -Message $_
238
- }
239
-
240
- # 项目结构检测测试
241
- try {
242
- $structure = Get-ProjectStructure
243
- Add-TestResult -TestName "项目结构检测" -Passed $true -Message "检测到: $structure"
244
- } catch {
245
- Add-TestResult -TestName "项目结构检测" -Passed $false -Message $_
246
- }
247
-
248
- # 信息收集测试
249
- try {
250
- Collect-Context -UserInput "测试用户需求:需要开发登录功能"
251
- if ($global:USER_INPUT -eq "测试用户需求:需要开发登录功能") {
252
- Add-TestResult -TestName "用户输入收集" -Passed $true
253
- } else {
254
- Add-TestResult -TestName "用户输入收集" -Passed $false -Message "输入不匹配"
255
- }
256
- } catch {
257
- Add-TestResult -TestName "用户输入收集" -Passed $false -Message $_
258
- }
259
-
260
- # 意图分析测试
261
- try {
262
- Analyze-IntentDeeply -InputText "需要修复登录页面的bug"
263
- if (-not [string]::IsNullOrEmpty($global:INTENT_TYPE)) {
264
- Add-TestResult -TestName "意图分析" -Passed $true -Message "识别类型: $global:INTENT_TYPE"
265
- } else {
266
- Add-TestResult -TestName "意图分析" -Passed $false -Message "未能识别意图类型"
267
- }
268
- } catch {
269
- Add-TestResult -TestName "意图分析" -Passed $false -Message $_
270
- }
271
-
272
- # 需求提取测试
273
- try {
274
- Extract-Requirements -InputText "作为用户我需要能够登录系统以便访问我的个人信息"
275
- if (-not [string]::IsNullOrEmpty($global:ROLE) -or -not [string]::IsNullOrEmpty($global:GOAL)) {
276
- Add-TestResult -TestName "需求要素提取" -Passed $true -Message "角色:$global:ROLE, 目标:$global:GOAL"
277
- } else {
278
- Add-TestResult -TestName "需求要素提取" -Passed $false -Message "未能提取需求要素"
279
- }
280
- } catch {
281
- Add-TestResult -TestName "需求要素提取" -Passed $false -Message $_
282
- }
283
- }
284
-
285
- # 4. 启动器测试
286
- function Test-Launcher {
287
- Write-Log "🚀 测试启动器功能..." -Level "TEST" -Color "Cyan"
288
-
289
- $launcherScript = Join-Path $PSScriptRoot "requirement-launcher.ps1"
290
-
291
- # 启动器文件存在性测试
292
- if (Test-Path $launcherScript) {
293
- Add-TestResult -TestName "启动器文件存在" -Passed $true
294
- } else {
295
- Add-TestResult -TestName "启动器文件存在" -Passed $false -Message "找不到: $launcherScript"
296
- return $false
297
- }
298
-
299
- # 启动器帮助测试
300
- try {
301
- $helpResult = & $launcherScript "--help" 2>&1
302
- if ($helpResult -match "使用方法" -or $helpResult -match "usage") {
303
- Add-TestResult -TestName "启动器帮助功能" -Passed $true
304
- } else {
305
- Add-TestResult -TestName "启动器帮助功能" -Passed $false -Message "帮助输出异常"
306
- }
307
- } catch {
308
- Add-TestResult -TestName "启动器帮助功能" -Passed $false -Message $_
309
- }
310
-
311
- # 启动器版本测试
312
- try {
313
- $versionResult = & $launcherScript "--version" 2>&1
314
- if ($versionResult -match "v[\d\.]+" -or $versionResult -match "version") {
315
- Add-TestResult -TestName "启动器版本信息" -Passed $true
316
- } else {
317
- Add-TestResult -TestName "启动器版本信息" -Passed $false -Message "版本输出异常"
318
- }
319
- } catch {
320
- Add-TestResult -TestName "启动器版本信息" -Passed $false -Message $_
321
- }
322
- }
323
-
324
- # 5. 跨平台兼容性测试
325
- function Test-PlatformSpecific {
326
- Write-Log "🌐 测试平台特定功能..." -Level "TEST" -Color "Cyan"
327
-
328
- $platform = Get-Platform
329
-
330
- switch ($platform) {
331
- "windows" {
332
- # Windows 特定测试
333
- try {
334
- $userName = $env:USERNAME
335
- if (-not [string]::IsNullOrEmpty($userName)) {
336
- Add-TestResult -TestName "Windows 用户环境" -Passed $true -Message "用户: $userName"
337
- } else {
338
- Add-TestResult -TestName "Windows 用户环境" -Passed $false -Message "无法获取用户名"
339
- }
340
- } catch {
341
- Add-TestResult -TestName "Windows 用户环境" -Passed $false -Message $_
342
- }
343
-
344
- try {
345
- $testResult = & cmd /c "echo CMD_TEST_SUCCESS" 2>$null
346
- if ($testResult -match "CMD_TEST_SUCCESS") {
347
- Add-TestResult -TestName "CMD 兼容性" -Passed $true
348
- } else {
349
- Add-TestResult -TestName "CMD 兼容性" -Passed $false -Message "CMD 执行失败"
350
- }
351
- } catch {
352
- Add-TestResult -TestName "CMD 兼容性" -Passed $false -Message $_
353
- }
354
- }
355
-
356
- "linux" {
357
- # Linux 特定测试
358
- try {
359
- $shell = $env:SHELL
360
- if ($shell -like "*bash*") {
361
- Add-TestResult -TestName "Linux Shell 环境" -Passed $true -Message "Shell: $shell"
362
- } else {
363
- Add-TestResult -TestName "Linux Shell 环境" -Passed $false -Message "当前shell: $shell"
364
- }
365
- } catch {
366
- Add-TestResult -TestName "Linux Shell 环境" -Passed $false -Message $_
367
- }
368
- }
369
-
370
- "macos" {
371
- # macOS 特定测试
372
- try {
373
- $osVersion = & sw_vers -productVersion 2>$null
374
- if ($osVersion -match "\d+\.\d+") {
375
- Add-TestResult -TestName "macOS 版本检测" -Passed $true -Message "版本: $osVersion"
376
- } else {
377
- Add-TestResult -TestName "macOS 版本检测" -Passed $false -Message "无法获取版本"
378
- }
379
- } catch {
380
- Add-TestResult -TestName "macOS 版本检测" -Passed $false -Message $_
381
- }
382
- }
383
-
384
- default {
385
- Add-TestResult -TestName "平台特定功能" -Passed $false -Message "未知平台: $platform"
386
- }
387
- }
388
-
389
- # 通用进程检查测试
390
- try {
391
- $selfProcess = Test-ProcessRunning -ProcessName "powershell"
392
- Add-TestResult -TestName "进程检查功能" -Passed $selfProcess -Message "PowerShell 进程运行: $selfProcess"
393
- } catch {
394
- Add-TestResult -TestName "进程检查功能" -Passed $false -Message $_
395
- }
396
-
397
- # 通用端口检查测试(使用常见端口)
398
- try {
399
- $port80 = Test-PortInUse -Port 80
400
- Add-TestResult -TestName "端口检查功能" -Passed $true -Message "端口80使用状态: $port80"
401
- } catch {
402
- Add-TestResult -TestName "端口检查功能" -Passed $false -Message $_
403
- }
404
- }
405
-
406
- # 主测试流程
407
- function Start-Tests {
408
- Write-Log "🧪 开始跨平台兼容性测试..." -Level "START" -Color "Yellow"
409
- Write-Log "Platform: $(Get-Platform)" -Level "INFO" -Color "Cyan"
410
- Write-Log "PowerShell: $($PSVersionTable.PSVersion)" -Level "INFO" -Color "Cyan"
411
- Write-Log "脚本目录: $PSScriptRoot" -Level "INFO" -Color "Cyan"
412
- Write-Host ""
413
-
414
- try {
415
- # 执行测试套件
416
- Test-Environment
417
- Test-CrossPlatformUtils
418
- Test-RequirementFunctions
419
- Test-Launcher
420
- Test-PlatformSpecific
421
-
422
- } catch {
423
- Write-Log "❌ 测试过程中发生未处理的异常: $_" -Level "ERROR" -Color "Red"
424
- Add-TestResult -TestName "测试执行完整性" -Passed $false -Message "未处理异常: $_"
425
- }
426
-
427
- # 生成测试报告
428
- Generate-TestReport
429
- }
430
-
431
- # 生成测试报告
432
- function Generate-TestReport {
433
- Write-Host ""
434
- Write-Log "📊 生成测试报告..." -Level "REPORT" -Color "Cyan"
435
-
436
- $totalTests = $PassedTests + $FailedTests
437
- $successRate = if ($totalTests -gt 0) { [math]::Round($PassedTests / $totalTests * 100, 2) } else { 0 }
438
-
439
- # 控制台报告
440
- Write-Host "═══════════════════════════════════════════════════════════════" -ForegroundColor Gray
441
- Write-Host " 跨平台兼容性测试报告" -ForegroundColor White
442
- Write-Host "═══════════════════════════════════════════════════════════════" -ForegroundColor Gray
443
- Write-Host "平台: $(Get-Platform)" -ForegroundColor Cyan
444
- Write-Host "PowerShell: $($PSVersionTable.PSVersion)" -ForegroundColor Cyan
445
- Write-Host "测试时间: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')" -ForegroundColor Cyan
446
- Write-Host ""
447
- Write-Host "测试统计:" -ForegroundColor Yellow
448
- Write-Host " ✅ 通过: $PassedTests" -ForegroundColor Green
449
- Write-Host " ❌ 失败: $FailedTests" -ForegroundColor Red if ($FailedTests -gt 0) { Write-Host " 📊 成功率: $successRate%" -ForegroundColor $(if ($successRate -ge 80) { "Green" } elseif ($successRate -ge 60) { "Yellow" } else { "Red" }) }
450
- Write-Host ""
451
-
452
- # 详细结果
453
- if ($FailedTests -gt 0) {
454
- Write-Host "失败测试详情:" -ForegroundColor Red
455
- $TestResults | Where-Object { $_.Passed -eq $false } | ForEach-Object {
456
- Write-Host " ❌ $($_.Name): $($_.Message)" -ForegroundColor Red
457
- }
458
- }
459
-
460
- Write-Host "═══════════════════════════════════════════════════════════════" -ForegroundColor Gray
461
-
462
- # 文本报告
463
- $reportPath = Join-Path (Get-TempDirectory) "aico-crossplatform-test-report.txt"
464
- $reportContent = @"
465
- 跨平台兼容性测试报告
466
- =====================
467
- 平台: $(Get-Platform)
468
- PowerShell: $($PSVersionTable.PSVersion)
469
- 测试时间: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')
470
-
471
- 测试统计:
472
- 通过: $PassedTests
473
- 失败: $FailedTests
474
- 成功率: $successRate%
475
-
476
- 详细结果:
477
- $($TestResults | ForEach-Object { "$($_.Name): $($_.Passed) - $($_.Message)" })
478
-
479
- "@
480
-
481
- try {
482
- Set-Content -Path $reportPath -Value $reportContent -Encoding UTF8
483
- Write-Host "📄 详细报告已保存至: $reportPath" -ForegroundColor Cyan
484
- } catch {
485
- Write-Host "⚠️ 无法保存报告文件" -ForegroundColor Yellow
486
- }
487
-
488
- # 退出代码
489
- if ($FailedTests -eq 0) {
490
- Write-Host "🎉 所有测试通过!跨平台兼容性良好。" -ForegroundColor Green
491
- $global:LASTEXITCODE = 0
492
- } else {
493
- Write-Host "⚠️ 存在 $FailedTests 个测试失败,请检查相关功能。" -ForegroundColor Yellow
494
- $global:LASTEXITCODE = 1
495
- }
496
- }
497
-
498
- # 主入口点
499
- if ($MyInvocation.InvocationName -ne ".") {
500
- try {
501
- Start-Tests
502
- } catch {
503
- Write-Host "❌ 测试脚本执行失败: $_" -ForegroundColor Red
504
- $global:LASTEXITCODE = 1
505
- }
506
- }