yaicli 0.1.0__py3-none-any.whl → 0.2.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.
- pyproject.toml +1 -1
- yaicli/chat_manager.py +263 -0
- yaicli/cli.py +192 -10
- yaicli/config.py +34 -64
- yaicli/const.py +19 -3
- yaicli/entry.py +24 -8
- {yaicli-0.1.0.dist-info → yaicli-0.2.0.dist-info}/METADATA +214 -99
- yaicli-0.2.0.dist-info/RECORD +16 -0
- yaicli-0.1.0.dist-info/RECORD +0 -15
- {yaicli-0.1.0.dist-info → yaicli-0.2.0.dist-info}/WHEEL +0 -0
- {yaicli-0.1.0.dist-info → yaicli-0.2.0.dist-info}/entry_points.txt +0 -0
- {yaicli-0.1.0.dist-info → yaicli-0.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: yaicli
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.2.0
|
4
4
|
Summary: A simple CLI tool to interact with LLM
|
5
5
|
Project-URL: Homepage, https://github.com/belingud/yaicli
|
6
6
|
Project-URL: Repository, https://github.com/belingud/yaicli
|
@@ -222,7 +222,7 @@ Requires-Dist: socksio>=1.0.0
|
|
222
222
|
Requires-Dist: typer>=0.15.2
|
223
223
|
Description-Content-Type: text/markdown
|
224
224
|
|
225
|
-
# YAICLI
|
225
|
+
# YAICLI: Your AI assistant in the command line.
|
226
226
|
|
227
227
|
[](https://pypi.org/project/yaicli/)
|
228
228
|

|
@@ -243,35 +243,40 @@ YAICLI is a powerful yet lightweight command-line AI assistant that brings the c
|
|
243
243
|
## ✨ Key Features
|
244
244
|
|
245
245
|
### 🔄 Multiple Interaction Modes
|
246
|
-
|
247
|
-
-
|
248
|
-
-
|
246
|
+
|
247
|
+
- **💬 Chat Mode**: Engage in persistent conversations with full context tracking
|
248
|
+
- **🚀 Execute Mode**: Generate and safely run OS-specific shell commands
|
249
|
+
- **⚡ Quick Query**: Get instant answers without entering interactive mode
|
249
250
|
|
250
251
|
### 🧠 Smart Environment Awareness
|
251
|
-
|
252
|
-
-
|
253
|
-
-
|
252
|
+
|
253
|
+
- **Auto-detection**: Identifies your shell (bash/zsh/PowerShell/CMD) and OS
|
254
|
+
- **Safe Command Execution**: 3-step verification before running any command
|
255
|
+
- **Flexible Input**: Pipe content directly (`cat log.txt | ai "analyze this"`)
|
254
256
|
|
255
257
|
### 🔌 Universal LLM Compatibility
|
256
|
-
|
257
|
-
-
|
258
|
-
-
|
258
|
+
|
259
|
+
- **OpenAI-Compatible**: Works with any OpenAI-compatible API endpoint
|
260
|
+
- **Multi-Provider Support**: Easy configuration for Claude, Gemini, Cohere, etc.
|
261
|
+
- **Custom Response Parsing**: Extract exactly what you need with jmespath
|
259
262
|
|
260
263
|
### 💻 Enhanced Terminal Experience
|
261
|
-
|
262
|
-
-
|
263
|
-
-
|
264
|
+
|
265
|
+
- **Real-time Streaming**: See responses as they're generated with cursor animation
|
266
|
+
- **Rich History Management**: LRU-based history with 500 entries by default
|
267
|
+
- **Syntax Highlighting**: Beautiful code formatting with customizable themes
|
264
268
|
|
265
269
|
### 🛠️ Developer-Friendly
|
266
|
-
|
267
|
-
-
|
268
|
-
-
|
270
|
+
|
271
|
+
- **Layered Configuration**: Environment variables > Config file > Sensible defaults
|
272
|
+
- **Debugging Tools**: Verbose mode with detailed API tracing
|
273
|
+
- **Lightweight**: Minimal dependencies with focused functionality
|
269
274
|
|
270
275
|
## 📦 Installation
|
271
276
|
|
272
277
|
### Prerequisites
|
273
278
|
|
274
|
-
-
|
279
|
+
- Python 3.9 or higher
|
275
280
|
|
276
281
|
### Quick Install
|
277
282
|
|
@@ -339,28 +344,35 @@ INTERACTIVE_ROUND=25
|
|
339
344
|
CODE_THEME=monokai
|
340
345
|
MAX_HISTORY=500 # Max entries kept in history file
|
341
346
|
AUTO_SUGGEST=true
|
347
|
+
|
348
|
+
# Chat history settings
|
349
|
+
CHAT_HISTORY_DIR={DEFAULT_CONFIG_MAP["CHAT_HISTORY_DIR"]["value"]}
|
350
|
+
MAX_SAVED_CHATS={DEFAULT_CONFIG_MAP["MAX_SAVED_CHATS"]["value"]}
|
342
351
|
```
|
343
352
|
|
344
353
|
### Configuration Options Reference
|
345
354
|
|
346
|
-
| Option
|
347
|
-
|
348
|
-
| `
|
349
|
-
| `
|
350
|
-
| `
|
351
|
-
| `
|
352
|
-
| `
|
353
|
-
| `
|
354
|
-
| `
|
355
|
-
| `
|
356
|
-
| `
|
357
|
-
| `
|
358
|
-
| `
|
359
|
-
| `
|
360
|
-
| `
|
361
|
-
| `
|
362
|
-
| `
|
363
|
-
| `
|
355
|
+
| Option | Description | Default | Env Variable |
|
356
|
+
| ------------------- | ------------------------------------------- | ---------------------------- | ----------------------- |
|
357
|
+
| `PROVIDER` | LLM provider (openai, claude, cohere, etc.) | `openai` | `YAI_PROVIDER` |
|
358
|
+
| `BASE_URL` | API endpoint URL | `https://api.openai.com/v1` | `YAI_BASE_URL` |
|
359
|
+
| `API_KEY` | Your API key | - | `YAI_API_KEY` |
|
360
|
+
| `MODEL` | LLM model to use | `gpt-4o` | `YAI_MODEL` |
|
361
|
+
| `SHELL_NAME` | Shell type | `auto` | `YAI_SHELL_NAME` |
|
362
|
+
| `OS_NAME` | Operating system | `auto` | `YAI_OS_NAME` |
|
363
|
+
| `COMPLETION_PATH` | API completion path | `chat/completions` | `YAI_COMPLETION_PATH` |
|
364
|
+
| `ANSWER_PATH` | JSON path for response | `choices[0].message.content` | `YAI_ANSWER_PATH` |
|
365
|
+
| `STREAM` | Enable streaming | `true` | `YAI_STREAM` |
|
366
|
+
| `TIMEOUT` | API timeout (seconds) | `60` | `YAI_TIMEOUT` |
|
367
|
+
| `INTERACTIVE_ROUND` | Interactive mode rounds | `25` | `YAI_INTERACTIVE_ROUND` |
|
368
|
+
| `CODE_THEME` | Syntax highlighting theme | `monokai` | `YAI_CODE_THEME` |
|
369
|
+
| `TEMPERATURE` | Response randomness | `0.7` | `YAI_TEMPERATURE` |
|
370
|
+
| `TOP_P` | Top-p sampling | `1.0` | `YAI_TOP_P` |
|
371
|
+
| `MAX_TOKENS` | Max response tokens | `1024` | `YAI_MAX_TOKENS` |
|
372
|
+
| `MAX_HISTORY` | Max history entries | `500` | `YAI_MAX_HISTORY` |
|
373
|
+
| `AUTO_SUGGEST` | Enable history suggestions | `true` | `YAI_AUTO_SUGGEST` |
|
374
|
+
| `CHAT_HISTORY_DIR` | Chat history directory | `<tempdir>/yaicli/history` | `YAI_CHAT_HISTORY_DIR` |
|
375
|
+
| `MAX_SAVED_CHATS` | Max saved chats | `20` | `YAI_MAX_SAVED_CHATS` |
|
364
376
|
|
365
377
|
### LLM Provider Configuration
|
366
378
|
|
@@ -368,47 +380,51 @@ YAICLI works with all major LLM providers. The default configuration is set up f
|
|
368
380
|
|
369
381
|
#### Pre-configured Provider Settings
|
370
382
|
|
371
|
-
| Provider
|
372
|
-
|
373
|
-
| **OpenAI** (default)
|
374
|
-
| **Claude** (native API)
|
375
|
-
| **Claude** (OpenAI-compatible) | `https://api.anthropic.com/v1/openai`
|
376
|
-
| **Cohere**
|
377
|
-
| **Google Gemini**
|
383
|
+
| Provider | BASE_URL | COMPLETION_PATH | ANSWER_PATH |
|
384
|
+
| ------------------------------ | --------------------------------------------------------- | ------------------ | ---------------------------- |
|
385
|
+
| **OpenAI** (default) | `https://api.openai.com/v1` | `chat/completions` | `choices[0].message.content` |
|
386
|
+
| **Claude** (native API) | `https://api.anthropic.com/v1` | `messages` | `content[0].text` |
|
387
|
+
| **Claude** (OpenAI-compatible) | `https://api.anthropic.com/v1/openai` | `chat/completions` | `choices[0].message.content` |
|
388
|
+
| **Cohere** | `https://api.cohere.com/v2` | `chat` | `message.content[0].text` |
|
389
|
+
| **Google Gemini** | `https://generativelanguage.googleapis.com/v1beta/openai` | `chat/completions` | `choices[0].message.content` |
|
378
390
|
|
379
391
|
> **Note**: Many providers offer OpenAI-compatible endpoints that work with the default settings.
|
380
|
-
>
|
381
|
-
> -
|
392
|
+
>
|
393
|
+
> - Google Gemini: https://ai.google.dev/gemini-api/docs/openai
|
394
|
+
> - Claude: https://docs.anthropic.com/en/api/openai-sdk
|
382
395
|
|
383
396
|
#### Custom Provider Configuration Guide
|
384
397
|
|
385
398
|
To configure a custom provider:
|
386
399
|
|
387
400
|
1. **Find the API Endpoint**:
|
388
|
-
|
401
|
+
|
402
|
+
- Check the provider's API documentation for their chat completion endpoint
|
389
403
|
|
390
404
|
2. **Identify the Response Structure**:
|
391
|
-
|
405
|
+
|
406
|
+
- Look at the JSON response format to find where the text content is located
|
392
407
|
|
393
408
|
3. **Set the Path Expression**:
|
394
|
-
|
409
|
+
- Use jmespath syntax to specify the path to the text content
|
395
410
|
|
396
411
|
**Example**: For Claude's native API, the response looks like:
|
412
|
+
|
397
413
|
```json
|
398
414
|
{
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
415
|
+
"content": [
|
416
|
+
{
|
417
|
+
"text": "Hi! My name is Claude.",
|
418
|
+
"type": "text"
|
419
|
+
}
|
420
|
+
],
|
421
|
+
"id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
|
422
|
+
"model": "claude-3-7-sonnet-20250219",
|
423
|
+
"role": "assistant"
|
408
424
|
}
|
409
425
|
```
|
410
426
|
|
411
|
-
The path to extract the text is: `content.0.text`
|
427
|
+
The path to extract the text is: `content.[0].text`
|
412
428
|
|
413
429
|
### Syntax Highlighting Themes
|
414
430
|
|
@@ -449,13 +465,13 @@ ai --verbose "Explain quantum computing"
|
|
449
465
|
Usage: ai [OPTIONS] [PROMPT]
|
450
466
|
```
|
451
467
|
|
452
|
-
| Option
|
453
|
-
|
454
|
-
| `--chat`
|
455
|
-
| `--shell`
|
456
|
-
| `--help`
|
457
|
-
| `--verbose`
|
458
|
-
| `--template` |
|
468
|
+
| Option | Short | Description |
|
469
|
+
| ------------ | ----- | ----------------------------------- |
|
470
|
+
| `--chat` | `-c` | Start in interactive chat mode |
|
471
|
+
| `--shell` | `-s` | Generate and execute shell commands |
|
472
|
+
| `--help` | `-h` | Show help message and exit |
|
473
|
+
| `--verbose` | `-V` | Show detailed debug information |
|
474
|
+
| `--template` | | Display the config template |
|
459
475
|
|
460
476
|
### Interactive Mode Features
|
461
477
|
|
@@ -464,53 +480,146 @@ Usage: ai [OPTIONS] [PROMPT]
|
|
464
480
|
<td width="50%">
|
465
481
|
|
466
482
|
**Commands**
|
467
|
-
|
468
|
-
-
|
469
|
-
-
|
470
|
-
-
|
483
|
+
|
484
|
+
- `/clear` - Clear conversation history
|
485
|
+
- `/his` - Show command history
|
486
|
+
- `/list` - List saved chats
|
487
|
+
- `/save <title>` - Save current chat with title
|
488
|
+
- `/load <index>` - Load a saved chat
|
489
|
+
- `/del <index>` - Delete a saved chat
|
490
|
+
- `/exit` - Exit the application
|
491
|
+
- `/mode chat|exec` - Switch modes
|
471
492
|
|
472
493
|
**Keyboard Shortcuts**
|
473
|
-
|
474
|
-
-
|
475
|
-
- `Ctrl+
|
476
|
-
-
|
494
|
+
|
495
|
+
- `Tab` - Toggle between Chat/Execute modes
|
496
|
+
- `Ctrl+C` or `Ctrl+D` - Exit
|
497
|
+
- `Ctrl+R` - Search history
|
498
|
+
- `↑/↓` - Navigate through history
|
477
499
|
|
478
500
|
</td>
|
479
501
|
<td width="50%">
|
480
502
|
|
481
503
|
**Chat Mode** (💬)
|
482
|
-
|
483
|
-
-
|
484
|
-
-
|
504
|
+
|
505
|
+
- Natural conversations with context
|
506
|
+
- Markdown and code formatting
|
507
|
+
- Reasoning display for complex queries
|
485
508
|
|
486
509
|
**Execute Mode** (🚀)
|
487
|
-
|
488
|
-
-
|
489
|
-
-
|
490
|
-
-
|
510
|
+
|
511
|
+
- Generate shell commands from descriptions
|
512
|
+
- Review commands before execution
|
513
|
+
- Edit commands before running
|
514
|
+
- Safe execution with confirmation
|
491
515
|
|
492
516
|
</td>
|
493
517
|
</tr>
|
494
518
|
</table>
|
495
519
|
|
520
|
+
### Chat Persistent
|
521
|
+
|
522
|
+
The `<PROMPT>` parameter in the chat mode will be used as a title to persist the chat content to the file system, with the save directory being a temporary directory, which may vary between machines, and it is determined on the first run.
|
523
|
+
|
524
|
+
If the `<PROMPT>` parameter is not specified when entering `chat` mode, the session will be treated as a temporary session and will not be persisted. Of course, you can also manually call the `/save <title>` command to save during the chat.
|
525
|
+
When you run the same `chat` command again, the previous session will be automatically loaded.
|
526
|
+
|
527
|
+
```bash
|
528
|
+
$ ai --chat "meaning of life"
|
529
|
+
```
|
530
|
+
|
531
|
+
> !NOTE: Chat mode is not supported when you redirect input to `ai` command.
|
532
|
+
>
|
533
|
+
> ```bash
|
534
|
+
> $ cat error.log | ai --chat "Explain this error"
|
535
|
+
> ```
|
536
|
+
>
|
537
|
+
> The above command will be parsed as `ai "cat error.log | ai "Explain this error"`.
|
538
|
+
|
539
|
+
**Start a temporary chat session**
|
540
|
+
|
541
|
+
```bash
|
542
|
+
$ ai --chat
|
543
|
+
```
|
544
|
+
|
545
|
+
**Save a temporary chat session**
|
546
|
+
|
547
|
+
```bash
|
548
|
+
$ ai --chat
|
549
|
+
Starting a temporary chat session (will not be saved automatically)
|
550
|
+
...
|
551
|
+
💬 > hi
|
552
|
+
Assistant:
|
553
|
+
Hello! How can I assist you today?
|
554
|
+
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
555
|
+
💬 > /save "hello"
|
556
|
+
Chat saved as: hello
|
557
|
+
Session is now marked as persistent and will be auto-saved on exit.
|
558
|
+
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
559
|
+
💬 >
|
560
|
+
```
|
561
|
+
|
562
|
+
**Start a persistent chat session**
|
563
|
+
|
564
|
+
```bash
|
565
|
+
$ ai --chat "check disk usage"
|
566
|
+
```
|
567
|
+
|
568
|
+
**Load a saved chat session**
|
569
|
+
|
570
|
+
```bash
|
571
|
+
$ ai --chat hello
|
572
|
+
Chat title: hello
|
573
|
+
|
574
|
+
██ ██ █████ ██ ██████ ██ ██
|
575
|
+
██ ██ ██ ██ ██ ██ ██ ██
|
576
|
+
████ ███████ ██ ██ ██ ██
|
577
|
+
██ ██ ██ ██ ██ ██ ██
|
578
|
+
██ ██ ██ ██ ██████ ███████ ██
|
579
|
+
|
580
|
+
Welcome to YAICLI!
|
581
|
+
Current: Persistent Session: hello
|
582
|
+
Press TAB to switch mode
|
583
|
+
/clear : Clear chat history
|
584
|
+
/his : Show chat history
|
585
|
+
/list : List saved chats
|
586
|
+
/save <title> : Save current chat
|
587
|
+
/load <index> : Load a saved chat
|
588
|
+
/del <index> : Delete a saved chat
|
589
|
+
/exit|Ctrl+D|Ctrl+C: Exit
|
590
|
+
/mode chat|exec : Switch mode (Case insensitive)
|
591
|
+
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
592
|
+
💬 > /his
|
593
|
+
Chat History:
|
594
|
+
1 User: hi
|
595
|
+
Assistant:
|
596
|
+
Hello! How can I assist you today?
|
597
|
+
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
598
|
+
💬 >
|
599
|
+
```
|
600
|
+
|
496
601
|
### Input Methods
|
497
602
|
|
498
603
|
**Direct Input**
|
604
|
+
|
499
605
|
```bash
|
500
606
|
ai "What is the capital of France?"
|
501
607
|
```
|
502
608
|
|
503
609
|
**Piped Input**
|
610
|
+
|
504
611
|
```bash
|
505
612
|
echo "What is the capital of France?" | ai
|
506
613
|
```
|
507
614
|
|
508
615
|
**File Analysis**
|
616
|
+
|
509
617
|
```bash
|
510
618
|
cat demo.py | ai "Explain this code"
|
511
619
|
```
|
512
620
|
|
513
621
|
**Combined Input**
|
622
|
+
|
514
623
|
```bash
|
515
624
|
cat error.log | ai "Why am I getting these errors in my Python app?"
|
516
625
|
```
|
@@ -519,9 +628,9 @@ cat error.log | ai "Why am I getting these errors in my Python app?"
|
|
519
628
|
|
520
629
|
YAICLI maintains a history of your interactions (default: 500 entries) stored in `~/.yaicli_history`. You can:
|
521
630
|
|
522
|
-
-
|
523
|
-
-
|
524
|
-
-
|
631
|
+
- Configure history size with `MAX_HISTORY` in config
|
632
|
+
- Search history with `Ctrl+R` in interactive mode
|
633
|
+
- View recent commands with `/his` command
|
525
634
|
|
526
635
|
## 📱 Examples
|
527
636
|
|
@@ -553,6 +662,7 @@ Output:
|
|
553
662
|
|
554
663
|
```bash
|
555
664
|
$ ai --chat
|
665
|
+
Starting a temporary chat session (will not be saved automatically)
|
556
666
|
|
557
667
|
██ ██ █████ ██ ██████ ██ ██
|
558
668
|
██ ██ ██ ██ ██ ██ ██ ██
|
@@ -561,12 +671,17 @@ $ ai --chat
|
|
561
671
|
██ ██ ██ ██ ██████ ███████ ██
|
562
672
|
|
563
673
|
Welcome to YAICLI!
|
674
|
+
Current: Temporary Session (use /save to make persistent)
|
564
675
|
Press TAB to switch mode
|
565
676
|
/clear : Clear chat history
|
566
677
|
/his : Show chat history
|
678
|
+
/list : List saved chats
|
679
|
+
/save <title> : Save current chat
|
680
|
+
/load <index> : Load a saved chat
|
681
|
+
/del <index> : Delete a saved chat
|
567
682
|
/exit|Ctrl+D|Ctrl+C: Exit
|
568
683
|
/mode chat|exec : Switch mode (Case insensitive)
|
569
|
-
|
684
|
+
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
570
685
|
💬 > Tell me about the solar system
|
571
686
|
|
572
687
|
Assistant:
|
@@ -622,30 +737,30 @@ Output:
|
|
622
737
|
|
623
738
|
YAICLI is designed with a modular architecture that separates concerns and makes the codebase maintainable:
|
624
739
|
|
625
|
-
-
|
626
|
-
-
|
627
|
-
-
|
628
|
-
-
|
629
|
-
-
|
740
|
+
- **CLI Module**: Handles user interaction and command parsing
|
741
|
+
- **API Client**: Manages communication with LLM providers
|
742
|
+
- **Config Manager**: Handles layered configuration
|
743
|
+
- **History Manager**: Maintains conversation history with LRU functionality
|
744
|
+
- **Printer**: Formats and displays responses with rich formatting
|
630
745
|
|
631
746
|
### Dependencies
|
632
747
|
|
633
|
-
| Library
|
634
|
-
|
635
|
-
| [Typer](https://typer.tiangolo.com/)
|
636
|
-
| [Rich](https://rich.readthedocs.io/)
|
748
|
+
| Library | Purpose |
|
749
|
+
| --------------------------------------------------------------- | -------------------------------------------------- |
|
750
|
+
| [Typer](https://typer.tiangolo.com/) | Command-line interface with type hints |
|
751
|
+
| [Rich](https://rich.readthedocs.io/) | Terminal formatting and beautiful display |
|
637
752
|
| [prompt_toolkit](https://python-prompt-toolkit.readthedocs.io/) | Interactive input with history and auto-completion |
|
638
|
-
| [httpx](https://www.python-httpx.org/)
|
639
|
-
| [jmespath](https://jmespath.org/)
|
753
|
+
| [httpx](https://www.python-httpx.org/) | Modern HTTP client with async support |
|
754
|
+
| [jmespath](https://jmespath.org/) | JSON data extraction |
|
640
755
|
|
641
756
|
## 👨💻 Contributing
|
642
757
|
|
643
758
|
Contributions are welcome! Here's how you can help:
|
644
759
|
|
645
|
-
-
|
646
|
-
-
|
647
|
-
-
|
648
|
-
-
|
760
|
+
- **Bug Reports**: Open an issue describing the bug and how to reproduce it
|
761
|
+
- **Feature Requests**: Suggest new features or improvements
|
762
|
+
- **Code Contributions**: Submit a PR with your changes
|
763
|
+
- **Documentation**: Help improve or translate the documentation
|
649
764
|
|
650
765
|
## 📃 License
|
651
766
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
pyproject.toml,sha256=7jXO8UZoTNdyWSkPxoi-5AbItKRXpXiA6l5vSEcht78,1519
|
2
|
+
yaicli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
yaicli/api.py,sha256=gKqkRc-sGg5uKfg97mMErxrRoLvQH9nb62yn4pp_7K0,13925
|
4
|
+
yaicli/chat_manager.py,sha256=McYkizT2dsRaI1LQLFij1oUsst8f00R3zAxnbpt9vCw,9888
|
5
|
+
yaicli/cli.py,sha256=pQpQkm2a1ppSS2T4UJa3UTCULUD1Ipk3s5co79XwU7M,21598
|
6
|
+
yaicli/config.py,sha256=EU2m5Bm3uv0300LvKmP6wTIq-n9eQ-SgSddmdoHW8AI,5802
|
7
|
+
yaicli/const.py,sha256=XfDwiFvpEOdFkggWMO-2kEIubaKEa0QpKdEaAnBof7o,5480
|
8
|
+
yaicli/entry.py,sha256=Wo3gdmgjQnQIGdbsZ7wIHiwkO-pvB-LZ6ZlUu8DYh_0,3500
|
9
|
+
yaicli/history.py,sha256=s-57X9FMsaQHF7XySq1gGH_jpd_cHHTYafYu2ECuG6M,2472
|
10
|
+
yaicli/printer.py,sha256=HdV-eiJan8VpNXUFV7nckkCVnGkBQ6GMXxKf-SzY4Qw,9966
|
11
|
+
yaicli/utils.py,sha256=dchhz1s6XCDTxCT_PdPbSx93fPYcD9FUByHde8xWKMs,4024
|
12
|
+
yaicli-0.2.0.dist-info/METADATA,sha256=-xdaYADLKA8CMQunNezFwxUefQbR2qYgQ27LIdsQQmI,34471
|
13
|
+
yaicli-0.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
14
|
+
yaicli-0.2.0.dist-info/entry_points.txt,sha256=iMhGm3btBaqrknQoF6WCg5sdx69ZyNSC73tRpCcbcLw,63
|
15
|
+
yaicli-0.2.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
16
|
+
yaicli-0.2.0.dist-info/RECORD,,
|
yaicli-0.1.0.dist-info/RECORD
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
pyproject.toml,sha256=X_S3bMzlnrCQkNibgrjMRVHIne1eOhnmj4SI89qyQGM,1519
|
2
|
-
yaicli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
yaicli/api.py,sha256=gKqkRc-sGg5uKfg97mMErxrRoLvQH9nb62yn4pp_7K0,13925
|
4
|
-
yaicli/cli.py,sha256=oOnsoF3vbmeYdkNq3nB5z7M-U8LJFXuGORWTCRANiXI,14199
|
5
|
-
yaicli/config.py,sha256=GrMKPix07nYIldDAZM2KCBL31fLlu4XbxUe_otZ9uBk,7260
|
6
|
-
yaicli/const.py,sha256=UBUgFe8P0aIfdYZJ0HQnXstVY43HpwpNk2qL_Ca6b60,4778
|
7
|
-
yaicli/entry.py,sha256=SlmsfaxLI26qslsFbGBHQA7wG9hjNqr5-j0OoICmfXY,3138
|
8
|
-
yaicli/history.py,sha256=s-57X9FMsaQHF7XySq1gGH_jpd_cHHTYafYu2ECuG6M,2472
|
9
|
-
yaicli/printer.py,sha256=HdV-eiJan8VpNXUFV7nckkCVnGkBQ6GMXxKf-SzY4Qw,9966
|
10
|
-
yaicli/utils.py,sha256=dchhz1s6XCDTxCT_PdPbSx93fPYcD9FUByHde8xWKMs,4024
|
11
|
-
yaicli-0.1.0.dist-info/METADATA,sha256=h-lrbZhmN8N2O0KKAkYEkwtXs6fnDv8XDVBk_EJKLsc,27784
|
12
|
-
yaicli-0.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
13
|
-
yaicli-0.1.0.dist-info/entry_points.txt,sha256=iMhGm3btBaqrknQoF6WCg5sdx69ZyNSC73tRpCcbcLw,63
|
14
|
-
yaicli-0.1.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
15
|
-
yaicli-0.1.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|