ngpt 2.12.0__py3-none-any.whl → 2.13.0__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.
- ngpt/cli/args.py +2 -0
- ngpt/cli/formatters.py +1 -0
- ngpt/cli/main.py +9 -1
- ngpt/cli/modes/__init__.py +2 -1
- ngpt/cli/modes/rewrite.py +209 -0
- {ngpt-2.12.0.dist-info → ngpt-2.13.0.dist-info}/METADATA +54 -28
- {ngpt-2.12.0.dist-info → ngpt-2.13.0.dist-info}/RECORD +10 -9
- {ngpt-2.12.0.dist-info → ngpt-2.13.0.dist-info}/WHEEL +0 -0
- {ngpt-2.12.0.dist-info → ngpt-2.13.0.dist-info}/entry_points.txt +0 -0
- {ngpt-2.12.0.dist-info → ngpt-2.13.0.dist-info}/licenses/LICENSE +0 -0
ngpt/cli/args.py
CHANGED
@@ -101,6 +101,8 @@ def setup_argument_parser():
|
|
101
101
|
help='Enter multi-line text input (submit with Ctrl+D)')
|
102
102
|
mode_exclusive_group.add_argument('--stdin', action='store_true',
|
103
103
|
help='Read from stdin and use content with prompt. Use {} in prompt as placeholder for stdin content')
|
104
|
+
mode_exclusive_group.add_argument('--rewrite', action='store_true',
|
105
|
+
help='Rewrite text from stdin to be more natural while preserving tone and meaning')
|
104
106
|
|
105
107
|
return parser
|
106
108
|
|
ngpt/cli/formatters.py
CHANGED
ngpt/cli/main.py
CHANGED
@@ -23,6 +23,7 @@ from .modes.chat import chat_mode
|
|
23
23
|
from .modes.code import code_mode
|
24
24
|
from .modes.shell import shell_mode
|
25
25
|
from .modes.text import text_mode
|
26
|
+
from .modes.rewrite import rewrite_mode
|
26
27
|
from .args import parse_args, validate_args, handle_cli_config_args, setup_argument_parser, validate_markdown_renderer
|
27
28
|
|
28
29
|
def show_cli_config_help():
|
@@ -460,7 +461,7 @@ def main():
|
|
460
461
|
return
|
461
462
|
|
462
463
|
# For interactive mode, we'll allow continuing without a specific prompt
|
463
|
-
if not args.prompt and not (args.shell or args.code or args.text or args.interactive or args.show_config or args.list_models):
|
464
|
+
if not args.prompt and not (args.shell or args.code or args.text or args.interactive or args.show_config or args.list_models or args.rewrite):
|
464
465
|
# Simply use the parser's help
|
465
466
|
parser = setup_argument_parser()
|
466
467
|
parser.print_help()
|
@@ -549,6 +550,13 @@ def main():
|
|
549
550
|
# Stdin mode (using the chat mode with stdin input)
|
550
551
|
chat_mode(client, args, logger=logger)
|
551
552
|
|
553
|
+
elif args.rewrite:
|
554
|
+
# Apply CLI config for rewrite mode
|
555
|
+
args = apply_cli_config(args, "all")
|
556
|
+
|
557
|
+
# Rewrite mode (process stdin)
|
558
|
+
rewrite_mode(client, args, logger=logger)
|
559
|
+
|
552
560
|
else:
|
553
561
|
# Default to chat mode
|
554
562
|
# Apply CLI config for default chat mode
|
ngpt/cli/modes/__init__.py
CHANGED
@@ -2,5 +2,6 @@ from .chat import chat_mode
|
|
2
2
|
from .code import code_mode
|
3
3
|
from .shell import shell_mode
|
4
4
|
from .text import text_mode
|
5
|
+
from .rewrite import rewrite_mode
|
5
6
|
|
6
|
-
__all__ = ['chat_mode', 'code_mode', 'shell_mode', 'text_mode']
|
7
|
+
__all__ = ['chat_mode', 'code_mode', 'shell_mode', 'text_mode', 'rewrite_mode']
|
@@ -0,0 +1,209 @@
|
|
1
|
+
import sys
|
2
|
+
import platform
|
3
|
+
from ..formatters import COLORS
|
4
|
+
from ..renderers import prettify_markdown, prettify_streaming_markdown
|
5
|
+
from ..ui import get_multiline_input
|
6
|
+
|
7
|
+
# System prompt for rewriting text
|
8
|
+
REWRITE_SYSTEM_PROMPT = """You are an expert text editor and rewriter. Your task is to rewrite the user's text to improve readability and flow while carefully preserving the original meaning, tone, and style.
|
9
|
+
|
10
|
+
PRIMARY GOAL:
|
11
|
+
Improve the quality and clarity of writing without changing the author's voice or intent.
|
12
|
+
|
13
|
+
PRESERVATION RULES (HIGHEST PRIORITY):
|
14
|
+
1. Preserve the exact meaning and information content
|
15
|
+
2. Maintain the original tone (formal/casual/technical/friendly/serious/rude)
|
16
|
+
3. Keep the author's perspective and point of view
|
17
|
+
4. Respect the style of expression when intentional
|
18
|
+
5. Retain technical terminology, jargon, and domain-specific language
|
19
|
+
6. Keep all facts, data points, quotes, and references exactly as provided
|
20
|
+
|
21
|
+
IMPROVEMENT FOCUS:
|
22
|
+
1. Fix grammar, spelling, and punctuation errors
|
23
|
+
2. Improve sentence structure and flow
|
24
|
+
3. Enhance clarity and readability
|
25
|
+
4. Make language more concise and precise
|
26
|
+
5. Replace awkward phrasings with more natural alternatives
|
27
|
+
6. Break up sentences longer than 25 words
|
28
|
+
7. Convert passive voice to active when appropriate
|
29
|
+
8. Remove redundancies, filler words, and unnecessary repetition
|
30
|
+
|
31
|
+
FORMAT PRESERVATION:
|
32
|
+
1. Maintain all paragraph breaks and section structures
|
33
|
+
2. Preserve formatting of lists, bullet points, and numbering
|
34
|
+
3. Keep code blocks (```) exactly as they appear with no changes to code
|
35
|
+
4. Respect all markdown formatting (bold, italic, headers, etc.)
|
36
|
+
5. Preserve URLs, email addresses, file paths, and variables exactly
|
37
|
+
6. Maintain the structure of tables and other special formats
|
38
|
+
|
39
|
+
CONTENT-SPECIFIC GUIDANCE:
|
40
|
+
- For technical content: Prioritize precision and clarity over stylistic changes
|
41
|
+
- For casual text: Maintain conversational flow and personality
|
42
|
+
- For formal writing: Preserve professionalism while improving structure
|
43
|
+
- For emotional content: Carefully maintain the emotional resonance and intensity
|
44
|
+
|
45
|
+
STRICTLY AVOID:
|
46
|
+
1. Adding new information not present in the original
|
47
|
+
2. Removing key points or substantive content
|
48
|
+
3. Significantly changing the formality level
|
49
|
+
4. Inserting your own opinions or commentary
|
50
|
+
5. Explaining what you changed (just provide the improved text)
|
51
|
+
6. Altering the meaning of any sentence, even slightly
|
52
|
+
7. Changing domain-specific terminology or jargon to general terms
|
53
|
+
|
54
|
+
OUTPUT INSTRUCTION:
|
55
|
+
Provide ONLY the rewritten text with no explanations, comments, or meta-text.
|
56
|
+
|
57
|
+
EXAMPLES:
|
58
|
+
|
59
|
+
ORIGINAL: "The implementation of the feature, which was delayed due to unforeseen technical complications, is now scheduled for next week's release."
|
60
|
+
BETTER: "We delayed the feature implementation due to unforeseen technical complications. It's now scheduled for next week's release."
|
61
|
+
|
62
|
+
ORIGINAL: "We was hoping you could help with this issue what we are having with the server."
|
63
|
+
BETTER: "We were hoping you could help with this issue we're having with the server."
|
64
|
+
|
65
|
+
ORIGINAL: "The user interface, which is built using React, Redux, and various other frontend technologies, needs to be redesigned to accommodate the new features that we want to add to the application."
|
66
|
+
BETTER: "The React/Redux user interface needs redesigning to accommodate our planned new features."
|
67
|
+
"""
|
68
|
+
|
69
|
+
def get_terminal_input():
|
70
|
+
"""Get input from terminal in a cross-platform way, even when stdin is redirected."""
|
71
|
+
if platform.system() == 'Windows':
|
72
|
+
# Windows-specific solution
|
73
|
+
try:
|
74
|
+
import msvcrt
|
75
|
+
print("Press Y/N...", end="")
|
76
|
+
sys.stdout.flush()
|
77
|
+
# Wait for a keypress
|
78
|
+
char = msvcrt.getch().decode('utf-8').lower()
|
79
|
+
print(char) # Echo the character
|
80
|
+
return char
|
81
|
+
except ImportError:
|
82
|
+
# Fallback if msvcrt is not available
|
83
|
+
return None
|
84
|
+
else:
|
85
|
+
# Unix-like systems (Linux, macOS)
|
86
|
+
try:
|
87
|
+
with open('/dev/tty', 'r') as tty:
|
88
|
+
return tty.readline().strip().lower()
|
89
|
+
except (IOError, OSError):
|
90
|
+
return None
|
91
|
+
|
92
|
+
def rewrite_mode(client, args, logger=None):
|
93
|
+
"""Handle the text rewriting mode.
|
94
|
+
|
95
|
+
Args:
|
96
|
+
client: The NGPTClient instance
|
97
|
+
args: The parsed command-line arguments
|
98
|
+
logger: Optional logger instance
|
99
|
+
"""
|
100
|
+
# Determine the input source (stdin pipe, command-line argument, or multiline input)
|
101
|
+
if not sys.stdin.isatty():
|
102
|
+
# Read from stdin if data is piped
|
103
|
+
input_text = sys.stdin.read().strip()
|
104
|
+
|
105
|
+
# If stdin is empty but prompt is provided, use the prompt
|
106
|
+
if not input_text and args.prompt:
|
107
|
+
input_text = args.prompt
|
108
|
+
elif args.prompt:
|
109
|
+
# Use the command-line argument if provided
|
110
|
+
input_text = args.prompt
|
111
|
+
else:
|
112
|
+
# No pipe or prompt - use multiline input
|
113
|
+
print("Enter or paste text to rewrite (Ctrl+D or Ctrl+Z to submit):")
|
114
|
+
input_text = get_multiline_input()
|
115
|
+
if input_text is None:
|
116
|
+
# Input was cancelled or empty
|
117
|
+
print("Exiting.")
|
118
|
+
return
|
119
|
+
|
120
|
+
# Check if input is empty
|
121
|
+
if not input_text:
|
122
|
+
print(f"{COLORS['yellow']}Error: Empty input. Please provide text to rewrite.{COLORS['reset']}")
|
123
|
+
return
|
124
|
+
|
125
|
+
# Set up messages array with system prompt and user content
|
126
|
+
messages = [
|
127
|
+
{"role": "system", "content": REWRITE_SYSTEM_PROMPT},
|
128
|
+
{"role": "user", "content": input_text}
|
129
|
+
]
|
130
|
+
|
131
|
+
print("\nSubmission successful. Waiting for response...")
|
132
|
+
|
133
|
+
# Log the messages if logging is enabled
|
134
|
+
if logger:
|
135
|
+
logger.log("system", REWRITE_SYSTEM_PROMPT)
|
136
|
+
logger.log("user", input_text)
|
137
|
+
|
138
|
+
# Set default streaming behavior based on --no-stream and --prettify arguments
|
139
|
+
should_stream = not args.no_stream and not args.prettify
|
140
|
+
|
141
|
+
# If stream-prettify is enabled
|
142
|
+
stream_callback = None
|
143
|
+
live_display = None
|
144
|
+
|
145
|
+
if args.stream_prettify:
|
146
|
+
should_stream = True # Enable streaming
|
147
|
+
live_display, stream_callback = prettify_streaming_markdown(args.renderer)
|
148
|
+
if not live_display:
|
149
|
+
# Fallback to normal prettify if live display setup failed
|
150
|
+
args.prettify = True
|
151
|
+
args.stream_prettify = False
|
152
|
+
should_stream = False
|
153
|
+
print(f"{COLORS['yellow']}Falling back to regular prettify mode.{COLORS['reset']}")
|
154
|
+
|
155
|
+
# If regular prettify is enabled with streaming, inform the user
|
156
|
+
if args.prettify and not args.no_stream:
|
157
|
+
print(f"{COLORS['yellow']}Note: Streaming disabled to enable markdown rendering.{COLORS['reset']}")
|
158
|
+
|
159
|
+
# Start live display if using stream-prettify
|
160
|
+
if args.stream_prettify and live_display:
|
161
|
+
live_display.start()
|
162
|
+
|
163
|
+
response = client.chat(
|
164
|
+
prompt=None, # Not used when messages are provided
|
165
|
+
stream=should_stream,
|
166
|
+
web_search=args.web_search,
|
167
|
+
temperature=args.temperature,
|
168
|
+
top_p=args.top_p,
|
169
|
+
max_tokens=args.max_tokens,
|
170
|
+
markdown_format=args.prettify or args.stream_prettify,
|
171
|
+
stream_callback=stream_callback,
|
172
|
+
messages=messages # Use messages array instead of prompt
|
173
|
+
)
|
174
|
+
|
175
|
+
# Stop live display if using stream-prettify
|
176
|
+
if args.stream_prettify and live_display:
|
177
|
+
live_display.stop()
|
178
|
+
|
179
|
+
# Log the AI response if logging is enabled
|
180
|
+
if logger and response:
|
181
|
+
logger.log("assistant", response)
|
182
|
+
|
183
|
+
# Handle non-stream response or regular prettify
|
184
|
+
if (args.no_stream or args.prettify) and response:
|
185
|
+
if args.prettify:
|
186
|
+
prettify_markdown(response, args.renderer)
|
187
|
+
else:
|
188
|
+
print(response)
|
189
|
+
|
190
|
+
# Offer to copy to clipboard if not in a redirected output
|
191
|
+
if not args.no_stream and sys.stdout.isatty():
|
192
|
+
try:
|
193
|
+
# Make sure to flush output before asking for input
|
194
|
+
print("\nCopy to clipboard? (y/n) ", end="")
|
195
|
+
sys.stdout.flush()
|
196
|
+
|
197
|
+
# Cross-platform terminal input
|
198
|
+
answer = get_terminal_input()
|
199
|
+
|
200
|
+
if answer == 'y':
|
201
|
+
try:
|
202
|
+
import pyperclip
|
203
|
+
pyperclip.copy(response)
|
204
|
+
print("Copied to clipboard.")
|
205
|
+
except ImportError:
|
206
|
+
print(f"{COLORS['yellow']}pyperclip not installed. Try: pip install \"ngpt[clipboard]\" {COLORS['reset']}")
|
207
|
+
|
208
|
+
except (KeyboardInterrupt, EOFError):
|
209
|
+
pass
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: ngpt
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.13.0
|
4
4
|
Summary: A lightweight Python CLI and library for interacting with OpenAI-compatible APIs, supporting both official and self-hosted LLM endpoints.
|
5
5
|
Project-URL: Homepage, https://github.com/nazdridoy/ngpt
|
6
6
|
Project-URL: Repository, https://github.com/nazdridoy/ngpt
|
@@ -29,6 +29,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
29
29
|
Classifier: Topic :: Utilities
|
30
30
|
Requires-Python: >=3.8
|
31
31
|
Requires-Dist: prompt-toolkit>=3.0.0
|
32
|
+
Requires-Dist: pyperclip>=1.8.0
|
32
33
|
Requires-Dist: requests>=2.31.0
|
33
34
|
Requires-Dist: rich>=10.0.0
|
34
35
|
Description-Content-Type: text/markdown
|
@@ -103,6 +104,15 @@ ngpt --shell "list all files in the current directory"
|
|
103
104
|
# Read from stdin and use the content in your prompt
|
104
105
|
echo "What is this text about?" | ngpt --stdin "Analyze the following text: {}"
|
105
106
|
|
107
|
+
# Rewrite text to improve quality while preserving tone and meaning
|
108
|
+
echo "your text" | ngpt --rewrite
|
109
|
+
|
110
|
+
# Rewrite text from a command-line argument
|
111
|
+
ngpt --rewrite "your text to rewrite"
|
112
|
+
|
113
|
+
# Use interactive multiline editor to enter text to rewrite
|
114
|
+
ngpt --rewrite
|
115
|
+
|
106
116
|
# Display markdown responses with beautiful formatting
|
107
117
|
ngpt --prettify "Explain markdown syntax with examples"
|
108
118
|
|
@@ -138,10 +148,12 @@ For more examples and detailed usage, visit the [CLI Usage Guide](https://nazdri
|
|
138
148
|
- 💬 **Interactive Chat**: Continuous conversation with memory in modern UI
|
139
149
|
- 📊 **Streaming Responses**: Real-time output for better user experience
|
140
150
|
- 🔍 **Web Search**: Integrated with compatible API endpoints
|
151
|
+
- 📥 **Stdin Processing**: Process piped content by using `{}` placeholder in prompts
|
141
152
|
- 🎨 **Markdown Rendering**: Beautiful formatting of markdown and code with syntax highlighting
|
142
153
|
- ⚡ **Real-time Markdown**: Stream responses with live updating syntax highlighting and formatting
|
143
154
|
- ⚙️ **Multiple Configurations**: Cross-platform config system supporting different profiles
|
144
155
|
- 💻 **Shell Command Generation**: OS-aware command execution
|
156
|
+
- 🧠 **Text Rewriting**: Improve text quality while maintaining original tone and meaning
|
145
157
|
- 🧩 **Clean Code Generation**: Output code without markdown or explanations
|
146
158
|
- 📝 **Rich Multiline Editor**: Interactive multiline text input with syntax highlighting and intuitive controls
|
147
159
|
- 🎭 **System Prompts**: Customize model behavior with custom system prompts
|
@@ -349,38 +361,52 @@ For detailed information about building CLI tools with nGPT, see the [CLI Framew
|
|
349
361
|
|
350
362
|
### Command Line Options
|
351
363
|
|
352
|
-
You can configure
|
364
|
+
You can configure nGPT using the following options:
|
365
|
+
|
366
|
+
#### Mode Options (Mutually Exclusive)
|
367
|
+
|
368
|
+
| Option | Description |
|
369
|
+
|--------|-------------|
|
370
|
+
| `-i, --interactive` | Start an interactive chat session with conversation memory and special commands |
|
371
|
+
| `-s, --shell` | Generate and execute shell commands appropriate for your operating system |
|
372
|
+
| `-c, --code` | Generate clean code without markdown formatting or explanations |
|
373
|
+
| `-t, --text` | Open interactive multiline editor for complex prompts with syntax highlighting |
|
374
|
+
| `--stdin` | Read from stdin and use content with prompt. Use {} in prompt as placeholder for stdin content |
|
375
|
+
| `--rewrite` | Rewrite text to improve quality while preserving original tone and meaning |
|
376
|
+
|
377
|
+
#### Global Options
|
353
378
|
|
354
379
|
| Option | Description |
|
355
380
|
|--------|-------------|
|
356
|
-
| `--api-key` | API key for the service |
|
357
|
-
| `--base-url` | Base URL for the API |
|
358
|
-
| `--model` | Model to use |
|
359
|
-
| `--
|
360
|
-
| `--
|
381
|
+
| `--api-key KEY` | API key for the service |
|
382
|
+
| `--base-url URL` | Base URL for the API |
|
383
|
+
| `--model MODEL` | Model to use |
|
384
|
+
| `--web-search` | Enable web search capability (if your API endpoint supports it) |
|
385
|
+
| `--temperature VALUE` | Set temperature (controls randomness, default: 0.7) |
|
386
|
+
| `--top_p VALUE` | Set top_p (controls diversity, default: 1.0) |
|
387
|
+
| `--max_tokens NUMBER` | Set maximum response length in tokens |
|
388
|
+
| `--preprompt TEXT` | Set custom system prompt to control AI behavior |
|
389
|
+
| `--language LANG` | Programming language to generate code in (for code mode, default: python) |
|
361
390
|
| `--no-stream` | Return the whole response without streaming |
|
362
|
-
| `--
|
363
|
-
| `--
|
364
|
-
| `--
|
365
|
-
| `--
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
|
370
|
-
|
371
|
-
| `--config` | Path to a custom
|
372
|
-
| `--config-index` | Index of the configuration to use (default: 0) |
|
373
|
-
| `--provider` | Provider name to identify the configuration to use
|
391
|
+
| `--prettify` | Render markdown responses and code with syntax highlighting and formatting |
|
392
|
+
| `--stream-prettify` | Enable streaming with markdown rendering (automatically uses Rich renderer) |
|
393
|
+
| `--renderer {auto,rich,glow}` | Select which markdown renderer to use with --prettify (default: auto) |
|
394
|
+
| `--log [FILE]` | Set filepath to log conversation to, or create a temporary log file if no path provided |
|
395
|
+
|
396
|
+
#### Configuration Options
|
397
|
+
|
398
|
+
| Option | Description |
|
399
|
+
|--------|-------------|
|
400
|
+
| `--config [PATH]` | Path to a custom config file or, if no value provided, enter interactive configuration mode |
|
401
|
+
| `--config-index INDEX` | Index of the configuration to use or edit (default: 0) |
|
402
|
+
| `--provider NAME` | Provider name to identify the configuration to use |
|
374
403
|
| `--remove` | Remove the configuration at the specified index (requires --config and --config-index or --provider) |
|
375
|
-
| `--show-config` | Show configuration
|
376
|
-
| `--all` |
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
| `-
|
381
|
-
| `--language` | Programming language to generate code in (for code mode, default: python) |
|
382
|
-
| `--cli-config` | Manage CLI configuration settings (set, get, unset, list, help) |
|
383
|
-
| `-v, --version` | Show version information |
|
404
|
+
| `--show-config` | Show the current configuration(s) and exit |
|
405
|
+
| `--all` | Show details for all configurations (requires --show-config) |
|
406
|
+
| `--list-models` | List all available models for the current configuration and exit |
|
407
|
+
| `--list-renderers` | Show available markdown renderers for use with --prettify |
|
408
|
+
| `--cli-config [COMMAND]` | Manage CLI configuration (set, get, unset, list, help) |
|
409
|
+
| `-v, --version` | Show version information and exit |
|
384
410
|
|
385
411
|
For a complete reference of all available options, see the [CLI Usage Guide](https://nazdridoy.github.io/ngpt/usage/cli_usage.html).
|
386
412
|
|
@@ -2,24 +2,25 @@ ngpt/__init__.py,sha256=kpKhViLakwMdHZkuLht2vWcjt0uD_5gR33gvMhfXr6w,664
|
|
2
2
|
ngpt/__main__.py,sha256=j3eFYPOtCCFBOGh7NK5IWEnADnTMMSEB9GLyIDoW724,66
|
3
3
|
ngpt/client.py,sha256=rLgDPmJe8_yi13-XUiHJ45z54rJVrupxWmeb-fQZGF4,15129
|
4
4
|
ngpt/cli/__init__.py,sha256=hebbDSMGiOd43YNnQP67uzr67Ue6rZPwm2czynr5iZY,43
|
5
|
-
ngpt/cli/args.py,sha256=
|
5
|
+
ngpt/cli/args.py,sha256=1yuVgmBXPu3HrCkVtWBfJG5he90ij84UjPbY11TppPk,9965
|
6
6
|
ngpt/cli/config_manager.py,sha256=NQQcWnjUppAAd0s0p9YAf8EyKS1ex5-0EB4DvKdB4dk,3662
|
7
|
-
ngpt/cli/formatters.py,sha256=
|
7
|
+
ngpt/cli/formatters.py,sha256=HBYGlx_7eoAKyzfy0Vq5L0yn8yVKjngqYBukMmXCcz0,9401
|
8
8
|
ngpt/cli/interactive.py,sha256=DZFbExcXd7RylkpBiZBhiI6N8FBaT0m_lBes0Pvhi48,10894
|
9
|
-
ngpt/cli/main.py,sha256=
|
9
|
+
ngpt/cli/main.py,sha256=E51XQFIT2NGC1nV1FTQ0GAy-Q6fm730vDXhArqJDwRU,28019
|
10
10
|
ngpt/cli/renderers.py,sha256=gJ3WdVvCGkNxrLEkLCh6gk9HBFMK8y7an6CsEkqt2Z8,10535
|
11
11
|
ngpt/cli/ui.py,sha256=iMinm_QdsmwrEUpb7CBRexyyBqf4sviFI9M3E8D-hhA,5303
|
12
|
-
ngpt/cli/modes/__init__.py,sha256=
|
12
|
+
ngpt/cli/modes/__init__.py,sha256=i1ZKe7QsKkQ1g8Ip-NmyltZRQQI6nwXRq35bsmER8BU,229
|
13
13
|
ngpt/cli/modes/chat.py,sha256=4a5EgM_5A1zCSrLrjgQMDnBwIHd1Rnu5_BjSKSm7p24,4255
|
14
14
|
ngpt/cli/modes/code.py,sha256=RjOAj7BDO5vLUdIPkUfPtyIkI_W6qEHsZvYh-sIdVaM,4293
|
15
|
+
ngpt/cli/modes/rewrite.py,sha256=Zb0PFvWRKXs4xJCF3GEdYc-LSmy6qRszz8-QJuldHc0,8595
|
15
16
|
ngpt/cli/modes/shell.py,sha256=lF9f7w-0bl_FdZl-WJnZuV736BKrWQtrwoKr3ejPXFE,2682
|
16
17
|
ngpt/cli/modes/text.py,sha256=ncYnfLFMdTPuHiOvAaHNiOWhox6GF6S-2fTwMIrAz-g,3140
|
17
18
|
ngpt/utils/__init__.py,sha256=E46suk2-QgYBI0Qrs6WXOajOUOebF3ETAFY7ah8DTWs,942
|
18
19
|
ngpt/utils/cli_config.py,sha256=A1TgO1rkRs6zgfNwIw5v8-N5jxqrHMZ4B6r3w48egi8,10687
|
19
20
|
ngpt/utils/config.py,sha256=WYOk_b1eiYjo6hpV3pfXr2RjqhOnmKqwZwKid1T41I4,10363
|
20
21
|
ngpt/utils/log.py,sha256=3AJiry9vUbo9Rzzrgj6-NMM4lCbgoZhrGcXvdxMqtrs,6353
|
21
|
-
ngpt-2.
|
22
|
-
ngpt-2.
|
23
|
-
ngpt-2.
|
24
|
-
ngpt-2.
|
25
|
-
ngpt-2.
|
22
|
+
ngpt-2.13.0.dist-info/METADATA,sha256=KseQZjNtDa7N5uJVZ0XFThyLh7fawca-6mEUHFzMcjY,21987
|
23
|
+
ngpt-2.13.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
24
|
+
ngpt-2.13.0.dist-info/entry_points.txt,sha256=SqAAvLhMrsEpkIr4YFRdUeyuXQ9o0IBCeYgE6AVojoI,44
|
25
|
+
ngpt-2.13.0.dist-info/licenses/LICENSE,sha256=mQkpWoADxbHqE0HRefYLJdm7OpdrXBr3vNv5bZ8w72M,1065
|
26
|
+
ngpt-2.13.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|