ai-coding-assistant 0.5.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.
Files changed (89) hide show
  1. ai_coding_assistant-0.5.0.dist-info/METADATA +226 -0
  2. ai_coding_assistant-0.5.0.dist-info/RECORD +89 -0
  3. ai_coding_assistant-0.5.0.dist-info/WHEEL +4 -0
  4. ai_coding_assistant-0.5.0.dist-info/entry_points.txt +3 -0
  5. ai_coding_assistant-0.5.0.dist-info/licenses/LICENSE +21 -0
  6. coding_assistant/__init__.py +3 -0
  7. coding_assistant/__main__.py +19 -0
  8. coding_assistant/cli/__init__.py +1 -0
  9. coding_assistant/cli/app.py +158 -0
  10. coding_assistant/cli/commands/__init__.py +19 -0
  11. coding_assistant/cli/commands/ask.py +178 -0
  12. coding_assistant/cli/commands/config.py +438 -0
  13. coding_assistant/cli/commands/diagram.py +267 -0
  14. coding_assistant/cli/commands/document.py +410 -0
  15. coding_assistant/cli/commands/explain.py +192 -0
  16. coding_assistant/cli/commands/fix.py +249 -0
  17. coding_assistant/cli/commands/index.py +162 -0
  18. coding_assistant/cli/commands/refactor.py +245 -0
  19. coding_assistant/cli/commands/search.py +182 -0
  20. coding_assistant/cli/commands/serve_docs.py +128 -0
  21. coding_assistant/cli/repl.py +381 -0
  22. coding_assistant/cli/theme.py +90 -0
  23. coding_assistant/codebase/__init__.py +1 -0
  24. coding_assistant/codebase/crawler.py +93 -0
  25. coding_assistant/codebase/parser.py +266 -0
  26. coding_assistant/config/__init__.py +25 -0
  27. coding_assistant/config/config_manager.py +615 -0
  28. coding_assistant/config/settings.py +82 -0
  29. coding_assistant/context/__init__.py +19 -0
  30. coding_assistant/context/chunker.py +443 -0
  31. coding_assistant/context/enhanced_retriever.py +322 -0
  32. coding_assistant/context/hybrid_search.py +311 -0
  33. coding_assistant/context/ranker.py +355 -0
  34. coding_assistant/context/retriever.py +119 -0
  35. coding_assistant/context/window.py +362 -0
  36. coding_assistant/documentation/__init__.py +23 -0
  37. coding_assistant/documentation/agents/__init__.py +27 -0
  38. coding_assistant/documentation/agents/coordinator.py +510 -0
  39. coding_assistant/documentation/agents/module_documenter.py +111 -0
  40. coding_assistant/documentation/agents/synthesizer.py +139 -0
  41. coding_assistant/documentation/agents/task_delegator.py +100 -0
  42. coding_assistant/documentation/decomposition/__init__.py +21 -0
  43. coding_assistant/documentation/decomposition/context_preserver.py +477 -0
  44. coding_assistant/documentation/decomposition/module_detector.py +302 -0
  45. coding_assistant/documentation/decomposition/partitioner.py +621 -0
  46. coding_assistant/documentation/generators/__init__.py +14 -0
  47. coding_assistant/documentation/generators/dataflow_generator.py +440 -0
  48. coding_assistant/documentation/generators/diagram_generator.py +511 -0
  49. coding_assistant/documentation/graph/__init__.py +13 -0
  50. coding_assistant/documentation/graph/dependency_builder.py +468 -0
  51. coding_assistant/documentation/graph/module_analyzer.py +475 -0
  52. coding_assistant/documentation/writers/__init__.py +11 -0
  53. coding_assistant/documentation/writers/markdown_writer.py +322 -0
  54. coding_assistant/embeddings/__init__.py +0 -0
  55. coding_assistant/embeddings/generator.py +89 -0
  56. coding_assistant/embeddings/store.py +187 -0
  57. coding_assistant/exceptions/__init__.py +50 -0
  58. coding_assistant/exceptions/base.py +110 -0
  59. coding_assistant/exceptions/llm.py +249 -0
  60. coding_assistant/exceptions/recovery.py +263 -0
  61. coding_assistant/exceptions/storage.py +213 -0
  62. coding_assistant/exceptions/validation.py +230 -0
  63. coding_assistant/llm/__init__.py +1 -0
  64. coding_assistant/llm/client.py +277 -0
  65. coding_assistant/llm/gemini_client.py +181 -0
  66. coding_assistant/llm/groq_client.py +160 -0
  67. coding_assistant/llm/prompts.py +98 -0
  68. coding_assistant/llm/together_client.py +160 -0
  69. coding_assistant/operations/__init__.py +13 -0
  70. coding_assistant/operations/differ.py +369 -0
  71. coding_assistant/operations/generator.py +347 -0
  72. coding_assistant/operations/linter.py +430 -0
  73. coding_assistant/operations/validator.py +406 -0
  74. coding_assistant/storage/__init__.py +9 -0
  75. coding_assistant/storage/database.py +363 -0
  76. coding_assistant/storage/session.py +231 -0
  77. coding_assistant/utils/__init__.py +31 -0
  78. coding_assistant/utils/cache.py +477 -0
  79. coding_assistant/utils/hardware.py +132 -0
  80. coding_assistant/utils/keystore.py +206 -0
  81. coding_assistant/utils/logger.py +32 -0
  82. coding_assistant/utils/progress.py +311 -0
  83. coding_assistant/validation/__init__.py +13 -0
  84. coding_assistant/validation/files.py +305 -0
  85. coding_assistant/validation/inputs.py +335 -0
  86. coding_assistant/validation/params.py +280 -0
  87. coding_assistant/validation/sanitizers.py +243 -0
  88. coding_assistant/vcs/__init__.py +5 -0
  89. coding_assistant/vcs/git.py +269 -0
