opencode-pollinations-plugin 5.8.4-beta.2 → 5.8.4-beta.3

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.
@@ -7,15 +7,8 @@ const HOMEDIR = os.homedir();
7
7
  const CONFIG_DIR_POLLI = path.join(HOMEDIR, '.pollinations');
8
8
  const CACHE_FILE = path.join(CONFIG_DIR_POLLI, 'models-cache.json');
9
9
  // --- CONSTANTS ---
10
- // Seed from _archs/debug_free.json
11
- const DEFAULT_FREE_MODELS = [
12
- { "name": "gemini", "description": "Gemini 2.5 Flash Lite", "tier": "anonymous", "tools": true, "input_modalities": ["text", "image"], "output_modalities": ["text"], "vision": true },
13
- { "name": "mistral", "description": "Mistral Small 3.2 24B", "tier": "anonymous", "tools": true, "input_modalities": ["text"], "output_modalities": ["text"], "vision": false },
14
- { "name": "openai-fast", "description": "GPT-OSS 20B Reasoning LLM (OVH)", "tier": "anonymous", "tools": true, "input_modalities": ["text"], "output_modalities": ["text"], "vision": false, "reasoning": true },
15
- { "name": "bidara", "description": "BIDARA (Biomimetic Designer)", "tier": "anonymous", "community": true, "input_modalities": ["text", "image"], "output_modalities": ["text"], "vision": true },
16
- { "name": "chickytutor", "description": "ChickyTutor AI Language Tutor", "tier": "anonymous", "community": true, "input_modalities": ["text"], "output_modalities": ["text"] },
17
- { "name": "midijourney", "description": "MIDIjourney", "tier": "anonymous", "community": true, "input_modalities": ["text"], "output_modalities": ["text"] }
18
- ];
10
+ // Seed from models-seed.ts
11
+ import { FREE_MODELS_SEED } from './models-seed.js';
19
12
  // --- LOGGING ---
20
13
  const LOG_FILE = '/tmp/opencode_pollinations_config.log';
21
14
  function log(msg) {
@@ -157,7 +150,7 @@ export async function generatePollinationsConfig(forceApiKey, forceStrict = fals
157
150
  }
158
151
  else {
159
152
  log('Using DEFAULT SEED models (Offline + No Cache).');
160
- freeModelsList = DEFAULT_FREE_MODELS;
153
+ freeModelsList = FREE_MODELS_SEED;
161
154
  }
162
155
  }
163
156
  }
@@ -192,7 +185,7 @@ export async function generatePollinationsConfig(forceApiKey, forceStrict = fals
192
185
  log(`Error fetching Enterprise models: ${e}`);
193
186
  if (forceStrict)
194
187
  throw e;
195
- modelsOutput.push({ id: "enter/gpt-4o", name: "[Enter] GPT-4o (Fallback)", object: "model", variants: {} });
188
+ // STRICT: No Fallback for Enterprise. If API is down, we have 0 Enter models.
196
189
  }
197
190
  }
198
191
  return modelsOutput;
@@ -0,0 +1,18 @@
1
+ export interface PollinationsModel {
2
+ name: string;
3
+ description?: string;
4
+ type?: string;
5
+ tools?: boolean;
6
+ reasoning?: boolean;
7
+ context?: number;
8
+ context_window?: number;
9
+ input_modalities?: string[];
10
+ output_modalities?: string[];
11
+ paid_only?: boolean;
12
+ vision?: boolean;
13
+ audio?: boolean;
14
+ community?: boolean;
15
+ censored?: boolean;
16
+ [key: string]: any;
17
+ }
18
+ export declare const FREE_MODELS_SEED: PollinationsModel[];
@@ -0,0 +1,55 @@
1
+ export const FREE_MODELS_SEED = [
2
+ {
3
+ "name": "gemini",
4
+ "description": "Gemini 2.5 Flash Lite",
5
+ "tier": "anonymous",
6
+ "tools": true,
7
+ "input_modalities": ["text", "image"],
8
+ "output_modalities": ["text"],
9
+ "vision": true
10
+ },
11
+ {
12
+ "name": "mistral",
13
+ "description": "Mistral Small 3.2 24B",
14
+ "tier": "anonymous",
15
+ "tools": true,
16
+ "input_modalities": ["text"],
17
+ "output_modalities": ["text"],
18
+ "vision": false
19
+ },
20
+ {
21
+ "name": "openai-fast",
22
+ "description": "GPT-OSS 20B Reasoning LLM (OVH)",
23
+ "tier": "anonymous",
24
+ "tools": true,
25
+ "input_modalities": ["text"],
26
+ "output_modalities": ["text"],
27
+ "vision": false,
28
+ "reasoning": true
29
+ },
30
+ {
31
+ "name": "bidara",
32
+ "description": "BIDARA (Biomimetic Designer)",
33
+ "tier": "anonymous",
34
+ "community": true,
35
+ "input_modalities": ["text", "image"],
36
+ "output_modalities": ["text"],
37
+ "vision": true
38
+ },
39
+ {
40
+ "name": "chickytutor",
41
+ "description": "ChickyTutor AI Language Tutor",
42
+ "tier": "anonymous",
43
+ "community": true,
44
+ "input_modalities": ["text"],
45
+ "output_modalities": ["text"]
46
+ },
47
+ {
48
+ "name": "midijourney",
49
+ "description": "MIDIjourney",
50
+ "tier": "anonymous",
51
+ "community": true,
52
+ "input_modalities": ["text"],
53
+ "output_modalities": ["text"]
54
+ }
55
+ ];
@@ -418,7 +418,8 @@ export async function handleChatCompletion(req, res, bodyRaw) {
418
418
  // Handles: "tools" vs "grounding" conflicts, and "infinite loops" via Stop Sequences.
419
419
  // B. GEMINI UNIFIED FIX (Free, Fast, Pro, Enterprise, Legacy)
420
420
  // Fixes "Multiple tools" error (Vertex) and "JSON body validation failed" (v5.3.5 regression)
421
- else if (actualModel.includes("gemini")) {
421
+ // Added ChickyTutor (Claude/Gemini based) to fix "toolConfig must be defined" error.
422
+ else if (actualModel.includes("gemini") || actualModel.includes("chickytutor")) {
422
423
  let hasFunctions = false;
423
424
  if (proxyBody.tools && Array.isArray(proxyBody.tools)) {
424
425
  hasFunctions = proxyBody.tools.some((t) => t.type === 'function' || t.function);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "opencode-pollinations-plugin",
3
3
  "displayName": "Pollinations AI (V5.6)",
4
- "version": "5.8.4-beta.2",
4
+ "version": "5.8.4-beta.3",
5
5
  "description": "Native Pollinations.ai Provider Plugin for OpenCode",
6
6
  "publisher": "pollinations",
7
7
  "repository": {
@@ -55,4 +55,4 @@
55
55
  "@types/node": "^20.0.0",
56
56
  "typescript": "^5.0.0"
57
57
  }
58
- }
58
+ }