siluzan-tso-cli 1.1.17-beta.1 → 1.1.17-beta.2
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 +1 -1
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/scripts/install.ps1 +105 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ siluzan-tso init -d /path/to/skills # 写入自定义目录
|
|
|
51
51
|
siluzan-tso init --force # 强制覆盖已存在文件
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
> **注意**:当前为测试版(1.1.17-beta.
|
|
54
|
+
> **注意**:当前为测试版(1.1.17-beta.2),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
|
|
55
55
|
|
|
56
56
|
| 助手 | 建议 `--ai` |
|
|
57
57
|
| ----------------------- | ------------------------------------ |
|
package/dist/skill/_meta.json
CHANGED
|
@@ -14,8 +14,10 @@ $INSTALL_CMD = 'npm install -g siluzan-tso-cli@beta'
|
|
|
14
14
|
$WEB_BASE = 'https://www-ci.siluzan.com'
|
|
15
15
|
|
|
16
16
|
# -- Constants ----------------------------------------------------------------
|
|
17
|
-
$NODE_MAJOR_MIN
|
|
18
|
-
$NPM_MIRROR
|
|
17
|
+
$NODE_MAJOR_MIN = 18
|
|
18
|
+
$NPM_MIRROR = 'https://registry.npmmirror.com'
|
|
19
|
+
# Git for Windows installer (mirrored on Siluzan CDN; bump version here when needed)
|
|
20
|
+
$GIT_INSTALLER_URL = 'https://staticpn.siluzan.com/assets/git/Git-2.54.0-64-bit.exe'
|
|
19
21
|
|
|
20
22
|
# -- Helpers ------------------------------------------------------------------
|
|
21
23
|
function Write-Info { param([string]$Msg) Write-Host "[OK] $Msg" -ForegroundColor Green }
|
|
@@ -80,6 +82,85 @@ function Install-NodeFallback {
|
|
|
80
82
|
throw 'Node.js is required'
|
|
81
83
|
}
|
|
82
84
|
|
|
85
|
+
# -- Git for Windows ----------------------------------------------------------
|
|
86
|
+
# Some agent clients (Cursor / Claude Code / etc.) have known quirks running
|
|
87
|
+
# PowerShell or cmd commands. We install Git for Windows ahead of time so the
|
|
88
|
+
# user always has a Git Bash fallback to run the equivalent bash installer
|
|
89
|
+
# (`bash <(curl -fsSL .../install.sh)`) when the PowerShell channel misbehaves.
|
|
90
|
+
function Test-GitInstalled {
|
|
91
|
+
return $null -ne (Get-Command git -ErrorAction SilentlyContinue)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function Test-IsAdmin {
|
|
95
|
+
try {
|
|
96
|
+
$id = [Security.Principal.WindowsIdentity]::GetCurrent()
|
|
97
|
+
$principal = New-Object Security.Principal.WindowsPrincipal($id)
|
|
98
|
+
return $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
|
|
99
|
+
} catch {
|
|
100
|
+
return $false
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function Install-Git {
|
|
105
|
+
$tmpFile = Join-Path $env:TEMP 'siluzan-git-installer.exe'
|
|
106
|
+
|
|
107
|
+
Write-Info "Downloading Git for Windows: $GIT_INSTALLER_URL"
|
|
108
|
+
try {
|
|
109
|
+
$prevProgress = $ProgressPreference
|
|
110
|
+
$ProgressPreference = 'SilentlyContinue'
|
|
111
|
+
Invoke-WebRequest -Uri $GIT_INSTALLER_URL -OutFile $tmpFile -UseBasicParsing
|
|
112
|
+
$ProgressPreference = $prevProgress
|
|
113
|
+
} catch {
|
|
114
|
+
Write-Warn "Git installer download failed: $($_.Exception.Message)"
|
|
115
|
+
return $false
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (-not (Test-Path $tmpFile)) {
|
|
119
|
+
Write-Warn 'Git installer file not found after download'
|
|
120
|
+
return $false
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
# Inno Setup silent flags. When not admin we point /DIR to %LOCALAPPDATA% so
|
|
124
|
+
# the installer doesn't try to write to Program Files (which would trigger UAC
|
|
125
|
+
# or just fail). The installer auto-detects ALLUSERS vs CURRENTUSER mode based
|
|
126
|
+
# on whether the current process is elevated, so we don't pass /CURRENTUSER
|
|
127
|
+
# explicitly (not all Git for Windows builds accept that flag).
|
|
128
|
+
$installArgs = @('/VERYSILENT', '/NORESTART', '/NOCANCEL', '/SP-', '/CLOSEAPPLICATIONS', '/RESTARTAPPLICATIONS')
|
|
129
|
+
if (Test-IsAdmin) {
|
|
130
|
+
Write-Info 'Installing Git for Windows system-wide (admin detected)...'
|
|
131
|
+
} else {
|
|
132
|
+
$userDir = Join-Path $env:LOCALAPPDATA 'Programs\Git'
|
|
133
|
+
Write-Info "Installing Git for Windows for current user: $userDir"
|
|
134
|
+
$installArgs += @("/DIR=$userDir")
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
try {
|
|
138
|
+
Start-Process -FilePath $tmpFile -ArgumentList $installArgs -Wait -NoNewWindow
|
|
139
|
+
} catch {
|
|
140
|
+
Write-Warn "Git installer launch failed: $($_.Exception.Message)"
|
|
141
|
+
Remove-Item $tmpFile -ErrorAction SilentlyContinue
|
|
142
|
+
return $false
|
|
143
|
+
}
|
|
144
|
+
Remove-Item $tmpFile -ErrorAction SilentlyContinue
|
|
145
|
+
|
|
146
|
+
Refresh-Path
|
|
147
|
+
if (-not (Test-GitInstalled)) {
|
|
148
|
+
# 安装器有时不会立刻刷新 PATH,按已知路径手动补一次
|
|
149
|
+
$candidates = @(
|
|
150
|
+
(Join-Path $env:LOCALAPPDATA 'Programs\Git\cmd'),
|
|
151
|
+
(Join-Path $env:ProgramFiles 'Git\cmd')
|
|
152
|
+
)
|
|
153
|
+
foreach ($p in $candidates) {
|
|
154
|
+
if (Test-Path (Join-Path $p 'git.exe')) {
|
|
155
|
+
$env:Path = "$p;$env:Path"
|
|
156
|
+
break
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return Test-GitInstalled
|
|
162
|
+
}
|
|
163
|
+
|
|
83
164
|
# -- Main ---------------------------------------------------------------------
|
|
84
165
|
function Main {
|
|
85
166
|
Write-Host ''
|
|
@@ -87,10 +168,6 @@ function Main {
|
|
|
87
168
|
Write-Host "| $SKILL_LABEL -- Install |" -ForegroundColor White
|
|
88
169
|
Write-Host '+---------------------------------------------+' -ForegroundColor White
|
|
89
170
|
Write-Host ''
|
|
90
|
-
Write-Warn 'Windows note: some agent clients may fail when running PowerShell/cmd commands.'
|
|
91
|
-
Write-Host ' If this install fails unexpectedly, install Git for Windows and rerun the Bash installer in Git Bash:' -ForegroundColor DarkGray
|
|
92
|
-
Write-Host ' https://git-scm.com/download/win' -ForegroundColor DarkGray
|
|
93
|
-
Write-Host ''
|
|
94
171
|
|
|
95
172
|
# Step 1: Environment check
|
|
96
173
|
Write-Step 'Step 1/4: Environment check'
|
|
@@ -123,6 +200,23 @@ function Main {
|
|
|
123
200
|
}
|
|
124
201
|
Write-Info 'npm ready'
|
|
125
202
|
|
|
203
|
+
# Git for Windows: pre-install as a Bash fallback path for agent clients
|
|
204
|
+
# whose PowerShell/cmd channel is unreliable. Failure here is non-fatal.
|
|
205
|
+
if (Test-GitInstalled) {
|
|
206
|
+
Write-Info 'Git for Windows already installed (Git Bash fallback ready)'
|
|
207
|
+
} else {
|
|
208
|
+
Write-Warn 'Git for Windows not found, installing as Bash fallback for agent clients...'
|
|
209
|
+
$gitOk = $false
|
|
210
|
+
try { $gitOk = Install-Git } catch { Write-Warn "Git install error: $($_.Exception.Message)" }
|
|
211
|
+
if ($gitOk) {
|
|
212
|
+
Write-Info 'Git for Windows installed (Git Bash fallback ready)'
|
|
213
|
+
} else {
|
|
214
|
+
Write-Warn 'Git for Windows install was skipped or failed; CLI install will continue.'
|
|
215
|
+
Write-Host ' If your agent later fails to run PowerShell commands, install Git manually:' -ForegroundColor DarkGray
|
|
216
|
+
Write-Host " $GIT_INSTALLER_URL" -ForegroundColor DarkGray
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
126
220
|
$currentRegistry = ''
|
|
127
221
|
try { $currentRegistry = (npm config get registry 2>$null).Trim() } catch {}
|
|
128
222
|
if ($currentRegistry -ne $NPM_MIRROR -and $currentRegistry -ne "$NPM_MIRROR/") {
|
|
@@ -164,6 +258,11 @@ function Main {
|
|
|
164
258
|
Write-Host ''
|
|
165
259
|
Write-Host " Update CLI & Skill files: $CLI_BIN update"
|
|
166
260
|
Write-Host ''
|
|
261
|
+
if (Test-GitInstalled) {
|
|
262
|
+
Write-Host ' Tip: if your agent client has trouble running PowerShell/cmd commands later,' -ForegroundColor DarkGray
|
|
263
|
+
Write-Host ' open Git Bash and re-run the equivalent bash installer instead.' -ForegroundColor DarkGray
|
|
264
|
+
Write-Host ''
|
|
265
|
+
}
|
|
167
266
|
Write-Info "Need help? Visit $WEB_BASE"
|
|
168
267
|
Write-Host ''
|
|
169
268
|
}
|