@cannbot-ai/install-helper 0.0.2-beta.7 → 0.0.2-beta.70
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 +60 -123
- package/bin/install-helper.js +59 -0
- package/bin/package.json +3 -0
- package/dist/config/repository.yaml +28 -0
- package/dist/index.js +2358 -1026
- package/dist/index.js.map +1 -1
- package/dist/install.ps1 +232 -0
- package/dist/locales/en_US.json +187 -0
- package/dist/locales/zh_CN.json +187 -0
- package/dist/plugins.d/_defaults.yml +4 -0
- package/dist/plugins.d/catlass-op-generator.yml +18 -0
- package/dist/plugins.d/model-infer-optimize.yml +19 -0
- package/dist/plugins.d/ops-code-reviewer.yml +14 -0
- package/dist/plugins.d/ops-direct-invoke-flash.yml +18 -0
- package/dist/plugins.d/ops-direct-invoke.yml +20 -0
- package/dist/plugins.d/ops-registry-invoke.yml +24 -0
- package/dist/plugins.d/pypto-op-orchestrator.yml +18 -0
- package/dist/plugins.d/tilelang-op-orchestrator.yml +20 -0
- package/dist/plugins.d/torch-compile.yml +14 -0
- package/dist/plugins.d/triton-op-generator.yml +14 -0
- package/package.json +17 -6
package/dist/install.ps1
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# ----------------------------------------------------------------------------------------------------------
|
|
2
|
+
# Copyright (c) 2026 Huawei Technologies Co., Ltd.
|
|
3
|
+
# This program is free software, you can redistribute it and/or modify it under the terms and conditions of
|
|
4
|
+
# CANN Open Software License Agreement Version 2.0 (the "License").
|
|
5
|
+
# Please refer to the License for details. You may not use this file except in compliance with the License.
|
|
6
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
|
|
7
|
+
# INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
8
|
+
# See LICENSE in the root of the software repository for the full text of the License.
|
|
9
|
+
# ----------------------------------------------------------------------------------------------------------
|
|
10
|
+
|
|
11
|
+
# Ensure TLS 1.2 (Windows PowerShell 5.1 defaults to TLS 1.0)
|
|
12
|
+
try {
|
|
13
|
+
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
|
14
|
+
} catch {}
|
|
15
|
+
|
|
16
|
+
$ErrorActionPreference = "Stop"
|
|
17
|
+
$ProgressPreference = "SilentlyContinue"
|
|
18
|
+
|
|
19
|
+
function Compare-SemVer($a, $b) {
|
|
20
|
+
$aParts = $a -split '-',2
|
|
21
|
+
$bParts = $b -split '-',2
|
|
22
|
+
try { $aVer = [version]$aParts[0] } catch { return $false }
|
|
23
|
+
try { $bVer = [version]$bParts[0] } catch { return $false }
|
|
24
|
+
if ($aVer -ne $bVer) { return $aVer -gt $bVer }
|
|
25
|
+
if ($aParts.Length -eq 1 -and $bParts.Length -eq 1) { return $false }
|
|
26
|
+
if ($aParts.Length -eq 1) { return $true }
|
|
27
|
+
if ($bParts.Length -eq 1) { return $false }
|
|
28
|
+
return "$($aParts[1])" -gt "$($bParts[1])"
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
Write-Host ""
|
|
32
|
+
Write-Host " ____ _ _ _ _ _ ____ _ " -ForegroundColor Cyan
|
|
33
|
+
Write-Host " / ___| / \ | \ | | \ | | __ ) ___ | |_ " -ForegroundColor Cyan
|
|
34
|
+
Write-Host " | | / _ \ | \| | \| | _ \ / _ \| __|" -ForegroundColor Cyan
|
|
35
|
+
Write-Host " | |___ / ___ \| |\ | |\ | |_) | (_) | |_ " -ForegroundColor Cyan
|
|
36
|
+
Write-Host " \____/_/ \_\_| \_|_| \_|____/ \___/ \__|" -ForegroundColor Cyan
|
|
37
|
+
Write-Host ""
|
|
38
|
+
Write-Host " CANNBot Install Helper" -ForegroundColor Cyan
|
|
39
|
+
Write-Host ""
|
|
40
|
+
|
|
41
|
+
# 1. Path A: If Node.js 18+ is available, use npm install
|
|
42
|
+
$hasNode = $false
|
|
43
|
+
try {
|
|
44
|
+
$nodeVersion = & node --version 2>$null
|
|
45
|
+
if ($nodeVersion) {
|
|
46
|
+
$majorVersion = [int]($nodeVersion -replace '^v', '' -replace '\..*', '')
|
|
47
|
+
if ($majorVersion -ge 18) {
|
|
48
|
+
$hasNode = $true
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
} catch {}
|
|
52
|
+
|
|
53
|
+
if ($hasNode) {
|
|
54
|
+
Write-Host " [OK] Node.js $nodeVersion" -ForegroundColor Green
|
|
55
|
+
Write-Host ""
|
|
56
|
+
|
|
57
|
+
# Check if already installed
|
|
58
|
+
try {
|
|
59
|
+
$installedVersion = & install-helper --version 2>$null
|
|
60
|
+
if ($installedVersion) {
|
|
61
|
+
Write-Host " [OK] 检测到已安装 install-helper (版本: $installedVersion)" -ForegroundColor Yellow
|
|
62
|
+
}
|
|
63
|
+
} catch {}
|
|
64
|
+
|
|
65
|
+
Write-Host " 正在安装 @cannbot-ai/install-helper..." -ForegroundColor Cyan
|
|
66
|
+
Write-Host ""
|
|
67
|
+
|
|
68
|
+
& npm install -g @cannbot-ai/install-helper 2>&1
|
|
69
|
+
if ($LASTEXITCODE -eq 0) {
|
|
70
|
+
Write-Host ""
|
|
71
|
+
Write-Host " [OK] 安装成功!" -ForegroundColor Green
|
|
72
|
+
Write-Host ""
|
|
73
|
+
Write-Host " 请运行: install-helper" -ForegroundColor Cyan
|
|
74
|
+
exit 0
|
|
75
|
+
} else {
|
|
76
|
+
Write-Host ""
|
|
77
|
+
Write-Host " [ERROR] npm 安装失败" -ForegroundColor Red
|
|
78
|
+
Write-Host ""
|
|
79
|
+
Write-Host " 请尝试以管理员权限运行:"
|
|
80
|
+
Write-Host " npm install -g @cannbot-ai/install-helper"
|
|
81
|
+
exit 1
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
# 2. Path B: No Node.js — download prebuilt binary
|
|
86
|
+
|
|
87
|
+
# Detect platform
|
|
88
|
+
$Arch = if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { "arm64" } else { "x64" }
|
|
89
|
+
$SubPkgName = "@cannbot-ai/install-helper-windows-$Arch"
|
|
90
|
+
$BinaryName = "install-helper.exe"
|
|
91
|
+
|
|
92
|
+
Write-Host " [OK] Platform: windows-$Arch" -ForegroundColor Green
|
|
93
|
+
Write-Host ""
|
|
94
|
+
|
|
95
|
+
# 2. Query latest version from npm registry
|
|
96
|
+
Write-Host " Querying latest version..." -ForegroundColor Cyan
|
|
97
|
+
|
|
98
|
+
$Mirrors = @(
|
|
99
|
+
"https://registry.npmjs.org",
|
|
100
|
+
"https://registry.npmmirror.com"
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
$Version = $null
|
|
104
|
+
$Registry = $null
|
|
105
|
+
$Errors = @()
|
|
106
|
+
foreach ($url in $Mirrors) {
|
|
107
|
+
foreach ($tag in @("beta", "latest")) {
|
|
108
|
+
try {
|
|
109
|
+
$resp = Invoke-RestMethod "$url/$SubPkgName/$tag" -TimeoutSec 15
|
|
110
|
+
if ($resp.version) {
|
|
111
|
+
if (-not $Version) {
|
|
112
|
+
$Version = $resp.version
|
|
113
|
+
$Registry = $url
|
|
114
|
+
} elseif (Compare-SemVer $resp.version $Version) {
|
|
115
|
+
$Version = $resp.version
|
|
116
|
+
$Registry = $url
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
} catch { $Errors += $_ }
|
|
120
|
+
}
|
|
121
|
+
if ($Version) {
|
|
122
|
+
Write-Host " [OK] Version: $Version (from $Registry)" -ForegroundColor Green
|
|
123
|
+
break
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (-not $Version) {
|
|
128
|
+
Write-Host " [ERROR] Failed to query version from all registries" -ForegroundColor Red
|
|
129
|
+
if ($Errors.Count -gt 0) {
|
|
130
|
+
Write-Host " Errors:" -ForegroundColor Yellow
|
|
131
|
+
foreach ($err in $Errors) {
|
|
132
|
+
Write-Host " - $($err.Exception.Message)" -ForegroundColor Yellow
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
Write-Host ""
|
|
136
|
+
Write-Host " Alternative (requires Node.js 18+):"
|
|
137
|
+
Write-Host " npm install -g @cannbot-ai/install-helper"
|
|
138
|
+
exit 1
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
# 3. Download tarball (with mirror fallback)
|
|
142
|
+
$InstallDir = Join-Path $env:USERPROFILE ".cannbot\bin"
|
|
143
|
+
New-Item -ItemType Directory -Force -Path $InstallDir | Out-Null
|
|
144
|
+
|
|
145
|
+
$TarballName = "$($SubPkgName.Split('/')[1])-$Version.tgz"
|
|
146
|
+
|
|
147
|
+
Write-Host ""
|
|
148
|
+
Write-Host " Downloading $TarballName ..." -ForegroundColor Cyan
|
|
149
|
+
|
|
150
|
+
$TempFile = Join-Path $env:TEMP "ih-tarball.tgz"
|
|
151
|
+
$Downloaded = $false
|
|
152
|
+
$DownloadMirrors = @($Registry) + ($Mirrors | Where-Object { $_ -ne $Registry })
|
|
153
|
+
foreach ($url in $DownloadMirrors) {
|
|
154
|
+
$TarballUrl = "$url/$SubPkgName/-/$TarballName"
|
|
155
|
+
try {
|
|
156
|
+
Invoke-WebRequest $TarballUrl -OutFile $TempFile -TimeoutSec 300 -UseBasicParsing
|
|
157
|
+
$Downloaded = $true
|
|
158
|
+
Write-Host " [OK] Download complete" -ForegroundColor Green
|
|
159
|
+
break
|
|
160
|
+
} catch {
|
|
161
|
+
Write-Host " [WARN] Download from $url failed: $($_.Exception.Message)" -ForegroundColor Yellow
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (-not $Downloaded) {
|
|
166
|
+
Write-Host " [ERROR] Download failed from all mirrors" -ForegroundColor Red
|
|
167
|
+
Write-Host ""
|
|
168
|
+
Write-Host " Alternative (requires Node.js 18+):"
|
|
169
|
+
Write-Host " npm install -g @cannbot-ai/install-helper"
|
|
170
|
+
exit 1
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
# 4. Extract
|
|
174
|
+
Write-Host " Installing..." -ForegroundColor Cyan
|
|
175
|
+
|
|
176
|
+
$TempExtract = Join-Path $env:TEMP "ih-extract-$(Get-Random)"
|
|
177
|
+
New-Item -ItemType Directory -Force -Path $TempExtract | Out-Null
|
|
178
|
+
|
|
179
|
+
try {
|
|
180
|
+
& tar xzf $TempFile -C $TempExtract 2>&1 | Out-Null
|
|
181
|
+
if ($LASTEXITCODE -ne 0) {
|
|
182
|
+
throw "tar exit code $LASTEXITCODE"
|
|
183
|
+
}
|
|
184
|
+
} catch {
|
|
185
|
+
Write-Host " [ERROR] Extraction failed. tar not found or error." -ForegroundColor Red
|
|
186
|
+
Write-Host " Windows 10 1803+ includes tar. For older Windows, use npm install."
|
|
187
|
+
Remove-Item $TempExtract -Recurse -Force -ErrorAction SilentlyContinue
|
|
188
|
+
Remove-Item $TempFile -Force -ErrorAction SilentlyContinue
|
|
189
|
+
exit 1
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
$BinarySrc = Join-Path $TempExtract "package\$BinaryName"
|
|
193
|
+
$BinaryDest = Join-Path $InstallDir "install-helper.exe"
|
|
194
|
+
|
|
195
|
+
if (-not (Test-Path $BinarySrc)) {
|
|
196
|
+
Write-Host " [ERROR] Binary not found in tarball: $BinarySrc" -ForegroundColor Red
|
|
197
|
+
Remove-Item $TempExtract -Recurse -Force -ErrorAction SilentlyContinue
|
|
198
|
+
Remove-Item $TempFile -Force -ErrorAction SilentlyContinue
|
|
199
|
+
exit 1
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
Copy-Item $BinarySrc $BinaryDest -Force
|
|
203
|
+
Remove-Item $TempExtract -Recurse -Force -ErrorAction SilentlyContinue
|
|
204
|
+
Remove-Item $TempFile -Force -ErrorAction SilentlyContinue
|
|
205
|
+
|
|
206
|
+
Write-Host " [OK] Installation successful!" -ForegroundColor Green
|
|
207
|
+
Write-Host ""
|
|
208
|
+
|
|
209
|
+
# 5. PATH
|
|
210
|
+
$UserPath = [Environment]::GetEnvironmentVariable("Path", "User")
|
|
211
|
+
if (-not $UserPath) {
|
|
212
|
+
[Environment]::SetEnvironmentVariable("Path", $InstallDir, "User")
|
|
213
|
+
Write-Host " [OK] Added to PATH (restart terminal to take effect)" -ForegroundColor Green
|
|
214
|
+
Write-Host ""
|
|
215
|
+
} elseif ($UserPath -notlike "*$InstallDir*") {
|
|
216
|
+
[Environment]::SetEnvironmentVariable("Path", "$UserPath;$InstallDir", "User")
|
|
217
|
+
Write-Host " [OK] Added to PATH (restart terminal to take effect)" -ForegroundColor Green
|
|
218
|
+
Write-Host ""
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
# 6. Verify binary and launch
|
|
222
|
+
try {
|
|
223
|
+
$null = & $BinaryDest --version 2>&1
|
|
224
|
+
Write-Host " Launching install-helper..." -ForegroundColor Cyan
|
|
225
|
+
Write-Host ""
|
|
226
|
+
& $BinaryDest
|
|
227
|
+
} catch {
|
|
228
|
+
Write-Host " [WARN] Binary failed to run" -ForegroundColor Yellow
|
|
229
|
+
Write-Host ""
|
|
230
|
+
Write-Host " Alternative (requires Node.js 18+):"
|
|
231
|
+
Write-Host " npm install -g @cannbot-ai/install-helper"
|
|
232
|
+
}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wizard_title": "CANNBot Install Helper",
|
|
3
|
+
"wizard_detect": "Detecting installed AI coding tools...",
|
|
4
|
+
"wizard_select_tool": "Select AI coding tool",
|
|
5
|
+
"wizard_select_level": "Select install level",
|
|
6
|
+
"wizard_select_plugin": "Select a scenario to install",
|
|
7
|
+
"wizard_confirm": "Confirm installation",
|
|
8
|
+
"wizard_detected_tool": "Detected",
|
|
9
|
+
"wizard_confirm_tool": "Confirm using",
|
|
10
|
+
"wizard_last_used": "last used",
|
|
11
|
+
"wizard_already_installed": "installed",
|
|
12
|
+
"install_repo_ready": "Repository ready",
|
|
13
|
+
"install_progress": "Installing",
|
|
14
|
+
"install_done": "Installation complete",
|
|
15
|
+
"install_success": "success",
|
|
16
|
+
"install_already_installed": "already installed",
|
|
17
|
+
"install_reinstall_confirm": "Reinstall (overwrite)",
|
|
18
|
+
"install_skip": "skipped",
|
|
19
|
+
"install_enhanced_next_steps": "Next steps",
|
|
20
|
+
"install_enhanced_launch": "Launch",
|
|
21
|
+
"install_enhanced_try": "Try",
|
|
22
|
+
"install_enhanced_more": "More",
|
|
23
|
+
"install_enhanced_check": "Check",
|
|
24
|
+
"install_enhanced_docs": "Docs",
|
|
25
|
+
"update_updating": "Updating",
|
|
26
|
+
"update_done": "Update complete",
|
|
27
|
+
"update_no_plugins": "No installed plugins",
|
|
28
|
+
"doctor_title": "CANNBot Doctor",
|
|
29
|
+
"doctor_tools": "AI Tools",
|
|
30
|
+
"doctor_plugins": "Installed Plugins",
|
|
31
|
+
"doctor_links": "Link Integrity",
|
|
32
|
+
"doctor_config": "Configuration",
|
|
33
|
+
"doctor_result": "Result",
|
|
34
|
+
"doctor_fix_cleaning": "Cleaning broken links",
|
|
35
|
+
"doctor_fix_rebuilding": "Rebuilding directories",
|
|
36
|
+
"info_description": "Description",
|
|
37
|
+
"info_skills": "Skills",
|
|
38
|
+
"info_agents": "Agents",
|
|
39
|
+
"info_status": "Status",
|
|
40
|
+
"info_quickstart": "Quick Start",
|
|
41
|
+
"info_not_found": "Plugin not found",
|
|
42
|
+
"lang_title": "Language Settings",
|
|
43
|
+
"lang_current": "Current language",
|
|
44
|
+
"lang_set": "Language set to",
|
|
45
|
+
"lang_invalid": "Invalid language, supported: zh_CN, en_US",
|
|
46
|
+
"list_title": "Available Scenarios",
|
|
47
|
+
"list_id": "#",
|
|
48
|
+
"list_name": "Name",
|
|
49
|
+
"list_status": "Status",
|
|
50
|
+
"list_description": "Description",
|
|
51
|
+
"status_installed": "installed",
|
|
52
|
+
"status_not_installed": "not installed",
|
|
53
|
+
"error_tool_not_found": "No AI coding tool detected",
|
|
54
|
+
"error_plugin_not_found": "Plugin not found",
|
|
55
|
+
"error_invalid_tool": "Unsupported AI tool: {tool}\nSupported tools: {tools}",
|
|
56
|
+
"error_invalid_level": "Unsupported install level: {level}\nSupported levels: {levels}",
|
|
57
|
+
"error_skill_not_found": "Skill not found in registry",
|
|
58
|
+
"error_source_not_found": "Source not found: {path}",
|
|
59
|
+
"error_script_not_found": "Script not found: {path}",
|
|
60
|
+
"error_unknown": "Unknown error",
|
|
61
|
+
"error_not_installed": "Not installed",
|
|
62
|
+
"error_no_shell": "bash or sh not found, cannot execute install script. Please install Git Bash or WSL",
|
|
63
|
+
"error_symlink_windows": "Failed to create symlink, please run as administrator or enable Windows Developer Mode",
|
|
64
|
+
"skill_select_category": "Select Skill category",
|
|
65
|
+
"skill_select_items": "Select Skills to install (space to toggle, enter to confirm)",
|
|
66
|
+
"skill_already_installed": "installed",
|
|
67
|
+
"skill_select_all": "Select ALL Skills ({count} total)",
|
|
68
|
+
"skill_select_all_category": "Select all in this category",
|
|
69
|
+
"skill_continue_or_install": "{count} Skills selected, choose an action",
|
|
70
|
+
"skill_continue_select": "Continue selecting from other categories",
|
|
71
|
+
"skill_confirm_install_count": "Install now ({count} Skills selected)",
|
|
72
|
+
"skill_all_install_progress": "Installing all {count} Skills...",
|
|
73
|
+
"skill_install_progress": "Installing",
|
|
74
|
+
"skill_install_done": "Skill installation complete",
|
|
75
|
+
"skill_uninstall_done": "Skill uninstallation complete",
|
|
76
|
+
"skill_list_title": "Available Skills",
|
|
77
|
+
"wizard_select_mode": "Select installation mode",
|
|
78
|
+
"wizard_mode_plugin": "Install Plugin",
|
|
79
|
+
"wizard_mode_plugin_desc": "Full development workflow (Skills + Agents + config)",
|
|
80
|
+
"wizard_mode_skill": "Install Skill",
|
|
81
|
+
"wizard_mode_skill_desc": "Domain knowledge only, give AI specific capabilities",
|
|
82
|
+
"wizard_back": "Go back",
|
|
83
|
+
"wizard_cancel": "Cancel installation",
|
|
84
|
+
"wizard_no_selection": "No items selected, please choose an action",
|
|
85
|
+
"wizard_back_to_reselect": "Go back",
|
|
86
|
+
"status_title": "Installed Plugins",
|
|
87
|
+
"status_none": "No installed plugins",
|
|
88
|
+
"status_hint": "Run install-helper init to start",
|
|
89
|
+
"status_install_time": "Installed at",
|
|
90
|
+
"install_installed_to": "Installed to",
|
|
91
|
+
"install_skills_count": "Skills",
|
|
92
|
+
"install_agents_count": "Agents",
|
|
93
|
+
"lang_supported": "Supported languages: zh_CN, en_US",
|
|
94
|
+
"lang_usage": "Usage: install-helper lang set <language>",
|
|
95
|
+
"lang_specify": "Please specify language: install-helper lang set zh_CN",
|
|
96
|
+
"lang_unknown_action": "Unknown action",
|
|
97
|
+
"lang_supported_actions": "Supported actions: show, set",
|
|
98
|
+
"info_aliases": "Aliases",
|
|
99
|
+
"uninstall_not_found": "Not found",
|
|
100
|
+
"uninstall_no_record": "No install record found, may not be installed or record is corrupted",
|
|
101
|
+
"uninstall_no_record_hint": "For manual cleanup, delete related files in .opencode/ or .claude/ directory",
|
|
102
|
+
"uninstall_in_progress": "Uninstalling",
|
|
103
|
+
"uninstall_summary_format": "{name} (removed {files} files, {dirs} directories)",
|
|
104
|
+
"uninstall_files_gone": " files no longer exist, install record cleaned",
|
|
105
|
+
"uninstall_skills_in_progress": "Uninstalling",
|
|
106
|
+
"init_pkg_dir_warn": "Current directory appears to be the install-helper package directory",
|
|
107
|
+
"init_pkg_dir_hint": "Please run this command in your project directory, not in the install-helper package directory",
|
|
108
|
+
"init_pkg_dir_example": "Example: cd ~/my-project && install-helper",
|
|
109
|
+
"init_cancelled": "Installation cancelled",
|
|
110
|
+
"backup_detected": "Plugin already installed in current directory",
|
|
111
|
+
"backup_current": "Currently installed",
|
|
112
|
+
"backup_installing": "About to install",
|
|
113
|
+
"backup_overwrite_warning": "Continuing will overwrite existing AGENTS.md configuration.",
|
|
114
|
+
"backup_auto_create": "System will automatically create backup for future restoration.",
|
|
115
|
+
"backup_overwrite": "Overwrite (auto backup)",
|
|
116
|
+
"backup_cancel": "Cancel installation",
|
|
117
|
+
"backup_restore_prompt": "Backup configuration detected, restore?",
|
|
118
|
+
"backup_restore": "Restore",
|
|
119
|
+
"backup_only_uninstall": "Uninstall only (no restore)",
|
|
120
|
+
"backup_select_action": "Please select an action",
|
|
121
|
+
"backup_restore_success": "Configuration restored",
|
|
122
|
+
"backup_created": "Backup created",
|
|
123
|
+
"backup_failed": "Backup creation failed, installation aborted to protect existing config",
|
|
124
|
+
"loading_skills_list": "Loading Skills list...",
|
|
125
|
+
"loading_skills_list_complete": "Skills list loaded",
|
|
126
|
+
"loading_plugin_data": "Loading plugin data...",
|
|
127
|
+
"loading_plugin_data_complete": "Plugin data loaded",
|
|
128
|
+
"loading_skills_list_failed": "Failed to load Skills list, using built-in data",
|
|
129
|
+
"repo_pull_failed": "Failed to pull latest updates, using cached data",
|
|
130
|
+
"repo_cloning": "First-time setup: cloning cannbot-skills repository...",
|
|
131
|
+
"config_corrupted": "Config file corrupted, using defaults",
|
|
132
|
+
"record_corrupted": "Install record corrupted: {file}",
|
|
133
|
+
"skill_record_corrupted": "Skill install record corrupted",
|
|
134
|
+
"plugin_yaml_error": "Plugin config parse error: {file}",
|
|
135
|
+
"record_write_failed": "Install record write failed, uninstall may not work properly",
|
|
136
|
+
"install_config_failed": "Failed to install config file: {error}",
|
|
137
|
+
"install_clone_failed": "git clone failed: {url}, clone manually: git clone {url} {dir}",
|
|
138
|
+
"install_link_config_failed": "Failed to link {name} to config directory",
|
|
139
|
+
"install_link_project_failed": "Failed to link {name} to project directory",
|
|
140
|
+
"install_link_workflows_failed": "Failed to link workflows to config directory",
|
|
141
|
+
"install_skill_source_not_found": "Skill source not found: {dir}",
|
|
142
|
+
"install_skill_not_found": "Skill not found: {name} in {dir}",
|
|
143
|
+
"install_skill_failed": "Failed to install skill: {name}",
|
|
144
|
+
"install_agent_not_found": "Agent not found: {name}",
|
|
145
|
+
"install_agent_failed": "Failed to install agent: {name}",
|
|
146
|
+
"install_no_skill_selected": "No Skill selected",
|
|
147
|
+
"install_to": "Install to",
|
|
148
|
+
"start_to_use": "Start {tool} to use",
|
|
149
|
+
"wizard_step_1_title": "[1/4] Select AI coding tool",
|
|
150
|
+
"wizard_step_2_title": "[2/4] Select installation location",
|
|
151
|
+
"wizard_step_3_title": "[3/4] Select plugins to install",
|
|
152
|
+
"wizard_step_4_title": "[4/4] Confirm installation",
|
|
153
|
+
"wizard_step_3_skill_title": "[3/4] Select Skill category",
|
|
154
|
+
"wizard_step_4_skill_title": "[4/4] Select Skills to install — {category}",
|
|
155
|
+
"install_level_project": "Install to current directory (recommended, current project only)",
|
|
156
|
+
"install_level_global": "Install globally (all projects)",
|
|
157
|
+
"wizard_select_mode_title": "Select installation type",
|
|
158
|
+
"skill_count_format": "{count} Skills",
|
|
159
|
+
"result_success_format": "{count} succeeded",
|
|
160
|
+
"result_failed_format": "{count} failed",
|
|
161
|
+
"uninstall_remove_label": "Removed",
|
|
162
|
+
"uninstall_clean_empty_dir": "Cleaned empty directory",
|
|
163
|
+
"uninstall_skill_not_installed": "Not installed",
|
|
164
|
+
"available_plugins": "Available plugins",
|
|
165
|
+
"available_skills": "Available Skills",
|
|
166
|
+
"skill_total_count": "Total {count} Skills",
|
|
167
|
+
"wizard_confirm_install_format": "About to install {count} plugins to {tool} ({level} level):",
|
|
168
|
+
"wizard_install_path": "Install path",
|
|
169
|
+
"update_install_hint": "Use {cmd} to install plugins",
|
|
170
|
+
"hint_select_move": "Navigate",
|
|
171
|
+
"hint_select_space": "Space",
|
|
172
|
+
"hint_select_check": "Toggle",
|
|
173
|
+
"hint_select_confirm": "Confirm",
|
|
174
|
+
"hint_checkbox_suffix": "Press enter without selection to go back",
|
|
175
|
+
"doctor_not_installed": "Not installed",
|
|
176
|
+
"doctor_links_valid": "{count} symlinks all valid",
|
|
177
|
+
"doctor_broken_links": "{count} broken links",
|
|
178
|
+
"doctor_fixed": "Cleaned {count} broken links",
|
|
179
|
+
"doctor_not_exist": "Does not exist",
|
|
180
|
+
"doctor_created": "Created {path}",
|
|
181
|
+
"doctor_config_exists": "Exists",
|
|
182
|
+
"doctor_config_not_exist": "Does not exist",
|
|
183
|
+
"doctor_result_with_fix": "{warnings} warnings, {fixes} fixed",
|
|
184
|
+
"doctor_result_without_fix": "{warnings} warnings",
|
|
185
|
+
"count_suffix": "",
|
|
186
|
+
"try_prompt": "help me develop an Abs operator"
|
|
187
|
+
}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
{
|
|
2
|
+
"wizard_title": "CANNBot Install Helper",
|
|
3
|
+
"wizard_detect": "正在检测已安装的 AI 编程工具...",
|
|
4
|
+
"wizard_select_tool": "选择 AI 编程工具",
|
|
5
|
+
"wizard_select_level": "选择安装位置",
|
|
6
|
+
"wizard_select_plugin": "选择要安装的插件",
|
|
7
|
+
"wizard_confirm": "确认安装",
|
|
8
|
+
"wizard_detected_tool": "检测到",
|
|
9
|
+
"wizard_confirm_tool": "使用",
|
|
10
|
+
"wizard_last_used": "上次使用",
|
|
11
|
+
"wizard_already_installed": "已安装",
|
|
12
|
+
"install_repo_ready": "仓库就绪",
|
|
13
|
+
"install_progress": "正在安装",
|
|
14
|
+
"install_done": "安装完成",
|
|
15
|
+
"install_success": "成功",
|
|
16
|
+
"install_already_installed": "已安装",
|
|
17
|
+
"install_reinstall_confirm": "是否重新安装(覆盖)",
|
|
18
|
+
"install_skip": "跳过",
|
|
19
|
+
"install_enhanced_next_steps": "下一步",
|
|
20
|
+
"install_enhanced_launch": "启动",
|
|
21
|
+
"install_enhanced_try": "试试",
|
|
22
|
+
"install_enhanced_more": "更多",
|
|
23
|
+
"install_enhanced_check": "检查",
|
|
24
|
+
"install_enhanced_docs": "文档",
|
|
25
|
+
"update_updating": "正在更新",
|
|
26
|
+
"update_done": "更新完成",
|
|
27
|
+
"update_no_plugins": "暂无已安装的插件",
|
|
28
|
+
"doctor_title": "CANNBot Doctor",
|
|
29
|
+
"doctor_tools": "AI 工具",
|
|
30
|
+
"doctor_plugins": "已安装插件",
|
|
31
|
+
"doctor_links": "链接完整性",
|
|
32
|
+
"doctor_config": "配置文件",
|
|
33
|
+
"doctor_result": "结果",
|
|
34
|
+
"doctor_fix_cleaning": "清理失效链接",
|
|
35
|
+
"doctor_fix_rebuilding": "重建目录",
|
|
36
|
+
"info_description": "描述",
|
|
37
|
+
"info_skills": "Skills",
|
|
38
|
+
"info_agents": "Agents",
|
|
39
|
+
"info_status": "状态",
|
|
40
|
+
"info_quickstart": "快速开始",
|
|
41
|
+
"info_not_found": "未找到插件",
|
|
42
|
+
"lang_title": "语言设置",
|
|
43
|
+
"lang_current": "当前语言",
|
|
44
|
+
"lang_set": "语言已设置为",
|
|
45
|
+
"lang_invalid": "无效的语言,支持: zh_CN, en_US",
|
|
46
|
+
"list_title": "可用场景",
|
|
47
|
+
"list_id": "序号",
|
|
48
|
+
"list_name": "场景名",
|
|
49
|
+
"list_status": "状态",
|
|
50
|
+
"list_description": "描述",
|
|
51
|
+
"status_installed": "已装",
|
|
52
|
+
"status_not_installed": "未装",
|
|
53
|
+
"error_tool_not_found": "未检测到任何 AI 编程工具",
|
|
54
|
+
"error_plugin_not_found": "未找到插件",
|
|
55
|
+
"error_invalid_tool": "暂不支持的 AI 工具: {tool}\n支持的工具: {tools}",
|
|
56
|
+
"error_invalid_level": "暂不支持的安装级别: {level}\n支持的级别: {levels}",
|
|
57
|
+
"error_skill_not_found": "未在注册表中找到 Skill",
|
|
58
|
+
"error_source_not_found": "未找到源文件: {path}",
|
|
59
|
+
"error_script_not_found": "未找到安装脚本: {path}",
|
|
60
|
+
"error_unknown": "未知错误",
|
|
61
|
+
"error_not_installed": "未安装",
|
|
62
|
+
"error_no_shell": "未找到 bash 或 sh,无法执行安装脚本。请安装 Git Bash 或 WSL",
|
|
63
|
+
"error_symlink_windows": "创建符号链接失败,请以管理员身份运行或开启 Windows 开发者模式",
|
|
64
|
+
"skill_select_category": "选择 Skill 类别",
|
|
65
|
+
"skill_select_items": "选择要安装的 Skills",
|
|
66
|
+
"skill_already_installed": "已安装",
|
|
67
|
+
"skill_select_all": "全选所有 Skills(共 {count} 个)",
|
|
68
|
+
"skill_select_all_category": "全选当前类别",
|
|
69
|
+
"skill_continue_or_install": "已选 {count} 个 Skills,请选择操作",
|
|
70
|
+
"skill_continue_select": "继续选择其他类别",
|
|
71
|
+
"skill_confirm_install_count": "确认安装(已选 {count} 个 Skills)",
|
|
72
|
+
"skill_all_install_progress": "正在安装全部 {count} 个 Skills...",
|
|
73
|
+
"skill_install_progress": "正在安装",
|
|
74
|
+
"skill_install_done": "Skill 安装完成",
|
|
75
|
+
"skill_uninstall_done": "Skill 卸载完成",
|
|
76
|
+
"skill_list_title": "可用 Skills",
|
|
77
|
+
"wizard_select_mode": "选择安装类型",
|
|
78
|
+
"wizard_mode_plugin": "安装 Plugin",
|
|
79
|
+
"wizard_mode_plugin_desc": "完整开发工作流(Skills + Agents + 配置文件)",
|
|
80
|
+
"wizard_mode_skill": "安装 Skill",
|
|
81
|
+
"wizard_mode_skill_desc": "仅安装领域知识技能,让 AI 掌握特定能力",
|
|
82
|
+
"wizard_back": "返回",
|
|
83
|
+
"wizard_cancel": "退出",
|
|
84
|
+
"wizard_no_selection": "未选择任何项,请选择操作",
|
|
85
|
+
"wizard_back_to_reselect": "返回",
|
|
86
|
+
"status_title": "已安装插件",
|
|
87
|
+
"status_none": "暂无已安装的插件",
|
|
88
|
+
"status_hint": "运行 install-helper init 开始安装",
|
|
89
|
+
"status_install_time": "安装时间",
|
|
90
|
+
"install_installed_to": "安装到",
|
|
91
|
+
"install_skills_count": "Skills",
|
|
92
|
+
"install_agents_count": "Agents",
|
|
93
|
+
"lang_supported": "支持的语言: zh_CN, en_US",
|
|
94
|
+
"lang_usage": "用法: install-helper lang set <language>",
|
|
95
|
+
"lang_specify": "请指定语言: install-helper lang set zh_CN",
|
|
96
|
+
"lang_unknown_action": "未知操作",
|
|
97
|
+
"lang_supported_actions": "支持的操作: show, set",
|
|
98
|
+
"info_aliases": "别名",
|
|
99
|
+
"uninstall_not_found": "未找到",
|
|
100
|
+
"uninstall_no_record": "未找到安装记录,可能未安装或安装记录已损坏",
|
|
101
|
+
"uninstall_no_record_hint": "如需强制清理,请手动删除 .opencode/ 或 .claude/ 目录中的相关文件",
|
|
102
|
+
"uninstall_in_progress": "正在卸载",
|
|
103
|
+
"uninstall_summary_format": "{name}(移除 {files} 个文件,{dirs} 个目录)",
|
|
104
|
+
"uninstall_files_gone": "的文件已不存在,已清理安装记录",
|
|
105
|
+
"uninstall_skills_in_progress": "正在卸载",
|
|
106
|
+
"init_pkg_dir_warn": "当前目录看起来是 install-helper 包目录",
|
|
107
|
+
"init_pkg_dir_hint": "请在你的项目目录中运行此命令,而不是在 install-helper 安装目录中",
|
|
108
|
+
"init_pkg_dir_example": "示例:cd ~/my-project && install-helper",
|
|
109
|
+
"init_cancelled": "已取消安装",
|
|
110
|
+
"backup_detected": "检测到当前目录已安装插件",
|
|
111
|
+
"backup_current": "当前安装",
|
|
112
|
+
"backup_installing": "即将安装",
|
|
113
|
+
"backup_overwrite_warning": "继续安装将覆盖现有的 AGENTS.md 配置文件。",
|
|
114
|
+
"backup_auto_create": "系统会自动创建备份,以便后续恢复。",
|
|
115
|
+
"backup_overwrite": "覆盖安装(自动备份)",
|
|
116
|
+
"backup_cancel": "取消安装",
|
|
117
|
+
"backup_restore_prompt": "检测到备份配置,是否恢复?",
|
|
118
|
+
"backup_restore": "恢复",
|
|
119
|
+
"backup_only_uninstall": "仅卸载(不恢复)",
|
|
120
|
+
"backup_select_action": "请选择操作",
|
|
121
|
+
"backup_restore_success": "已恢复配置",
|
|
122
|
+
"backup_created": "已创建备份",
|
|
123
|
+
"backup_failed": "备份创建失败,安装已中止以保护现有配置",
|
|
124
|
+
"loading_skills_list": "正在加载 Skills 列表...",
|
|
125
|
+
"loading_skills_list_complete": "Skills 列表加载完成",
|
|
126
|
+
"loading_plugin_data": "正在加载插件数据...",
|
|
127
|
+
"loading_plugin_data_complete": "插件数据加载完成",
|
|
128
|
+
"loading_skills_list_failed": "Skills 列表加载失败,将使用内置数据",
|
|
129
|
+
"repo_pull_failed": "无法拉取最新内容,使用缓存数据",
|
|
130
|
+
"repo_cloning": "首次使用,正在克隆 cannbot-skills 仓库...",
|
|
131
|
+
"config_corrupted": "配置文件已损坏,使用默认配置",
|
|
132
|
+
"record_corrupted": "安装记录已损坏:{file}",
|
|
133
|
+
"skill_record_corrupted": "Skill 安装记录已损坏",
|
|
134
|
+
"plugin_yaml_error": "插件配置解析失败:{file}",
|
|
135
|
+
"record_write_failed": "安装记录写入失败,卸载时可能无法自动清理",
|
|
136
|
+
"install_config_failed": "配置文件安装失败: {error}",
|
|
137
|
+
"install_clone_failed": "git clone 失败: {url},请手动克隆: git clone {url} {dir}",
|
|
138
|
+
"install_link_config_failed": "链接 {name} 到配置目录失败",
|
|
139
|
+
"install_link_project_failed": "链接 {name} 到项目目录失败",
|
|
140
|
+
"install_link_workflows_failed": "链接 workflows 到配置目录失败",
|
|
141
|
+
"install_skill_source_not_found": "Skill 源目录未找到: {dir}",
|
|
142
|
+
"install_skill_not_found": "Skill 未找到: {name} (在 {dir})",
|
|
143
|
+
"install_skill_failed": "Skill 安装失败: {name}",
|
|
144
|
+
"install_agent_not_found": "Agent 未找到: {name}",
|
|
145
|
+
"install_agent_failed": "Agent 安装失败: {name}",
|
|
146
|
+
"install_no_skill_selected": "未选择任何 Skill",
|
|
147
|
+
"install_to": "安装到",
|
|
148
|
+
"start_to_use": "启动 {tool} 即可使用",
|
|
149
|
+
"wizard_step_1_title": "[1/4] 选择 AI 编程工具",
|
|
150
|
+
"wizard_step_2_title": "[2/4] 选择安装位置",
|
|
151
|
+
"wizard_step_3_title": "[3/4] 选择要安装的插件",
|
|
152
|
+
"wizard_step_4_title": "[4/4] 确认安装",
|
|
153
|
+
"wizard_step_3_skill_title": "[3/4] 选择 Skill 类别",
|
|
154
|
+
"wizard_step_4_skill_title": "[4/4] 选择要安装的 Skills — {category}",
|
|
155
|
+
"install_level_project": "安装到当前目录(推荐,仅当前项目可用)",
|
|
156
|
+
"install_level_global": "安装到全局(所有项目共享)",
|
|
157
|
+
"wizard_select_mode_title": "选择安装类型",
|
|
158
|
+
"skill_count_format": "{count} 个 Skills",
|
|
159
|
+
"result_success_format": "{count} 成功",
|
|
160
|
+
"result_failed_format": "{count} 失败",
|
|
161
|
+
"uninstall_remove_label": "移除",
|
|
162
|
+
"uninstall_clean_empty_dir": "清理空目录",
|
|
163
|
+
"uninstall_skill_not_installed": "未安装",
|
|
164
|
+
"available_plugins": "可用插件",
|
|
165
|
+
"available_skills": "可用 Skills",
|
|
166
|
+
"skill_total_count": "共 {count} 个 Skills",
|
|
167
|
+
"wizard_confirm_install_format": "即将安装 {count} 个插件到 {tool}({level} 级别):",
|
|
168
|
+
"wizard_install_path": "安装路径",
|
|
169
|
+
"update_install_hint": "使用 {cmd} 安装插件",
|
|
170
|
+
"hint_select_move": "移动",
|
|
171
|
+
"hint_select_space": "空格",
|
|
172
|
+
"hint_select_check": "勾选",
|
|
173
|
+
"hint_select_confirm": "确认",
|
|
174
|
+
"hint_checkbox_suffix": "不选按回车可返回",
|
|
175
|
+
"doctor_not_installed": "未安装",
|
|
176
|
+
"doctor_links_valid": "{count} 个软链接均有效",
|
|
177
|
+
"doctor_broken_links": "{count} 个失效链接",
|
|
178
|
+
"doctor_fixed": "已清理 {count} 个失效链接",
|
|
179
|
+
"doctor_not_exist": "不存在",
|
|
180
|
+
"doctor_created": "已创建 {path}",
|
|
181
|
+
"doctor_config_exists": "存在",
|
|
182
|
+
"doctor_config_not_exist": "不存在",
|
|
183
|
+
"doctor_result_with_fix": "{warnings} 个警告, {fixes} 项已修复",
|
|
184
|
+
"doctor_result_without_fix": "{warnings} 个警告",
|
|
185
|
+
"count_suffix": "个",
|
|
186
|
+
"try_prompt": "帮我开发一个 Abs 算子"
|
|
187
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
id: catlass-op-generator
|
|
2
|
+
dir: plugins-official/catlass-op-generator
|
|
3
|
+
displayName: Catlass 算子直调
|
|
4
|
+
aliases: [catlass]
|
|
5
|
+
skills: 10
|
|
6
|
+
agents: 3
|
|
7
|
+
description: Catlass 模板拼装 GEMM/Matmul/Epilogue 算子开发
|
|
8
|
+
version: "1.2.2"
|
|
9
|
+
configFile: AGENTS.md
|
|
10
|
+
configRootConfigLink: true
|
|
11
|
+
installSkills:
|
|
12
|
+
- dir: ops
|
|
13
|
+
skills: [catlass-op-design, catlass-op-develop, catlass-op-perf-tune, ascendc-tiling-design, npu-arch, ascendc-api-best-practices, ops-precision-standard, ascendc-docs-search, ascendc-env-check, ascendc-precision-debug, ops-profiling, ascendc-runtime-debug, ascendc-code-review, torch-ascendc-op-extension]
|
|
14
|
+
installAgents: [catlass-op-architect, catlass-op-generator, catlass-op-reviewer]
|
|
15
|
+
externalRepos:
|
|
16
|
+
- url: https://gitcode.com/cann/asc-devkit.git
|
|
17
|
+
dir: plugins-official/catlass-op-generator/asc-devkit
|
|
18
|
+
configRootLink: false
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
id: model-infer-optimize
|
|
2
|
+
dir: plugins-official/model-infer-optimize
|
|
3
|
+
displayName: NPU 推理优化
|
|
4
|
+
aliases: [model-infer, infer, inference]
|
|
5
|
+
skills: 11
|
|
6
|
+
agents: 3
|
|
7
|
+
description: NPU 模型推理端到端优化(并行/KVCache/融合/量化/图模式/多流/SuperKernel)
|
|
8
|
+
version: "1.2.2"
|
|
9
|
+
configFile: AGENTS.md
|
|
10
|
+
configRootConfigLink: true
|
|
11
|
+
installSkills:
|
|
12
|
+
- dir: model
|
|
13
|
+
skills: [model-infer-migrator, model-infer-parallel-analysis, model-infer-parallel-impl, model-infer-kvcache, model-infer-fusion, model-infer-quantization, model-infer-graph-mode, model-infer-precision-debug, model-infer-runtime-debug, model-infer-multi-stream, model-infer-prefetch, model-infer-superkernel]
|
|
14
|
+
installAgents: [model-infer-analyzer, model-infer-implementer, model-infer-reviewer]
|
|
15
|
+
externalRepos:
|
|
16
|
+
- url: https://gitcode.com/cann/cann-recipes-infer.git
|
|
17
|
+
dir: plugins-official/model-infer-optimize/cann-recipes-infer
|
|
18
|
+
depth: 1
|
|
19
|
+
configRootLink: true
|