ngpt 3.0.3__tar.gz → 3.0.5__tar.gz

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 (60) hide show
  1. {ngpt-3.0.3 → ngpt-3.0.5}/.github/workflows/aur-publish.yml +8 -1
  2. {ngpt-3.0.3 → ngpt-3.0.5}/PKG-INFO +2 -2
  3. {ngpt-3.0.3 → ngpt-3.0.5}/README.md +1 -1
  4. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/interactive.py +4 -0
  5. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/modes/rewrite.py +8 -4
  6. {ngpt-3.0.3 → ngpt-3.0.5}/pyproject.toml +1 -1
  7. {ngpt-3.0.3 → ngpt-3.0.5}/uv.lock +1 -1
  8. {ngpt-3.0.3 → ngpt-3.0.5}/wiki.md +1 -1
  9. {ngpt-3.0.3 → ngpt-3.0.5}/.github/workflows/python-publish.yml +0 -0
  10. {ngpt-3.0.3 → ngpt-3.0.5}/.gitignore +0 -0
  11. {ngpt-3.0.3 → ngpt-3.0.5}/.python-version +0 -0
  12. {ngpt-3.0.3 → ngpt-3.0.5}/COMMIT_GUIDELINES.md +0 -0
  13. {ngpt-3.0.3 → ngpt-3.0.5}/CONTRIBUTING.md +0 -0
  14. {ngpt-3.0.3 → ngpt-3.0.5}/LICENSE +0 -0
  15. {ngpt-3.0.3 → ngpt-3.0.5}/PKGBUILD +0 -0
  16. {ngpt-3.0.3 → ngpt-3.0.5}/docs/CONTRIBUTING.md +0 -0
  17. {ngpt-3.0.3 → ngpt-3.0.5}/docs/LICENSE.md +0 -0
  18. {ngpt-3.0.3 → ngpt-3.0.5}/docs/README.md +0 -0
  19. {ngpt-3.0.3 → ngpt-3.0.5}/docs/_config.yml +0 -0
  20. {ngpt-3.0.3 → ngpt-3.0.5}/docs/api/README.md +0 -0
  21. {ngpt-3.0.3 → ngpt-3.0.5}/docs/api/cli.md +0 -0
  22. {ngpt-3.0.3 → ngpt-3.0.5}/docs/api/cli_config.md +0 -0
  23. {ngpt-3.0.3 → ngpt-3.0.5}/docs/api/client.md +0 -0
  24. {ngpt-3.0.3 → ngpt-3.0.5}/docs/api/config.md +0 -0
  25. {ngpt-3.0.3 → ngpt-3.0.5}/docs/api/logging.md +0 -0
  26. {ngpt-3.0.3 → ngpt-3.0.5}/docs/assets/css/style.scss +0 -0
  27. {ngpt-3.0.3 → ngpt-3.0.5}/docs/configuration.md +0 -0
  28. {ngpt-3.0.3 → ngpt-3.0.5}/docs/examples/README.md +0 -0
  29. {ngpt-3.0.3 → ngpt-3.0.5}/docs/examples/advanced.md +0 -0
  30. {ngpt-3.0.3 → ngpt-3.0.5}/docs/examples/basic.md +0 -0
  31. {ngpt-3.0.3 → ngpt-3.0.5}/docs/examples/cli_components.md +0 -0
  32. {ngpt-3.0.3 → ngpt-3.0.5}/docs/examples/integrations.md +0 -0
  33. {ngpt-3.0.3 → ngpt-3.0.5}/docs/installation.md +0 -0
  34. {ngpt-3.0.3 → ngpt-3.0.5}/docs/overview.md +0 -0
  35. {ngpt-3.0.3 → ngpt-3.0.5}/docs/usage/README.md +0 -0
  36. {ngpt-3.0.3 → ngpt-3.0.5}/docs/usage/cli_config.md +0 -0
  37. {ngpt-3.0.3 → ngpt-3.0.5}/docs/usage/cli_framework.md +0 -0
  38. {ngpt-3.0.3 → ngpt-3.0.5}/docs/usage/cli_usage.md +0 -0
  39. {ngpt-3.0.3 → ngpt-3.0.5}/docs/usage/gitcommsg.md +0 -0
  40. {ngpt-3.0.3 → ngpt-3.0.5}/docs/usage/library_usage.md +0 -0
  41. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/__init__.py +0 -0
  42. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/__main__.py +0 -0
  43. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/__init__.py +0 -0
  44. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/args.py +0 -0
  45. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/config_manager.py +0 -0
  46. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/formatters.py +0 -0
  47. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/main.py +0 -0
  48. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/modes/__init__.py +0 -0
  49. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/modes/chat.py +0 -0
  50. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/modes/code.py +0 -0
  51. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/modes/gitcommsg.py +0 -0
  52. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/modes/shell.py +0 -0
  53. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/modes/text.py +0 -0
  54. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/renderers.py +0 -0
  55. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/cli/ui.py +0 -0
  56. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/client.py +0 -0
  57. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/utils/__init__.py +0 -0
  58. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/utils/cli_config.py +0 -0
  59. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/utils/config.py +0 -0
  60. {ngpt-3.0.3 → ngpt-3.0.5}/ngpt/utils/log.py +0 -0
