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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yaicli
3
- Version: 0.1.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 - Your AI Command Line Interface
225
+ # YAICLI: Your AI assistant in the command line.
226
226
 
227
227
  [![PyPI version](https://img.shields.io/pypi/v/yaicli?style=for-the-badge)](https://pypi.org/project/yaicli/)
228
228
  ![GitHub License](https://img.shields.io/github/license/belingud/yaicli?style=for-the-badge)
@@ -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
- - **💬 Chat Mode**: Engage in persistent conversations with full context tracking
247
- - **🚀 Execute Mode**: Generate and safely run OS-specific shell commands
248
- - **⚡ Quick Query**: Get instant answers without entering interactive mode
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
- - **Auto-detection**: Identifies your shell (bash/zsh/PowerShell/CMD) and OS
252
- - **Safe Command Execution**: 3-step verification before running any command
253
- - **Flexible Input**: Pipe content directly (`cat log.txt | ai "analyze this"`)
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
- - **OpenAI-Compatible**: Works with any OpenAI-compatible API endpoint
257
- - **Multi-Provider Support**: Easy configuration for Claude, Gemini, Cohere, etc.
258
- - **Custom Response Parsing**: Extract exactly what you need with jmespath
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
- - **Real-time Streaming**: See responses as they're generated with cursor animation
262
- - **Rich History Management**: LRU-based history with 500 entries by default
263
- - **Syntax Highlighting**: Beautiful code formatting with customizable themes
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
- - **Layered Configuration**: Environment variables > Config file > Sensible defaults
267
- - **Debugging Tools**: Verbose mode with detailed API tracing
268
- - **Lightweight**: Minimal dependencies with focused functionality
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
- - Python 3.9 or higher
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 | Description | Default | Env Variable |
347
- |--------|-------------|---------|---------------|
348
- | `BASE_URL` | API endpoint URL | `https://api.openai.com/v1` | `YAI_BASE_URL` |
349
- | `API_KEY` | Your API key | - | `YAI_API_KEY` |
350
- | `MODEL` | LLM model to use | `gpt-4o` | `YAI_MODEL` |
351
- | `SHELL_NAME` | Shell type | `auto` | `YAI_SHELL_NAME` |
352
- | `OS_NAME` | Operating system | `auto` | `YAI_OS_NAME` |
353
- | `COMPLETION_PATH` | API completion path | `chat/completions` | `YAI_COMPLETION_PATH` |
354
- | `ANSWER_PATH` | JSON path for response | `choices[0].message.content` | `YAI_ANSWER_PATH` |
355
- | `STREAM` | Enable streaming | `true` | `YAI_STREAM` |
356
- | `TIMEOUT` | API timeout (seconds) | `60` | `YAI_TIMEOUT` |
357
- | `INTERACTIVE_ROUND` | Interactive mode rounds | `25` | `YAI_INTERACTIVE_ROUND` |
358
- | `CODE_THEME` | Syntax highlighting theme | `monokai` | `YAI_CODE_THEME` |
359
- | `TEMPERATURE` | Response randomness | `0.7` | `YAI_TEMPERATURE` |
360
- | `TOP_P` | Top-p sampling | `1.0` | `YAI_TOP_P` |
361
- | `MAX_TOKENS` | Max response tokens | `1024` | `YAI_MAX_TOKENS` |
362
- | `MAX_HISTORY` | Max history entries | `500` | `YAI_MAX_HISTORY` |
363
- | `AUTO_SUGGEST` | Enable history suggestions | `true` | `YAI_AUTO_SUGGEST` |
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 | BASE_URL | COMPLETION_PATH | ANSWER_PATH |
372
- |----------|----------|-----------------|-------------|
373
- | **OpenAI** (default) | `https://api.openai.com/v1` | `chat/completions` | `choices[0].message.content` |
374
- | **Claude** (native API) | `https://api.anthropic.com/v1` | `messages` | `content[0].text` |
375
- | **Claude** (OpenAI-compatible) | `https://api.anthropic.com/v1/openai` | `chat/completions` | `choices[0].message.content` |
376
- | **Cohere** | `https://api.cohere.com/v2` | `chat` | `message.content[0].text` |
377
- | **Google Gemini** | `https://generativelanguage.googleapis.com/v1beta/openai` | `chat/completions` | `choices[0].message.content` |
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
- > - Google Gemini: https://ai.google.dev/gemini-api/docs/openai
381
- > - Claude: https://docs.anthropic.com/en/api/openai-sdk
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
- - Check the provider's API documentation for their chat completion endpoint
401
+
402
+ - Check the provider's API documentation for their chat completion endpoint
389
403
 
390
404
  2. **Identify the Response Structure**:
391
- - Look at the JSON response format to find where the text content is located
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
- - Use jmespath syntax to specify the path to the text content
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
- "content": [
400
- {
401
- "text": "Hi! My name is Claude.",
402
- "type": "text"
403
- }
404
- ],
405
- "id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
406
- "model": "claude-3-7-sonnet-20250219",
407
- "role": "assistant"
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 | Short | Description |
453
- |--------|-------|-------------|
454
- | `--chat` | `-c` | Start in interactive chat mode |
455
- | `--shell` | `-s` | Generate and execute shell commands |
456
- | `--help` | `-h` | Show help message and exit |
457
- | `--verbose` | `-V` | Show detailed debug information |
458
- | `--template` | | Display the config 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
- - `/exit` - Exit the application
468
- - `/clear` - Clear conversation history
469
- - `/his` - Show command history
470
- - `/mode chat|exec` - Switch modes
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
- - `Tab` - Toggle between Chat/Execute modes
474
- - `Ctrl+C` or `Ctrl+D` - Exit
475
- - `Ctrl+R` - Search history
476
- - `↑/↓` - Navigate through history
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
- - Natural conversations with context
483
- - Markdown and code formatting
484
- - Reasoning display for complex queries
504
+
505
+ - Natural conversations with context
506
+ - Markdown and code formatting
507
+ - Reasoning display for complex queries
485
508
 
486
509
  **Execute Mode** (🚀)
487
- - Generate shell commands from descriptions
488
- - Review commands before execution
489
- - Edit commands before running
490
- - Safe execution with confirmation
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
- - Configure history size with `MAX_HISTORY` in config
523
- - Search history with `Ctrl+R` in interactive mode
524
- - View recent commands with `/his` command
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
- - **CLI Module**: Handles user interaction and command parsing
626
- - **API Client**: Manages communication with LLM providers
627
- - **Config Manager**: Handles layered configuration
628
- - **History Manager**: Maintains conversation history with LRU functionality
629
- - **Printer**: Formats and displays responses with rich formatting
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 | Purpose |
634
- |---------|----------|
635
- | [Typer](https://typer.tiangolo.com/) | Command-line interface with type hints |
636
- | [Rich](https://rich.readthedocs.io/) | Terminal formatting and beautiful display |
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/) | Modern HTTP client with async support |
639
- | [jmespath](https://jmespath.org/) | JSON data extraction |
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
- - **Bug Reports**: Open an issue describing the bug and how to reproduce it
646
- - **Feature Requests**: Suggest new features or improvements
647
- - **Code Contributions**: Submit a PR with your changes
648
- - **Documentation**: Help improve or translate the documentation
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,,
@@ -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