@@ -0,0 +1,226 @@
1
+ Metadata-Version: 2.4
2
+ Name: ai-coding-assistant
3
+ Version: 0.5.0
4
+ Summary: AI-powered coding assistant with semantic search, intelligent refactoring, and interactive chat
5
+ License: MIT
6
+ License-File: LICENSE
7
+ Keywords: ai,coding-assistant,llm,code-analysis,semantic-search,refactoring,ollama,developer-tools,cli
8
+ Author: Shreyyyas22
9
+ Author-email: waghshreyash22@gmail.com
10
+ Requires-Python: >=3.11
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.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Topic :: Software Development
20
+ Classifier: Topic :: Software Development :: Code Generators
21
+ Classifier: Topic :: Text Processing :: Indexing
22
+ Requires-Dist: chromadb (>=0.5.23,<0.6.0)
23
+ Requires-Dist: gitpython (>=3.1.45,<4.0.0)
24
+ Requires-Dist: networkx (>=3.4.2,<4.0.0)
25
+ Requires-Dist: numpy (>=1.26.0,<2.0.0)
26
+ Requires-Dist: pathspec (>=0.12.1,<0.13.0)
27
+ Requires-Dist: prompt-toolkit (>=3.0.52,<4.0.0)
28
+ Requires-Dist: psutil (>=6.1.1,<7.0.0)
29
+ Requires-Dist: python-louvain (>=0.16,<1.0.0)
30
+ Requires-Dist: pyyaml (>=6.0.3,<7.0.0)
31
+ Requires-Dist: rank-bm25 (>=0.2.2,<0.3.0)
32
+ Requires-Dist: requests (>=2.31.0,<3.0.0)
33
+ Requires-Dist: rich (>=14.2.0,<15.0.0)
34
+ Requires-Dist: sentence-transformers (>=3.3.1,<4.0.0)
35
+ Requires-Dist: tiktoken (>=0.12.0,<0.13.0)
36
+ Requires-Dist: tree-sitter (>=0.23.2,<0.24.0)
37
+ Requires-Dist: tree-sitter-java (>=0.23.0,<0.24.0)
38
+ Requires-Dist: tree-sitter-javascript (>=0.23.0,<0.24.0)
39
+ Requires-Dist: tree-sitter-python (>=0.23.6,<0.24.0)
40
+ Requires-Dist: typer[all] (>=0.21.0,<0.22.0)
41
+ Requires-Dist: watchdog (>=6.0.0,<7.0.0)
42
+ Project-URL: Homepage, https://github.com/Shreyyyas22/ai-coding-assistant
43
+ Project-URL: Issues, https://github.com/Shreyyyas22/ai-coding-assistant/issues
44
+ Project-URL: Repository, https://github.com/Shreyyyas22/ai-coding-assistant
45
+ Description-Content-Type: text/markdown
46
+
47
+ # AI Coding Assistant
48
+
49
+ A terminal-based AI coding assistant that helps you understand, navigate, and work with your codebase using natural language.
50
+
51
+ [![Python Version](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/downloads/)
52
+ [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
53
+ [![Version](https://img.shields.io/badge/version-0.5.0-orange.svg)](https://github.com/your-username/ai-coding-assistant)
54
+
55
+ ---
56
+
57
+ ## Features
58
+
59
+ - **Natural Language Queries**: Ask questions about your codebase in plain English
60
+ - **Semantic Code Search**: Find code by meaning, not just keywords
61
+ - **Code Explanation**: Get detailed explanations of files and functions
62
+ - **Interactive Chat Mode**: Explore your codebase conversationally
63
+ - **Local-First**: Works with Ollama (free, no API key required)
64
+ - **Privacy-Focused**: Everything runs locally with Ollama
65
+ - **Multi-Language Support**: Python, JavaScript, TypeScript, Java, Go, Rust, and more
66
+
67
+ ---
68
+
69
+ ## Quick Start
70
+
71
+ ### Installation
72
+
73
+ ```bash
74
+ pip install ai-coding-assistant
75
+ ```
76
+
77
+ ### Setup (Ollama - Free & Local)
78
+
79
+ ```bash
80
+ # Install Ollama
81
+ curl https://ollama.ai/install.sh | sh
82
+
83
+ # Pull a code model
84
+ ollama pull codellama
85
+
86
+ # Start Ollama service
87
+ ollama serve
88
+ ```
89
+
90
+ ### Index Your Codebase
91
+
92
+ ```bash
93
+ cd your-project
94
+ assistant index
95
+ ```
96
+
97
+ ### Ask Questions
98
+
99
+ ```bash
100
+ assistant ask "How does authentication work?"
101
+ assistant explain src/auth/login.py
102
+ assistant search "JWT token validation"
103
+ ```
104
+
105
+ ### Interactive Mode
106
+
107
+ ```bash
108
+ assistant chat
109
+ ```
110
+
111
+ ---
112
+
113
+ ## Why AI Coding Assistant?
114
+
115
+ ### No API Key Required
116
+
117
+ Works great with **Ollama** (free, local, open source). Optionally supports OpenAI and Claude APIs.
118
+
119
+ ### Privacy-First
120
+
121
+ With Ollama, everything runs locally on your machine. Your code never leaves your computer.
122
+
123
+ ### Fast & Efficient
124
+
125
+ - Hybrid search (vector + keyword)
126
+ - Smart caching
127
+ - Incremental indexing
128
+ - Only reprocess changed files
129
+
130
+ ---
131
+
132
+ ## Commands
133
+
134
+ | Command | Purpose |
135
+ |---------|---------|
136
+ | `assistant ask` | Ask questions about your code |
137
+ | `assistant index` | Index your codebase |
138
+ | `assistant explain` | Explain specific code |
139
+ | `assistant search` | Search for code |
140
+ | `assistant chat` | Interactive mode |
141
+ | `assistant config` | Manage configuration |
142
+
143
+ See [Command Reference](docs/commands/README.md) for details.
144
+
145
+ ---
146
+
147
+ ## Documentation
148
+
149
+ - [Installation Guide](docs/INSTALLATION.md) - Complete setup instructions
150
+ - [Quick Start Guide](docs/QUICKSTART.md) - Get started in 5 minutes
151
+ - [Configuration Guide](docs/CONFIGURATION.md) - Customize settings
152
+ - [Command Reference](docs/commands/README.md) - All commands
153
+ - [Troubleshooting](docs/TROUBLESHOOTING.md) - Common issues
154
+ - [FAQ](docs/FAQ.md) - Frequently asked questions
155
+
156
+ ---
157
+
158
+ ## System Requirements
159
+
160
+ ### Minimum
161
+ - Python 3.11+
162
+ - 2GB RAM
163
+ - 1GB disk space
164
+
165
+ ### Recommended
166
+ - Python 3.11+
167
+ - 8GB RAM (for Ollama)
168
+ - 5GB disk space
169
+
170
+ ### Supported Platforms
171
+ - Linux (Ubuntu, Debian, Fedora, etc.)
172
+ - macOS (10.15+)
173
+ - Windows (WSL2 recommended)
174
+
175
+ ---
176
+
177
+ ## Development
178
+
179
+ ### Install from Source
180
+
181
+ ```bash
182
+ git clone https://github.com/your-username/ai-coding-assistant.git
183
+ cd ai-coding-assistant
184
+
185
+ # Install with Poetry
186
+ poetry install
187
+
188
+ # Or with pip
189
+ pip install -e .
190
+ ```
191
+
192
+ ### Run Tests
193
+
194
+ ```bash
195
+ poetry run pytest
196
+ ```
197
+
198
+ ---
199
+
200
+ ## Contributing
201
+
202
+ Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
203
+
204
+ ---
205
+
206
+ ## License
207
+
208
+ MIT License. See [LICENSE](LICENSE) for details.
209
+
210
+ ---
211
+
212
+ ## Support
213
+
214
+ - **GitHub Issues**: https://github.com/your-username/ai-coding-assistant/issues
215
+ - **Discussions**: https://github.com/your-username/ai-coding-assistant/discussions
216
+
217
+ ---
218
+
219
+ **Start coding smarter with AI assistance!**
220
+
221
+ ```bash
222
+ pip install ai-coding-assistant
223
+ assistant index
224
+ assistant ask "Let's build something amazing!"
225
+ ```
226
+
@@ -0,0 +1,89 @@
1
+ coding_assistant/__init__.py,sha256=XlLkU4F57q5koXLpv5ArBt_qKNAL8JSCFDpUKW6Cp2k,67
2
+ coding_assistant/__main__.py,sha256=Lm5N53nzaAVt4oBDjiyk0MoYqhX5dKpAJKo6QqE6Y_4,367
3
+ coding_assistant/cli/__init__.py,sha256=-0lnM5JscIGl6AJSysMeIOU6qFs0M9tsHyAWXY90ZKA,43
4
+ coding_assistant/cli/app.py,sha256=l72BP2bXzIazDnGzgu6nHAQIK1a_Z5RqK6GRoYSDpFc,4957
5
+ coding_assistant/cli/commands/__init__.py,sha256=LWcvrEQ9xP8D7zs3qsB99yqWYrn3lUI3DHV5Yn9J664,651
6
+ coding_assistant/cli/commands/ask.py,sha256=nwjLiybZ9sHiOt9qX08nhnrSMito58uvD19za5T-g1E,6602
7
+ coding_assistant/cli/commands/config.py,sha256=LmaXL-IKQxii-44fVrWCZnXl51Nh-hECLOVIc44f4Sk,15034
8
+ coding_assistant/cli/commands/diagram.py,sha256=VkJDKWs2slQkXS85eP_ugeSnH06pcZ6pxFLes9v8As8,9240
9
+ coding_assistant/cli/commands/document.py,sha256=trTt3bv0a_HjbumhN0fIhypbNYIO81VdmZbyYwSRNNY,14910
10
+ coding_assistant/cli/commands/explain.py,sha256=TXqD9OR4KJhGuvUNp-OlU8nsNePis7qcTNKYa4Fmlnc,6795
11
+ coding_assistant/cli/commands/fix.py,sha256=4vc_VE-W4qDNxJLMelYgMWwmo3vnBs6scKKhhrWtTko,8629
12
+ coding_assistant/cli/commands/index.py,sha256=gEC-_VNd7-C2ZSLQDghxJ1HvmFlxdmsYeVy-aIjBpHY,5799
13
+ coding_assistant/cli/commands/refactor.py,sha256=ApmXFPemGD8IoGJDb-AjCwHVW3Zv1msM3ao7nABfNu4,8443
14
+ coding_assistant/cli/commands/search.py,sha256=6gv8pCT87eWhCknqt09P8ZsP5Tz24jH3JRFZm5lAcTc,6215
15
+ coding_assistant/cli/commands/serve_docs.py,sha256=WLOWMsIeSDQFEFfcWDZNlWmRVbR29u-UjR7whrT_w2o,3759
16
+ coding_assistant/cli/repl.py,sha256=7GbAV0kH_X2aYkEzCNwLlP5exCsMW4Q0sShy-RamvoM,13458
17
+ coding_assistant/cli/theme.py,sha256=czqHlZ22AKicpCwOtkj6wpJE0hkKZMX3AN_FByLM7_g,2219
18
+ coding_assistant/codebase/__init__.py,sha256=-ej31kkGAd4qJA32glMIfjklNW0lDH57CPacL_5y7PU,36
19
+ coding_assistant/codebase/crawler.py,sha256=R7V4lqoiNfB_UlrmXJkCxvaCw1f_GSu-JTKYw4245QU,2862
20
+ coding_assistant/codebase/parser.py,sha256=xNmmDfYrgOcaSJKh1EnDLv2jAU9L-TY0GI4QM5nizmU,9527
21
+ coding_assistant/config/__init__.py,sha256=vwp8IUywFQgLrKo93OPdHJ15DoCzBvUq39UB9TOL_ww,424
22
+ coding_assistant/config/config_manager.py,sha256=vFiHEyCEbU0KYbwGodNy_WIyW1J71m-cmmVxrUGvbVM,18573
23
+ coding_assistant/config/settings.py,sha256=YOFR7kqEeDwYP-yiCCvLjTmobSiE3pbkiUmZ5Jpa8Qc,3070
24
+ coding_assistant/context/__init__.py,sha256=sIdg--tVYlys7Lk0lZQaasYqIvWErhTAdzqQ0rXYHjk,644
25
+ coding_assistant/context/chunker.py,sha256=klKkrJxEOQpHcSeMuWY2rzPtx22SZefFyx8GCF4oCfA,15169
26
+ coding_assistant/context/enhanced_retriever.py,sha256=LTD05I9MaXx3IPIuj52tFxI1ZDSuwCTzb9k8SiemoAY,11756
27
+ coding_assistant/context/hybrid_search.py,sha256=EBfXIqLWdqZgz1k91KNdA35FzgKQz3T_xw_0HAn96no,10326
28
+ coding_assistant/context/ranker.py,sha256=-j47MLMPhk2hvEI1TpNhd-nc4ww0H5OcVEMe7bKXJZ0,12656
29
+ coding_assistant/context/retriever.py,sha256=s1mstZg0LrZ9HTRlyP75JRRpNrAbgzZQ4g8kGEm93VE,4079
30
+ coding_assistant/context/window.py,sha256=Oco7uWq0vwLfdcriNAJVwQFK56-9glls8kXK3vfcWHQ,10787
31
+ coding_assistant/documentation/__init__.py,sha256=pW8m7-TcR2xMt57azZyFK_A4E0lILnQmtyasaIh0s20,661
32
+ coding_assistant/documentation/agents/__init__.py,sha256=dIhll7-0CQfVe-o36Wg7vw9mL76PxblT58jQe5ZeJrM,733
33
+ coding_assistant/documentation/agents/coordinator.py,sha256=ijCtUSK03X2WMszdqHDDVLu6J9OMkMH8B1wve3ue6PM,18810
34
+ coding_assistant/documentation/agents/module_documenter.py,sha256=c1D5VjNtToM2i3-Ui2PVYf0ElSLDDpc5nSAPZ1Dc-c0,3543
35
+ coding_assistant/documentation/agents/synthesizer.py,sha256=h_mmnuU_Nu9KIGESgca2swZArUfWclPK8kC3RRfGm-s,4855
36
+ coding_assistant/documentation/agents/task_delegator.py,sha256=EXHWVLtsfDTmeVdKNfKJKCTbc4xTQQjPP7f8efx9H-s,3017
37
+ coding_assistant/documentation/decomposition/__init__.py,sha256=vQ9ODhFuvLGGMkmbv_Ko9-A9dddaGVDOf6REOUx6sHY,534
38
+ coding_assistant/documentation/decomposition/context_preserver.py,sha256=80XjXt2kTe1NaO_A2p93GJw11jWI7pzUA-JHXm0F1dk,17350
39
+ coding_assistant/documentation/decomposition/module_detector.py,sha256=GEMLvM_63CwlBxj2lCXqq4sACg2NfFB-rMOfzsPna5s,9382
40
+ coding_assistant/documentation/decomposition/partitioner.py,sha256=xG6jKhklcs5oa2w21HrN7_noj7VDcGkc3Zn77VRQ_VM,21834
41
+ coding_assistant/documentation/generators/__init__.py,sha256=ne27chxXjb4h2jcEw34SaWlWp8TqBpDQK8_A4mjHK3A,407
42
+ coding_assistant/documentation/generators/dataflow_generator.py,sha256=29FyuYAVAwVUX3tiHrU8YklIGibPNO4wqSdX1qhI4H4,17049
43
+ coding_assistant/documentation/generators/diagram_generator.py,sha256=0SkG_pj1lDR0qo_B_Rlu_adD7asGhNMvT4CVQVoNS54,19254
44
+ coding_assistant/documentation/graph/__init__.py,sha256=zlsMzyiqUkXmXoMvKMRDbOwmTJGrQ1u2z0sEag1gxIA,351
45
+ coding_assistant/documentation/graph/dependency_builder.py,sha256=3v3UII1fZBi9uOPYes9VMVD_AoGcMGhgmwzb3ZhoFMI,15862
46
+ coding_assistant/documentation/graph/module_analyzer.py,sha256=2SWWdLoKEOzs2otb5V5BnSXTnJkzv21YEur7-T2FRtQ,15680
47
+ coding_assistant/documentation/writers/__init__.py,sha256=2g4rMKvDDQkdgrQbZQkXfNs29fcvOqWUZJwlv09FWR0,273
48
+ coding_assistant/documentation/writers/markdown_writer.py,sha256=xl5qEqM0DkBush-JCMoOWEV9kveOY4XIGfL4DXJG1YE,10860
49
+ coding_assistant/embeddings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
+ coding_assistant/embeddings/generator.py,sha256=UHUt3qHaTbYVTYQkHWSR1OgSZDUOMLa4vghctcVb6sY,2703
51
+ coding_assistant/embeddings/store.py,sha256=VbDnXC7SE9vMbkx2bqZqzSDWz3rKmPbQrOj_57I1Buc,5874
52
+ coding_assistant/exceptions/__init__.py,sha256=EqBOL1pdXiEAXJVIK9QGjKeSv_74yDUqn-_-UPVtqdE,1034
53
+ coding_assistant/exceptions/base.py,sha256=LlG_lr8yk52t2q9wZbVzuuoTrVAvm9vinTrOb7L7MMw,3372
54
+ coding_assistant/exceptions/llm.py,sha256=ZRs9B5ISONnQT9picGuHqlbmLnozxXYeLGi2wgz8MTs,7883
55
+ coding_assistant/exceptions/recovery.py,sha256=bzs8R_NhFhL631BYkG4v3SM0QheNVejViyAXt4yF-yQ,8086
56
+ coding_assistant/exceptions/storage.py,sha256=9p8UGUQbxlZ6Gcy7byy9ikU6C13RmrcFZRS78O8cRcQ,5573
57
+ coding_assistant/exceptions/validation.py,sha256=kLP-Wg1K4NiI9xUKpa7Uc53LhHTZOMM7w7pe_KOcZFc,5641
58
+ coding_assistant/llm/__init__.py,sha256=vbjVwz8760-mRUYNZEtXVW5ttjr6EvONTj63DCs17JA,30
59
+ coding_assistant/llm/client.py,sha256=lbmys4Iwml5L3qwmpXwgH_2NWcc6OSO6T_bTlCEpxBE,11395
60
+ coding_assistant/llm/gemini_client.py,sha256=VptZEPKISM0CWxrWQF7SdJQwCrnHp8Vdeh2me8qmOKk,6555
61
+ coding_assistant/llm/groq_client.py,sha256=aB1v64dqhJO9DzQ2cW3QhgdrQHsMkqiSlqTFYxO7ft4,5417
62
+ coding_assistant/llm/prompts.py,sha256=uIgvGByz-56Bhafn2emv1VmjMKYBKfhZHMJBdvEp6aw,4011
63
+ coding_assistant/llm/together_client.py,sha256=E_h_Scu7ZzGDlisph8b8uPdz0jsh3YzcPDlwzodL_Kg,5500
64
+ coding_assistant/operations/__init__.py,sha256=VmwIDx0fkNLvnFGaPosix7Ok0_GPwBhtJmBH1IESnB8,437
65
+ coding_assistant/operations/differ.py,sha256=jxreiFRr_keUeNTQ_T31taQ5BgY0Vvr5QHmfYnHHL5I,12133
66
+ coding_assistant/operations/generator.py,sha256=K9sNHXhIMrvyOsYYeYkAbdotLtzz0wqZRu8qaNTl_Ko,11382
67
+ coding_assistant/operations/linter.py,sha256=dLgxPgKriFq3CzNL-xTvUxcOKreB_VEGZKY-JOSFCgc,14386
68
+ coding_assistant/operations/validator.py,sha256=OtfDRG72Aj45M52UPF7Ue-aOd2UjPr6DGW3MTBytW-s,13639
69
+ coding_assistant/storage/__init__.py,sha256=NJIUH-daWIz3eBnlnvmbi3zE801AJRnGTxds-8c5wvw,215
70
+ coding_assistant/storage/database.py,sha256=QBFnQ3bfwBO4kkL2ryTrVJtIzeVMi2_Yq_QudsNDheM,12209
71
+ coding_assistant/storage/session.py,sha256=hS-hAz_K5wn-7WJdUimltm1XAZm0RdYdJZkf3qJbd3k,6649
72
+ coding_assistant/utils/__init__.py,sha256=v6lBZKkibOTBBOZTlHigLCJ8dgoJtYbhgqQiDszf1lA,588
73
+ coding_assistant/utils/cache.py,sha256=R6et9MF6JZf-FFmecQuGPp1NKm91dCuztjnUPKb3cEo,13915
74
+ coding_assistant/utils/hardware.py,sha256=HuyWJWGTAjL5mTElc_mSd1mAnGf7vf63EO2eGhP1m5k,4816
75
+ coding_assistant/utils/keystore.py,sha256=cgtSzIKkf_RI_7K3-tdaI159CfTfxadjZ6JqENPnYdw,5514
76
+ coding_assistant/utils/logger.py,sha256=MGiHn2gjhVBUiwN6jDZ0cKTe4t3i8upLSuqHorVFMTw,830
77
+ coding_assistant/utils/progress.py,sha256=tJF5xWR4S4UwCSJrLPZxZDVgObsfhx6-WiqJt6KryJ0,8587
78
+ coding_assistant/validation/__init__.py,sha256=ThnFwC8M4ntfypdTE7GcRIw4a9z0W3ZhcmUiJyScufs,395
79
+ coding_assistant/validation/files.py,sha256=RFOmhR-ZjKhQl2MaLaAU-JrRBkgvN594BRfBZz89HvU,8798
80
+ coding_assistant/validation/inputs.py,sha256=pMNj5SI11hk3faH7L0neUciNbAoQfxr58s6Qdppvd_4,8459
81
+ coding_assistant/validation/params.py,sha256=ldYtuAX_Pgcx2zReGl1x-XDfusytdnc-L4ArmQCIb-U,7111
82
+ coding_assistant/validation/sanitizers.py,sha256=eLMjdXagPbeUnl7_qkcva9NyLIL8vKoLslPsQeKZisE,5721
83
+ coding_assistant/vcs/__init__.py,sha256=2KfQ_1J1pdp9G0Uj6NKUaDcBm44W_A0eXjNwSq8QlyA,125
84
+ coding_assistant/vcs/git.py,sha256=fwDAK7_3TfNxqyvVLhjaK7dAjXKwWo4JrxKtkMEJUz4,7921
85
+ ai_coding_assistant-0.5.0.dist-info/METADATA,sha256=qhGK__VHQmH_2xpkvzFkE7tr7B_ci5zJ81ihM2TshJo,5845
86
+ ai_coding_assistant-0.5.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
87
+ ai_coding_assistant-0.5.0.dist-info/entry_points.txt,sha256=ueiY29PtyUiucGdxiWAzOw5EDxLy1F-z088W6TU4gaE,60
88
+ ai_coding_assistant-0.5.0.dist-info/licenses/LICENSE,sha256=wGzmS0uCVluC6RzjBZpJTvSPtQy5dX1gZ9CWvxkUVdo,1068
89
+ ai_coding_assistant-0.5.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.2.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ assistant=coding_assistant.__main__:main
3
+
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Shreyyyas22
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,3 @@
1
+ """AI-powered terminal coding assistant."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,19 @@
1
+ """Entry point for the AI coding assistant."""
2
+ import sys
3
+ from coding_assistant.cli.app import app
4
+
5
+
6
+ def main():
7
+ """Run the CLI application."""
8
+ try:
9
+ app()
10
+ except KeyboardInterrupt:
11
+ print("\n\nGoodbye!")
12
+ sys.exit(0)
13
+ except Exception as e:
14
+ print(f"Error: {e}")
15
+ sys.exit(1)
16
+
17
+
18
+ if __name__ == "__main__":
19
+ main()
@@ -0,0 +1 @@
1
+ """CLI module for the coding assistant."""
@@ -0,0 +1,158 @@
1
+ """Main CLI application using Typer."""
2
+ import typer
3
+ from rich.console import Console
4
+ from pathlib import Path
5
+ from typing import Optional
6
+
7
+ from coding_assistant.config.settings import settings
8
+ from coding_assistant.cli.commands import (
9
+ ask_command,
10
+ index_command,
11
+ explain_command,
12
+ search_command,
13
+ refactor_command,
14
+ fix_command,
15
+ config_command,
16
+ )
17
+ from coding_assistant.cli.commands.document import document_app
18
+ from coding_assistant.cli.commands.diagram import diagram_app
19
+ from coding_assistant.cli.commands.serve_docs import serve_docs_app
20
+
21
+ app = typer.Typer(
22
+ name="assistant",
23
+ help="AI-powered coding assistant for your terminal",
24
+ add_completion=False,
25
+ rich_markup_mode="rich",
26
+ )
27
+
28
+ console = Console()
29
+
30
+
31
+ @app.callback()
32
+ def callback(
33
+ project_path: Optional[Path] = typer.Option(
34
+ None,
35
+ "--project",
36
+ "-p",
37
+ help="Path to the project directory (defaults to current directory)"
38
+ ),
39
+ verbose: bool = typer.Option(
40
+ False,
41
+ "--verbose",
42
+ "-v",
43
+ help="Enable verbose output"
44
+ ),
45
+ llm_provider: Optional[str] = typer.Option(
46
+ None,
47
+ "--llm",
48
+ help="LLM provider to use (ollama, groq, gemini, together, mock)"
49
+ ),
50
+ ):
51
+ """AI coding assistant - understand and improve your codebase.
52
+
53
+ Phase 4: Advanced Features
54
+ - Intelligent code explanations
55
+ - Hybrid semantic + keyword search
56
+ - AI-powered refactoring with validation
57
+ - Automated bug fixing and linting
58
+ """
59
+ if project_path:
60
+ settings.set_project_path(project_path)
61
+ settings.verbose = verbose
62
+ if llm_provider:
63
+ settings.llm_provider = llm_provider
64
+
65
+
66
+ # Register commands
67
+ app.command(name="ask", help="Ask questions about your codebase")(ask_command)
68
+ app.command(name="index", help="Index codebase for semantic search")(index_command)
69
+ app.command(name="explain", help="Explain how code works")(explain_command)
70
+ app.command(name="search", help="Search codebase with hybrid search")(search_command)
71
+ app.command(name="refactor", help="Refactor code with AI assistance")(refactor_command)
72
+ app.command(name="fix", help="Fix linting issues and bugs")(fix_command)
73
+ app.add_typer(config_command, name="config", help="Manage configuration and API keys")
74
+
75
+ # CodeWiki integration commands
76
+ app.add_typer(document_app, name="document", help="Generate comprehensive documentation")
77
+ app.add_typer(diagram_app, name="diagram", help="Generate visual diagrams")
78
+ app.add_typer(serve_docs_app, name="serve-docs", help="Serve documentation locally")
79
+
80
+
81
+ @app.command()
82
+ def version():
83
+ """Show version information."""
84
+ from rich.panel import Panel
85
+ from rich.table import Table
86
+
87
+ # Version info
88
+ version_text = """[bold cyan]AI Coding Assistant[/bold cyan]
89
+ [bold]Version:[/bold] 0.4.0
90
+ [bold]Phase:[/bold] 4 - Advanced Features
91
+
92
+ [dim]A local-first, AI-powered coding assistant[/dim]"""
93
+
94
+ console.print(Panel(version_text, border_style="cyan"))
95
+
96
+ # Features table
97
+ table = Table(title="Features", show_header=True, header_style="bold magenta")
98
+ table.add_column("Feature", style="cyan")
99
+ table.add_column("Status", justify="center")
100
+
101
+ features = [
102
+ ("Semantic Code Search", "✓"),
103
+ ("Hybrid Search (Vector + BM25)", "✓"),
104
+ ("Smart Code Chunking", "✓"),
105
+ ("Context-Aware Ranking", "✓"),
106
+ ("Code Validation", "✓"),
107
+ ("Linter Integration", "✓"),
108
+ ("AI-Powered Refactoring", "✓"),
109
+ ("Automated Bug Fixing", "✓"),
110
+ ("Diff Preview", "✓"),
111
+ ("Local LLM Support (Ollama)", "✓"),
112
+ ]
113
+
114
+ for feature, status in features:
115
+ table.add_row(feature, f"[green]{status}[/green]")
116
+
117
+ console.print(table)
118
+
119
+ # Commands info
120
+ console.print("\n[bold]Available Commands:[/bold]")
121
+ commands_info = [
122
+ ("ask", "Ask questions about your codebase"),
123
+ ("search", "Search code with hybrid search"),
124
+ ("explain", "Explain how code works"),
125
+ ("index", "Index codebase for search"),
126
+ ("refactor", "Refactor code with AI"),
127
+ ("fix", "Fix linting issues and bugs"),
128
+ ("config", "Manage configuration and API keys"),
129
+ ]
130
+
131
+ for cmd, desc in commands_info:
132
+ console.print(f" [cyan]{cmd:12}[/cyan] {desc}")
133
+
134
+ console.print("\n[dim]Run 'assistant <command> --help' for more information[/dim]\n")
135
+
136
+
137
+ @app.command()
138
+ def chat():
139
+ """Start interactive chat mode (REPL).
140
+
141
+ Interactive mode allows multi-turn conversations with context awareness.
142
+ The assistant remembers your previous questions and can provide
143
+ more contextual and helpful responses.
144
+
145
+ Features:
146
+ - Multi-turn conversations
147
+ - Context-aware responses
148
+ - Code search and retrieval
149
+ - Special commands (/help, /history, etc.)
150
+
151
+ Press Ctrl+D to exit.
152
+ """
153
+ from coding_assistant.cli.repl import start_repl
154
+ start_repl(settings.project_path)
155
+
156
+
157
+ if __name__ == "__main__":
158
+ app()
@@ -0,0 +1,19 @@
1
+ """CLI commands for the coding assistant."""
2
+
3
+ from coding_assistant.cli.commands.ask import ask_command
4
+ from coding_assistant.cli.commands.index import index_command
5
+ from coding_assistant.cli.commands.explain import explain_command
6
+ from coding_assistant.cli.commands.search import search_command
7
+ from coding_assistant.cli.commands.refactor import refactor_command
8
+ from coding_assistant.cli.commands.fix import fix_command
9
+ from coding_assistant.cli.commands.config import config_command
10
+
11
+ __all__ = [
12
+ 'ask_command',
13
+ 'index_command',
14
+ 'explain_command',
15
+ 'search_command',
16
+ 'refactor_command',
17
+ 'fix_command',
18
+ 'config_command',
19
+ ]