ngpt 3.9.4__tar.gz → 3.9.6__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 (66) hide show
  1. {ngpt-3.9.4 → ngpt-3.9.6}/PKG-INFO +1 -1
  2. {ngpt-3.9.4 → ngpt-3.9.6}/docs/examples/role_gallery.md +14 -0
  3. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/modes/gitcommsg.py +20 -0
  4. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/modes/text.py +10 -2
  5. ngpt-3.9.6/previews/icon.png +0 -0
  6. ngpt-3.9.6/previews/social-preview.png +0 -0
  7. {ngpt-3.9.4 → ngpt-3.9.6}/pyproject.toml +1 -1
  8. {ngpt-3.9.4 → ngpt-3.9.6}/uv.lock +1 -1
  9. {ngpt-3.9.4 → ngpt-3.9.6}/.github/banner.svg +0 -0
  10. {ngpt-3.9.4 → ngpt-3.9.6}/.github/workflows/aur-publish.yml +0 -0
  11. {ngpt-3.9.4 → ngpt-3.9.6}/.github/workflows/python-publish.yml +0 -0
  12. {ngpt-3.9.4 → ngpt-3.9.6}/.github/workflows/repo-mirror.yml +0 -0
  13. {ngpt-3.9.4 → ngpt-3.9.6}/.gitignore +0 -0
  14. {ngpt-3.9.4 → ngpt-3.9.6}/.python-version +0 -0
  15. {ngpt-3.9.4 → ngpt-3.9.6}/COMMIT_GUIDELINES.md +0 -0
  16. {ngpt-3.9.4 → ngpt-3.9.6}/CONTRIBUTING.md +0 -0
  17. {ngpt-3.9.4 → ngpt-3.9.6}/LICENSE +0 -0
  18. {ngpt-3.9.4 → ngpt-3.9.6}/PKGBUILD +0 -0
  19. {ngpt-3.9.4 → ngpt-3.9.6}/README.md +0 -0
  20. {ngpt-3.9.4 → ngpt-3.9.6}/docs/CONTRIBUTING.md +0 -0
  21. {ngpt-3.9.4 → ngpt-3.9.6}/docs/LICENSE.md +0 -0
  22. {ngpt-3.9.4 → ngpt-3.9.6}/docs/_config.yml +0 -0
  23. {ngpt-3.9.4 → ngpt-3.9.6}/docs/_sass/custom/custom.scss +0 -0
  24. {ngpt-3.9.4 → ngpt-3.9.6}/docs/configuration.md +0 -0
  25. {ngpt-3.9.4 → ngpt-3.9.6}/docs/examples/advanced.md +0 -0
  26. {ngpt-3.9.4 → ngpt-3.9.6}/docs/examples/basic.md +0 -0
  27. {ngpt-3.9.4 → ngpt-3.9.6}/docs/examples.md +0 -0
  28. {ngpt-3.9.4 → ngpt-3.9.6}/docs/index.md +0 -0
  29. {ngpt-3.9.4 → ngpt-3.9.6}/docs/installation.md +0 -0
  30. {ngpt-3.9.4 → ngpt-3.9.6}/docs/overview.md +0 -0
  31. {ngpt-3.9.4 → ngpt-3.9.6}/docs/usage/cli_config.md +0 -0
  32. {ngpt-3.9.4 → ngpt-3.9.6}/docs/usage/cli_usage.md +0 -0
  33. {ngpt-3.9.4 → ngpt-3.9.6}/docs/usage/gitcommsg.md +0 -0
  34. {ngpt-3.9.4 → ngpt-3.9.6}/docs/usage/roles.md +0 -0
  35. {ngpt-3.9.4 → ngpt-3.9.6}/docs/usage/web_search.md +0 -0
  36. {ngpt-3.9.4 → ngpt-3.9.6}/docs/usage.md +0 -0
  37. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/__init__.py +0 -0
  38. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/__main__.py +0 -0
  39. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/__init__.py +0 -0
  40. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/args.py +0 -0
  41. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/config_manager.py +0 -0
  42. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/formatters.py +0 -0
  43. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/main.py +0 -0
  44. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/modes/__init__.py +0 -0
  45. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/modes/chat.py +0 -0
  46. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/modes/code.py +0 -0
  47. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/modes/interactive.py +0 -0
  48. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/modes/rewrite.py +0 -0
  49. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/modes/shell.py +0 -0
  50. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/renderers.py +0 -0
  51. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/roles.py +0 -0
  52. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/cli/ui.py +0 -0
  53. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/client.py +0 -0
  54. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/utils/__init__.py +0 -0
  55. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/utils/cli_config.py +0 -0
  56. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/utils/config.py +0 -0
  57. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/utils/log.py +0 -0
  58. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/utils/pipe.py +0 -0
  59. {ngpt-3.9.4 → ngpt-3.9.6}/ngpt/utils/web_search.py +0 -0
  60. {ngpt-3.9.4 → ngpt-3.9.6}/previews/ngpt-g.png +0 -0
  61. {ngpt-3.9.4 → ngpt-3.9.6}/previews/ngpt-i.png +0 -0
  62. {ngpt-3.9.4 → ngpt-3.9.6}/previews/ngpt-s-c.png +0 -0
  63. {ngpt-3.9.4 → ngpt-3.9.6}/previews/ngpt-sh-c-a.png +0 -0
  64. {ngpt-3.9.4 → ngpt-3.9.6}/previews/ngpt-w-self.png +0 -0
  65. {ngpt-3.9.4 → ngpt-3.9.6}/previews/ngpt-w.png +0 -0
  66. {ngpt-3.9.4 → ngpt-3.9.6}/wiki.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ngpt
