opencode-pollinations-plugin 6.1.0-beta.9 → 6.2.1
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.de.md +130 -0
- package/README.es.md +130 -0
- package/README.fr.md +130 -0
- package/README.it.md +130 -0
- package/README.md +87 -73
- package/dist/index.js +52 -161
- package/dist/locales/de.json +374 -0
- package/dist/locales/en.json +373 -0
- package/dist/locales/es.json +374 -0
- package/dist/locales/fr.json +373 -0
- package/dist/locales/index.d.ts +1 -0
- package/dist/locales/index.js +37 -0
- package/dist/locales/it.json +374 -0
- package/dist/server/commands.d.ts +6 -0
- package/dist/server/commands.js +394 -125
- package/dist/server/config.d.ts +34 -23
- package/dist/server/config.js +200 -108
- package/dist/server/connect-response.d.ts +2 -0
- package/dist/server/connect-response.js +59 -0
- package/dist/server/generate-config.d.ts +3 -30
- package/dist/server/generate-config.js +164 -106
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.js +124 -149
- package/dist/server/logger.d.ts +8 -0
- package/dist/server/logger.js +38 -0
- package/dist/server/models/cache.d.ts +35 -0
- package/dist/server/models/cache.js +160 -0
- package/dist/server/models/fetcher.d.ts +18 -0
- package/dist/server/models/fetcher.js +194 -0
- package/dist/server/models/index.d.ts +6 -0
- package/dist/server/models/index.js +5 -0
- package/dist/server/models/manual.d.ts +15 -0
- package/dist/server/models/manual.js +92 -0
- package/dist/server/models/types.d.ts +55 -0
- package/dist/server/models/types.js +7 -0
- package/dist/server/models/worker.d.ts +22 -0
- package/dist/server/models/worker.js +174 -0
- package/dist/server/pollinations-api.d.ts +11 -0
- package/dist/server/pollinations-api.js +21 -8
- package/dist/server/proxy.js +222 -307
- package/dist/server/quota.d.ts +2 -0
- package/dist/server/quota.js +89 -86
- package/dist/server/scripts/pollinations_pricing.d.ts +8 -0
- package/dist/server/scripts/pollinations_pricing.js +246 -0
- package/dist/server/scripts/test_cost_endpoints.d.ts +1 -0
- package/dist/server/scripts/test_cost_endpoints.js +61 -0
- package/dist/server/scripts/test_dynamic_pricing.d.ts +1 -0
- package/dist/server/scripts/test_dynamic_pricing.js +39 -0
- package/dist/server/scripts/test_freetier_audit.d.ts +11 -0
- package/dist/server/scripts/test_freetier_audit.js +215 -0
- package/dist/server/scripts/test_parallel_cost.d.ts +1 -0
- package/dist/server/scripts/test_parallel_cost.js +104 -0
- package/dist/server/toast.d.ts +7 -1
- package/dist/server/toast.js +43 -10
- package/dist/tools/design/gen_diagram.d.ts +2 -0
- package/dist/tools/design/gen_diagram.js +94 -0
- package/dist/tools/design/gen_palette.d.ts +2 -0
- package/dist/tools/design/gen_palette.js +182 -0
- package/dist/tools/design/gen_qrcode.d.ts +2 -0
- package/dist/tools/design/gen_qrcode.js +50 -0
- package/dist/tools/ffmpeg.d.ts +24 -0
- package/dist/tools/ffmpeg.js +54 -0
- package/dist/tools/index.d.ts +25 -0
- package/dist/tools/index.js +86 -0
- package/dist/tools/pollinations/beta_discovery.d.ts +9 -0
- package/dist/tools/pollinations/beta_discovery.js +201 -0
- package/dist/tools/pollinations/cost-guard.d.ts +38 -0
- package/dist/tools/pollinations/cost-guard.js +136 -0
- package/dist/tools/pollinations/deepsearch.d.ts +7 -0
- package/dist/tools/pollinations/deepsearch.js +80 -0
- package/dist/tools/pollinations/gen_audio.d.ts +18 -0
- package/dist/tools/pollinations/gen_audio.js +220 -0
- package/dist/tools/pollinations/gen_image.d.ts +11 -0
- package/dist/tools/pollinations/gen_image.js +211 -0
- package/dist/tools/pollinations/gen_music.d.ts +14 -0
- package/dist/tools/pollinations/gen_music.js +157 -0
- package/dist/tools/pollinations/gen_video.d.ts +16 -0
- package/dist/tools/pollinations/gen_video.js +249 -0
- package/dist/tools/pollinations/polli_config.d.ts +2 -0
- package/dist/tools/pollinations/polli_config.js +95 -0
- package/dist/tools/pollinations/polli_gen_confirm.d.ts +2 -0
- package/dist/tools/pollinations/polli_gen_confirm.js +48 -0
- package/dist/tools/pollinations/polli_status.d.ts +2 -0
- package/dist/tools/pollinations/polli_status.js +31 -0
- package/dist/tools/pollinations/polli_web_search.d.ts +15 -0
- package/dist/tools/pollinations/polli_web_search.js +126 -0
- package/dist/tools/pollinations/search_crawl_scrape.d.ts +7 -0
- package/dist/tools/pollinations/search_crawl_scrape.js +85 -0
- package/dist/tools/pollinations/shared.d.ts +181 -0
- package/dist/tools/pollinations/shared.js +758 -0
- package/dist/tools/pollinations/test_estimators.d.ts +1 -0
- package/dist/tools/pollinations/test_estimators.js +22 -0
- package/dist/tools/pollinations/transcribe_audio.d.ts +13 -0
- package/dist/tools/pollinations/transcribe_audio.js +171 -0
- package/dist/tools/power/extract_audio.d.ts +2 -0
- package/dist/tools/power/extract_audio.js +179 -0
- package/dist/tools/power/extract_frames.d.ts +2 -0
- package/dist/tools/power/extract_frames.js +237 -0
- package/dist/tools/power/file_to_url.d.ts +2 -0
- package/dist/tools/power/file_to_url.js +217 -0
- package/dist/tools/power/remove_background.d.ts +2 -0
- package/dist/tools/power/remove_background.js +404 -0
- package/dist/tools/power/rmbg_keys.d.ts +2 -0
- package/dist/tools/power/rmbg_keys.js +79 -0
- package/dist/tools/shared.d.ts +30 -0
- package/dist/tools/shared.js +80 -0
- package/package.json +9 -3
- package/dist/server/models-seed.d.ts +0 -18
- package/dist/server/models-seed.js +0 -55
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
{
|
|
2
|
+
"commands": {
|
|
3
|
+
"help": {
|
|
4
|
+
"title": "### 🌸 Pollinations Plugin - Commands V6",
|
|
5
|
+
"alias_note": "*(The alias `/poll` is supported and recommended instead of `/pollinations` !)*",
|
|
6
|
+
"mode_usage": "**Mode & Usage**\n- **`/poll mode [mode]`**: Change mode (manual, alwaysfree, pro).\n- **`/poll usage [full]`**: Display dashboard (full = details).\n- **`/poll fallback <main> [agent]`**: Configure Safety Net.",
|
|
7
|
+
"configuration": "**Configuration**\n- **`/poll config [key] [value]`**:\n - `lang`: en, fr, etc.\n - `status_gui`: none, alert, all\n - `logs_gui`: none, error, verbose\n - `threshold_tier` / `threshold_wallet`: 0-100\n - `status_bar`: true/false\n - `cost_estimator`: true/false (show cost in outputs)\n - `enablePaidTools`: true/false (wallet protection)\n - `costThreshold`: limit in pollen (default: 0.15)\n - `costConfirmationRequired`: true/false (spend confirmation)",
|
|
8
|
+
"models_pricing": "**Models & Pricing**\n- **`/poll models [type]`**: List models (type: image, video, audio, text)\n- **`/poll pricing`**: Detailed pricing table\n- **`/poll infos`**: Explanations on Tiers and Pollen\n\n> 💡 **RMBG keys**: Use the `rmbg_keys` tool (works with any model)."
|
|
9
|
+
},
|
|
10
|
+
"config": {
|
|
11
|
+
"title": "## ⚙️ Pollinations Configuration (v{version})",
|
|
12
|
+
"alias_note": "*You can use either `/pollinations` or its short alias `/poll` for all these commands.*",
|
|
13
|
+
"intro": "Here is the current state of your local configuration.",
|
|
14
|
+
"table_headers": "| Parameter | Current Value | Role | Command |",
|
|
15
|
+
"table_divider": "|-----------|---------------|------|---------|",
|
|
16
|
+
"api_key_role": "Your secret API key (BYOK)",
|
|
17
|
+
"mode_role": "Access mode",
|
|
18
|
+
"enablePaidTools_role": "Safety: Disable paid tools",
|
|
19
|
+
"costConfirmationRequired_role": "Ask confirmation if threshold exceeded",
|
|
20
|
+
"costThreshold_role": "Tool cost alert threshold",
|
|
21
|
+
"cost_estimator_role": "Show cost estimates in Toasts",
|
|
22
|
+
"fallback_main_role": "Chat fallback model to free universe",
|
|
23
|
+
"fallback_agent_role": "Agent fallback model to free universe",
|
|
24
|
+
"fallback_enter_role": "Main Agent model (free/* or enter/*) -> *Managed automatically*",
|
|
25
|
+
"status_gui_role": "Status toasts verbosity",
|
|
26
|
+
"logs_gui_role": "Log verbosity",
|
|
27
|
+
"threshold_tier_role": "Free Daily limit alert",
|
|
28
|
+
"threshold_wallet_role": "Premium Wallet drop alert",
|
|
29
|
+
"status_bar_role": "Show icon in status bar",
|
|
30
|
+
"lang_role": "Plugin Language",
|
|
31
|
+
"not_configured": "Not configured",
|
|
32
|
+
"managed_auto": "Managed automatically"
|
|
33
|
+
},
|
|
34
|
+
"generic": {
|
|
35
|
+
"add_key_hint": "💡 Use /poll connect <key> to add an API key.",
|
|
36
|
+
"unknown_command": "❌ Unknown command: {cmd}",
|
|
37
|
+
"tui_error": "Command error: {error}",
|
|
38
|
+
"tui_critical": "Critical error in command: {error}",
|
|
39
|
+
"tui_usage_msg": "Pollinations usage updated."
|
|
40
|
+
},
|
|
41
|
+
"mode": {
|
|
42
|
+
"current": "Current mode: {mode}",
|
|
43
|
+
"invalid": "❌ Invalid mode '{mode}'. Use: manual, alwaysfree, pro",
|
|
44
|
+
"pro_requires_key": "❌ 'pro' mode requires an API key.",
|
|
45
|
+
"verifying": "Verifying permissions...",
|
|
46
|
+
"denied": "❌ Access denied to pro/alwaysfree ({status}: {reason})",
|
|
47
|
+
"verify_error": "❌ Verification error: {error}",
|
|
48
|
+
"success": "✅ Switched to mode: {mode}"
|
|
49
|
+
},
|
|
50
|
+
"usage": {
|
|
51
|
+
"title": "## 📊 Pollinations Stats (Mode: {mode})\n\n",
|
|
52
|
+
"resources": "### 🌻 Base Resources\n",
|
|
53
|
+
"tier": "- **Tier:** {emoji} {tier} (Limit: {limit} 🌻)\n",
|
|
54
|
+
"quota": "- **Period:** {remaining} spent / {limit} total limit\n",
|
|
55
|
+
"usage_bar": "- **Usage:** {bar}\n",
|
|
56
|
+
"wallet": "- **Wallet:** {balance} 🌻 remaining\n\n",
|
|
57
|
+
"reset": "### 🕒 Reset Info\n- **Next Reset:** {date} (in {duration})\n\n",
|
|
58
|
+
"restricted_key": "⚠️ Restricted API key. Details unavailable.\n",
|
|
59
|
+
"period_detail": "### 📈 Period detail (since {time})\n",
|
|
60
|
+
"total_reqs": "- **Requests:** {reqs} ({inTok} in | {outTok} out)\n\n",
|
|
61
|
+
"table_head1": "| Model | Reqs | Cost | Tokens |\n",
|
|
62
|
+
"table_head2": "|-------|------|------|--------|\n",
|
|
63
|
+
"no_history": "*No activity in the current period.*\n",
|
|
64
|
+
"full_requires_key": "⚠️ `/poll usage full` requires a connected API key.\n",
|
|
65
|
+
"hint_full": "💡 Use `/poll usage full` for details (requires key)."
|
|
66
|
+
},
|
|
67
|
+
"fallback": {
|
|
68
|
+
"current": "Current fallbacks:\n- {free}\n- {enter}",
|
|
69
|
+
"success": "✅ Free fallback updated: {main} -> {agent}"
|
|
70
|
+
},
|
|
71
|
+
"connect": {
|
|
72
|
+
"usage": "❌ Usage: /poll connect <key>",
|
|
73
|
+
"verifying": "Verifying and downloading models...",
|
|
74
|
+
"limited": "\n⚠️ Key has limited permissions (Reason: {reason}). Forced to 'manual' mode.",
|
|
75
|
+
"success_toast": "Connected ✓ ({count} Enter models)",
|
|
76
|
+
"success_response": "✅ Successfully connected!\nKey: `{key}`\nModels unlocked: {count} ({diamond} 💎 premium){forced_msg}"
|
|
77
|
+
},
|
|
78
|
+
"models": {
|
|
79
|
+
"loading": "⏳ Loading models...",
|
|
80
|
+
"free_title": "## 🕊️ Free Universe Models (text.pollinations.ai)",
|
|
81
|
+
"free_desc": "These models do not require an API key and are freely accessible.",
|
|
82
|
+
"free_headers1": "| Model Name | Aliases | Description | Vision | Tools |",
|
|
83
|
+
"free_headers2": "|------------|---------|-------------|--------|-------|",
|
|
84
|
+
"free_error": "⚠️ Error retrieving free models.",
|
|
85
|
+
"enter_title": "## 💎 Enter Universe Models (gen.pollinations.ai)",
|
|
86
|
+
"cats": {
|
|
87
|
+
"image": "Images",
|
|
88
|
+
"video": "Videos",
|
|
89
|
+
"audio": "Audio",
|
|
90
|
+
"text": "Text & Chat"
|
|
91
|
+
},
|
|
92
|
+
"cat_title": "### {emoji} {label} ({count})",
|
|
93
|
+
"enter_headers1": "| Name | ID | Description | Flags | In | Out Cost |",
|
|
94
|
+
"enter_headers2": "|------|----|-------------|-------|----|----------|",
|
|
95
|
+
"capabilities": "\n**Capabilities :** `💎` Paid-only `💬` Chat/Reasoning `👁️` Vision/Images `🎙️` Audio `🔍` Search `💻` Code",
|
|
96
|
+
"other": "**Input :** `📝` Text `🖼️` Image `🎤` Audio"
|
|
97
|
+
},
|
|
98
|
+
"infos": {
|
|
99
|
+
"title": "## 🍯💚 POLLINATIONS OPENCODE PLUGIN 💚🍯\n\nWelcome **{name}** to the Pollinations OpenCode plugin!\n\nThis plugin empowers you to generate code, images, analyze videos, and interact with top-tier AI models seamlessly within your dev environment. Access state-of-the-art LLMs via chat, refactoring, or terminal.",
|
|
100
|
+
"features_title": "**What this plugin brings to you! :**",
|
|
101
|
+
"features_free": "**🛠️ Integrated Free Tools (Always Available) :**\n- `gen_qrcode` / `gen_diagram` / `gen_palette` : Visuals and dev utilities.\n- `remove_background` : Native background removal.\n- `extract_frames` / `extract_audio` : Fast media extraction.\n- `file_to_url` : Instant online hosting of local files.",
|
|
102
|
+
"features_pro": "**💎 Pollinations Tools (Premium - Automated with Key) :**\n- `polli_gen_image` : Image gen (Flux, Seedream, Gemini) + Image-to-Image.\n- `polli_gen_video` : Text-to-video / Image-to-video (Veo, Wan, LTX...).\n- `polli_gen_audio`/`polli_stt` : Whisper STT, ElevenLabs TTS.\n- `polli_gen_music` : Generative music engine.\n- `polli_web_search` : Connected web search.",
|
|
103
|
+
"features_config": "- **Granular configuration**, mode and token management, tool cost protections...",
|
|
104
|
+
"tiers_title": "> **Your tiers:** {emoji} {tier}",
|
|
105
|
+
"about": "## 🌍 What is pollinations.ai ?\npollinations.ai is an open-source AI platform built by and for the community. We provide a unified API for Image, Text, Audio, and Video. Everything is open: our code, roadmap, conversations. Hundreds of devs are already building apps, games, bots, and crazy experiments with us. Join us!\n\nNo black boxes. No vendor lock-in. Just a friendly API and a Discord full of helpful people.",
|
|
106
|
+
"levels_title": "## 📈 Upgrade Your Tier",
|
|
107
|
+
"levels_list": "For developers creating with pollinations.ai. Level up to earn more daily Pollen.\n\n- 🦠 **Microbe** (0.1 pollen/day) : Sign up\n- 🍄 **Spore** (1 pollen/day) : Automatic verification\n- 🌱 **Seed** (3 pollen/day) : 8+ dev points\n- 🌸 **Flower** (10 pollen/day) : Publish an app\n- 🍯 **Nectar** (20 pollen/day) : Coming soon 🔮",
|
|
108
|
+
"beta_note": "✨ *We are in beta! Learning what works best for our community.*",
|
|
109
|
+
"pollen_title": "## 💎 What is Pollen ?",
|
|
110
|
+
"pollen_get": "Running AI models costs money. Pollen is our way to keep servers running without ads or selling data. A simple, unified credit for all models — predictable, transparent, no surprises.\n\n**$1 ≈ 1 Pollen** (prices subject to change). You spend it on API calls.",
|
|
111
|
+
"pollen_spend": "## 🛒 How to get Pollen ?\nYou can add Pollen by participating in the community, or buying it directly on the dashboard."
|
|
112
|
+
},
|
|
113
|
+
"pricing_units": {
|
|
114
|
+
"tokens": "~tokens",
|
|
115
|
+
"img": "🌻/img",
|
|
116
|
+
"s": "🌻/s",
|
|
117
|
+
"tok": "🌻/tok"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"proxy": {
|
|
121
|
+
"errors": {
|
|
122
|
+
"invalid_key_free_mode": "❌ **Connection Failed**: {error}\n\nConfiguration reset (Free/Manual Mode).",
|
|
123
|
+
"key_rejected": "Key rejected by API (Access denied or invalid).",
|
|
124
|
+
"no_enter_models": "No Enterprise model detected for this key."
|
|
125
|
+
},
|
|
126
|
+
"warnings": {
|
|
127
|
+
"paid_blocked_alwaysfree_title": "🚫 Paid model blocked: {model}",
|
|
128
|
+
"paid_blocked_alwaysfree_msg": "🚫 **Paid model not available in AlwaysFree mode**\n\nThe `{model}` model consumes directly from your wallet (💎 Paid Only).\n\n**Solutions:**\n• `/poll config mode pro` — Allows paid models with wallet protection\n• `/poll config mode manual` — No restriction, full control",
|
|
129
|
+
"paid_blocked_empty_wallet_msg": "⚠️ **Alert: Paid Model (💎 Paid Only) requested but Premium Quota exhausted (or Free Mode).**\n\nYou requested the `{model}` model which requires funds in your Premium Wallet.\n\n🔄 **Fallback Action (Safety Net)**:\nThe energy manager automatically redirected your request to the free universe `{fallback}` to avoid a failure.\n\n_Note: Recharge your wallet on pollinations.ai to use this model._",
|
|
130
|
+
"tier_limit_msg": "⚠️ **Free Quota (Tier) Alert Exceeded**\n\nYou dropped below {threshold}% of your daily free reserve.\n\n🔄 **Fallback Action (Safety Net)**:\nThe Agent was switched to the universal backup network.",
|
|
131
|
+
"wallet_limit_msg": "⚠️ **Premium Wallet Alert Exceeded**\n\nYou have less than {threshold}% of your purchased pollen wallet remaining.\n\n🔄 **Fallback Action (Safety Net)**:\nThe Agent was switched to the free network."
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"toasts": {
|
|
135
|
+
"config_updated": "⚙️ Configuration updated by Agent",
|
|
136
|
+
"invalid_key_revert": "Invalid Key. Reverting to Free mode."
|
|
137
|
+
},
|
|
138
|
+
"tools": {
|
|
139
|
+
"image": {
|
|
140
|
+
"generating": "Generating image: {model} {width}x{height}",
|
|
141
|
+
"success": "Image generated ✓ ({model})",
|
|
142
|
+
"error": "Error: {error}",
|
|
143
|
+
"unreferenced_model": "Model \"{model}\" unreferenced — mode (beta)",
|
|
144
|
+
"insufficient_funds": "❌ Insufficient pollen credits to run {model}.\n💡 Recharge via settings or use free models.",
|
|
145
|
+
"invalid_key": "❌ Invalid or unauthorized API key.",
|
|
146
|
+
"invalid_params": "❌ Invalid parameters: {error}",
|
|
147
|
+
"gen_error_msg": "❌ Image generation error: {error}",
|
|
148
|
+
"cost_estimated": "- Estimated Cost : {cost}",
|
|
149
|
+
"cost_real_wallet": "- Real Cost : **{cost}** (via Wallet Balance)",
|
|
150
|
+
"cost_real_api": "- Real Cost : **{cost}** (via API Headers)",
|
|
151
|
+
"cost_unknown": "- Real Cost : Unknown (API unreachable)",
|
|
152
|
+
"desc": "Generate an image from a text prompt using Pollinations AI.\n\n💡 **Dynamic Image Models** :\nThe Pollinations API possesses a large amount of models (Flux, Midjourney, Seedream, etc.) that change frequently. The updated catalog is listed below.\n\n**Optional usage examples** :\n- **I2I (Image-to-Image)** : Use the `reference_image` parameter with a URL or local path if the model supports it.\n- The tool embeds an automatic \"costGuard\" managing cost confirmation.",
|
|
153
|
+
"arg_prompt": "Description of the image to generate",
|
|
154
|
+
"arg_model": "Model to use (default: flux). Unknown models accepted as (beta).",
|
|
155
|
+
"arg_width": "Image width (default: 1024)",
|
|
156
|
+
"arg_height": "Image height (default: 1024)",
|
|
157
|
+
"arg_ref": "URL(s) for image-to-image editing",
|
|
158
|
+
"arg_seed": "Seed for reproducibility (-1 for random)",
|
|
159
|
+
"arg_quality": "Quality for gptimage models only",
|
|
160
|
+
"arg_trans": "Transparent background for gptimage models only",
|
|
161
|
+
"arg_save_to": "Custom output directory",
|
|
162
|
+
"arg_filename": "Custom filename (without extension)",
|
|
163
|
+
"req_key": "❌ **API Key Required** for image generation.\n💡 Use `/poll connect <key>` to activate the service.\n💎 Available models: {models}...",
|
|
164
|
+
"no_i2i": "⚠️ Model \"{model}\" does not support Image-to-Image.\n💡 Supported I2I models: {models}",
|
|
165
|
+
"blocked": "❌ Operation blocked by Cost Guard.",
|
|
166
|
+
"req_url_i2i": "❌ Local files require uploading first.\n💡 Use the `file_to_url` tool to get a public URL.",
|
|
167
|
+
"res_title": "🎨 Image Generated",
|
|
168
|
+
"res_prompt": "Prompt: {prompt}",
|
|
169
|
+
"res_model": "Model: {model}",
|
|
170
|
+
"res_res": "Resolution: {width}x{height}",
|
|
171
|
+
"res_i2i_src": "I2I Source: {src}",
|
|
172
|
+
"res_file": "File: {path}",
|
|
173
|
+
"res_size": "Size: {size}",
|
|
174
|
+
"cost_title": "\n💰 **Financial Report :**"
|
|
175
|
+
},
|
|
176
|
+
"config": {
|
|
177
|
+
"no_values": "No configuration values provided to update. Please specify at least one setting via the arguments.",
|
|
178
|
+
"success": "Configuration successfully updated.\nApplied changes:\n{updates}\n\n(Note: Verify with /poll help if you need to know model prefixes)."
|
|
179
|
+
},
|
|
180
|
+
"polli_gen_confirm": {
|
|
181
|
+
"desc": "Validates and executes (or cancels) a Pollinations request previously suspended by Cost Guard. This tool must be called when the user explicitly agrees (or rejects) to spend the estimated amount.",
|
|
182
|
+
"arg_request_id": "The request ID (req_xxxx) returned by the blocked tool.",
|
|
183
|
+
"arg_action": "The action to perform: confirm to start generation, cancel to permanently abort it.",
|
|
184
|
+
"not_found": "❌ Session not found or expired for ID: {reqId}. Please restart the initial generation.",
|
|
185
|
+
"cancelled": "✅ Request {reqId} cancelled and removed from queue. Action aborted.",
|
|
186
|
+
"unknown_tool": "❌ Unknown target tool: {toolName}",
|
|
187
|
+
"toast_confirmed": "✅ Confirmed: {toolName} ({cost})"
|
|
188
|
+
},
|
|
189
|
+
"polli_status": {
|
|
190
|
+
"desc": "Check the current status, available models, live pricing, and account usage/tiers for the Pollinations AI plugin. Use this tool to understand the universe of models, account balance, and usage. NOT for discovering hidden parameters.",
|
|
191
|
+
"arg_info_type": "Type of information to retrieve: usage=quota/wallet, pricing=model costs, models=list of models, infos=tier details, all=everything"
|
|
192
|
+
},
|
|
193
|
+
"polli_web_search": {
|
|
194
|
+
"desc": "Universal Pollinations Search module. Retrieve up-to-date web information using web-enabled or specialized LLMs based on their capabilities.",
|
|
195
|
+
"arg_query": "The search query (e.g. \"Latest news about AI\", \"Python 3.12 release notes\").",
|
|
196
|
+
"arg_model": "The specific search model to use (see the dynamically injected suggestions for options like perplexity, gemini-search, nomnom, etc.).",
|
|
197
|
+
"arg_include_sources": "Whether to request source URLs in the response. Default: true.",
|
|
198
|
+
"arg_recency": "Time filter (day, week, month) to restrict results to recent information.",
|
|
199
|
+
"include_sources_prompt": "Please include links to your sources at the end of the response.",
|
|
200
|
+
"recency_any": "",
|
|
201
|
+
"recency_day": "Limit your research to articles published within the last 24 hours.",
|
|
202
|
+
"recency_week": "Limit your research to articles published within the last 7 days.",
|
|
203
|
+
"recency_month": "Limit your research to articles published within the last 30 days.",
|
|
204
|
+
"req_key": "❌ API Key required for Search. Use /poll connect.",
|
|
205
|
+
"insufficient_pollen": "❌ Insufficient 🌻 Pollen for this search. Need ~0.005",
|
|
206
|
+
"blocked": "🚫 Search blocked by Cost Guard limits.",
|
|
207
|
+
"toast_success": "Search with {model} completed",
|
|
208
|
+
"toast_error": "Search Failed: {error}",
|
|
209
|
+
"result_query": "📌 Query: {query}",
|
|
210
|
+
"result_model": "🌐 Model: {model}",
|
|
211
|
+
"result_recency": "📅 Recency: {recency}",
|
|
212
|
+
"result_cost": "🪙 Est. Cost: {cost}",
|
|
213
|
+
"result_cost_max": "🪙 Est. Cost: {cost} (Max allocated: {maxCost})",
|
|
214
|
+
"error_prefix": "❌ Error during Search: {error}"
|
|
215
|
+
},
|
|
216
|
+
"polli_gen_video": {
|
|
217
|
+
"desc": "Generate a video from a text prompt or image using Pollinations AI.\n\n💡 **Dynamic Video Models** :\nThe Pollinations video API is constantly evolving. Available models (T2V/I2V), duration limits, aspect ratios, and pricing are injected below in real time.\n\n**Common options examples** :\n- `veo` interpolation: Use `reference_image=url1,url2` for transitions.",
|
|
218
|
+
"arg_prompt": "Description of the video to generate",
|
|
219
|
+
"arg_model": "Video model (default: {model})",
|
|
220
|
+
"arg_duration": "Duration in seconds (default: 3, varies by model)",
|
|
221
|
+
"arg_aspect": "Aspect ratio (default: 16:9, varies by model)",
|
|
222
|
+
"arg_ref": "URL for I2V (required for wan) or comma-separated URLs for veo interpolation",
|
|
223
|
+
"arg_seed": "Seed for reproducibility (-1 for random)",
|
|
224
|
+
"arg_save_to": "Custom output directory",
|
|
225
|
+
"arg_filename": "Custom filename (without extension)",
|
|
226
|
+
"req_key": "❌ Video generation requires a Pollinations API key.\n🔧 Connect your key with /poll connect",
|
|
227
|
+
"warn_beta": "Model \"{model}\" unreferenced — mode (beta)",
|
|
228
|
+
"invalid_duration": "❌ Invalid duration for {model}: {duration}s\n💡 Supported duration: {min}-{max}s",
|
|
229
|
+
"invalid_aspect": "❌ Aspect ratio not supported by {model}: {aspect}\n💡 Supported ratios: {supported}",
|
|
230
|
+
"req_i2v": "❌ Model \"{model}\" requires a starting image (I2V ONLY).\n💡 Add --reference_image <url>\n💡 For T2V, use: grok-video, ltx-2, veo, seedance",
|
|
231
|
+
"no_i2v": "⚠️ Model \"{model}\" does not support I2V.\n💡 I2V Models: {models}",
|
|
232
|
+
"blocked": "❌ Operation blocked by Cost Guard.",
|
|
233
|
+
"toast_start": "Video gen: {model} ({duration}s)",
|
|
234
|
+
"res_title": "🎬 Video Generated",
|
|
235
|
+
"res_prompt": "Prompt: {prompt}",
|
|
236
|
+
"res_model": "Model: {model}",
|
|
237
|
+
"res_duration": "Duration: ~{duration}s",
|
|
238
|
+
"res_aspect": "Aspect: {aspect}",
|
|
239
|
+
"res_i2v_mode": "I2V Mode: {mode}",
|
|
240
|
+
"res_i2v_interp": "Interpolation (multi-image)",
|
|
241
|
+
"res_i2v_single": "Single image",
|
|
242
|
+
"res_source": "Source: {url}",
|
|
243
|
+
"res_audio_ok": "Audio: ✅ Automatically generated",
|
|
244
|
+
"res_audio_no": "Audio: ❌ Not supported by this model",
|
|
245
|
+
"res_file": "File: {path}",
|
|
246
|
+
"res_size": "Size: {size}",
|
|
247
|
+
"res_cost_title": "\n💰 **Financial Report :**",
|
|
248
|
+
"res_cost_est_tok": "- Estimated Cost : {cost} (Theoretical max: {maxCost})",
|
|
249
|
+
"res_cost_est": "- Estimated Cost : {cost}",
|
|
250
|
+
"res_cost_real_wallet": "- Real Cost : **{cost}** (via Wallet Balance)",
|
|
251
|
+
"res_cost_real_headers": "- Real Cost : **{cost}** (via API Headers)",
|
|
252
|
+
"res_cost_real_unknown": "- Real Cost : Unknown (API unreachable)",
|
|
253
|
+
"res_model_used": "Model used: {model}",
|
|
254
|
+
"res_request_id": "Request ID: {id}",
|
|
255
|
+
"res_time": "⏱️ Generation time: {time}",
|
|
256
|
+
"toast_success": "Video generated ✓ ({model}, {duration}s)",
|
|
257
|
+
"toast_err": "Error: {error}",
|
|
258
|
+
"err_pollen": "❌ Insufficient pollen credits.\n💡 Try `grok-video` (the cheapest)",
|
|
259
|
+
"err_i2v_req": "❌ Model \"{model}\" is I2V ONLY.\n💡 Add --reference_image <url>",
|
|
260
|
+
"err_invalid": "❌ Invalid parameters: {msg}",
|
|
261
|
+
"err_520": "⚠️ LTX-2 returned an intermittent 520 error.\n💡 Retry in a few seconds.",
|
|
262
|
+
"err_timeout": "❌ Timeout - Video generation took too long.\n💡 Retry with a shorter duration.",
|
|
263
|
+
"err_gen": "❌ Video generation error: {error}"
|
|
264
|
+
},
|
|
265
|
+
"polli_gen_audio": {
|
|
266
|
+
"desc": "Convert text to speech using Pollinations AI.\n\n**🔊 Models:**\n\n| Model | Type | Voices | Format | Cost | Notes |\n|-------|------|--------|--------|------|-------|\n| openai-audio | TTS + STT | 6 | mp3, wav, pcm16 | Lowest | **DEFAULT** - GPT-4o Audio |\n| elevenlabs | TTS | 34 | mp3, wav, etc. | Higher | Expressive voices |\n\n**🎵 OpenAI Audio (Default, Recommended):**\n- Voices: `alloy`, `echo`, `fable`, `onyx`, `nova`, `shimmer`\n- Formats: `mp3` (default), `wav`, `pcm16`\n- Uses GPT-4o Audio Preview modalities endpoint\n- Lowest cost option\n\n**🎤 ElevenLabs:**\n- 34 expressive voices including: rachel, domi, bella, adam, etc.\n- Higher quality natural-sounding speech\n- More expensive but more expressive\n\n**💡 Tips:**\n- Use `openai-audio` for cost-effective TTS\n- Use `elevenlabs` for more expressive/character voices\n- For STT (transcription), use the `transcribe_audio` tool.",
|
|
267
|
+
"arg_text": "Text to convert to speech",
|
|
268
|
+
"arg_voice": "Voice to use (default: {voice})",
|
|
269
|
+
"arg_model": "TTS model (default: {model})",
|
|
270
|
+
"arg_format": "Audio format (default: mp3, openai-audio only)",
|
|
271
|
+
"arg_save_to": "Custom output directory",
|
|
272
|
+
"arg_filename": "Custom filename (without extension)",
|
|
273
|
+
"req_key": "❌ TTS requires a Pollinations API key.\n🔧 Connect your key with /poll connect",
|
|
274
|
+
"warn_beta": "Model \"{model}\" unreferenced — mode (beta)",
|
|
275
|
+
"unsupported_openai": "⚠️ Voice \"{voice}\" not supported by openai-audio.\n💡 OpenAI Voices: {voices}",
|
|
276
|
+
"unsupported_elevenlabs": "⚠️ Voice \"{voice}\" unrecognized for elevenlabs.\n💡 Popular ElevenLabs voices: rachel, domi, bella, adam, josh...\n📋 Total: {count} voices available",
|
|
277
|
+
"blocked": "❌ Operation blocked by Cost Guard.",
|
|
278
|
+
"toast_start": "Audio gen: {model} ({length} chars)",
|
|
279
|
+
"res_title": "🔊 Audio Generated (TTS)",
|
|
280
|
+
"res_text": "Text: \"{text}\"",
|
|
281
|
+
"res_model": "Model: {model}",
|
|
282
|
+
"res_voice": "Voice: {voice}",
|
|
283
|
+
"res_format": "Format: {format}",
|
|
284
|
+
"res_est_duration": "Estimated duration: ~{duration}s",
|
|
285
|
+
"res_file": "File: {path}",
|
|
286
|
+
"res_size": "Size: {size}",
|
|
287
|
+
"res_cost_tok": "Cost: {cost} (Theoretical max: {maxCost})",
|
|
288
|
+
"res_cost": "Cost: {cost}",
|
|
289
|
+
"res_request_id": "Request ID: {id}",
|
|
290
|
+
"toast_success": "Audio generated ✓ ({model}, {voice})",
|
|
291
|
+
"toast_err": "Error: {error}",
|
|
292
|
+
"err_pollen": "❌ Insufficient pollen credits.",
|
|
293
|
+
"err_auth": "❌ Invalid or unauthorized API key.",
|
|
294
|
+
"err_tts": "❌ TTS Error: {error}"
|
|
295
|
+
},
|
|
296
|
+
"polli_gen_music": {
|
|
297
|
+
"desc": "Generate music from a text description using Pollinations AI.\n\n**🎵 Model:** elevenmusic (ElevenLabs Music)\n\n**📝 Parameters:**\n- `duration`: 3-300 seconds (default: 10s)\n- `instrumental`: true = no vocals, false = vocals allowed\n\n**💡 Example Prompts:**\n- \"upbeat jazz with saxophone solo\"\n- \"ambient electronic for meditation\"\n- \"epic orchestral film score\"\n- \"lo-fi hip hop beats\"\n\n**💰 Cost:** ~0.005 🌻 per second\n- 10 seconds ≈ 0.05 🌻\n- 60 seconds ≈ 0.30 🌻\n\n**⚠️ Notes:**\n- Generation time scales with duration (~1s per second of audio)\n- Longer tracks (60s+) may take 1-2 minutes\n- Instrumental mode produces cleaner results for background music",
|
|
298
|
+
"arg_prompt": "Description of the music to generate",
|
|
299
|
+
"arg_duration": "Duration in seconds (default: {default}, max: {max})",
|
|
300
|
+
"arg_instrumental": "Instrumental only - no vocals (default: false)",
|
|
301
|
+
"arg_seed": "Seed for reproducibility (-1 for random)",
|
|
302
|
+
"arg_save_to": "Custom output directory",
|
|
303
|
+
"arg_filename": "Custom filename (without extension)",
|
|
304
|
+
"req_key": "❌ Music generation requires a Pollinations API key.\n🔧 Connect your key with /poll connect",
|
|
305
|
+
"blocked": "❌ Operation blocked by Cost Guard.",
|
|
306
|
+
"toast_start": "Music gen: {duration}s (~{time}s gen)",
|
|
307
|
+
"res_title": "🎵 Music Generated",
|
|
308
|
+
"res_prompt": "Prompt: {prompt}",
|
|
309
|
+
"res_duration": "Duration: ~{duration}s",
|
|
310
|
+
"res_mode": "Mode: {mode}",
|
|
311
|
+
"res_mode_inst": "Instrumental (no vocals)",
|
|
312
|
+
"res_mode_vocal": "Vocals allowed",
|
|
313
|
+
"res_file": "File: {path}",
|
|
314
|
+
"res_size": "Size: {size}",
|
|
315
|
+
"res_cost_tok": "Cost: {cost} (Theoretical max: {maxCost})",
|
|
316
|
+
"res_cost": "Cost: {cost}",
|
|
317
|
+
"res_model_used": "Model used: {model}",
|
|
318
|
+
"res_request_id": "Request ID: {id}",
|
|
319
|
+
"toast_success": "Music generated ✓ ({duration}s)",
|
|
320
|
+
"toast_err": "Error: {error}",
|
|
321
|
+
"err_pollen": "❌ Insufficient pollen credits.",
|
|
322
|
+
"err_auth": "❌ Invalid or unauthorized API key.",
|
|
323
|
+
"err_timeout": "❌ Timeout - Music generation took too long.\n💡 Try a shorter duration.",
|
|
324
|
+
"err_gen": "❌ Music generation error: {error}"
|
|
325
|
+
},
|
|
326
|
+
"polli_transcribe_audio": {
|
|
327
|
+
"desc": "Transcribe audio to text using Pollinations AI.\n\n**🎙️ Models:**\n\n| Model | Supplier | Notes |\n|-------|----------|-------|\n| whisper-large-v3 | OpenAI | **DEFAULT** - High accuracy, long audio |\n| whisper-1 | OpenAI | Standard accuracy |\n| scribe | ElevenLabs | Scribe v2 model |\n\n**📁 Supported Formats:**\nmp3, wav, m4a, webm, mp4, mpeg, mpga, ogg\n\n**💡 Tips:**\n- Use `whisper-large-v3` for the highest accuracy on long recordings\n- Supports both local files and URLs\n\n**📋 Output:**\n- Returns transcribed text\n- Includes detected language (if available)\n- Shows processing time",
|
|
328
|
+
"arg_file": "Path to audio file or URL to transcribe",
|
|
329
|
+
"arg_model": "STT model (default: {model})",
|
|
330
|
+
"arg_language": "Language hint (e.g., \"en\", \"fr\", \"es\")",
|
|
331
|
+
"arg_save": "Save transcript to file (default: false)",
|
|
332
|
+
"req_key": "❌ Transcription requires a Pollinations API key.\n🔧 Connect your key with /poll connect",
|
|
333
|
+
"err_unknown_model": "❌ Unknown STT model: {model}\n💡 Available STT models: {models}",
|
|
334
|
+
"toast_dl": "🎙️ STT: Downloading...",
|
|
335
|
+
"err_dl": "❌ Unable to download audio: {error}",
|
|
336
|
+
"err_not_found": "❌ File not found: {path}",
|
|
337
|
+
"err_format": "⚠️ Unsupported format: .{ext}\n💡 Supported formats: {formats}",
|
|
338
|
+
"toast_start": "🎙️ STT: {model} ({size})",
|
|
339
|
+
"err_no_transcript": "❌ No transcription generated.\n💡 Check that the audio contains clear speech.",
|
|
340
|
+
"res_title": "🎙️ Audio Transcription",
|
|
341
|
+
"res_file": "File: {file}",
|
|
342
|
+
"res_size": "Size: {size}",
|
|
343
|
+
"res_model": "Model: {model}",
|
|
344
|
+
"res_lang_det": "Detected language: {lang}",
|
|
345
|
+
"res_lang_req": "Requested language: {lang}",
|
|
346
|
+
"res_transcript_title": "📝 **Transcription:**",
|
|
347
|
+
"res_saved": "💾 Transcript saved: {path}",
|
|
348
|
+
"err_pollen": "❌ Insufficient credits.",
|
|
349
|
+
"err_auth": "❌ Invalid or unauthorized API key.",
|
|
350
|
+
"err_large": "❌ Audio file too large.\n💡 Try compressing or splitting the audio.",
|
|
351
|
+
"err_stt": "❌ Transcription error: {error}"
|
|
352
|
+
}
|
|
353
|
+
},
|
|
354
|
+
"connect_response": {
|
|
355
|
+
"title_key": "## 🍯💚 POLLINATIONS PLUGIN CONNECTED 💚🍯\n\nWelcome **{name}** to the Pollinations Agent plugin!\n**Current Mode**: `{mode}`",
|
|
356
|
+
"tools_intro": "### 🚀 Multimedia Tools Integrated to Development\n\nThis plugin allows you to generate code, images, analyze videos and interact with the best AI models seamlessly. Access state-of-the-art LLMs via chat, refactoring, or terminal.\n\n**What this plugin brings to you:**\n\n**🛠️ Free Integrated Tools:**\n- `gen_qrcode` / `gen_diagram` / `gen_palette`\n- `remove_background`\n- `extract_frames` / `extract_audio`\n- `file_to_url`\n\n**💎 Pollinations Tools (Premium):**\n- `polli_gen_image`\n- `polli_gen_video`\n- `polli_gen_audio`/`polli_stt`\n- `polli_gen_music`\n- `polli_web_search`",
|
|
357
|
+
"terminal_cmds": "### 💻 Terminal Commands\nUse `/poll help` to see all commands. Try `/poll models` to discover the catalog or `/poll usage` to tracking remaining pollen.",
|
|
358
|
+
"resources": "### 📚 Resources\n* **Website:** [pollinations.ai](https://pollinations.ai)\n* **Discord:** [Join the Community](https://discord.gg/8HqSRhJVmK)\n* **Top-Up Wallet:** [Recharge Balance](https://pollinations.ai/topup)",
|
|
359
|
+
"free_models_success": "Available free models: {models}",
|
|
360
|
+
"free_models_error": "⚠️ Couldn't fetch free models.",
|
|
361
|
+
"onboarding": "## 🌸 Welcome to the Pollinations Plugin\n\n**Immediate free access — no key required**\nThis plugin provides a complete environment for chat, code generation, and media manipulation (Image, Video, Audio Generation, Extraction Tools...).\n\nSelect a `pollinations/free/*` model from the list and start chatting.\n{freeText}\n\n---\n\n## 🚀 Multimedia Agents and Tools Integrated for Developers\n\nClaude Opus, GPT-5, Gemini 3, Veo & Wan Video Gen, ElevenLabs Music... unlock the full power of the Pollinations API!\n\nThis plugin adopts a **BYOK** (Bring Your Own Key) model: by using your own API key, the OpenCode Agent gains the ability to interact directly with Premium tools, creating your multimedia files in your Workspace.\n\n**Step 1 — Create an account with $10 Free!**\nSupport the plugin by using this link:\n👉 **https://enter.pollinations.ai/authorize?redirect_url=https://github.com/fkom13/opencode-pollinations-plugin**\n\n**Step 2 — Generate your API key**\nIn the **API Keys** section on `enter.pollinations.ai`, create a **Secret** key (`sk_...`).\n\n**Step 3 — Connect the key**\n```bash\n/poll connect sk_your_key_here\n```\n*(The key is immediately registered in your OpenCode environment, unlocking Pro models!)*\n\n---\n\n## 💰 Pollen System and Tiers\nEvery developer receives a **Free Daily Grant (Tier Grant)** to use these Premium services:\n- 🦠 **Microbe** (0.1 pollen/day) : To unlock: Sign up\n- 🍄 **Spore** (1 pollen/day) : To unlock: Automatic verification (Verified upon signup)\n- 🌱 **Seed** (3 pollen/day) : To unlock: 8+ dev points (Weekly automatic upgrade)\n- 🌸 **Flower** (10 pollen/day) : To unlock: Publish an application\n- 🍯 **Nectar** (20 pollen/day) : Coming soon 🔮\n\nOnce the free quota is exhausted, you consume Pollen from your wallet ($1 ≈ 1 Pollen, no subscription, no expiration).\n\n**Need help?**\n- Type `/poll help` for the list of commands.\n- Official Discord: https://discord.gg/pollinations-ai-885844321461485618"
|
|
362
|
+
},
|
|
363
|
+
"cost_guard": {
|
|
364
|
+
"cost_validated_max": "💰 Cost validated (Max theoretical: {maxCost})",
|
|
365
|
+
"cost_validated": "💰 Cost validated: {cost}",
|
|
366
|
+
"wallet_protected": "❌ **Wallet Protected**\nModel: {modelName} (paid)\nenablePaidTools: disabled\nResult: REJECTED, ask the user to enable enablePaidTools via the appropriate pollinations command if you want to use this model.",
|
|
367
|
+
"confirmation_req": "⚠️ **Cost Confirmation Required**\n{reasonText}\n💳 **To validate this transaction and execute**, \nPresent the cost to the user and explicitly ask for confirmation !!! \n(If validated, call `polli_gen_confirm` with ID : `{reqId}` and action `confirm`. If rejected, action `cancel` to purge).",
|
|
368
|
+
"reason_token": "The average estimated cost is {cost} however this token-based model could cost up to {maxCost} which exceeds the defined threshold ({limit}).",
|
|
369
|
+
"reason_fixed": "The estimated cost of this action ({cost}) exceeds the defined threshold ({limit}).",
|
|
370
|
+
"estimated_max": "💰 Average estimated cost: {cost} (Max: {maxCost})",
|
|
371
|
+
"estimated": "💰 Estimated cost: {cost}"
|
|
372
|
+
}
|
|
373
|
+
}
|