webscout 7.1__py3-none-any.whl → 7.2__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.

Potentially problematic release.


This version of webscout might be problematic. Click here for more details.

Files changed (144) hide show
  1. webscout/AIauto.py +191 -191
  2. webscout/AIbase.py +122 -122
  3. webscout/AIutel.py +440 -440
  4. webscout/Bard.py +343 -161
  5. webscout/DWEBS.py +489 -492
  6. webscout/Extra/YTToolkit/YTdownloader.py +995 -995
  7. webscout/Extra/YTToolkit/__init__.py +2 -2
  8. webscout/Extra/YTToolkit/transcriber.py +476 -479
  9. webscout/Extra/YTToolkit/ytapi/channel.py +307 -307
  10. webscout/Extra/YTToolkit/ytapi/playlist.py +58 -58
  11. webscout/Extra/YTToolkit/ytapi/pool.py +7 -7
  12. webscout/Extra/YTToolkit/ytapi/utils.py +62 -62
  13. webscout/Extra/YTToolkit/ytapi/video.py +103 -103
  14. webscout/Extra/autocoder/__init__.py +9 -9
  15. webscout/Extra/autocoder/autocoder_utiles.py +199 -199
  16. webscout/Extra/autocoder/rawdog.py +5 -7
  17. webscout/Extra/autollama.py +230 -230
  18. webscout/Extra/gguf.py +3 -3
  19. webscout/Extra/weather.py +171 -171
  20. webscout/LLM.py +442 -442
  21. webscout/Litlogger/__init__.py +67 -681
  22. webscout/Litlogger/core/__init__.py +6 -0
  23. webscout/Litlogger/core/level.py +20 -0
  24. webscout/Litlogger/core/logger.py +123 -0
  25. webscout/Litlogger/handlers/__init__.py +12 -0
  26. webscout/Litlogger/handlers/console.py +50 -0
  27. webscout/Litlogger/handlers/file.py +143 -0
  28. webscout/Litlogger/handlers/network.py +174 -0
  29. webscout/Litlogger/styles/__init__.py +7 -0
  30. webscout/Litlogger/styles/colors.py +231 -0
  31. webscout/Litlogger/styles/formats.py +377 -0
  32. webscout/Litlogger/styles/text.py +87 -0
  33. webscout/Litlogger/utils/__init__.py +6 -0
  34. webscout/Litlogger/utils/detectors.py +154 -0
  35. webscout/Litlogger/utils/formatters.py +200 -0
  36. webscout/Provider/AISEARCH/DeepFind.py +250 -250
  37. webscout/Provider/Blackboxai.py +3 -3
  38. webscout/Provider/ChatGPTGratis.py +226 -0
  39. webscout/Provider/Cloudflare.py +3 -4
  40. webscout/Provider/DeepSeek.py +218 -0
  41. webscout/Provider/Deepinfra.py +3 -3
  42. webscout/Provider/Free2GPT.py +131 -124
  43. webscout/Provider/Gemini.py +100 -115
  44. webscout/Provider/Glider.py +3 -3
  45. webscout/Provider/Groq.py +5 -1
  46. webscout/Provider/Jadve.py +3 -3
  47. webscout/Provider/Marcus.py +191 -192
  48. webscout/Provider/Netwrck.py +3 -3
  49. webscout/Provider/PI.py +2 -2
  50. webscout/Provider/PizzaGPT.py +2 -3
  51. webscout/Provider/QwenLM.py +311 -0
  52. webscout/Provider/TTI/AiForce/__init__.py +22 -22
  53. webscout/Provider/TTI/AiForce/async_aiforce.py +257 -257
  54. webscout/Provider/TTI/AiForce/sync_aiforce.py +242 -242
  55. webscout/Provider/TTI/Nexra/__init__.py +22 -22
  56. webscout/Provider/TTI/Nexra/async_nexra.py +286 -286
  57. webscout/Provider/TTI/Nexra/sync_nexra.py +258 -258
  58. webscout/Provider/TTI/PollinationsAI/__init__.py +23 -23
  59. webscout/Provider/TTI/PollinationsAI/async_pollinations.py +330 -330
  60. webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +285 -285
  61. webscout/Provider/TTI/artbit/__init__.py +22 -22
  62. webscout/Provider/TTI/artbit/async_artbit.py +184 -184
  63. webscout/Provider/TTI/artbit/sync_artbit.py +176 -176
  64. webscout/Provider/TTI/blackbox/__init__.py +4 -4
  65. webscout/Provider/TTI/blackbox/async_blackbox.py +212 -212
  66. webscout/Provider/TTI/blackbox/sync_blackbox.py +199 -199
  67. webscout/Provider/TTI/deepinfra/__init__.py +4 -4
  68. webscout/Provider/TTI/deepinfra/async_deepinfra.py +227 -227
  69. webscout/Provider/TTI/deepinfra/sync_deepinfra.py +199 -199
  70. webscout/Provider/TTI/huggingface/__init__.py +22 -22
  71. webscout/Provider/TTI/huggingface/async_huggingface.py +199 -199
  72. webscout/Provider/TTI/huggingface/sync_huggingface.py +195 -195
  73. webscout/Provider/TTI/imgninza/__init__.py +4 -4
  74. webscout/Provider/TTI/imgninza/async_ninza.py +214 -214
  75. webscout/Provider/TTI/imgninza/sync_ninza.py +209 -209
  76. webscout/Provider/TTI/talkai/__init__.py +4 -4
  77. webscout/Provider/TTI/talkai/async_talkai.py +229 -229
  78. webscout/Provider/TTI/talkai/sync_talkai.py +207 -207
  79. webscout/Provider/TTS/deepgram.py +182 -182
  80. webscout/Provider/TTS/elevenlabs.py +136 -136
  81. webscout/Provider/TTS/gesserit.py +150 -150
  82. webscout/Provider/TTS/murfai.py +138 -138
  83. webscout/Provider/TTS/parler.py +133 -134
  84. webscout/Provider/TTS/streamElements.py +360 -360
  85. webscout/Provider/TTS/utils.py +280 -280
  86. webscout/Provider/TTS/voicepod.py +116 -116
  87. webscout/Provider/TextPollinationsAI.py +2 -3
  88. webscout/Provider/WiseCat.py +193 -0
  89. webscout/Provider/__init__.py +144 -134
  90. webscout/Provider/cerebras.py +242 -227
  91. webscout/Provider/chatglm.py +204 -204
  92. webscout/Provider/dgaf.py +2 -3
  93. webscout/Provider/gaurish.py +2 -3
  94. webscout/Provider/geminiapi.py +208 -208
  95. webscout/Provider/granite.py +223 -0
  96. webscout/Provider/hermes.py +218 -218
  97. webscout/Provider/llama3mitril.py +179 -179
  98. webscout/Provider/llamatutor.py +3 -3
  99. webscout/Provider/llmchat.py +2 -3
  100. webscout/Provider/meta.py +794 -794
  101. webscout/Provider/multichat.py +331 -331
  102. webscout/Provider/typegpt.py +359 -359
  103. webscout/Provider/yep.py +2 -2
  104. webscout/__main__.py +5 -5
  105. webscout/cli.py +319 -319
  106. webscout/conversation.py +241 -242
  107. webscout/exceptions.py +328 -328
  108. webscout/litagent/__init__.py +28 -28
  109. webscout/litagent/agent.py +2 -3
  110. webscout/litprinter/__init__.py +0 -58
  111. webscout/scout/__init__.py +8 -8
  112. webscout/scout/core.py +884 -884
  113. webscout/scout/element.py +459 -459
  114. webscout/scout/parsers/__init__.py +69 -69
  115. webscout/scout/parsers/html5lib_parser.py +172 -172
  116. webscout/scout/parsers/html_parser.py +236 -236
  117. webscout/scout/parsers/lxml_parser.py +178 -178
  118. webscout/scout/utils.py +38 -38
  119. webscout/swiftcli/__init__.py +811 -811
  120. webscout/update_checker.py +2 -12
  121. webscout/version.py +1 -1
  122. webscout/webscout_search.py +5 -4
  123. webscout/zeroart/__init__.py +54 -54
  124. webscout/zeroart/base.py +60 -60
  125. webscout/zeroart/effects.py +99 -99
  126. webscout/zeroart/fonts.py +816 -816
  127. {webscout-7.1.dist-info → webscout-7.2.dist-info}/METADATA +4 -3
  128. webscout-7.2.dist-info/RECORD +217 -0
  129. webstoken/__init__.py +30 -30
  130. webstoken/classifier.py +189 -189
  131. webstoken/keywords.py +216 -216
  132. webstoken/language.py +128 -128
  133. webstoken/ner.py +164 -164
  134. webstoken/normalizer.py +35 -35
  135. webstoken/processor.py +77 -77
  136. webstoken/sentiment.py +206 -206
  137. webstoken/stemmer.py +73 -73
  138. webstoken/tagger.py +60 -60
  139. webstoken/tokenizer.py +158 -158
  140. webscout-7.1.dist-info/RECORD +0 -198
  141. {webscout-7.1.dist-info → webscout-7.2.dist-info}/LICENSE.md +0 -0
  142. {webscout-7.1.dist-info → webscout-7.2.dist-info}/WHEEL +0 -0
  143. {webscout-7.1.dist-info → webscout-7.2.dist-info}/entry_points.txt +0 -0
  144. {webscout-7.1.dist-info → webscout-7.2.dist-info}/top_level.txt +0 -0
