webscout 8.2.8__py3-none-any.whl → 8.2.9__py3-none-any.whl

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 (184) hide show
  1. webscout/AIauto.py +32 -14
  2. webscout/AIbase.py +96 -37
  3. webscout/AIutel.py +491 -87
  4. webscout/Bard.py +441 -323
  5. webscout/Extra/GitToolkit/__init__.py +10 -10
  6. webscout/Extra/YTToolkit/ytapi/video.py +232 -232
  7. webscout/Litlogger/README.md +10 -0
  8. webscout/Litlogger/__init__.py +7 -59
  9. webscout/Litlogger/formats.py +4 -0
  10. webscout/Litlogger/handlers.py +103 -0
  11. webscout/Litlogger/levels.py +13 -0
  12. webscout/Litlogger/logger.py +92 -0
  13. webscout/Provider/AISEARCH/Perplexity.py +332 -358
  14. webscout/Provider/AISEARCH/felo_search.py +9 -35
  15. webscout/Provider/AISEARCH/genspark_search.py +30 -56
  16. webscout/Provider/AISEARCH/hika_search.py +4 -16
  17. webscout/Provider/AISEARCH/iask_search.py +410 -436
  18. webscout/Provider/AISEARCH/monica_search.py +4 -30
  19. webscout/Provider/AISEARCH/scira_search.py +6 -32
  20. webscout/Provider/AISEARCH/webpilotai_search.py +38 -64
  21. webscout/Provider/Blackboxai.py +153 -35
  22. webscout/Provider/Deepinfra.py +339 -339
  23. webscout/Provider/ExaChat.py +358 -358
  24. webscout/Provider/Gemini.py +169 -169
  25. webscout/Provider/GithubChat.py +1 -2
  26. webscout/Provider/Glider.py +3 -3
  27. webscout/Provider/HeckAI.py +171 -81
  28. webscout/Provider/OPENAI/BLACKBOXAI.py +766 -735
  29. webscout/Provider/OPENAI/Cloudflare.py +7 -7
  30. webscout/Provider/OPENAI/FreeGemini.py +6 -5
  31. webscout/Provider/OPENAI/NEMOTRON.py +8 -20
  32. webscout/Provider/OPENAI/Qwen3.py +283 -0
  33. webscout/Provider/OPENAI/README.md +952 -1253
  34. webscout/Provider/OPENAI/TwoAI.py +357 -0
  35. webscout/Provider/OPENAI/__init__.py +5 -1
  36. webscout/Provider/OPENAI/ai4chat.py +40 -40
  37. webscout/Provider/OPENAI/api.py +808 -649
  38. webscout/Provider/OPENAI/c4ai.py +3 -3
  39. webscout/Provider/OPENAI/chatgpt.py +555 -555
  40. webscout/Provider/OPENAI/chatgptclone.py +493 -487
  41. webscout/Provider/OPENAI/chatsandbox.py +4 -3
  42. webscout/Provider/OPENAI/copilot.py +242 -0
  43. webscout/Provider/OPENAI/deepinfra.py +5 -2
  44. webscout/Provider/OPENAI/e2b.py +63 -5
  45. webscout/Provider/OPENAI/exaai.py +416 -410
  46. webscout/Provider/OPENAI/exachat.py +444 -443
  47. webscout/Provider/OPENAI/freeaichat.py +2 -2
  48. webscout/Provider/OPENAI/glider.py +5 -2
  49. webscout/Provider/OPENAI/groq.py +5 -2
  50. webscout/Provider/OPENAI/heckai.py +308 -307
  51. webscout/Provider/OPENAI/mcpcore.py +8 -2
  52. webscout/Provider/OPENAI/multichat.py +4 -4
  53. webscout/Provider/OPENAI/netwrck.py +6 -5
  54. webscout/Provider/OPENAI/oivscode.py +287 -0
  55. webscout/Provider/OPENAI/opkfc.py +496 -496
  56. webscout/Provider/OPENAI/pydantic_imports.py +172 -0
  57. webscout/Provider/OPENAI/scirachat.py +15 -9
  58. webscout/Provider/OPENAI/sonus.py +304 -303
  59. webscout/Provider/OPENAI/standardinput.py +433 -433
  60. webscout/Provider/OPENAI/textpollinations.py +4 -4
  61. webscout/Provider/OPENAI/toolbaz.py +413 -413
  62. webscout/Provider/OPENAI/typefully.py +3 -3
  63. webscout/Provider/OPENAI/typegpt.py +11 -5
  64. webscout/Provider/OPENAI/uncovrAI.py +463 -462
  65. webscout/Provider/OPENAI/utils.py +90 -79
  66. webscout/Provider/OPENAI/venice.py +431 -425
  67. webscout/Provider/OPENAI/wisecat.py +387 -381
  68. webscout/Provider/OPENAI/writecream.py +3 -3
  69. webscout/Provider/OPENAI/x0gpt.py +365 -378
  70. webscout/Provider/OPENAI/yep.py +39 -13
  71. webscout/Provider/TTI/README.md +55 -101
  72. webscout/Provider/TTI/__init__.py +4 -9
  73. webscout/Provider/TTI/aiarta.py +365 -0
  74. webscout/Provider/TTI/artbit.py +0 -0
  75. webscout/Provider/TTI/base.py +64 -0
  76. webscout/Provider/TTI/fastflux.py +200 -0
  77. webscout/Provider/TTI/magicstudio.py +201 -0
  78. webscout/Provider/TTI/piclumen.py +203 -0
  79. webscout/Provider/TTI/pixelmuse.py +225 -0
  80. webscout/Provider/TTI/pollinations.py +221 -0
  81. webscout/Provider/TTI/utils.py +11 -0
  82. webscout/Provider/TTS/__init__.py +2 -1
  83. webscout/Provider/TTS/base.py +159 -159
  84. webscout/Provider/TTS/openai_fm.py +129 -0
  85. webscout/Provider/TextPollinationsAI.py +308 -308
  86. webscout/Provider/TwoAI.py +239 -44
  87. webscout/Provider/UNFINISHED/Youchat.py +330 -330
  88. webscout/Provider/UNFINISHED/puterjs.py +635 -0
  89. webscout/Provider/UNFINISHED/test_lmarena.py +119 -119
  90. webscout/Provider/Writecream.py +246 -246
  91. webscout/Provider/__init__.py +2 -0
  92. webscout/Provider/ai4chat.py +33 -8
  93. webscout/Provider/koala.py +169 -169
  94. webscout/Provider/oivscode.py +309 -0
  95. webscout/Provider/samurai.py +3 -2
  96. webscout/Provider/typegpt.py +3 -3
  97. webscout/Provider/uncovr.py +368 -368
  98. webscout/client.py +70 -0
  99. webscout/litprinter/__init__.py +58 -58
  100. webscout/optimizers.py +419 -419
  101. webscout/scout/README.md +3 -1
  102. webscout/scout/core/crawler.py +134 -64
  103. webscout/scout/core/scout.py +148 -109
  104. webscout/scout/element.py +106 -88
  105. webscout/swiftcli/Readme.md +323 -323
  106. webscout/swiftcli/plugins/manager.py +9 -2
  107. webscout/version.py +1 -1
  108. webscout/zeroart/__init__.py +134 -134
  109. webscout/zeroart/effects.py +100 -100
  110. webscout/zeroart/fonts.py +1238 -1238
  111. {webscout-8.2.8.dist-info → webscout-8.2.9.dist-info}/METADATA +159 -35
  112. {webscout-8.2.8.dist-info → webscout-8.2.9.dist-info}/RECORD +116 -161
  113. {webscout-8.2.8.dist-info → webscout-8.2.9.dist-info}/WHEEL +1 -1
  114. {webscout-8.2.8.dist-info → webscout-8.2.9.dist-info}/entry_points.txt +1 -0
  115. webscout/Litlogger/Readme.md +0 -175
  116. webscout/Litlogger/core/__init__.py +0 -6
  117. webscout/Litlogger/core/level.py +0 -23
  118. webscout/Litlogger/core/logger.py +0 -165
  119. webscout/Litlogger/handlers/__init__.py +0 -12
  120. webscout/Litlogger/handlers/console.py +0 -33
  121. webscout/Litlogger/handlers/file.py +0 -143
  122. webscout/Litlogger/handlers/network.py +0 -173
  123. webscout/Litlogger/styles/__init__.py +0 -7
  124. webscout/Litlogger/styles/colors.py +0 -249
  125. webscout/Litlogger/styles/formats.py +0 -458
  126. webscout/Litlogger/styles/text.py +0 -87
  127. webscout/Litlogger/utils/__init__.py +0 -6
  128. webscout/Litlogger/utils/detectors.py +0 -153
  129. webscout/Litlogger/utils/formatters.py +0 -200
  130. webscout/Provider/TTI/AiForce/README.md +0 -159
  131. webscout/Provider/TTI/AiForce/__init__.py +0 -22
  132. webscout/Provider/TTI/AiForce/async_aiforce.py +0 -224
  133. webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -245
  134. webscout/Provider/TTI/FreeAIPlayground/README.md +0 -99
  135. webscout/Provider/TTI/FreeAIPlayground/__init__.py +0 -9
  136. webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +0 -181
  137. webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +0 -180
  138. webscout/Provider/TTI/ImgSys/README.md +0 -174
  139. webscout/Provider/TTI/ImgSys/__init__.py +0 -23
  140. webscout/Provider/TTI/ImgSys/async_imgsys.py +0 -202
  141. webscout/Provider/TTI/ImgSys/sync_imgsys.py +0 -195
  142. webscout/Provider/TTI/MagicStudio/README.md +0 -101
  143. webscout/Provider/TTI/MagicStudio/__init__.py +0 -2
  144. webscout/Provider/TTI/MagicStudio/async_magicstudio.py +0 -111
  145. webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +0 -109
  146. webscout/Provider/TTI/Nexra/README.md +0 -155
  147. webscout/Provider/TTI/Nexra/__init__.py +0 -22
  148. webscout/Provider/TTI/Nexra/async_nexra.py +0 -286
  149. webscout/Provider/TTI/Nexra/sync_nexra.py +0 -258
  150. webscout/Provider/TTI/PollinationsAI/README.md +0 -146
  151. webscout/Provider/TTI/PollinationsAI/__init__.py +0 -23
  152. webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -311
  153. webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -265
  154. webscout/Provider/TTI/aiarta/README.md +0 -134
  155. webscout/Provider/TTI/aiarta/__init__.py +0 -2
  156. webscout/Provider/TTI/aiarta/async_aiarta.py +0 -482
  157. webscout/Provider/TTI/aiarta/sync_aiarta.py +0 -440
  158. webscout/Provider/TTI/artbit/README.md +0 -100
  159. webscout/Provider/TTI/artbit/__init__.py +0 -22
  160. webscout/Provider/TTI/artbit/async_artbit.py +0 -155
  161. webscout/Provider/TTI/artbit/sync_artbit.py +0 -148
  162. webscout/Provider/TTI/fastflux/README.md +0 -129
  163. webscout/Provider/TTI/fastflux/__init__.py +0 -22
  164. webscout/Provider/TTI/fastflux/async_fastflux.py +0 -261
  165. webscout/Provider/TTI/fastflux/sync_fastflux.py +0 -252
  166. webscout/Provider/TTI/huggingface/README.md +0 -114
  167. webscout/Provider/TTI/huggingface/__init__.py +0 -22
  168. webscout/Provider/TTI/huggingface/async_huggingface.py +0 -199
  169. webscout/Provider/TTI/huggingface/sync_huggingface.py +0 -195
  170. webscout/Provider/TTI/piclumen/README.md +0 -161
  171. webscout/Provider/TTI/piclumen/__init__.py +0 -23
  172. webscout/Provider/TTI/piclumen/async_piclumen.py +0 -268
  173. webscout/Provider/TTI/piclumen/sync_piclumen.py +0 -233
  174. webscout/Provider/TTI/pixelmuse/README.md +0 -79
  175. webscout/Provider/TTI/pixelmuse/__init__.py +0 -4
  176. webscout/Provider/TTI/pixelmuse/async_pixelmuse.py +0 -249
  177. webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py +0 -182
  178. webscout/Provider/TTI/talkai/README.md +0 -139
  179. webscout/Provider/TTI/talkai/__init__.py +0 -4
  180. webscout/Provider/TTI/talkai/async_talkai.py +0 -229
  181. webscout/Provider/TTI/talkai/sync_talkai.py +0 -207
  182. webscout/Provider/UNFINISHED/oivscode.py +0 -351
  183. {webscout-8.2.8.dist-info → webscout-8.2.9.dist-info}/licenses/LICENSE.md +0 -0
  184. {webscout-8.2.8.dist-info → webscout-8.2.9.dist-info}/top_level.txt +0 -0