@@ -55,4 +55,11 @@ jobs:
55
55
  commit_message: "${{ github.event_name == 'workflow_dispatch' && 'Manual update to version' || 'Update to version' }} ${{ steps.extract_version.outputs.version }}"
56
56
  ssh_keyscan_types: rsa,ecdsa,ed25519
57
57
  updpkgsums: true # Let the action update checksums automatically
58
- test: false # Disable testing since the environment doesn't have necessary tools
58
+ test: false # Disable testing since the environment doesn't have necessary tools
59
+ force_push: false # Add this to ensure clean updates
60
+ allow_empty_commits: false
61
+ post_process: |
62
+ # Remove any tar.gz files
63
+ rm -f *.tar.gz
64
+ # List files to verify
65
+ ls -la
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ngpt
3
- Version: 3.0.3
3
+ Version: 3.0.5
4
4
  Summary: Swiss army knife for LLMs: powerful CLI, interactive chatbot, and flexible Python library. Works with OpenAI, Ollama, Groq, Claude, Gemini, and any OpenAI-compatible API.
5
5
  Project-URL: Homepage, https://github.com/nazdridoy/ngpt
6
6
  Project-URL: Repository, https://github.com/nazdridoy/ngpt
@@ -38,7 +38,7 @@ Description-Content-Type: text/markdown
38
38
 
39
39
  <p align="center">
40
40
  <a href="https://pypi.org/project/ngpt/"><img src="https://img.shields.io/pypi/v/ngpt.svg" alt="PyPI version"></a>
41
- <a href="https://aur.archlinux.org/packages/ngpt"><img src="https://img.shields.io/badge/AUR-ngpt-blue" alt="AUR package"></a>
41
+ <a href="https://aur.archlinux.org/packages/ngpt"><img alt="AUR Version" src="https://img.shields.io/aur/version/ngpt"></a>
42
42
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
43
43
  <a href="https://nazdridoy.github.io/ngpt/"><img src="https://img.shields.io/badge/docs-available-brightgreen.svg" alt="Documentation"></a>
44
44
  </p>
@@ -2,7 +2,7 @@
2
2
 
3
3
  <p align="center">
4
4
  <a href="https://pypi.org/project/ngpt/"><img src="https://img.shields.io/pypi/v/ngpt.svg" alt="PyPI version"></a>
5
- <a href="https://aur.archlinux.org/packages/ngpt"><img src="https://img.shields.io/badge/AUR-ngpt-blue" alt="AUR package"></a>
5
+ <a href="https://aur.archlinux.org/packages/ngpt"><img alt="AUR Version" src="https://img.shields.io/aur/version/ngpt"></a>
6
6
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
7
7
  <a href="https://nazdridoy.github.io/ngpt/"><img src="https://img.shields.io/badge/docs-available-brightgreen.svg" alt="Documentation"></a>
8
8
  </p>
@@ -3,6 +3,7 @@ import shutil
3
3
  import traceback
4
4
  import threading
5
5
  import sys
6
+ import time
6
7
  from .formatters import COLORS
7
8
  from .renderers import prettify_markdown, prettify_streaming_markdown
8
9
 