@@ -1,200 +1,200 @@
1
- """AutoCoder utilities module."""
2
-
3
- import os
4
- import platform
5
- import datetime
6
- import pygetwindow as gw
7
- import sys
8
- from typing import List, Optional
9
-
10
- from webscout.optimizers import Optimizers
11
- import os
12
- import platform
13
- import subprocess
14
-
15
- def get_current_app() -> str:
16
- """
17
- Get the current active application or window title in a cross-platform manner.
18
-
19
- On Windows, uses the win32gui module from pywin32.
20
- On macOS, uses AppKit to access the active application info.
21
- On Linux, uses xprop to get the active window details.
22
-
23
- Returns:
24
- A string containing the title of the active application/window, or "Unknown" if it cannot be determined.
25
- """
26
- system_name = platform.system()
27
-
28
- if system_name == "Windows":
29
- try:
30
- import win32gui # pywin32 must be installed
31
- window_handle = win32gui.GetForegroundWindow()
32
- title = win32gui.GetWindowText(window_handle)
33
- return title if title else "Unknown"
34
- except Exception:
35
- return "Unknown"
36
-
37
- elif system_name == "Darwin": # macOS
38
- try:
39
- from AppKit import NSWorkspace # type: ignore
40
- active_app = NSWorkspace.sharedWorkspace().activeApplication()
41
- title = active_app.get('NSApplicationName')
42
- return title if title else "Unknown"
43
- except Exception:
44
- return "Unknown"
45
-
46
- elif system_name == "Linux":
47
- try:
48
- # Get the active window id using xprop
49
- result = subprocess.run(
50
- ["xprop", "-root", "_NET_ACTIVE_WINDOW"],
51
- stdout=subprocess.PIPE,
52
- stderr=subprocess.PIPE,
53
- text=True
54
- )
55
- if result.returncode == 0 and result.stdout:
56
- # Expected format: _NET_ACTIVE_WINDOW(WINDOW): window id # 0x1400007
57
- parts = result.stdout.strip().split()
58
- window_id = parts[-1]
59
- if window_id != "0x0":
60
- title_result = subprocess.run(
61
- ["xprop", "-id", window_id, "WM_NAME"],
62
- stdout=subprocess.PIPE,
63
- stderr=subprocess.PIPE,
64
- text=True
65
- )
66
- if title_result.returncode == 0 and title_result.stdout:
67
- # Expected format: WM_NAME(STRING) = "Terminal"
68
- title_parts = title_result.stdout.split(" = ", 1)
69
- if len(title_parts) == 2:
70
- title = title_parts[1].strip().strip('"')
71
- return title if title else "Unknown"
72
- except Exception:
73
- pass
74
- return "Unknown"
75
- else:
76
- return "Unknown"
77
-
78
-
79
- def get_intro_prompt(name: str = "Vortex") -> str:
80
- """Get the introduction prompt for the AutoCoder."""
81
- current_app: str = get_current_app()
82
- python_version: str = sys.version.split()[0]
83
-
84
- return f"""
85
- <system_context>
86
- <purpose>
87
- You are a command-line coding assistant named Rawdog, designed to generate and auto-execute Python scripts for {name}.
88
- Your core function is to understand natural language requests, transform them into executable Python code,
89
- and return results to the user via console output. You must adhere to all instructions.
90
- </purpose>
91
-
92
- <process_description>
93
- A typical interaction unfolds as follows:
94
- 1. The user provides a natural language PROMPT.
95
- 2. You:
96
- i. Analyze the PROMPT to determine required actions.
97
- ii. Craft a short Python SCRIPT to execute those actions.
98
- iii. Provide clear and concise feedback to the user by printing to the console within your SCRIPT.
99
- 3. The compiler will then:
100
- i. Extract and execute the SCRIPT using exec().
101
- ii. Handle any exceptions that arise during script execution. Exceptions are returned to you starting with "PREVIOUS SCRIPT EXCEPTION:".
102
- 4. In cases of exceptions, ensure that you regenerate the script and return one that has no errors.
103
-
104
- <continue_process>
105
- If you need to review script outputs before task completion, include the word "CONTINUE" at the end of your SCRIPT.
106
- This allows multi-step reasoning for tasks like summarizing documents, reviewing instructions, or performing other multi-part operations.
107
- A typical 'CONTINUE' interaction looks like this:
108
- 1. The user gives you a natural language PROMPT.
109
- 2. You:
110
- i. Determine what needs to be done.
111
- ii. Determine that you need to see the output of some subprocess call to complete the task
112
- iii. Write a short Python SCRIPT to print that and then print the word "CONTINUE"
113
- 3. The compiler will:
114
- i. Check and run your SCRIPT.
115
- ii. Capture the output and append it to the conversation as "LAST SCRIPT OUTPUT:".
116
- iii. Find the word "CONTINUE" and return control back to you.
117
- 4. You will then:
118
- i. Review the original PROMPT + the "LAST SCRIPT OUTPUT:" to determine what to do
119
- ii. Write a short Python SCRIPT to complete the task.
120
- iii. Communicate back to the user by printing to the console in that SCRIPT.
121
- 5. The compiler repeats the above process...
122
- </continue_process>
123
-
124
- </process_description>
125
-
126
- <conventions>
127
- - Decline any tasks that seem dangerous, irreversible, or that you don't understand.
128
- - Always review the full conversation prior to answering and maintain continuity.
129
- - If asked for information, just print the information clearly and concisely.
130
- - If asked to do something, print a concise summary of what you've done as confirmation.
131
- - If asked a question, respond in a friendly, conversational way. Use programmatically-generated and natural language responses as appropriate.
132
- - If you need clarification, return a SCRIPT that prints your question. In the next interaction, continue based on the user's response.
133
- - Assume the user would like something concise. For example rather than printing a massive table, filter or summarize it to what's likely of interest.
134
- - Actively clean up any temporary processes or files you use.
135
- - When looking through files, use git as available to skip files, and skip hidden files (.env, .git, etc) by default.
136
- - You can plot anything with matplotlib.
137
- - **IMPORTANT**: ALWAYS Return your SCRIPT inside of a single pair of \`\`\` delimiters. Only the console output of the first such SCRIPT is visible to the user, so make sure that it's complete and don't bother returning anything else.
138
- </conventions>
139
-
140
- <environment_info>
141
- - System: {platform.system()}
142
- - Python: {python_version}
143
- - Directory: {os.getcwd()}
144
- - Datetime: {datetime.datetime.now()}
145
- - Active App: {current_app}
146
- </environment_info>
147
- </system_context>
148
- """
149
-
150
- EXAMPLES: str = """
151
- <examples>
152
- <example>
153
- <user_request>Kill the process running on port 3000</user_request>
154
- <rawdog_response>
155
- ```python
156
- import os
157
- os.system("kill $(lsof -t -i:3000)")
158
- print("Process killed")
159
- ```
160
- </rawdog_response>
161
- </example>
162
- <example>
163
- <user_request>Summarize my essay</user_request>
164
- <rawdog_response>
165
- ```python
166
- import glob
167
- files = glob.glob("*essay*.*")
168
- with open(files[0], "r") as f:
169
- print(f.read())
170
- ```
171
- CONTINUE
172
- </rawdog_response>
173
- <user_response>
174
- LAST SCRIPT OUTPUT:
175
- John Smith
176
- Essay 2021-09-01
177
- ...
178
- </user_response>
179
- <rawdog_response>
180
- ```python
181
- print("The essay is about...")
182
- ```
183
- </rawdog_response>
184
- </example>
185
- <example>
186
- <user_request>Weather in qazigund</user_request>
187
- <rawdog_response>
188
- ```python
189
- from webscout import weather as w
190
- weather = w.get("Qazigund")
191
- w.print_weather(weather)
192
- ```
193
- </rawdog_response>
194
- </example>
195
- </examples>
196
- """
197
-
198
- if __name__ == "__main__":
199
- # Simple test harness to print the current active window title.
1
+ """AutoCoder utilities module."""
2
+
3
+ import os
4
+ import platform
5
+ import datetime
6
+ import pygetwindow as gw
7
+ import sys
8
+ from typing import List, Optional
9
+
10
+ from webscout.optimizers import Optimizers
11
+ import os
12
+ import platform
13
+ import subprocess
14
+
15
+ def get_current_app() -> str:
16
+ """
17
+ Get the current active application or window title in a cross-platform manner.
18
+
19
+ On Windows, uses the win32gui module from pywin32.
20
+ On macOS, uses AppKit to access the active application info.
21
+ On Linux, uses xprop to get the active window details.
22
+
23
+ Returns:
24
+ A string containing the title of the active application/window, or "Unknown" if it cannot be determined.
25
+ """
26
+ system_name = platform.system()
27
+
28
+ if system_name == "Windows":
29
+ try:
30
+ import win32gui # pywin32 must be installed
31
+ window_handle = win32gui.GetForegroundWindow()
32
+ title = win32gui.GetWindowText(window_handle)
33
+ return title if title else "Unknown"
34
+ except Exception:
35
+ return "Unknown"
36
+
37
+ elif system_name == "Darwin": # macOS
38
+ try:
39
+ from AppKit import NSWorkspace # type: ignore
40
+ active_app = NSWorkspace.sharedWorkspace().activeApplication()
41
+ title = active_app.get('NSApplicationName')
42
+ return title if title else "Unknown"
43
+ except Exception:
44
+ return "Unknown"
45
+
46
+ elif system_name == "Linux":
47
+ try:
48
+ # Get the active window id using xprop
49
+ result = subprocess.run(
50
+ ["xprop", "-root", "_NET_ACTIVE_WINDOW"],
51
+ stdout=subprocess.PIPE,
52
+ stderr=subprocess.PIPE,
53
+ text=True
54
+ )
55
+ if result.returncode == 0 and result.stdout:
56
+ # Expected format: _NET_ACTIVE_WINDOW(WINDOW): window id # 0x1400007
57
+ parts = result.stdout.strip().split()
58
+ window_id = parts[-1]
59
+ if window_id != "0x0":
60
+ title_result = subprocess.run(
61
+ ["xprop", "-id", window_id, "WM_NAME"],
62
+ stdout=subprocess.PIPE,
63
+ stderr=subprocess.PIPE,
64
+ text=True
65
+ )
66
+ if title_result.returncode == 0 and title_result.stdout:
67
+ # Expected format: WM_NAME(STRING) = "Terminal"
68
+ title_parts = title_result.stdout.split(" = ", 1)
69
+ if len(title_parts) == 2:
70
+ title = title_parts[1].strip().strip('"')
71
+ return title if title else "Unknown"
72
+ except Exception:
73
+ pass
74
+ return "Unknown"
75
+ else:
76
+ return "Unknown"
77
+
78
+
79
+ def get_intro_prompt(name: str = "Vortex") -> str:
80
+ """Get the introduction prompt for the AutoCoder."""
81
+ current_app: str = get_current_app()
82
+ python_version: str = sys.version.split()[0]
83
+
84
+ return f"""
85
+ <system_context>
86
+ <purpose>
87
+ You are a command-line coding assistant named Rawdog, designed to generate and auto-execute Python scripts for {name}.
88
+ Your core function is to understand natural language requests, transform them into executable Python code,
89
+ and return results to the user via console output. You must adhere to all instructions.
90
+ </purpose>
91
+
92
+ <process_description>
93
+ A typical interaction unfolds as follows:
94
+ 1. The user provides a natural language PROMPT.
95
+ 2. You:
96
+ i. Analyze the PROMPT to determine required actions.
97
+ ii. Craft a short Python SCRIPT to execute those actions.
98
+ iii. Provide clear and concise feedback to the user by printing to the console within your SCRIPT.
99
+ 3. The compiler will then:
100
+ i. Extract and execute the SCRIPT using exec().
101
+ ii. Handle any exceptions that arise during script execution. Exceptions are returned to you starting with "PREVIOUS SCRIPT EXCEPTION:".
102
+ 4. In cases of exceptions, ensure that you regenerate the script and return one that has no errors.
103
+
104
+ <continue_process>
105
+ If you need to review script outputs before task completion, include the word "CONTINUE" at the end of your SCRIPT.
106
+ This allows multi-step reasoning for tasks like summarizing documents, reviewing instructions, or performing other multi-part operations.
107
+ A typical 'CONTINUE' interaction looks like this:
108
+ 1. The user gives you a natural language PROMPT.
109
+ 2. You:
110
+ i. Determine what needs to be done.
111
+ ii. Determine that you need to see the output of some subprocess call to complete the task
112
+ iii. Write a short Python SCRIPT to print that and then print the word "CONTINUE"
113
+ 3. The compiler will:
114
+ i. Check and run your SCRIPT.
115
+ ii. Capture the output and append it to the conversation as "LAST SCRIPT OUTPUT:".
116
+ iii. Find the word "CONTINUE" and return control back to you.
117
+ 4. You will then:
118
+ i. Review the original PROMPT + the "LAST SCRIPT OUTPUT:" to determine what to do
119
+ ii. Write a short Python SCRIPT to complete the task.
120
+ iii. Communicate back to the user by printing to the console in that SCRIPT.
121
+ 5. The compiler repeats the above process...
122
+ </continue_process>
123
+
124
+ </process_description>
125
+
126
+ <conventions>
127
+ - Decline any tasks that seem dangerous, irreversible, or that you don't understand.
128
+ - Always review the full conversation prior to answering and maintain continuity.
129
+ - If asked for information, just print the information clearly and concisely.
130
+ - If asked to do something, print a concise summary of what you've done as confirmation.
131
+ - If asked a question, respond in a friendly, conversational way. Use programmatically-generated and natural language responses as appropriate.
132
+ - If you need clarification, return a SCRIPT that prints your question. In the next interaction, continue based on the user's response.
133
+ - Assume the user would like something concise. For example rather than printing a massive table, filter or summarize it to what's likely of interest.
134
+ - Actively clean up any temporary processes or files you use.
135
+ - When looking through files, use git as available to skip files, and skip hidden files (.env, .git, etc) by default.
136
+ - You can plot anything with matplotlib.
137
+ - **IMPORTANT**: ALWAYS Return your SCRIPT inside of a single pair of \`\`\` delimiters. Only the console output of the first such SCRIPT is visible to the user, so make sure that it's complete and don't bother returning anything else.
138
+ </conventions>
139
+
140
+ <environment_info>
141
+ - System: {platform.system()}
142
+ - Python: {python_version}
143
+ - Directory: {os.getcwd()}
144
+ - Datetime: {datetime.datetime.now()}
145
+ - Active App: {current_app}
146
+ </environment_info>
147
+ </system_context>
148
+ """
149
+
150
+ EXAMPLES: str = """
151
+ <examples>
152
+ <example>
153
+ <user_request>Kill the process running on port 3000</user_request>
154
+ <rawdog_response>
155
+ ```python
156
+ import os
157
+ os.system("kill $(lsof -t -i:3000)")
158
+ print("Process killed")
159
+ ```
160
+ </rawdog_response>
161
+ </example>
162
+ <example>
163
+ <user_request>Summarize my essay</user_request>
164
+ <rawdog_response>
165
+ ```python
166
+ import glob
167
+ files = glob.glob("*essay*.*")
168
+ with open(files[0], "r") as f:
169
+ print(f.read())
170
+ ```
171
+ CONTINUE
172
+ </rawdog_response>
173
+ <user_response>
174
+ LAST SCRIPT OUTPUT:
175
+ John Smith
176
+ Essay 2021-09-01
177
+ ...
178
+ </user_response>
179
+ <rawdog_response>
180
+ ```python
181
+ print("The essay is about...")
182
+ ```
183
+ </rawdog_response>
184
+ </example>
185
+ <example>
186
+ <user_request>Weather in qazigund</user_request>
187
+ <rawdog_response>
188
+ ```python
189
+ from webscout import weather as w
190
+ weather = w.get("Qazigund")
191
+ w.print_weather(weather)
192
+ ```
193
+ </rawdog_response>
194
+ </example>
195
+ </examples>
196
+ """
197
+
198
+ if __name__ == "__main__":
199
+ # Simple test harness to print the current active window title.
200
200
  print("Current Active Window/Application: ", get_current_app())