webscout/optimizers.py CHANGED
@@ -1,420 +1,420 @@
1
- """Prompt optimization utilities."""
2
-
3
- import os
4
- import platform
5
- import subprocess
6
- from typing import Optional
7
- class Optimizers:
8
- """
9
- >>> Optimizers.code("write a hello world")
10
- Returns optimized prompt for code generation
11
-
12
- >>> Optimizers.shell_command("list files")
13
- Returns optimized prompt for shell commands
14
-
15
- >>> Optimizers.search("best pizza places")
16
- Returns optimized prompt for web search
17
-
18
- >>> Optimizers.math("solve quadratic equation")
19
- Returns optimized prompt for math problems
20
- """
21
- @staticmethod
22
- def code(prompt: str) -> str:
23
- """Deprecated: Use coder() instead"""
24
- return Optimizers.coder(prompt)
25
-
26
- @staticmethod
27
- def shell_command(prompt: str) -> str:
28
- """Deprecated: Use coder() instead"""
29
- return Optimizers.coder(f"!{prompt}")
30
-
31
- @staticmethod
32
- def coder(prompt: str) -> str:
33
- """Unified optimizer for both code and shell commands."""
34
- # Get system info for shell commands
35
- operating_system: str = ""
36
- if platform.system() == "Windows":
37
- operating_system = "Windows"
38
- elif platform.system() == "Darwin":
39
- operating_system = "MacOS"
40
- elif platform.system() == "Linux":
41
- try:
42
- result: str = subprocess.check_output(["lsb_release", "-si"]).decode().strip()
43
- operating_system = f"Linux/{result}" if result else "Linux"
44
- except Exception:
45
- operating_system = "Linux"
46
- else:
47
- operating_system = platform.system()
48
-
49
- # Get shell info
50
- shell_name: str = "/bin/sh"
51
- if platform.system() == "Windows":
52
- shell_name = "powershell.exe" if os.getenv("PSModulePath") else "cmd.exe"
53
- else:
54
- shell_env: Optional[str] = os.getenv("SHELL")
55
- if shell_env:
56
- shell_name = shell_env
57
-
58
- return (
59
- f"""<system_context>
60
- <role>
61
- Your Role: You are a code generation expert. Analyze the request and provide appropriate output.
62
- If the request starts with '!' or involves system/shell operations, provide a shell command.
63
- Otherwise, provide Python code.
64
- </role>
65
- <rules>
66
- RULES:
67
- - Provide ONLY code/command output without any description or markdown
68
- - For shell commands:
69
- - Target OS: {operating_system}
70
- - Shell: {shell_name}
71
- - Combine multiple steps when possible
72
- - For Python code:
73
- - Include necessary imports
74
- - Handle errors appropriately
75
- - Follow PEP 8 style
76
- - If details are missing, use most logical implementation
77
- - No warnings, descriptions, or explanations
78
- </rules>
79
- <request>
80
- Request: {prompt}
81
- </request>
82
- <output>
83
- Output:
84
- </output>
85
- </system_context>"""
86
- )
87
-
88
- @staticmethod
89
- def search(prompt: str) -> str:
90
- """Optimize prompt for web search queries."""
91
- return f"""
92
- <system_context>
93
- <role>
94
- Your role: Generate a precise and focused web search query.
95
- </role>
96
- <instructions>
97
- IMPORTANT: Return only the search query without any explanation.
98
- Format: Plain text, no markdown.
99
- If details are missing, focus on the most relevant aspects.
100
- </instructions>
101
- <request>
102
- Request: {prompt}
103
- </request>
104
- <output>
105
- Search Query:
106
- </output>
107
- </system_context>
108
- """
109
-
110
- @staticmethod
111
- def math(prompt: str) -> str:
112
- """Optimize prompt for mathematical problem solving."""
113
- return f"""
114
- <system_context>
115
- <role>
116
- Your role: Solve mathematical problems step by step.
117
- </role>
118
- <instructions>
119
- Format: Plain text, show calculations clearly.
120
- Show all steps and intermediate results.
121
- Include units where applicable.
122
- Provide final answer in a clear format.
123
- </instructions>
124
- <request>
125
- Problem: {prompt}
126
- </request>
127
- <output>
128
- Solution:
129
- </output>
130
- </system_context>
131
- """
132
-
133
- @staticmethod
134
- def explain(prompt: str) -> str:
135
- """Optimize prompt for clear explanations."""
136
- return f"""
137
- <system_context>
138
- <role>
139
- Your role: Explain concepts clearly and concisely.
140
- </role>
141
- <instructions>
142
- Format: Break down complex ideas into simple terms.
143
- Use analogies where helpful.
144
- Focus on key points and practical understanding.
145
- </instructions>
146
- <request>
147
- Topic: {prompt}
148
- </request>
149
- <output>
150
- Explanation:
151
- </output>
152
- </system_context>
153
- """
154
-
155
- @staticmethod
156
- def debug(prompt: str) -> str:
157
- """Optimize prompt for debugging code."""
158
- return f"""
159
- <system_context>
160
- <role>
161
- Your role: Debug code and identify issues.
162
- </role>
163
- <instructions>
164
- Steps:
165
- - Identify syntax errors
166
- - Check logic issues
167
- - Look for common pitfalls
168
- - Suggest fixes
169
- </instructions>
170
- <request>
171
- Code to debug: {prompt}
172
- </request>
173
- <output>
174
- Analysis:
175
- </output>
176
- </system_context>
177
- """
178
-
179
- @staticmethod
180
- def api(prompt: str) -> str:
181
- """Optimize prompt for API endpoint design."""
182
- return f"""
183
- <system_context>
184
- <role>
185
- Your role: Design RESTful API endpoints.
186
- </role>
187
- <instructions>
188
- Include:
189
- - HTTP methods
190
- - URL structure
191
- - Request/Response format
192
- - Status codes
193
- </instructions>
194
- <request>
195
- API requirement: {prompt}
196
- </request>
197
- <output>
198
- Design:
199
- </output>
200
- </system_context>
201
- """
202
-
203
- @staticmethod
204
- def sql(prompt: str) -> str:
205
- """Optimize prompt for SQL query generation."""
206
- return f"""
207
- <system_context>
208
- <role>
209
- Your role: Generate optimized SQL queries.
210
- </role>
211
- <instructions>
212
- Requirements:
213
- - Standard SQL syntax
214
- - Efficient query structure
215
- - Proper joins and indexing
216
- - Consider performance
217
- </instructions>
218
- <request>
219
- Query need: {prompt}
220
- </request>
221
- <output>
222
- SQL:
223
- </output>
224
- </system_context>
225
- """
226
-
227
- @staticmethod
228
- def regex(prompt: str) -> str:
229
- """Optimize prompt for regex pattern generation."""
230
- return f"""
231
- <system_context>
232
- <role>
233
- Your role: Generate precise regex patterns.
234
- </role>
235
- <instructions>
236
- Requirements:
237
- - Standard regex syntax
238
- - Pattern explanation
239
- - Test cases
240
- - Consider edge cases
241
- </instructions>
242
- <request>
243
- Pattern need: {prompt}
244
- </request>
245
- <output>
246
- Regex:
247
- </output>
248
- </system_context>
249
- """
250
-
251
- @staticmethod
252
- def test(prompt: str) -> str:
253
- """Optimize prompt for test case generation."""
254
- return f"""
255
- <system_context>
256
- <role>
257
- Your role: Generate comprehensive test cases.
258
- </role>
259
- <instructions>
260
- Include:
261
- - Edge cases
262
- - Corner cases
263
- - Error scenarios
264
- - Happy path
265
- Format: Test name and expected result
266
- </instructions>
267
- <request>
268
- Test requirement: {prompt}
269
- </request>
270
- <output>
271
- Test Cases:
272
- </output>
273
- </system_context>
274
- """
275
-
276
- @staticmethod
277
- def docker(prompt: str) -> str:
278
- """Optimize prompt for Dockerfile creation."""
279
- return f"""
280
- <system_context>
281
- <role>
282
- Your role: Create efficient Dockerfile.
283
- </role>
284
- <instructions>
285
- Consider:
286
- - Base image selection
287
- - Layer optimization
288
- - Security best practices
289
- - Multi-stage builds if needed
290
- </instructions>
291
- <request>
292
- Container requirement: {prompt}
293
- </request>
294
- <output>
295
- Dockerfile:
296
- </output>
297
- </system_context>
298
- """
299
-
300
- @staticmethod
301
- def git(prompt: str) -> str:
302
- """Optimize prompt for git commands."""
303
- return f"""
304
- <system_context>
305
- <role>
306
- Your role: Generate git commands.
307
- </role>
308
- <instructions>
309
- Requirements:
310
- - Clear and safe commands
311
- - Consider current state
312
- - Include safety checks
313
- - Best practices
314
- </instructions>
315
- <request>
316
- Git task: {prompt}
317
- </request>
318
- <output>
319
- Command:
320
- </output>
321
- </system_context>
322
- """
323
-
324
- @staticmethod
325
- def yaml(prompt: str) -> str:
326
- """Optimize prompt for YAML configuration."""
327
- return f"""
328
- <system_context>
329
- <role>
330
- Your role: Generate YAML configuration.
331
- </role>
332
- <instructions>
333
- Requirements:
334
- - Valid YAML syntax
335
- - Clear structure
336
- - Comments for complex parts
337
- - Best practices
338
- </instructions>
339
- <request>
340
- Config need: {prompt}
341
- </request>
342
- <output>
343
- YAML:
344
- </output>
345
- </system_context>
346
- """
347
-
348
- @staticmethod
349
- def cli(prompt: str) -> str:
350
- """Optimize prompt for CLI command design."""
351
- return f"""
352
- <system_context>
353
- <role>
354
- Your role: Design CLI commands.
355
- </role>
356
- <instructions>
357
- Include:
358
- - Command structure
359
- - Arguments/options
360
- - Help messages
361
- - Examples
362
- </instructions>
363
- <request>
364
- CLI requirement: {prompt}
365
- </request>
366
- <output>
367
- Design:
368
- </output>
369
- </system_context>
370
- """
371
-
372
- @staticmethod
373
- def refactor(prompt: str) -> str:
374
- """Optimize prompt for code refactoring suggestions."""
375
- return f"""
376
- <system_context>
377
- <role>
378
- Your role: Suggest code improvements.
379
- </role>
380
- <instructions>
381
- Focus on:
382
- - Code quality
383
- - Performance
384
- - Readability
385
- - Best practices
386
- - Design patterns
387
- </instructions>
388
- <request>
389
- Code to refactor: {prompt}
390
- </request>
391
- <output>
392
- Suggestions:
393
- </output>
394
- </system_context>
395
- """
396
-
397
- @staticmethod
398
- def security(prompt: str) -> str:
399
- """Optimize prompt for security analysis."""
400
- return f"""
401
- <system_context>
402
- <role>
403
- Your role: Security analysis and fixes.
404
- </role>
405
- <instructions>
406
- Check for:
407
- - Common vulnerabilities
408
- - Security best practices
409
- - Input validation
410
- - Authentication/Authorization
411
- - Data protection
412
- </instructions>
413
- <request>
414
- Code to analyze: {prompt}
415
- </request>
416
- <output>
417
- Analysis:
418
- </output>
419
- </system_context>
1
+ """Prompt optimization utilities."""
2
+
3
+ import os
4
+ import platform
5
+ import subprocess
6
+ from typing import Optional
7
+ class Optimizers:
8
+ """
9
+ >>> Optimizers.code("write a hello world")
10
+ Returns optimized prompt for code generation
11
+
12
+ >>> Optimizers.shell_command("list files")
13
+ Returns optimized prompt for shell commands
14
+
15
+ >>> Optimizers.search("best pizza places")
16
+ Returns optimized prompt for web search
17
+
18
+ >>> Optimizers.math("solve quadratic equation")
19
+ Returns optimized prompt for math problems
20
+ """
21
+ @staticmethod
22
+ def code(prompt: str) -> str:
23
+ """Deprecated: Use coder() instead"""
24
+ return Optimizers.coder(prompt)
25
+
26
+ @staticmethod
27
+ def shell_command(prompt: str) -> str:
28
+ """Deprecated: Use coder() instead"""
29
+ return Optimizers.coder(f"!{prompt}")
30
+
31
+ @staticmethod
32
+ def coder(prompt: str) -> str:
33
+ """Unified optimizer for both code and shell commands."""
34
+ # Get system info for shell commands
35
+ operating_system: str = ""
36
+ if platform.system() == "Windows":
37
+ operating_system = "Windows"
38
+ elif platform.system() == "Darwin":
39
+ operating_system = "MacOS"
40
+ elif platform.system() == "Linux":
41
+ try:
42
+ result: str = subprocess.check_output(["lsb_release", "-si"]).decode().strip()
43
+ operating_system = f"Linux/{result}" if result else "Linux"
44
+ except Exception:
45
+ operating_system = "Linux"
46
+ else:
47
+ operating_system = platform.system()
48
+
49
+ # Get shell info
50
+ shell_name: str = "/bin/sh"
51
+ if platform.system() == "Windows":
52
+ shell_name = "powershell.exe" if os.getenv("PSModulePath") else "cmd.exe"
53
+ else:
54
+ shell_env: Optional[str] = os.getenv("SHELL")
55
+ if shell_env:
56
+ shell_name = shell_env
57
+
58
+ return (
59
+ f"""<system_context>
60
+ <role>
61
+ Your Role: You are a code generation expert. Analyze the request and provide appropriate output.
62
+ If the request starts with '!' or involves system/shell operations, provide a shell command.
63
+ Otherwise, provide Python code.
64
+ </role>
65
+ <rules>
66
+ RULES:
67
+ - Provide ONLY code/command output without any description or markdown
68
+ - For shell commands:
69
+ - Target OS: {operating_system}
70
+ - Shell: {shell_name}
71
+ - Combine multiple steps when possible
72
+ - For Python code:
73
+ - Include necessary imports
74
+ - Handle errors appropriately
75
+ - Follow PEP 8 style
76
+ - If details are missing, use most logical implementation
77
+ - No warnings, descriptions, or explanations
78
+ </rules>
79
+ <request>
80
+ Request: {prompt}
81
+ </request>
82
+ <output>
83
+ Output:
84
+ </output>
85
+ </system_context>"""
86
+ )
87
+
88
+ @staticmethod
89
+ def search(prompt: str) -> str:
90
+ """Optimize prompt for web search queries."""
91
+ return f"""
92
+ <system_context>
93
+ <role>
94
+ Your role: Generate a precise and focused web search query.
95
+ </role>
96
+ <instructions>
97
+ IMPORTANT: Return only the search query without any explanation.
98
+ Format: Plain text, no markdown.
99
+ If details are missing, focus on the most relevant aspects.
100
+ </instructions>
101
+ <request>
102
+ Request: {prompt}
103
+ </request>
104
+ <output>
105
+ Search Query:
106
+ </output>
107
+ </system_context>
108
+ """
109
+
110
+ @staticmethod
111
+ def math(prompt: str) -> str:
112
+ """Optimize prompt for mathematical problem solving."""
113
+ return f"""
114
+ <system_context>
115
+ <role>
116
+ Your role: Solve mathematical problems step by step.
117
+ </role>
118
+ <instructions>
119
+ Format: Plain text, show calculations clearly.
120
+ Show all steps and intermediate results.
121
+ Include units where applicable.
122
+ Provide final answer in a clear format.
123
+ </instructions>
124
+ <request>
125
+ Problem: {prompt}
126
+ </request>
127
+ <output>
128
+ Solution:
129
+ </output>
130
+ </system_context>
131
+ """
132
+
133
+ @staticmethod
134
+ def explain(prompt: str) -> str:
135
+ """Optimize prompt for clear explanations."""
136
+ return f"""
137
+ <system_context>
138
+ <role>
139
+ Your role: Explain concepts clearly and concisely.
140
+ </role>
141
+ <instructions>
142
+ Format: Break down complex ideas into simple terms.
143
+ Use analogies where helpful.
144
+ Focus on key points and practical understanding.
145
+ </instructions>
146
+ <request>
147
+ Topic: {prompt}
148
+ </request>
149
+ <output>
150
+ Explanation:
151
+ </output>
152
+ </system_context>
153
+ """
154
+
155
+ @staticmethod
156
+ def debug(prompt: str) -> str:
157
+ """Optimize prompt for debugging code."""
158
+ return f"""
159
+ <system_context>
160
+ <role>
161
+ Your role: Debug code and identify issues.
162
+ </role>
163
+ <instructions>
164
+ Steps:
165
+ - Identify syntax errors
166
+ - Check logic issues
167
+ - Look for common pitfalls
168
+ - Suggest fixes
169
+ </instructions>
170
+ <request>
171
+ Code to debug: {prompt}
172
+ </request>
173
+ <output>
174
+ Analysis:
175
+ </output>
176
+ </system_context>
177
+ """
178
+
179
+ @staticmethod
180
+ def api(prompt: str) -> str:
181
+ """Optimize prompt for API endpoint design."""
182
+ return f"""
183
+ <system_context>
184
+ <role>
185
+ Your role: Design RESTful API endpoints.
186
+ </role>
187
+ <instructions>
188
+ Include:
189
+ - HTTP methods
190
+ - URL structure
191
+ - Request/Response format
192
+ - Status codes
193
+ </instructions>
194
+ <request>
195
+ API requirement: {prompt}
196
+ </request>
197
+ <output>
198
+ Design:
199
+ </output>
200
+ </system_context>
201
+ """
202
+
203
+ @staticmethod
204
+ def sql(prompt: str) -> str:
205
+ """Optimize prompt for SQL query generation."""
206
+ return f"""
207
+ <system_context>
208
+ <role>
209
+ Your role: Generate optimized SQL queries.
210
+ </role>
211
+ <instructions>
212
+ Requirements:
213
+ - Standard SQL syntax
214
+ - Efficient query structure
215
+ - Proper joins and indexing
216
+ - Consider performance
217
+ </instructions>
218
+ <request>
219
+ Query need: {prompt}
220
+ </request>
221
+ <output>
222
+ SQL:
223
+ </output>
224
+ </system_context>
225
+ """
226
+
227
+ @staticmethod
228
+ def regex(prompt: str) -> str:
229
+ """Optimize prompt for regex pattern generation."""
230
+ return f"""
231
+ <system_context>
232
+ <role>
233
+ Your role: Generate precise regex patterns.
234
+ </role>
235
+ <instructions>
236
+ Requirements:
237
+ - Standard regex syntax
238
+ - Pattern explanation
239
+ - Test cases
240
+ - Consider edge cases
241
+ </instructions>
242
+ <request>
243
+ Pattern need: {prompt}
244
+ </request>
245
+ <output>
246
+ Regex:
247
+ </output>
248
+ </system_context>
249
+ """
250
+
251
+ @staticmethod
252
+ def test(prompt: str) -> str:
253
+ """Optimize prompt for test case generation."""
254
+ return f"""
255
+ <system_context>
256
+ <role>
257
+ Your role: Generate comprehensive test cases.
258
+ </role>
259
+ <instructions>
260
+ Include:
261
+ - Edge cases
262
+ - Corner cases
263
+ - Error scenarios
264
+ - Happy path
265
+ Format: Test name and expected result
266
+ </instructions>
267
+ <request>
268
+ Test requirement: {prompt}
269
+ </request>
270
+ <output>
271
+ Test Cases:
272
+ </output>
273
+ </system_context>
274
+ """
275
+
276
+ @staticmethod
277
+ def docker(prompt: str) -> str:
278
+ """Optimize prompt for Dockerfile creation."""
279
+ return f"""
280
+ <system_context>
281
+ <role>
282
+ Your role: Create efficient Dockerfile.
283
+ </role>
284
+ <instructions>
285
+ Consider:
286
+ - Base image selection
287
+ - Layer optimization
288
+ - Security best practices
289
+ - Multi-stage builds if needed
290
+ </instructions>
291
+ <request>
292
+ Container requirement: {prompt}
293
+ </request>
294
+ <output>
295
+ Dockerfile:
296
+ </output>
297
+ </system_context>
298
+ """
299
+
300
+ @staticmethod
301
+ def git(prompt: str) -> str:
302
+ """Optimize prompt for git commands."""
303
+ return f"""
304
+ <system_context>
305
+ <role>
306
+ Your role: Generate git commands.
307
+ </role>
308
+ <instructions>
309
+ Requirements:
310
+ - Clear and safe commands
311
+ - Consider current state
312
+ - Include safety checks
313
+ - Best practices
314
+ </instructions>
315
+ <request>
316
+ Git task: {prompt}
317
+ </request>
318
+ <output>
319
+ Command:
320
+ </output>
321
+ </system_context>
322
+ """
323
+
324
+ @staticmethod
325
+ def yaml(prompt: str) -> str:
326
+ """Optimize prompt for YAML configuration."""
327
+ return f"""
328
+ <system_context>
329
+ <role>
330
+ Your role: Generate YAML configuration.
331
+ </role>
332
+ <instructions>
333
+ Requirements:
334
+ - Valid YAML syntax
335
+ - Clear structure
336
+ - Comments for complex parts
337
+ - Best practices
338
+ </instructions>
339
+ <request>
340
+ Config need: {prompt}
341
+ </request>
342
+ <output>
343
+ YAML:
344
+ </output>
345
+ </system_context>
346
+ """
347
+
348
+ @staticmethod
349
+ def cli(prompt: str) -> str:
350
+ """Optimize prompt for CLI command design."""
351
+ return f"""
352
+ <system_context>
353
+ <role>
354
+ Your role: Design CLI commands.
355
+ </role>
356
+ <instructions>
357
+ Include:
358
+ - Command structure
359
+ - Arguments/options
360
+ - Help messages
361
+ - Examples
362
+ </instructions>
363
+ <request>
364
+ CLI requirement: {prompt}
365
+ </request>
366
+ <output>
367
+ Design:
368
+ </output>
369
+ </system_context>
370
+ """
371
+
372
+ @staticmethod
373
+ def refactor(prompt: str) -> str:
374
+ """Optimize prompt for code refactoring suggestions."""
375
+ return f"""
376
+ <system_context>
377
+ <role>
378
+ Your role: Suggest code improvements.
379
+ </role>
380
+ <instructions>
381
+ Focus on:
382
+ - Code quality
383
+ - Performance
384
+ - Readability
385
+ - Best practices
386
+ - Design patterns
387
+ </instructions>
388
+ <request>
389
+ Code to refactor: {prompt}
390
+ </request>
391
+ <output>
392
+ Suggestions:
393
+ </output>
394
+ </system_context>
395
+ """
396
+
397
+ @staticmethod
398
+ def security(prompt: str) -> str:
399
+ """Optimize prompt for security analysis."""
400
+ return f"""
401
+ <system_context>
402
+ <role>
403
+ Your role: Security analysis and fixes.
404
+ </role>
405
+ <instructions>
406
+ Check for:
407
+ - Common vulnerabilities
408
+ - Security best practices
409
+ - Input validation
410
+ - Authentication/Authorization
411
+ - Data protection
412
+ </instructions>
413
+ <request>
414
+ Code to analyze: {prompt}
415
+ </request>
416
+ <output>
417
+ Analysis:
418
+ </output>
419
+ </system_context>
420
420
  """