zyora-cli 0.1.0__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.
- zyora_cli-0.1.0/PKG-INFO +269 -0
- zyora_cli-0.1.0/README.md +231 -0
- zyora_cli-0.1.0/pyproject.toml +66 -0
- zyora_cli-0.1.0/zyora/__init__.py +4 -0
- zyora_cli-0.1.0/zyora/__main__.py +6 -0
- zyora_cli-0.1.0/zyora/client.py +194 -0
- zyora_cli-0.1.0/zyora/commands/__init__.py +1 -0
- zyora_cli-0.1.0/zyora/commands/config_cmd.py +106 -0
- zyora_cli-0.1.0/zyora/commands/scan.py +188 -0
- zyora_cli-0.1.0/zyora/config.py +97 -0
- zyora_cli-0.1.0/zyora/main.py +219 -0
- zyora_cli-0.1.0/zyora/repl.py +328 -0
- zyora_cli-0.1.0/zyora/utils/__init__.py +15 -0
- zyora_cli-0.1.0/zyora/utils/context.py +152 -0
- zyora_cli-0.1.0/zyora/utils/display.py +100 -0
- zyora_cli-0.1.0/zyora/utils/markdown.py +53 -0
zyora_cli-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: zyora-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Zyora CLI - AI-powered code generation and security scanning
|
|
5
|
+
Project-URL: Homepage, https://zyoralabs.com
|
|
6
|
+
Project-URL: Documentation, https://app.zyoralabs.com/docs
|
|
7
|
+
Project-URL: Repository, https://github.com/zyoralabs/zyora-cli
|
|
8
|
+
Author-email: Zyora Labs <support@zyoralabs.com>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
Keywords: ai,cli,code-generation,llm,security
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Topic :: Security
|
|
22
|
+
Classifier: Topic :: Software Development
|
|
23
|
+
Requires-Python: >=3.9
|
|
24
|
+
Requires-Dist: httpx>=0.25.0
|
|
25
|
+
Requires-Dist: pathspec>=0.11.0
|
|
26
|
+
Requires-Dist: prompt-toolkit>=3.0.0
|
|
27
|
+
Requires-Dist: pydantic>=2.0.0
|
|
28
|
+
Requires-Dist: pygments>=2.16.0
|
|
29
|
+
Requires-Dist: rich>=13.0.0
|
|
30
|
+
Requires-Dist: toml>=0.10.0
|
|
31
|
+
Requires-Dist: typer[all]>=0.9.0
|
|
32
|
+
Provides-Extra: dev
|
|
33
|
+
Requires-Dist: black>=23.0.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
36
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
37
|
+
Description-Content-Type: text/markdown
|
|
38
|
+
|
|
39
|
+
# Zyora CLI
|
|
40
|
+
|
|
41
|
+
AI-powered code generation and security scanning from the command line.
|
|
42
|
+
|
|
43
|
+
## Installation
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pip install zyora-cli
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Or install from source:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
git clone https://github.com/zyoralabs/zyora-cli
|
|
53
|
+
cd zyora-cli
|
|
54
|
+
pip install -e .
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Quick Start
|
|
58
|
+
|
|
59
|
+
1. **Get your API key** at [app.zyoralabs.com/register](https://app.zyoralabs.com/register)
|
|
60
|
+
|
|
61
|
+
2. **Configure the CLI**:
|
|
62
|
+
```bash
|
|
63
|
+
zyora config set api_key zy-your-api-key-here
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
3. **Start using Zyora**:
|
|
67
|
+
```bash
|
|
68
|
+
# Interactive mode (like Claude Code)
|
|
69
|
+
zyora
|
|
70
|
+
|
|
71
|
+
# One-shot chat
|
|
72
|
+
zyora chat "Write a Python function to validate emails"
|
|
73
|
+
|
|
74
|
+
# Scan code for vulnerabilities
|
|
75
|
+
zyora scan file app.py
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Features
|
|
79
|
+
|
|
80
|
+
### Interactive Mode
|
|
81
|
+
|
|
82
|
+
Start an interactive session with context awareness:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
zyora
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Commands in interactive mode:**
|
|
89
|
+
|
|
90
|
+
| Command | Description |
|
|
91
|
+
|---------|-------------|
|
|
92
|
+
| `/help` | Show help |
|
|
93
|
+
| `/clear` | Clear conversation |
|
|
94
|
+
| `/context` | Show files in context |
|
|
95
|
+
| `/add <file>` | Add file to context |
|
|
96
|
+
| `/remove <file>` | Remove from context |
|
|
97
|
+
| `/scan <file>` | Scan file for vulnerabilities |
|
|
98
|
+
| `/project` | Show project summary |
|
|
99
|
+
| `/model` | Show model info |
|
|
100
|
+
| `/config` | Show configuration |
|
|
101
|
+
| `/exit` | Exit |
|
|
102
|
+
|
|
103
|
+
**Tips:**
|
|
104
|
+
- Use `@filename` to reference files in your prompt
|
|
105
|
+
- Pipe code directly: `cat app.py | zyora chat "explain this"`
|
|
106
|
+
|
|
107
|
+
### Chat Mode
|
|
108
|
+
|
|
109
|
+
Send one-off prompts:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Simple prompt
|
|
113
|
+
zyora chat "Write a function to merge two sorted lists"
|
|
114
|
+
|
|
115
|
+
# With file context
|
|
116
|
+
zyora chat "Review this code" -c main.py -c utils.py
|
|
117
|
+
|
|
118
|
+
# From file
|
|
119
|
+
zyora chat -f prompt.txt
|
|
120
|
+
|
|
121
|
+
# Pipe input
|
|
122
|
+
cat code.py | zyora chat "Explain this code"
|
|
123
|
+
|
|
124
|
+
# Save output
|
|
125
|
+
zyora chat "Write a REST API" -o api.py
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Security Scanning
|
|
129
|
+
|
|
130
|
+
Scan code for vulnerabilities:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Scan a single file
|
|
134
|
+
zyora scan file app.py
|
|
135
|
+
|
|
136
|
+
# Scan a directory
|
|
137
|
+
zyora scan dir ./src
|
|
138
|
+
|
|
139
|
+
# Scan with specific extensions
|
|
140
|
+
zyora scan dir ./src --ext py,js
|
|
141
|
+
|
|
142
|
+
# Save results
|
|
143
|
+
zyora scan file app.py -o report.md
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
The scanner detects:
|
|
147
|
+
- SQL Injection (CWE-89)
|
|
148
|
+
- Cross-Site Scripting (CWE-79)
|
|
149
|
+
- Command Injection (CWE-78)
|
|
150
|
+
- Path Traversal (CWE-22)
|
|
151
|
+
- Hardcoded Credentials (CWE-798)
|
|
152
|
+
- And many more...
|
|
153
|
+
|
|
154
|
+
### Configuration
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Show all config
|
|
158
|
+
zyora config show
|
|
159
|
+
|
|
160
|
+
# Set values
|
|
161
|
+
zyora config set api_key zy-xxx
|
|
162
|
+
zyora config set max_tokens 8192
|
|
163
|
+
zyora config set temperature 0.5
|
|
164
|
+
|
|
165
|
+
# Get a value
|
|
166
|
+
zyora config get model
|
|
167
|
+
|
|
168
|
+
# Reset to defaults
|
|
169
|
+
zyora config reset
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**Environment variables:**
|
|
173
|
+
- `ZYORA_API_KEY` - API key
|
|
174
|
+
- `ZYORA_API_BASE` - API base URL
|
|
175
|
+
- `ZYORA_MODEL` - Model to use
|
|
176
|
+
- `ZYORA_MAX_TOKENS` - Max response tokens
|
|
177
|
+
|
|
178
|
+
## Examples
|
|
179
|
+
|
|
180
|
+
### Generate Code
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# Generate a REST API
|
|
184
|
+
zyora chat "Create a FastAPI REST API with user authentication"
|
|
185
|
+
|
|
186
|
+
# Generate with context
|
|
187
|
+
zyora chat "Add error handling to this" -c server.py
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Review Code
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Code review
|
|
194
|
+
cat pull_request.diff | zyora chat "Review this code change"
|
|
195
|
+
|
|
196
|
+
# Architecture review
|
|
197
|
+
zyora chat "Review the architecture" -c main.py -c models.py -c routes.py
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Security Audit
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# Full project scan
|
|
204
|
+
zyora scan dir ./src --recursive -o security-report.md
|
|
205
|
+
|
|
206
|
+
# Quick scan
|
|
207
|
+
zyora scan file api/auth.py
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Interactive Session
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
$ zyora
|
|
214
|
+
|
|
215
|
+
╔═══════════════════════════════════════════════════════════════╗
|
|
216
|
+
║ ███████╗██╗ ██╗ ██████╗ ██████╗ █████╗ ║
|
|
217
|
+
║ ╚══███╔╝╚██╗ ██╔╝██╔═══██╗██╔══██╗██╔══██╗ ║
|
|
218
|
+
║ ███╔╝ ╚████╔╝ ██║ ██║██████╔╝███████║ ║
|
|
219
|
+
║ ███╔╝ ╚██╔╝ ██║ ██║██╔══██╗██╔══██║ ║
|
|
220
|
+
║ ███████╗ ██║ ╚██████╔╝██║ ██║██║ ██║ ║
|
|
221
|
+
║ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ║
|
|
222
|
+
║ ║
|
|
223
|
+
║ AI-Powered Code Generation & Security Scanning ║
|
|
224
|
+
╚═══════════════════════════════════════════════════════════════╝
|
|
225
|
+
|
|
226
|
+
Type /help for commands, /exit to quit
|
|
227
|
+
|
|
228
|
+
zyora > /add src/main.py
|
|
229
|
+
Added: src/main.py
|
|
230
|
+
|
|
231
|
+
zyora [1] > What does this code do?
|
|
232
|
+
...
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## API Usage
|
|
236
|
+
|
|
237
|
+
You can also use Zyora programmatically:
|
|
238
|
+
|
|
239
|
+
```python
|
|
240
|
+
from zyora.client import ZyoraClient, Message
|
|
241
|
+
|
|
242
|
+
client = ZyoraClient(api_key="zy-xxx")
|
|
243
|
+
|
|
244
|
+
# Simple chat
|
|
245
|
+
response = client.chat([
|
|
246
|
+
Message(role="user", content="Write hello world in Python")
|
|
247
|
+
])
|
|
248
|
+
print(response.content)
|
|
249
|
+
|
|
250
|
+
# Streaming
|
|
251
|
+
for chunk in client.chat(messages, stream=True):
|
|
252
|
+
print(chunk, end="")
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Requirements
|
|
256
|
+
|
|
257
|
+
- Python 3.9+
|
|
258
|
+
- API key from [app.zyoralabs.com](https://app.zyoralabs.com)
|
|
259
|
+
|
|
260
|
+
## License
|
|
261
|
+
|
|
262
|
+
MIT License - see [LICENSE](LICENSE) for details.
|
|
263
|
+
|
|
264
|
+
## Links
|
|
265
|
+
|
|
266
|
+
- **Website**: [zyoralabs.com](https://zyoralabs.com)
|
|
267
|
+
- **API Portal**: [app.zyoralabs.com](https://app.zyoralabs.com)
|
|
268
|
+
- **Documentation**: [app.zyoralabs.com/docs](https://app.zyoralabs.com/docs)
|
|
269
|
+
- **Model**: [huggingface.co/zyoralabs/Zyora-DEV-32B](https://huggingface.co/zyoralabs/Zyora-DEV-32B)
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# Zyora CLI
|
|
2
|
+
|
|
3
|
+
AI-powered code generation and security scanning from the command line.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install zyora-cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or install from source:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
git clone https://github.com/zyoralabs/zyora-cli
|
|
15
|
+
cd zyora-cli
|
|
16
|
+
pip install -e .
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
1. **Get your API key** at [app.zyoralabs.com/register](https://app.zyoralabs.com/register)
|
|
22
|
+
|
|
23
|
+
2. **Configure the CLI**:
|
|
24
|
+
```bash
|
|
25
|
+
zyora config set api_key zy-your-api-key-here
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
3. **Start using Zyora**:
|
|
29
|
+
```bash
|
|
30
|
+
# Interactive mode (like Claude Code)
|
|
31
|
+
zyora
|
|
32
|
+
|
|
33
|
+
# One-shot chat
|
|
34
|
+
zyora chat "Write a Python function to validate emails"
|
|
35
|
+
|
|
36
|
+
# Scan code for vulnerabilities
|
|
37
|
+
zyora scan file app.py
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Features
|
|
41
|
+
|
|
42
|
+
### Interactive Mode
|
|
43
|
+
|
|
44
|
+
Start an interactive session with context awareness:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
zyora
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Commands in interactive mode:**
|
|
51
|
+
|
|
52
|
+
| Command | Description |
|
|
53
|
+
|---------|-------------|
|
|
54
|
+
| `/help` | Show help |
|
|
55
|
+
| `/clear` | Clear conversation |
|
|
56
|
+
| `/context` | Show files in context |
|
|
57
|
+
| `/add <file>` | Add file to context |
|
|
58
|
+
| `/remove <file>` | Remove from context |
|
|
59
|
+
| `/scan <file>` | Scan file for vulnerabilities |
|
|
60
|
+
| `/project` | Show project summary |
|
|
61
|
+
| `/model` | Show model info |
|
|
62
|
+
| `/config` | Show configuration |
|
|
63
|
+
| `/exit` | Exit |
|
|
64
|
+
|
|
65
|
+
**Tips:**
|
|
66
|
+
- Use `@filename` to reference files in your prompt
|
|
67
|
+
- Pipe code directly: `cat app.py | zyora chat "explain this"`
|
|
68
|
+
|
|
69
|
+
### Chat Mode
|
|
70
|
+
|
|
71
|
+
Send one-off prompts:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Simple prompt
|
|
75
|
+
zyora chat "Write a function to merge two sorted lists"
|
|
76
|
+
|
|
77
|
+
# With file context
|
|
78
|
+
zyora chat "Review this code" -c main.py -c utils.py
|
|
79
|
+
|
|
80
|
+
# From file
|
|
81
|
+
zyora chat -f prompt.txt
|
|
82
|
+
|
|
83
|
+
# Pipe input
|
|
84
|
+
cat code.py | zyora chat "Explain this code"
|
|
85
|
+
|
|
86
|
+
# Save output
|
|
87
|
+
zyora chat "Write a REST API" -o api.py
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Security Scanning
|
|
91
|
+
|
|
92
|
+
Scan code for vulnerabilities:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Scan a single file
|
|
96
|
+
zyora scan file app.py
|
|
97
|
+
|
|
98
|
+
# Scan a directory
|
|
99
|
+
zyora scan dir ./src
|
|
100
|
+
|
|
101
|
+
# Scan with specific extensions
|
|
102
|
+
zyora scan dir ./src --ext py,js
|
|
103
|
+
|
|
104
|
+
# Save results
|
|
105
|
+
zyora scan file app.py -o report.md
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
The scanner detects:
|
|
109
|
+
- SQL Injection (CWE-89)
|
|
110
|
+
- Cross-Site Scripting (CWE-79)
|
|
111
|
+
- Command Injection (CWE-78)
|
|
112
|
+
- Path Traversal (CWE-22)
|
|
113
|
+
- Hardcoded Credentials (CWE-798)
|
|
114
|
+
- And many more...
|
|
115
|
+
|
|
116
|
+
### Configuration
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Show all config
|
|
120
|
+
zyora config show
|
|
121
|
+
|
|
122
|
+
# Set values
|
|
123
|
+
zyora config set api_key zy-xxx
|
|
124
|
+
zyora config set max_tokens 8192
|
|
125
|
+
zyora config set temperature 0.5
|
|
126
|
+
|
|
127
|
+
# Get a value
|
|
128
|
+
zyora config get model
|
|
129
|
+
|
|
130
|
+
# Reset to defaults
|
|
131
|
+
zyora config reset
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Environment variables:**
|
|
135
|
+
- `ZYORA_API_KEY` - API key
|
|
136
|
+
- `ZYORA_API_BASE` - API base URL
|
|
137
|
+
- `ZYORA_MODEL` - Model to use
|
|
138
|
+
- `ZYORA_MAX_TOKENS` - Max response tokens
|
|
139
|
+
|
|
140
|
+
## Examples
|
|
141
|
+
|
|
142
|
+
### Generate Code
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# Generate a REST API
|
|
146
|
+
zyora chat "Create a FastAPI REST API with user authentication"
|
|
147
|
+
|
|
148
|
+
# Generate with context
|
|
149
|
+
zyora chat "Add error handling to this" -c server.py
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Review Code
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
# Code review
|
|
156
|
+
cat pull_request.diff | zyora chat "Review this code change"
|
|
157
|
+
|
|
158
|
+
# Architecture review
|
|
159
|
+
zyora chat "Review the architecture" -c main.py -c models.py -c routes.py
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Security Audit
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Full project scan
|
|
166
|
+
zyora scan dir ./src --recursive -o security-report.md
|
|
167
|
+
|
|
168
|
+
# Quick scan
|
|
169
|
+
zyora scan file api/auth.py
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Interactive Session
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
$ zyora
|
|
176
|
+
|
|
177
|
+
╔═══════════════════════════════════════════════════════════════╗
|
|
178
|
+
║ ███████╗██╗ ██╗ ██████╗ ██████╗ █████╗ ║
|
|
179
|
+
║ ╚══███╔╝╚██╗ ██╔╝██╔═══██╗██╔══██╗██╔══██╗ ║
|
|
180
|
+
║ ███╔╝ ╚████╔╝ ██║ ██║██████╔╝███████║ ║
|
|
181
|
+
║ ███╔╝ ╚██╔╝ ██║ ██║██╔══██╗██╔══██║ ║
|
|
182
|
+
║ ███████╗ ██║ ╚██████╔╝██║ ██║██║ ██║ ║
|
|
183
|
+
║ ╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ║
|
|
184
|
+
║ ║
|
|
185
|
+
║ AI-Powered Code Generation & Security Scanning ║
|
|
186
|
+
╚═══════════════════════════════════════════════════════════════╝
|
|
187
|
+
|
|
188
|
+
Type /help for commands, /exit to quit
|
|
189
|
+
|
|
190
|
+
zyora > /add src/main.py
|
|
191
|
+
Added: src/main.py
|
|
192
|
+
|
|
193
|
+
zyora [1] > What does this code do?
|
|
194
|
+
...
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## API Usage
|
|
198
|
+
|
|
199
|
+
You can also use Zyora programmatically:
|
|
200
|
+
|
|
201
|
+
```python
|
|
202
|
+
from zyora.client import ZyoraClient, Message
|
|
203
|
+
|
|
204
|
+
client = ZyoraClient(api_key="zy-xxx")
|
|
205
|
+
|
|
206
|
+
# Simple chat
|
|
207
|
+
response = client.chat([
|
|
208
|
+
Message(role="user", content="Write hello world in Python")
|
|
209
|
+
])
|
|
210
|
+
print(response.content)
|
|
211
|
+
|
|
212
|
+
# Streaming
|
|
213
|
+
for chunk in client.chat(messages, stream=True):
|
|
214
|
+
print(chunk, end="")
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Requirements
|
|
218
|
+
|
|
219
|
+
- Python 3.9+
|
|
220
|
+
- API key from [app.zyoralabs.com](https://app.zyoralabs.com)
|
|
221
|
+
|
|
222
|
+
## License
|
|
223
|
+
|
|
224
|
+
MIT License - see [LICENSE](LICENSE) for details.
|
|
225
|
+
|
|
226
|
+
## Links
|
|
227
|
+
|
|
228
|
+
- **Website**: [zyoralabs.com](https://zyoralabs.com)
|
|
229
|
+
- **API Portal**: [app.zyoralabs.com](https://app.zyoralabs.com)
|
|
230
|
+
- **Documentation**: [app.zyoralabs.com/docs](https://app.zyoralabs.com/docs)
|
|
231
|
+
- **Model**: [huggingface.co/zyoralabs/Zyora-DEV-32B](https://huggingface.co/zyoralabs/Zyora-DEV-32B)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "zyora-cli"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Zyora CLI - AI-powered code generation and security scanning"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
authors = [
|
|
12
|
+
{ name = "Zyora Labs", email = "support@zyoralabs.com" }
|
|
13
|
+
]
|
|
14
|
+
keywords = ["ai", "code-generation", "security", "cli", "llm"]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 4 - Beta",
|
|
17
|
+
"Environment :: Console",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"License :: OSI Approved :: MIT License",
|
|
20
|
+
"Operating System :: OS Independent",
|
|
21
|
+
"Programming Language :: Python :: 3",
|
|
22
|
+
"Programming Language :: Python :: 3.9",
|
|
23
|
+
"Programming Language :: Python :: 3.10",
|
|
24
|
+
"Programming Language :: Python :: 3.11",
|
|
25
|
+
"Programming Language :: Python :: 3.12",
|
|
26
|
+
"Topic :: Software Development",
|
|
27
|
+
"Topic :: Security",
|
|
28
|
+
]
|
|
29
|
+
requires-python = ">=3.9"
|
|
30
|
+
dependencies = [
|
|
31
|
+
"typer[all]>=0.9.0",
|
|
32
|
+
"rich>=13.0.0",
|
|
33
|
+
"httpx>=0.25.0",
|
|
34
|
+
"prompt-toolkit>=3.0.0",
|
|
35
|
+
"pygments>=2.16.0",
|
|
36
|
+
"pydantic>=2.0.0",
|
|
37
|
+
"toml>=0.10.0",
|
|
38
|
+
"pathspec>=0.11.0",
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
[project.optional-dependencies]
|
|
42
|
+
dev = [
|
|
43
|
+
"pytest>=7.0.0",
|
|
44
|
+
"pytest-asyncio>=0.21.0",
|
|
45
|
+
"black>=23.0.0",
|
|
46
|
+
"ruff>=0.1.0",
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
[project.scripts]
|
|
50
|
+
zyora = "zyora.main:app"
|
|
51
|
+
|
|
52
|
+
[project.urls]
|
|
53
|
+
Homepage = "https://zyoralabs.com"
|
|
54
|
+
Documentation = "https://app.zyoralabs.com/docs"
|
|
55
|
+
Repository = "https://github.com/zyoralabs/zyora-cli"
|
|
56
|
+
|
|
57
|
+
[tool.hatch.build.targets.wheel]
|
|
58
|
+
packages = ["zyora"]
|
|
59
|
+
|
|
60
|
+
[tool.ruff]
|
|
61
|
+
line-length = 100
|
|
62
|
+
target-version = "py39"
|
|
63
|
+
|
|
64
|
+
[tool.black]
|
|
65
|
+
line-length = 100
|
|
66
|
+
target-version = ["py39"]
|