@@ -289,6 +290,9 @@ def interactive_chat_session(client, web_search=False, no_stream=False, temperat
289
290
  # Print separator between exchanges
290
291
  print_separator()
291
292
 
293
+ # Add a small delay to ensure terminal stability
294
+ time.sleep(0.1)
295
+
292
296
  except KeyboardInterrupt:
293
297
  print(f"\n\n{COLORS['yellow']}Chat session interrupted by user.{COLORS['reset']}")
294
298
  except Exception as e:
@@ -1,6 +1,7 @@
1
1
  import sys
2
2
  import platform
3
3
  import threading
4
+ import time
4
5
  from ..formatters import COLORS
5
6
  from ..renderers import prettify_markdown, prettify_streaming_markdown
6
7
  from ..ui import get_multiline_input, spinner
@@ -75,7 +76,6 @@ def get_terminal_input():
75
76
  # Windows-specific solution
76
77
  try:
77
78
  import msvcrt
78
- print("Press Y/N...", end="")
79
79
  sys.stdout.flush()
80
80
  # Wait for a keypress
81
81
  char = msvcrt.getch().decode('utf-8').lower()
@@ -181,7 +181,7 @@ def rewrite_mode(client, args, logger=None):
181
181
  # Stop the spinner
182
182
  stop_spinner_func()
183
183
  # Ensure spinner message is cleared with an extra blank line
184
- sys.stdout.write("\r" + " " * 100 + "\r")
184
+ sys.stdout.write("\r" + " " * 100 + "\r\n")
185
185
  sys.stdout.flush()
186
186
 
187
187
  # Call the original callback to update the display
@@ -211,6 +211,8 @@ def rewrite_mode(client, args, logger=None):
211
211
  # Stop live display if using stream-prettify
212
212
  if args.stream_prettify and live_display:
213
213
  live_display.stop()
214
+ # Add a small delay to ensure terminal stability
215
+ time.sleep(0.2)
214
216
 
215
217
  # Log the AI response if logging is enabled
216
218
  if logger and response:
@@ -227,7 +229,9 @@ def rewrite_mode(client, args, logger=None):
227
229
  if not args.no_stream and sys.stdout.isatty():
228
230
  try:
229
231
  # Make sure to flush output before asking for input
230
- print("\nCopy to clipboard? (y/n) ", end="")
232
+ # Make the prompt more visible with colors and formatting
233
+ clipboard_prompt = f"{COLORS['cyan']}{COLORS['bold']}Copy to clipboard? (y/n){COLORS['reset']} "
234
+ print(clipboard_prompt, end="")
231
235
  sys.stdout.flush()
232
236
 
233
237
  # Cross-platform terminal input
@@ -237,7 +241,7 @@ def rewrite_mode(client, args, logger=None):
237
241
  try:
238
242
  import pyperclip
239
243
  pyperclip.copy(response)
240
- print("Copied to clipboard.")
244
+ print(f"{COLORS['green']}Copied to clipboard.{COLORS['reset']}")
241
245
  except ImportError:
242
246
  print(f"{COLORS['yellow']}pyperclip not installed. Try: pip install \"ngpt[clipboard]\" {COLORS['reset']}")
243
247
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ngpt"
3
- version = "3.0.3"
3
+ version = "3.0.5"
4
4
  description = "Swiss army knife for LLMs: powerful CLI, interactive chatbot, and flexible Python library. Works with OpenAI, Ollama, Groq, Claude, Gemini, and any OpenAI-compatible API."
5
5
  authors = [
6
6
  {name = "nazDridoy", email = "nazdridoy399@gmail.com"},
@@ -134,7 +134,7 @@ wheels = [
134
134
 
135
135
  [[package]]
136
136
  name = "ngpt"
137
- version = "3.0.3"
137
+ version = "3.0.5"
138
138
  source = { editable = "." }
139
139
  dependencies = [
140
140
  { name = "prompt-toolkit" },
@@ -87,7 +87,7 @@ ngpt -i
87
87
 
88
88
  <p align="center">
89
89
  <a href="https://pypi.org/project/ngpt/"><img src="https://img.shields.io/pypi/v/ngpt.svg" alt="PyPI version"></a>
90
- <a href="https://aur.archlinux.org/packages/ngpt"><img src="https://img.shields.io/badge/AUR-ngpt-blue" alt="AUR package"></a>
90
+ <a href="https://aur.archlinux.org/packages/ngpt"><img alt="AUR Version" src="https://img.shields.io/aur/version/ngpt"></a>
91
91
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
92
92
  <a href="https://nazdridoy.github.io/ngpt/"><img src="https://img.shields.io/badge/docs-available-brightgreen.svg" alt="Documentation"></a>
93
93
  </p>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes