@poolzin/pool-bot 2026.2.4 → 2026.2.6
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/dist/agents/auth-profiles/profiles.js +9 -0
- package/dist/agents/auth-profiles.js +1 -1
- package/dist/agents/huggingface-models.js +166 -0
- package/dist/agents/model-auth.js +6 -0
- package/dist/agents/model-forward-compat.js +187 -0
- package/dist/agents/pi-embedded-runner/model.js +10 -56
- package/dist/browser/constants.js +1 -1
- package/dist/browser/profiles.js +1 -1
- package/dist/build-info.json +3 -3
- package/dist/cli/config-cli.js +17 -3
- package/dist/cli/program/register.onboard.js +38 -5
- package/dist/commands/auth-choice-options.js +71 -7
- package/dist/commands/auth-choice.apply.api-providers.js +202 -97
- package/dist/commands/auth-choice.apply.huggingface.js +130 -0
- package/dist/commands/auth-choice.apply.openrouter.js +77 -0
- package/dist/commands/auth-choice.apply.plugin-provider.js +1 -56
- package/dist/commands/auth-choice.apply.vllm.js +92 -0
- package/dist/commands/auth-choice.preferred-provider.js +10 -0
- package/dist/commands/models/auth.js +1 -58
- package/dist/commands/models/list.errors.js +14 -0
- package/dist/commands/models/list.list-command.js +32 -21
- package/dist/commands/models/list.registry.js +120 -28
- package/dist/commands/models/list.status-command.js +1 -0
- package/dist/commands/models/shared.js +14 -0
- package/dist/commands/onboard-auth.config-core.js +265 -8
- package/dist/commands/onboard-auth.credentials.js +47 -6
- package/dist/commands/onboard-auth.js +3 -3
- package/dist/commands/onboard-auth.models.js +67 -0
- package/dist/commands/onboard-custom.js +181 -70
- package/dist/commands/onboard-non-interactive/api-keys.js +10 -1
- package/dist/commands/onboard-non-interactive/local/auth-choice-inference.js +15 -7
- package/dist/commands/onboard-non-interactive/local/auth-choice.js +322 -124
- package/dist/commands/provider-auth-helpers.js +61 -0
- package/dist/commands/zai-endpoint-detect.js +97 -0
- package/dist/config/legacy.migrations.part-3.js +57 -0
- package/dist/terminal/theme.js +1 -1
- package/package.json +1 -1
|
@@ -4,15 +4,18 @@ import { formatDocsLink } from "../../terminal/links.js";
|
|
|
4
4
|
import { theme } from "../../terminal/theme.js";
|
|
5
5
|
import { runCommandWithRuntime } from "../cli-utils.js";
|
|
6
6
|
function resolveInstallDaemonFlag(command, opts) {
|
|
7
|
-
if (!command || typeof command !== "object")
|
|
7
|
+
if (!command || typeof command !== "object") {
|
|
8
8
|
return undefined;
|
|
9
|
+
}
|
|
9
10
|
const getOptionValueSource = "getOptionValueSource" in command ? command.getOptionValueSource : undefined;
|
|
10
|
-
if (typeof getOptionValueSource !== "function")
|
|
11
|
+
if (typeof getOptionValueSource !== "function") {
|
|
11
12
|
return undefined;
|
|
13
|
+
}
|
|
12
14
|
// Commander doesn't support option conflicts natively; keep original behavior.
|
|
13
15
|
// If --skip-daemon is explicitly passed, it wins.
|
|
14
|
-
if (getOptionValueSource.call(command, "skipDaemon") === "cli")
|
|
16
|
+
if (getOptionValueSource.call(command, "skipDaemon") === "cli") {
|
|
15
17
|
return false;
|
|
18
|
+
}
|
|
16
19
|
if (getOptionValueSource.call(command, "installDaemon") === "cli") {
|
|
17
20
|
return Boolean(opts.installDaemon);
|
|
18
21
|
}
|
|
@@ -29,7 +32,7 @@ export function registerOnboardCommand(program) {
|
|
|
29
32
|
.option("--accept-risk", "Acknowledge that agents are powerful and full system access is risky (required for --non-interactive)", false)
|
|
30
33
|
.option("--flow <flow>", "Wizard flow: quickstart|advanced|manual")
|
|
31
34
|
.option("--mode <mode>", "Wizard mode: local|remote")
|
|
32
|
-
.option("--auth-choice <choice>", "Auth: setup-token|token|chutes|openai-codex|openai-api-key|openrouter-api-key|ai-gateway-api-key|moonshot-api-key|kimi-code-api-key|synthetic-api-key|venice-api-key|gemini-api-key|zai-api-key|apiKey|minimax-api|minimax-api-lightning|opencode-zen|skip")
|
|
35
|
+
.option("--auth-choice <choice>", "Auth: setup-token|token|chutes|vllm|openai-codex|openai-api-key|xai-api-key|qianfan-api-key|openrouter-api-key|litellm-api-key|ai-gateway-api-key|cloudflare-ai-gateway-api-key|moonshot-api-key|moonshot-api-key-cn|kimi-code-api-key|synthetic-api-key|venice-api-key|gemini-api-key|zai-api-key|zai-coding-global|zai-coding-cn|zai-global|zai-cn|xiaomi-api-key|apiKey|minimax-api|minimax-api-lightning|opencode-zen|custom-api-key|skip|together-api-key|huggingface-api-key|nvidia-api-key")
|
|
33
36
|
.option("--token-provider <id>", "Token provider id (non-interactive; used with --auth-choice token)")
|
|
34
37
|
.option("--token <token>", "Token value (non-interactive; used with --auth-choice token)")
|
|
35
38
|
.option("--token-profile-id <id>", "Auth profile id (non-interactive; default: <provider>:manual)")
|
|
@@ -38,14 +41,29 @@ export function registerOnboardCommand(program) {
|
|
|
38
41
|
.option("--openai-api-key <key>", "OpenAI API key")
|
|
39
42
|
.option("--openrouter-api-key <key>", "OpenRouter API key")
|
|
40
43
|
.option("--ai-gateway-api-key <key>", "Vercel AI Gateway API key")
|
|
44
|
+
.option("--cloudflare-ai-gateway-account-id <id>", "Cloudflare Account ID")
|
|
45
|
+
.option("--cloudflare-ai-gateway-gateway-id <id>", "Cloudflare AI Gateway ID")
|
|
46
|
+
.option("--cloudflare-ai-gateway-api-key <key>", "Cloudflare AI Gateway API key")
|
|
41
47
|
.option("--moonshot-api-key <key>", "Moonshot API key")
|
|
42
|
-
.option("--kimi-code-api-key <key>", "Kimi
|
|
48
|
+
.option("--kimi-code-api-key <key>", "Kimi Coding API key")
|
|
43
49
|
.option("--gemini-api-key <key>", "Gemini API key")
|
|
44
50
|
.option("--zai-api-key <key>", "Z.AI API key")
|
|
51
|
+
.option("--xiaomi-api-key <key>", "Xiaomi API key")
|
|
45
52
|
.option("--minimax-api-key <key>", "MiniMax API key")
|
|
46
53
|
.option("--synthetic-api-key <key>", "Synthetic API key")
|
|
47
54
|
.option("--venice-api-key <key>", "Venice API key")
|
|
55
|
+
.option("--together-api-key <key>", "Together AI API key")
|
|
56
|
+
.option("--huggingface-api-key <key>", "Hugging Face API key (HF token)")
|
|
48
57
|
.option("--opencode-zen-api-key <key>", "OpenCode Zen API key")
|
|
58
|
+
.option("--xai-api-key <key>", "xAI API key")
|
|
59
|
+
.option("--nvidia-api-key <key>", "NVIDIA API key")
|
|
60
|
+
.option("--litellm-api-key <key>", "LiteLLM API key")
|
|
61
|
+
.option("--qianfan-api-key <key>", "QIANFAN API key")
|
|
62
|
+
.option("--custom-base-url <url>", "Custom provider base URL")
|
|
63
|
+
.option("--custom-api-key <key>", "Custom provider API key (optional)")
|
|
64
|
+
.option("--custom-model-id <id>", "Custom provider model ID")
|
|
65
|
+
.option("--custom-provider-id <id>", "Custom provider ID (optional; auto-derived by default)")
|
|
66
|
+
.option("--custom-compatibility <mode>", "Custom provider API compatibility: openai|anthropic (default: openai)")
|
|
49
67
|
.option("--gateway-port <port>", "Gateway port")
|
|
50
68
|
.option("--gateway-bind <mode>", "Gateway bind: loopback|tailnet|lan|auto|custom")
|
|
51
69
|
.option("--gateway-auth <mode>", "Gateway auth: token|password")
|
|
@@ -86,14 +104,29 @@ export function registerOnboardCommand(program) {
|
|
|
86
104
|
openaiApiKey: opts.openaiApiKey,
|
|
87
105
|
openrouterApiKey: opts.openrouterApiKey,
|
|
88
106
|
aiGatewayApiKey: opts.aiGatewayApiKey,
|
|
107
|
+
cloudflareAiGatewayAccountId: opts.cloudflareAiGatewayAccountId,
|
|
108
|
+
cloudflareAiGatewayGatewayId: opts.cloudflareAiGatewayGatewayId,
|
|
109
|
+
cloudflareAiGatewayApiKey: opts.cloudflareAiGatewayApiKey,
|
|
89
110
|
moonshotApiKey: opts.moonshotApiKey,
|
|
90
111
|
kimiCodeApiKey: opts.kimiCodeApiKey,
|
|
91
112
|
geminiApiKey: opts.geminiApiKey,
|
|
92
113
|
zaiApiKey: opts.zaiApiKey,
|
|
114
|
+
xiaomiApiKey: opts.xiaomiApiKey,
|
|
115
|
+
qianfanApiKey: opts.qianfanApiKey,
|
|
93
116
|
minimaxApiKey: opts.minimaxApiKey,
|
|
94
117
|
syntheticApiKey: opts.syntheticApiKey,
|
|
95
118
|
veniceApiKey: opts.veniceApiKey,
|
|
119
|
+
togetherApiKey: opts.togetherApiKey,
|
|
120
|
+
huggingfaceApiKey: opts.huggingfaceApiKey,
|
|
96
121
|
opencodeZenApiKey: opts.opencodeZenApiKey,
|
|
122
|
+
xaiApiKey: opts.xaiApiKey,
|
|
123
|
+
nvidiaApiKey: opts.nvidiaApiKey,
|
|
124
|
+
litellmApiKey: opts.litellmApiKey,
|
|
125
|
+
customBaseUrl: opts.customBaseUrl,
|
|
126
|
+
customApiKey: opts.customApiKey,
|
|
127
|
+
customModelId: opts.customModelId,
|
|
128
|
+
customProviderId: opts.customProviderId,
|
|
129
|
+
customCompatibility: opts.customCompatibility,
|
|
97
130
|
gatewayPort: typeof gatewayPort === "number" && Number.isFinite(gatewayPort)
|
|
98
131
|
? gatewayPort
|
|
99
132
|
: undefined,
|
|
@@ -11,10 +11,16 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
11
11
|
hint: "setup-token + API key",
|
|
12
12
|
choices: ["token", "apiKey"],
|
|
13
13
|
},
|
|
14
|
+
{
|
|
15
|
+
value: "vllm",
|
|
16
|
+
label: "vLLM",
|
|
17
|
+
hint: "Local/self-hosted OpenAI-compatible",
|
|
18
|
+
choices: ["vllm"],
|
|
19
|
+
},
|
|
14
20
|
{
|
|
15
21
|
value: "minimax",
|
|
16
22
|
label: "MiniMax",
|
|
17
|
-
hint: "M2.
|
|
23
|
+
hint: "M2.5 (recommended)",
|
|
18
24
|
choices: ["minimax-portal", "minimax-api", "minimax-api-lightning"],
|
|
19
25
|
},
|
|
20
26
|
{
|
|
@@ -35,6 +41,12 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
35
41
|
hint: "API key",
|
|
36
42
|
choices: ["xai-api-key"],
|
|
37
43
|
},
|
|
44
|
+
{
|
|
45
|
+
value: "nvidia",
|
|
46
|
+
label: "NVIDIA (Free Tier)",
|
|
47
|
+
hint: "API key — 23+ frontier models",
|
|
48
|
+
choices: ["nvidia-api-key"],
|
|
49
|
+
},
|
|
38
50
|
{
|
|
39
51
|
value: "openrouter",
|
|
40
52
|
label: "OpenRouter",
|
|
@@ -49,9 +61,9 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
49
61
|
},
|
|
50
62
|
{
|
|
51
63
|
value: "zai",
|
|
52
|
-
label: "Z.AI
|
|
53
|
-
hint: "
|
|
54
|
-
choices: ["zai-
|
|
64
|
+
label: "Z.AI",
|
|
65
|
+
hint: "GLM Coding Plan / Global / CN",
|
|
66
|
+
choices: ["zai-coding-global", "zai-coding-cn", "zai-global", "zai-cn"],
|
|
55
67
|
},
|
|
56
68
|
{
|
|
57
69
|
value: "qianfan",
|
|
@@ -95,12 +107,24 @@ const AUTH_CHOICE_GROUP_DEFS = [
|
|
|
95
107
|
hint: "API key",
|
|
96
108
|
choices: ["together-api-key"],
|
|
97
109
|
},
|
|
110
|
+
{
|
|
111
|
+
value: "huggingface",
|
|
112
|
+
label: "Hugging Face",
|
|
113
|
+
hint: "Inference API (HF token)",
|
|
114
|
+
choices: ["huggingface-api-key"],
|
|
115
|
+
},
|
|
98
116
|
{
|
|
99
117
|
value: "venice",
|
|
100
118
|
label: "Venice AI",
|
|
101
119
|
hint: "Privacy-focused (uncensored models)",
|
|
102
120
|
choices: ["venice-api-key"],
|
|
103
121
|
},
|
|
122
|
+
{
|
|
123
|
+
value: "litellm",
|
|
124
|
+
label: "LiteLLM",
|
|
125
|
+
hint: "Unified LLM gateway (100+ providers)",
|
|
126
|
+
choices: ["litellm-api-key"],
|
|
127
|
+
},
|
|
104
128
|
{
|
|
105
129
|
value: "cloudflare-ai-gateway",
|
|
106
130
|
label: "Cloudflare AI Gateway",
|
|
@@ -127,13 +151,28 @@ export function buildAuthChoiceOptions(params) {
|
|
|
127
151
|
label: "OpenAI Codex (ChatGPT OAuth)",
|
|
128
152
|
});
|
|
129
153
|
options.push({ value: "chutes", label: "Chutes (OAuth)" });
|
|
154
|
+
options.push({
|
|
155
|
+
value: "vllm",
|
|
156
|
+
label: "vLLM (custom URL + model)",
|
|
157
|
+
hint: "Local/self-hosted OpenAI-compatible server",
|
|
158
|
+
});
|
|
130
159
|
options.push({ value: "openai-api-key", label: "OpenAI API key" });
|
|
131
160
|
options.push({ value: "xai-api-key", label: "xAI (Grok) API key" });
|
|
161
|
+
options.push({
|
|
162
|
+
value: "nvidia-api-key",
|
|
163
|
+
label: "NVIDIA API key",
|
|
164
|
+
hint: "Free tier — Nemotron, DeepSeek, Kimi, Qwen, and more",
|
|
165
|
+
});
|
|
132
166
|
options.push({
|
|
133
167
|
value: "qianfan-api-key",
|
|
134
168
|
label: "Qianfan API key",
|
|
135
169
|
});
|
|
136
170
|
options.push({ value: "openrouter-api-key", label: "OpenRouter API key" });
|
|
171
|
+
options.push({
|
|
172
|
+
value: "litellm-api-key",
|
|
173
|
+
label: "LiteLLM API key",
|
|
174
|
+
hint: "Unified gateway for 100+ LLM providers",
|
|
175
|
+
});
|
|
137
176
|
options.push({
|
|
138
177
|
value: "ai-gateway-api-key",
|
|
139
178
|
label: "Vercel AI Gateway API key",
|
|
@@ -166,6 +205,11 @@ export function buildAuthChoiceOptions(params) {
|
|
|
166
205
|
label: "Together AI API key",
|
|
167
206
|
hint: "Access to Llama, DeepSeek, Qwen, and more open models",
|
|
168
207
|
});
|
|
208
|
+
options.push({
|
|
209
|
+
value: "huggingface-api-key",
|
|
210
|
+
label: "Hugging Face API key (HF token)",
|
|
211
|
+
hint: "Inference Providers — OpenAI-compatible chat",
|
|
212
|
+
});
|
|
169
213
|
options.push({
|
|
170
214
|
value: "github-copilot",
|
|
171
215
|
label: "GitHub Copilot (GitHub device login)",
|
|
@@ -182,7 +226,27 @@ export function buildAuthChoiceOptions(params) {
|
|
|
182
226
|
label: "Google Gemini CLI OAuth",
|
|
183
227
|
hint: "Uses the bundled Gemini CLI auth plugin",
|
|
184
228
|
});
|
|
185
|
-
options.push({ value: "zai-api-key", label: "Z.AI
|
|
229
|
+
options.push({ value: "zai-api-key", label: "Z.AI API key" });
|
|
230
|
+
options.push({
|
|
231
|
+
value: "zai-coding-global",
|
|
232
|
+
label: "Coding-Plan-Global",
|
|
233
|
+
hint: "GLM Coding Plan Global (api.z.ai)",
|
|
234
|
+
});
|
|
235
|
+
options.push({
|
|
236
|
+
value: "zai-coding-cn",
|
|
237
|
+
label: "Coding-Plan-CN",
|
|
238
|
+
hint: "GLM Coding Plan CN (open.bigmodel.cn)",
|
|
239
|
+
});
|
|
240
|
+
options.push({
|
|
241
|
+
value: "zai-global",
|
|
242
|
+
label: "Global",
|
|
243
|
+
hint: "Z.AI Global (api.z.ai)",
|
|
244
|
+
});
|
|
245
|
+
options.push({
|
|
246
|
+
value: "zai-cn",
|
|
247
|
+
label: "CN",
|
|
248
|
+
hint: "Z.AI CN (open.bigmodel.cn)",
|
|
249
|
+
});
|
|
186
250
|
options.push({
|
|
187
251
|
value: "xiaomi-api-key",
|
|
188
252
|
label: "Xiaomi API key",
|
|
@@ -205,10 +269,10 @@ export function buildAuthChoiceOptions(params) {
|
|
|
205
269
|
label: "OpenCode Zen (multi-model proxy)",
|
|
206
270
|
hint: "Claude, GPT, Gemini via opencode.ai/zen",
|
|
207
271
|
});
|
|
208
|
-
options.push({ value: "minimax-api", label: "MiniMax M2.
|
|
272
|
+
options.push({ value: "minimax-api", label: "MiniMax M2.5" });
|
|
209
273
|
options.push({
|
|
210
274
|
value: "minimax-api-lightning",
|
|
211
|
-
label: "MiniMax M2.
|
|
275
|
+
label: "MiniMax M2.5 Lightning",
|
|
212
276
|
hint: "Faster, higher output cost",
|
|
213
277
|
});
|
|
214
278
|
options.push({ value: "custom-api-key", label: "Custom Provider" });
|