@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.
Files changed (37) hide show
  1. package/dist/agents/auth-profiles/profiles.js +9 -0
  2. package/dist/agents/auth-profiles.js +1 -1
  3. package/dist/agents/huggingface-models.js +166 -0
  4. package/dist/agents/model-auth.js +6 -0
  5. package/dist/agents/model-forward-compat.js +187 -0
  6. package/dist/agents/pi-embedded-runner/model.js +10 -56
  7. package/dist/browser/constants.js +1 -1
  8. package/dist/browser/profiles.js +1 -1
  9. package/dist/build-info.json +3 -3
  10. package/dist/cli/config-cli.js +17 -3
  11. package/dist/cli/program/register.onboard.js +38 -5
  12. package/dist/commands/auth-choice-options.js +71 -7
  13. package/dist/commands/auth-choice.apply.api-providers.js +202 -97
  14. package/dist/commands/auth-choice.apply.huggingface.js +130 -0
  15. package/dist/commands/auth-choice.apply.openrouter.js +77 -0
  16. package/dist/commands/auth-choice.apply.plugin-provider.js +1 -56
  17. package/dist/commands/auth-choice.apply.vllm.js +92 -0
  18. package/dist/commands/auth-choice.preferred-provider.js +10 -0
  19. package/dist/commands/models/auth.js +1 -58
  20. package/dist/commands/models/list.errors.js +14 -0
  21. package/dist/commands/models/list.list-command.js +32 -21
  22. package/dist/commands/models/list.registry.js +120 -28
  23. package/dist/commands/models/list.status-command.js +1 -0
  24. package/dist/commands/models/shared.js +14 -0
  25. package/dist/commands/onboard-auth.config-core.js +265 -8
  26. package/dist/commands/onboard-auth.credentials.js +47 -6
  27. package/dist/commands/onboard-auth.js +3 -3
  28. package/dist/commands/onboard-auth.models.js +67 -0
  29. package/dist/commands/onboard-custom.js +181 -70
  30. package/dist/commands/onboard-non-interactive/api-keys.js +10 -1
  31. package/dist/commands/onboard-non-interactive/local/auth-choice-inference.js +15 -7
  32. package/dist/commands/onboard-non-interactive/local/auth-choice.js +322 -124
  33. package/dist/commands/provider-auth-helpers.js +61 -0
  34. package/dist/commands/zai-endpoint-detect.js +97 -0
  35. package/dist/config/legacy.migrations.part-3.js +57 -0
  36. package/dist/terminal/theme.js +1 -1
  37. 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 Code API key")
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.1 (recommended)",
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 (GLM 4.7)",
53
- hint: "API key",
54
- choices: ["zai-api-key"],
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 (GLM 4.7) API key" });
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.1" });
272
+ options.push({ value: "minimax-api", label: "MiniMax M2.5" });
209
273
  options.push({
210
274
  value: "minimax-api-lightning",
211
- label: "MiniMax M2.1 Lightning",
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" });