3
- Version: 3.9.4
3
+ Version: 3.9.6
4
4
  Summary: A Swiss army knife for LLMs: A fast, lightweight CLI and interactive chat tool that brings the power of any OpenAI-compatible LLM (OpenAI, Ollama, Groq, Claude, Gemini, etc.) straight to your terminal. rewrite texts or refine code, craft git commit messages, generate and run OS-aware shell commands.
5
5
  Project-URL: Homepage, https://github.com/nazdridoy/ngpt
6
6
  Project-URL: Repository, https://github.com/nazdridoy/ngpt
@@ -655,6 +655,20 @@ You are an academic research expert. When addressing research questions:
655
655
  Maintain academic integrity and precision while making complex topics accessible.
656
656
  ```
657
657
 
658
+ ### HRM Professor (BBA/MBA Level)
659
+
660
+ ```
661
+ You are an Educator and Professor specializing in Human Resource Management (HRM) for BBA/MBA students. When explaining concepts or addressing questions:
662
+ 1 Explain HRM concepts, theories, and models with clarity, depth, and academic rigor appropriate for the BBA/MBA level.
663
+ 2 Connect theoretical frameworks to practical applications using relevant business examples, case studies, and industry best practices.
664
+ 3 Cover the core functions and strategic aspects of HRM, including workforce planning, talent acquisition, learning & development, compensation & benefits, performance management, employee relations, and HR analytics.
665
+ 4 Address current trends, challenges, and future directions in HRM, such as the impact of technology, diversity & inclusion, organizational change, and the changing nature of work.
666
+ 5 Emphasize the strategic importance of HRM for organizational success and provide managerial insights relevant to future leaders.
667
+ 6 Encourage critical thinking and analysis of complex HR issues, ethical dilemmas, and cross-cultural considerations.
668
+ 7 Structure responses logically, breaking down complex topics into understandable components.
669
+ Maintain academic integrity and precision while making complex topics accessible.
670
+ ```
671
+
658
672
  ### Interview Question Generator
659
673
 
660
674
  ```
@@ -998,6 +998,23 @@ def is_git_diff(content):
998
998
 
999
999
  return False
1000
1000
 
1001
+ def strip_code_block_formatting(text):
1002
+ """Strip code block formatting from the text if present.
1003
+
1004
+ Args:
1005
+ text: Text to strip code block formatting from
1006
+
1007
+ Returns:
1008
+ str: Text without code block formatting
1009
+ """
1010
+ # Check if the text starts with ``` and ends with ```
1011
+ pattern = r'^```(?:.*?)\n(.*?)```$'
1012
+ match = re.search(pattern, text, re.DOTALL)
1013
+ if match:
1014
+ # Extract content between backticks and remove any trailing whitespace
1015
+ return match.group(1).rstrip()
1016
+ return text
1017
+
1001
1018
  def gitcommsg_mode(client, args, logger=None):
1002
1019
  """Handle the Git commit message generation mode.
1003
1020
 
@@ -1183,6 +1200,9 @@ def gitcommsg_mode(client, args, logger=None):
1183
1200
  print(f"{COLORS['red']}Failed to generate commit message.{COLORS['reset']}")
1184
1201
  return
1185
1202
 
1203
+ # Strip any code block formatting
1204
+ result = strip_code_block_formatting(result)
1205
+
1186
1206
  # Display the result
1187
1207
  print(f"\n{COLORS['green']}✨ Generated Commit Message:{COLORS['reset']}\n")
1188
1208
  print(result)
@@ -1,9 +1,10 @@
1
1
  from ..formatters import COLORS
2
2
  from ..renderers import prettify_markdown, prettify_streaming_markdown, TERMINAL_RENDER_LOCK
3
- from ..ui import get_multiline_input, spinner
3
+ from ..ui import get_multiline_input, spinner, copy_to_clipboard
4
4
  from ...utils import enhance_prompt_with_web_search
5
5
  import threading
6
6
  import sys
7
+ import time
7
8
 
8
9
  def text_mode(client, args, logger=None):
9
10
  """Handle the multi-line text input mode.
@@ -152,6 +153,8 @@ def text_mode(client, args, logger=None):
152
153
  # Before stopping the live display, update with complete=True to show final formatted content
153
154
  if stream_callback and response:
154
155
  stream_callback(response, complete=True)
156
+ # Add a small delay to ensure terminal stability
157
+ time.sleep(0.2)
155
158
 
156
159
  # Log the AI response if logging is enabled
157
160
  if logger and response:
@@ -163,4 +166,9 @@ def text_mode(client, args, logger=None):
163
166
  if args.prettify:
164
167
  prettify_markdown(response, args.renderer)
165
168
  else:
166
- print(response)
169
+ print(response)
170
+
171
+ # Offer to copy to clipboard if not in a redirected output
172
+ if not args.no_stream and response:
173
+ with TERMINAL_RENDER_LOCK:
174
+ copy_to_clipboard(response)
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ngpt"
3
- version = "3.9.4"
3
+ version = "3.9.6"
4
4
  description = "A Swiss army knife for LLMs: A fast, lightweight CLI and interactive chat tool that brings the power of any OpenAI-compatible LLM (OpenAI, Ollama, Groq, Claude, Gemini, etc.) straight to your terminal. rewrite texts or refine code, craft git commit messages, generate and run OS-aware shell commands."
5
5
  authors = [
6
6
  {name = "nazDridoy", email = "nazdridoy399@gmail.com"},
@@ -148,7 +148,7 @@ wheels = [
148
148
 
149
149
  [[package]]
150
150
  name = "ngpt"
151
- version = "3.9.4"
151
+ version = "3.9.6"
152
152
  source = { editable = "." }
153
153
  dependencies = [
154
154
  { name = "beautifulsoup4" },
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
File without changes
File without changes
File without changes
File without changes
File without changes