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.
- package/README.md +3 -0
- package/bin/cli/cli.js +1345 -1336
- package/bin/cli/package.json +2 -2
- package/bin/cli/sdk-tools.d.ts +9 -1
- package/bin/cli/vendor/claude-code-jetbrains-plugin/lib/claude-code-jetbrains-plugin-0.1.12-beta-searchableOptions.jar +0 -0
- 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
- package/dist/chunks/simple-config.mjs +1 -1
- package/dist/cli.mjs +0 -1
- package/package.json +3 -3
- package/templates/agents/aico/requirement/requirement-aligner.md +0 -47
- package/templates/agents/aico/requirement/requirement-identifier.md +0 -45
- package/templates/agents/aico/requirement/task-executor-validator.md +24 -67
- package/templates/agents/aico/requirement/task-executor.md +13 -58
- package/templates/agents/aico/requirement/task-splitter-validator.md +32 -75
- 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
- package/templates/personality.md +6 -3
- package/templates/settings.json +2 -2
- package/bin/cli/sdk.d.ts +0 -446
- package/bin/cli/sdk.mjs +0 -14840
- package/bin/cli/vendor/claude-code-jetbrains-plugin/lib/claude-code-jetbrains-plugin-0.1.11-beta-searchableOptions.jar +0 -0
- package/templates/agents/aico/requirement/WINDOWS_USAGE.md +0 -478
- package/templates/agents/aico/requirement/crossplatform-utils.ps1 +0 -465
- package/templates/agents/aico/requirement/crossplatform-utils.sh +0 -307
- package/templates/agents/aico/requirement/requirement-functions-crossplatform.ps1 +0 -458
- package/templates/agents/aico/requirement/requirement-functions-crossplatform.sh +0 -472
- package/templates/agents/aico/requirement/requirement-launcher.ps1 +0 -223
- package/templates/agents/aico/requirement/requirement-launcher.sh +0 -146
- package/templates/agents/aico/requirement/test-crossplatform.ps1 +0 -506
- package/templates/agents/aico/requirement/test-crossplatform.sh +0 -456
- package/templates/hooks/README.md +0 -291
- package/templates/hooks/pre-requirement-identifier.ps1 +0 -160
- package/templates/hooks/requirement-processor.sh +0 -180
- package/templates/hooks/subagent-context-injector.sh +0 -65
- package/templates/hooks/utils/crossplatform-detector.ps1 +0 -117
- package/templates/hooks/utils/crossplatform-detector.sh +0 -111
- package/templates/utils/platform-launcher.ps1 +0 -333
- 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
|
-
}
|