fnva 0.0.1 → 0.0.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 +31 -31
- package/bin/{nva → fnva} +12 -5
- package/bin/fnva.bat +34 -0
- package/bin/{nva.cmd → fnva.cmd} +3 -4
- package/bin/{nva.ps1 → fnva.ps1} +3 -4
- package/package.json +6 -4
- package/platforms/binary-darwin-arm64/fnva +0 -0
- package/platforms/binary-darwin-x64/fnva +0 -0
- package/platforms/binary-linux-arm64/fnva +0 -0
- package/platforms/binary-linux-x64/fnva +0 -0
- package/platforms/binary-win32-x64/fnva.exe +0 -0
- package/platforms/darwin-x64/nva +0 -0
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# 环境切换工具 (
|
|
1
|
+
# 环境切换工具 (fnva)
|
|
2
2
|
|
|
3
3
|
跨平台环境切换工具,支持 Java 和 LLM 环境配置管理。
|
|
4
4
|
|
|
@@ -17,16 +17,16 @@
|
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
# 全局安装
|
|
20
|
-
npm install -g
|
|
20
|
+
npm install -g fnva
|
|
21
21
|
|
|
22
22
|
# 或使用 yarn
|
|
23
|
-
yarn global add
|
|
23
|
+
yarn global add fnva
|
|
24
24
|
|
|
25
25
|
# 或使用 pnpm
|
|
26
|
-
pnpm add -g
|
|
26
|
+
pnpm add -g fnva
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
安装完成后,可以直接使用 `
|
|
29
|
+
安装完成后,可以直接使用 `fnva` 命令。
|
|
30
30
|
|
|
31
31
|
### 从源码构建
|
|
32
32
|
|
|
@@ -38,7 +38,7 @@ cd cool-utils
|
|
|
38
38
|
npm run build
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
编译后的二进制文件位于 `platforms/<platform>/
|
|
41
|
+
编译后的二进制文件位于 `platforms/<platform>/fnva`。
|
|
42
42
|
|
|
43
43
|
#### 构建所有平台
|
|
44
44
|
|
|
@@ -62,7 +62,7 @@ npm run build:all
|
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
64
|
# Linux/macOS
|
|
65
|
-
sudo ln -s $(pwd)/target/release/
|
|
65
|
+
sudo ln -s $(pwd)/target/release/fnva /usr/local/bin/fnva
|
|
66
66
|
|
|
67
67
|
# 或添加到 ~/.bashrc 或 ~/.zshrc
|
|
68
68
|
export PATH="$PATH:$(pwd)/target/release"
|
|
@@ -75,35 +75,35 @@ export PATH="$PATH:$(pwd)/target/release"
|
|
|
75
75
|
#### 列出所有 Java 环境
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
-
|
|
78
|
+
fnva java list
|
|
79
79
|
```
|
|
80
80
|
|
|
81
81
|
#### 扫描系统中的 Java 安装
|
|
82
82
|
|
|
83
83
|
```bash
|
|
84
|
-
|
|
84
|
+
fnva java scan
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
#### 添加 Java 环境
|
|
88
88
|
|
|
89
89
|
```bash
|
|
90
|
-
|
|
90
|
+
fnva java add --name jdk-17 --home /usr/lib/jvm/java-17-openjdk --description "OpenJDK 17"
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
#### 切换到 Java 环境
|
|
94
94
|
|
|
95
95
|
```bash
|
|
96
96
|
# 自动检测 shell
|
|
97
|
-
eval "$(
|
|
97
|
+
eval "$(fnva java use jdk-17)"
|
|
98
98
|
|
|
99
99
|
# 指定 shell
|
|
100
|
-
eval "$(
|
|
100
|
+
eval "$(fnva java use jdk-17 --shell bash)"
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
#### 删除 Java 环境
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
|
-
|
|
106
|
+
fnva java remove jdk-17
|
|
107
107
|
```
|
|
108
108
|
|
|
109
109
|
### LLM 环境管理
|
|
@@ -111,13 +111,13 @@ nva java remove jdk-17
|
|
|
111
111
|
#### 列出所有 LLM 环境
|
|
112
112
|
|
|
113
113
|
```bash
|
|
114
|
-
|
|
114
|
+
fnva llm list
|
|
115
115
|
```
|
|
116
116
|
|
|
117
117
|
#### 查看支持的提供商
|
|
118
118
|
|
|
119
119
|
```bash
|
|
120
|
-
|
|
120
|
+
fnva llm providers
|
|
121
121
|
```
|
|
122
122
|
|
|
123
123
|
支持的提供商:
|
|
@@ -133,7 +133,7 @@ nva llm providers
|
|
|
133
133
|
|
|
134
134
|
```bash
|
|
135
135
|
# OpenAI
|
|
136
|
-
|
|
136
|
+
fnva llm add \
|
|
137
137
|
--name openai-dev \
|
|
138
138
|
--provider openai \
|
|
139
139
|
--api-key "${OPENAI_API_KEY}" \
|
|
@@ -141,14 +141,14 @@ nva llm add \
|
|
|
141
141
|
--temperature 0.7
|
|
142
142
|
|
|
143
143
|
# Anthropic
|
|
144
|
-
|
|
144
|
+
fnva llm add \
|
|
145
145
|
--name anthropic-prod \
|
|
146
146
|
--provider anthropic \
|
|
147
147
|
--api-key "${ANTHROPIC_API_KEY}" \
|
|
148
148
|
--model claude-3-opus-20240229
|
|
149
149
|
|
|
150
150
|
# Ollama (本地)
|
|
151
|
-
|
|
151
|
+
fnva llm add \
|
|
152
152
|
--name ollama-local \
|
|
153
153
|
--provider ollama \
|
|
154
154
|
--base-url http://localhost:11434 \
|
|
@@ -159,23 +159,23 @@ nva llm add \
|
|
|
159
159
|
|
|
160
160
|
```bash
|
|
161
161
|
# 自动检测 shell
|
|
162
|
-
eval "$(
|
|
162
|
+
eval "$(fnva llm use openai-dev)"
|
|
163
163
|
|
|
164
164
|
# 指定 shell (PowerShell)
|
|
165
|
-
|
|
165
|
+
fnva llm use openai-dev --shell powershell | Invoke-Expression
|
|
166
166
|
```
|
|
167
167
|
|
|
168
168
|
#### 删除 LLM 环境
|
|
169
169
|
|
|
170
170
|
```bash
|
|
171
|
-
|
|
171
|
+
fnva llm remove openai-dev
|
|
172
172
|
```
|
|
173
173
|
|
|
174
174
|
## 配置文件
|
|
175
175
|
|
|
176
176
|
配置文件位置:
|
|
177
|
-
- **Linux/macOS**: `~/.
|
|
178
|
-
- **Windows**: `%USERPROFILE%\.
|
|
177
|
+
- **Linux/macOS**: `~/.fnva/config.toml`
|
|
178
|
+
- **Windows**: `%USERPROFILE%\.fnva\config.toml`
|
|
179
179
|
|
|
180
180
|
首次运行时会自动创建配置文件。
|
|
181
181
|
|
|
@@ -217,12 +217,12 @@ api_key = "${OPENAI_API_KEY}" # 从系统环境变量读取
|
|
|
217
217
|
|
|
218
218
|
```bash
|
|
219
219
|
# 快速切换 Java 环境
|
|
220
|
-
alias java17='eval "$(
|
|
221
|
-
alias java11='eval "$(
|
|
220
|
+
alias java17='eval "$(fnva java use jdk-17)"'
|
|
221
|
+
alias java11='eval "$(fnva java use jdk-11)"'
|
|
222
222
|
|
|
223
223
|
# 快速切换 LLM 环境
|
|
224
|
-
alias llm-openai='eval "$(
|
|
225
|
-
alias llm-anthropic='eval "$(
|
|
224
|
+
alias llm-openai='eval "$(fnva llm use openai-dev)"'
|
|
225
|
+
alias llm-anthropic='eval "$(fnva llm use anthropic-prod)"'
|
|
226
226
|
```
|
|
227
227
|
|
|
228
228
|
### Fish
|
|
@@ -231,11 +231,11 @@ alias llm-anthropic='eval "$(nva llm use anthropic-prod)"'
|
|
|
231
231
|
|
|
232
232
|
```fish
|
|
233
233
|
function java17
|
|
234
|
-
|
|
234
|
+
fnva java use jdk-17 | source
|
|
235
235
|
end
|
|
236
236
|
|
|
237
237
|
function llm-openai
|
|
238
|
-
|
|
238
|
+
fnva llm use openai-dev | source
|
|
239
239
|
end
|
|
240
240
|
```
|
|
241
241
|
|
|
@@ -246,12 +246,12 @@ end
|
|
|
246
246
|
```powershell
|
|
247
247
|
function Switch-Java {
|
|
248
248
|
param([string]$Name)
|
|
249
|
-
|
|
249
|
+
fnva java use $Name | Invoke-Expression
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
function Switch-Llm {
|
|
253
253
|
param([string]$Name)
|
|
254
|
-
|
|
254
|
+
fnva llm use $Name | Invoke-Expression
|
|
255
255
|
}
|
|
256
256
|
```
|
|
257
257
|
|
package/bin/{nva → fnva}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
|
-
#
|
|
3
|
+
# fnva - 跨平台环境切换工具
|
|
4
4
|
# 根据当前平台和架构选择对应的二进制文件并执行
|
|
5
5
|
|
|
6
6
|
# 获取脚本所在目录
|
|
@@ -41,15 +41,22 @@ esac
|
|
|
41
41
|
|
|
42
42
|
# 构建二进制文件路径
|
|
43
43
|
PLATFORM_DIR="$PLATFORM-$CPU"
|
|
44
|
-
BINARY_PATH="$PROJECT_ROOT/platforms/$PLATFORM_DIR/
|
|
44
|
+
BINARY_PATH="$PROJECT_ROOT/platforms/$PLATFORM_DIR/fnva"
|
|
45
45
|
|
|
46
46
|
# 检查二进制文件是否存在
|
|
47
47
|
if [ ! -f "$BINARY_PATH" ]; then
|
|
48
48
|
echo "错误: 未找到二进制文件: $BINARY_PATH" >&2
|
|
49
|
-
echo "
|
|
49
|
+
echo "" >&2
|
|
50
|
+
echo "请尝试以下解决方案:" >&2
|
|
51
|
+
echo "1. 运行 'npm run build' 构建当前平台二进制文件" >&2
|
|
52
|
+
echo "2. 运行 'npm run build:all' 构建所有平台二进制文件" >&2
|
|
53
|
+
echo "3. 或者从 GitHub Releases 下载预编译的二进制文件" >&2
|
|
54
|
+
echo "" >&2
|
|
55
|
+
echo "如果问题仍然存在,请确保:" >&2
|
|
56
|
+
echo "- 已安装 Rust 工具链" >&2
|
|
57
|
+
echo "- 平台目录结构正确: platforms/$PLATFORM_DIR/" >&2
|
|
50
58
|
exit 1
|
|
51
59
|
fi
|
|
52
60
|
|
|
53
61
|
# 执行二进制文件,传递所有参数
|
|
54
|
-
exec "$BINARY_PATH" "$@"
|
|
55
|
-
|
|
62
|
+
exec "$BINARY_PATH" "$@"
|
package/bin/fnva.bat
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
@echo off
|
|
2
|
+
REM fnva - 跨平台环境切换工具 Windows 启动脚本
|
|
3
|
+
REM 根据当前平台和架构选择对应的二进制文件并执行
|
|
4
|
+
|
|
5
|
+
setlocal enabledelayedexpansion
|
|
6
|
+
|
|
7
|
+
REM 获取脚本所在目录
|
|
8
|
+
set SCRIPT_DIR=%~dp0
|
|
9
|
+
set PROJECT_ROOT=%SCRIPT_DIR%..
|
|
10
|
+
|
|
11
|
+
REM 检测架构
|
|
12
|
+
set ARCH=%PROCESSOR_ARCHITECTURE%
|
|
13
|
+
if /i "%ARCH%"=="AMD64" (
|
|
14
|
+
set CPU=x64
|
|
15
|
+
) else if /i "%ARCH%"=="ARM64" (
|
|
16
|
+
set CPU=arm64
|
|
17
|
+
) else (
|
|
18
|
+
echo 警告: 未识别的架构 %ARCH%,使用 x64 >&2
|
|
19
|
+
set CPU=x64
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
REM 构建二进制文件路径
|
|
23
|
+
set PLATFORM_DIR=win32-%CPU%
|
|
24
|
+
set BINARY_PATH=%PROJECT_ROOT%platforms\%PLATFORM_DIR%\fnva.exe
|
|
25
|
+
|
|
26
|
+
REM 检查二进制文件是否存在
|
|
27
|
+
if not exist "%BINARY_PATH%" (
|
|
28
|
+
echo 错误: 未找到二进制文件: %BINARY_PATH% >&2
|
|
29
|
+
echo 请运行 'npm run build' 构建二进制文件 >&2
|
|
30
|
+
exit /b 1
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
REM 执行二进制文件,传递所有参数
|
|
34
|
+
"%BINARY_PATH%" %*
|
package/bin/{nva.cmd → fnva.cmd}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
@echo off
|
|
2
|
-
REM
|
|
2
|
+
REM fnva - Windows CMD 启动脚本
|
|
3
3
|
|
|
4
4
|
setlocal
|
|
5
5
|
|
|
@@ -15,7 +15,7 @@ if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
|
|
|
15
15
|
|
|
16
16
|
REM 构建二进制文件路径
|
|
17
17
|
set PLATFORM_DIR=%OS%-%ARCH%
|
|
18
|
-
set BINARY_PATH=%~dp0..\platforms\%PLATFORM_DIR%\
|
|
18
|
+
set BINARY_PATH=%~dp0..\platforms\%PLATFORM_DIR%\fnva.exe
|
|
19
19
|
|
|
20
20
|
REM 检查二进制文件是否存在
|
|
21
21
|
if not exist "%BINARY_PATH%" (
|
|
@@ -27,5 +27,4 @@ if not exist "%BINARY_PATH%" (
|
|
|
27
27
|
REM 执行二进制文件
|
|
28
28
|
"%BINARY_PATH%" %*
|
|
29
29
|
|
|
30
|
-
endlocal
|
|
31
|
-
|
|
30
|
+
endlocal
|
package/bin/{nva.ps1 → fnva.ps1}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# fnva - Windows PowerShell 启动脚本
|
|
2
2
|
|
|
3
3
|
param(
|
|
4
4
|
[Parameter(ValueFromRemainingArguments=$true)]
|
|
@@ -12,7 +12,7 @@ $arch = if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { "arm64" } else { "x64" }
|
|
|
12
12
|
# 构建二进制文件路径
|
|
13
13
|
$platformDir = "$os-$arch"
|
|
14
14
|
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
15
|
-
$binaryPath = Join-Path $scriptDir ".." "platforms" $platformDir "
|
|
15
|
+
$binaryPath = Join-Path $scriptDir ".." "platforms" $platformDir "fnva.exe"
|
|
16
16
|
|
|
17
17
|
# 检查二进制文件是否存在
|
|
18
18
|
if (-not (Test-Path $binaryPath)) {
|
|
@@ -26,5 +26,4 @@ if (-not (Test-Path $binaryPath)) {
|
|
|
26
26
|
|
|
27
27
|
if ($LASTEXITCODE) {
|
|
28
28
|
exit $LASTEXITCODE
|
|
29
|
-
}
|
|
30
|
-
|
|
29
|
+
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fnva",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "跨平台环境切换工具,支持 Java 和 LLM 环境配置",
|
|
5
5
|
"author": "protagonistss",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"bin": {
|
|
8
|
-
"
|
|
8
|
+
"fnva": "./bin/fnva",
|
|
9
|
+
"fnva.cmd": "./bin/fnva.cmd",
|
|
10
|
+
"fnva.exe": "./bin/fnva.bat"
|
|
9
11
|
},
|
|
10
12
|
"scripts": {
|
|
11
13
|
"prepublishOnly": "scripts/prepare-publish.sh",
|
|
@@ -33,11 +35,11 @@
|
|
|
33
35
|
"llm",
|
|
34
36
|
"cli",
|
|
35
37
|
"tool",
|
|
36
|
-
"
|
|
38
|
+
"fnva"
|
|
37
39
|
],
|
|
38
40
|
"repository": {
|
|
39
41
|
"type": "git",
|
|
40
|
-
"url": "https://github.com/Protagonistss/
|
|
42
|
+
"url": "https://github.com/Protagonistss/fnva.git"
|
|
41
43
|
},
|
|
42
44
|
"engines": {
|
|
43
45
|
"node": ">=14.0.0"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/platforms/darwin-x64/nva
DELETED
|
Binary file
|