@@ -22,15 +22,14 @@ from rich.status import Status
22
22
  from rich.rule import Rule
23
23
  from typing import Optional, Dict, Any, Generator, List, Tuple
24
24
  from webscout.AIutel import run_system_command, default_path
25
- from webscout import LitLogger, LogFormat, ColorScheme
26
- from webscout.litprinter import LitPrinter
25
+ from webscout import Logger, LogFormat
27
26
  from .autocoder_utiles import EXAMPLES, get_intro_prompt
28
27
 
29
28
  # Initialize LitLogger with custom format and colors
30
- logger = LitLogger(
29
+ logger = Logger(
31
30
  name="RawDog",
32
31
  format=LogFormat.MODERN_EMOJI,
33
- color_scheme=ColorScheme.CYBERPUNK
32
+
34
33
  )
35
34
 
36
35
  # Custom theme for consistent styling
@@ -97,11 +96,10 @@ class AutoCoder:
97
96
  self.ai_instance = ai_instance
98
97
 
99
98
  # Initialize logger with modern format and cyberpunk colors
100
- self.logger = LitLogger(
99
+ self.logger = Logger(
101
100
  name="AutoCoder",
102
101
  format=LogFormat.MODERN_EMOJI,
103
- color_scheme=ColorScheme.CYBERPUNK,
104
- console_output=not quiet
102
+
105
103
  )
106
104
 
107
105
  # Get Python version with enhanced logging