akitallm 1.1.0__tar.gz → 1.2.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.
- akitallm-1.2.0/PKG-INFO +217 -0
- akitallm-1.2.0/README.md +182 -0
- akitallm-1.2.0/akita/__init__.py +1 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/cli/main.py +121 -52
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/core/config.py +1 -0
- akitallm-1.2.0/akita/core/i18n.py +123 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/models/base.py +10 -4
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/reasoning/engine.py +33 -2
- akitallm-1.2.0/akita/tools/diff.py +173 -0
- akitallm-1.2.0/akitallm.egg-info/PKG-INFO +217 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akitallm.egg-info/SOURCES.txt +3 -1
- {akitallm-1.1.0 → akitallm-1.2.0}/pyproject.toml +1 -1
- {akitallm-1.1.0 → akitallm-1.2.0}/tests/test_basic.py +1 -1
- akitallm-1.2.0/tests/test_strict_guards.py +74 -0
- akitallm-1.1.0/PKG-INFO +0 -140
- akitallm-1.1.0/README.md +0 -105
- akitallm-1.1.0/akita/__init__.py +0 -1
- akitallm-1.1.0/akita/tools/diff.py +0 -116
- akitallm-1.1.0/akitallm.egg-info/PKG-INFO +0 -140
- {akitallm-1.1.0 → akitallm-1.2.0}/LICENSE +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/core/ast_utils.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/core/indexing.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/core/plugins.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/core/providers.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/core/trace.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/plugins/__init__.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/plugins/files.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/reasoning/session.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/schemas/review.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/tools/base.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/tools/context.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akita/tools/git.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akitallm.egg-info/dependency_links.txt +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akitallm.egg-info/entry_points.txt +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akitallm.egg-info/requires.txt +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/akitallm.egg-info/top_level.txt +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/setup.cfg +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/tests/test_ast.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/tests/test_diff.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/tests/test_interactive.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/tests/test_plugins.py +0 -0
- {akitallm-1.1.0 → akitallm-1.2.0}/tests/test_review_mock.py +0 -0
akitallm-1.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: akitallm
|
|
3
|
+
Version: 1.2.0
|
|
4
|
+
Summary: AkitaLLM: An open-source local-first AI system for programming.
|
|
5
|
+
Author: KerubinDev
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/KerubinDev/AkitaLLM
|
|
8
|
+
Project-URL: Repository, https://github.com/KerubinDev/AkitaLLM
|
|
9
|
+
Project-URL: Issues, https://github.com/KerubinDev/AkitaLLM/issues
|
|
10
|
+
Keywords: ai,cli,programming,local-first,llm
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Requires-Python: >=3.10
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
License-File: LICENSE
|
|
21
|
+
Requires-Dist: typer[all]
|
|
22
|
+
Requires-Dist: litellm
|
|
23
|
+
Requires-Dist: pydantic
|
|
24
|
+
Requires-Dist: rich
|
|
25
|
+
Requires-Dist: python-dotenv
|
|
26
|
+
Requires-Dist: pytest
|
|
27
|
+
Requires-Dist: pytest-mock
|
|
28
|
+
Requires-Dist: gitpython
|
|
29
|
+
Requires-Dist: tomli-w
|
|
30
|
+
Requires-Dist: tomli
|
|
31
|
+
Requires-Dist: whatthepatch>=1.0.5
|
|
32
|
+
Requires-Dist: tree-sitter>=0.21.3
|
|
33
|
+
Requires-Dist: tree-sitter-python>=0.21.0
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
# AkitaLLM
|
|
37
|
+
|
|
38
|
+

|
|
39
|
+

|
|
40
|
+

|
|
41
|
+
[](https://github.com/KerubinDev/AkitaLLM/actions)
|
|
42
|
+

|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Analyze → Plan → Execute → Validate
|
|
48
|
+
|
|
49
|
+
````
|
|
50
|
+
|
|
51
|
+
**A deterministic, local-first AI orchestrator for software engineers.**
|
|
52
|
+
|
|
53
|
+
AkitaLLM is not a chat interface.
|
|
54
|
+
It is not autocomplete.
|
|
55
|
+
It is not “AI magic”.
|
|
56
|
+
|
|
57
|
+
It is an engineering tool.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## What AkitaLLM is (and what it is not)
|
|
62
|
+
|
|
63
|
+
AkitaLLM treats Large Language Models as **non-deterministic execution engines** that must operate inside a **strict, auditable pipeline**.
|
|
64
|
+
|
|
65
|
+
Instead of asking an AI *“please fix my code”*, you force it to:
|
|
66
|
+
|
|
67
|
+
1. **Analyze** the real project structure
|
|
68
|
+
2. **Plan** concrete technical steps
|
|
69
|
+
3. **Execute** changes as reviewable diffs
|
|
70
|
+
4. **Validate** results with real tooling
|
|
71
|
+
|
|
72
|
+
No hidden prompts.
|
|
73
|
+
No blind edits.
|
|
74
|
+
No guessing.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Why this project exists
|
|
79
|
+
|
|
80
|
+
Most AI coding tools optimize for **speed of output**.
|
|
81
|
+
|
|
82
|
+
Software engineering optimizes for:
|
|
83
|
+
- correctness
|
|
84
|
+
- predictability
|
|
85
|
+
- debuggability
|
|
86
|
+
- long-term maintainability
|
|
87
|
+
|
|
88
|
+
That mismatch causes real problems:
|
|
89
|
+
|
|
90
|
+
- Code is generated without understanding the project
|
|
91
|
+
- Developers approve changes they don’t fully understand
|
|
92
|
+
- Bugs are pushed faster, not fewer
|
|
93
|
+
|
|
94
|
+
AkitaLLM exists to **slow AI down** and force it to behave like a junior engineer working under strict supervision.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## The core difference
|
|
99
|
+
|
|
100
|
+
| Aspect | Typical AI Tools | AkitaLLM |
|
|
101
|
+
|------|-----------------|----------|
|
|
102
|
+
| Interaction | Chat / Autocomplete | Structured pipeline |
|
|
103
|
+
| Control | Implicit | Explicit and reviewable |
|
|
104
|
+
| Output | Raw code | Unified diffs |
|
|
105
|
+
| Context | Prompt-limited | Project-aware |
|
|
106
|
+
| Validation | Manual | Automated |
|
|
107
|
+
| Philosophy | “Trust the model” | “Trust the process” |
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Design principles
|
|
112
|
+
|
|
113
|
+
**Local-first**
|
|
114
|
+
Your code stays on your machine. AkitaLLM runs locally and only sends what is strictly necessary to the model.
|
|
115
|
+
|
|
116
|
+
**No magic**
|
|
117
|
+
Every decision is logged. Every step is inspectable. Every change is explicit.
|
|
118
|
+
|
|
119
|
+
**Tool-driven**
|
|
120
|
+
The AI uses tools (AST parsing, tests, linters). It does not replace them.
|
|
121
|
+
|
|
122
|
+
**Human-in-the-loop**
|
|
123
|
+
Nothing is applied without your approval.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## What AkitaLLM can do today
|
|
128
|
+
|
|
129
|
+
- 🔍 **Structural code reviews**
|
|
130
|
+
Detect bugs, architectural risks, performance issues, and security problems.
|
|
131
|
+
|
|
132
|
+
- 🧭 **Technical planning**
|
|
133
|
+
Generate step-by-step implementation plans in Markdown.
|
|
134
|
+
|
|
135
|
+
- 🧩 **Diff-based solutions**
|
|
136
|
+
Propose changes as standard unified diffs — no direct file mutation.
|
|
137
|
+
|
|
138
|
+
- 🧪 **Local validation**
|
|
139
|
+
Run tests and tooling before applying changes.
|
|
140
|
+
|
|
141
|
+
- 🔌 **Extensible architecture**
|
|
142
|
+
Plugin system for custom tools and workflows.
|
|
143
|
+
|
|
144
|
+
- 🤖 **Model agnostic**
|
|
145
|
+
Works with OpenAI, Anthropic, Ollama, and any LiteLLM-compatible provider.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Installation
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
pip install akitallm
|
|
153
|
+
````
|
|
154
|
+
|
|
155
|
+
Python 3.10+ required.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Basic usage
|
|
160
|
+
|
|
161
|
+
### Initialize / Review a project
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
akita review .
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Generate a technical plan
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
akita plan "Refactor authentication to use JWT with refresh tokens"
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Solve a concrete problem
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
akita solve "Fix silent failures in the reasoning engine error handling"
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
All commands follow the same pipeline:
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
Analyze → Plan → Execute → Validate
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Extending AkitaLLM
|
|
188
|
+
|
|
189
|
+
AkitaLLM is designed to be extended by engineers.
|
|
190
|
+
|
|
191
|
+
* Custom tools
|
|
192
|
+
* Custom validators
|
|
193
|
+
* Custom reasoning steps
|
|
194
|
+
|
|
195
|
+
See the [Plugin Development Guide](PLUGINS.md).
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Contributing
|
|
200
|
+
|
|
201
|
+
AkitaLLM is not looking for volume.
|
|
202
|
+
It is looking for **engineering-quality contributions**.
|
|
203
|
+
|
|
204
|
+
If you care about:
|
|
205
|
+
|
|
206
|
+
* clean abstractions
|
|
207
|
+
* predictable systems
|
|
208
|
+
* readable diffs
|
|
209
|
+
* testable behavior
|
|
210
|
+
|
|
211
|
+
You’ll fit right in.
|
|
212
|
+
|
|
213
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
> “Understanding the internals is the first step to excellence.”
|
akitallm-1.2.0/README.md
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# AkitaLLM
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+
[](https://github.com/KerubinDev/AkitaLLM/actions)
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Analyze → Plan → Execute → Validate
|
|
13
|
+
|
|
14
|
+
````
|
|
15
|
+
|
|
16
|
+
**A deterministic, local-first AI orchestrator for software engineers.**
|
|
17
|
+
|
|
18
|
+
AkitaLLM is not a chat interface.
|
|
19
|
+
It is not autocomplete.
|
|
20
|
+
It is not “AI magic”.
|
|
21
|
+
|
|
22
|
+
It is an engineering tool.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## What AkitaLLM is (and what it is not)
|
|
27
|
+
|
|
28
|
+
AkitaLLM treats Large Language Models as **non-deterministic execution engines** that must operate inside a **strict, auditable pipeline**.
|
|
29
|
+
|
|
30
|
+
Instead of asking an AI *“please fix my code”*, you force it to:
|
|
31
|
+
|
|
32
|
+
1. **Analyze** the real project structure
|
|
33
|
+
2. **Plan** concrete technical steps
|
|
34
|
+
3. **Execute** changes as reviewable diffs
|
|
35
|
+
4. **Validate** results with real tooling
|
|
36
|
+
|
|
37
|
+
No hidden prompts.
|
|
38
|
+
No blind edits.
|
|
39
|
+
No guessing.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Why this project exists
|
|
44
|
+
|
|
45
|
+
Most AI coding tools optimize for **speed of output**.
|
|
46
|
+
|
|
47
|
+
Software engineering optimizes for:
|
|
48
|
+
- correctness
|
|
49
|
+
- predictability
|
|
50
|
+
- debuggability
|
|
51
|
+
- long-term maintainability
|
|
52
|
+
|
|
53
|
+
That mismatch causes real problems:
|
|
54
|
+
|
|
55
|
+
- Code is generated without understanding the project
|
|
56
|
+
- Developers approve changes they don’t fully understand
|
|
57
|
+
- Bugs are pushed faster, not fewer
|
|
58
|
+
|
|
59
|
+
AkitaLLM exists to **slow AI down** and force it to behave like a junior engineer working under strict supervision.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## The core difference
|
|
64
|
+
|
|
65
|
+
| Aspect | Typical AI Tools | AkitaLLM |
|
|
66
|
+
|------|-----------------|----------|
|
|
67
|
+
| Interaction | Chat / Autocomplete | Structured pipeline |
|
|
68
|
+
| Control | Implicit | Explicit and reviewable |
|
|
69
|
+
| Output | Raw code | Unified diffs |
|
|
70
|
+
| Context | Prompt-limited | Project-aware |
|
|
71
|
+
| Validation | Manual | Automated |
|
|
72
|
+
| Philosophy | “Trust the model” | “Trust the process” |
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Design principles
|
|
77
|
+
|
|
78
|
+
**Local-first**
|
|
79
|
+
Your code stays on your machine. AkitaLLM runs locally and only sends what is strictly necessary to the model.
|
|
80
|
+
|
|
81
|
+
**No magic**
|
|
82
|
+
Every decision is logged. Every step is inspectable. Every change is explicit.
|
|
83
|
+
|
|
84
|
+
**Tool-driven**
|
|
85
|
+
The AI uses tools (AST parsing, tests, linters). It does not replace them.
|
|
86
|
+
|
|
87
|
+
**Human-in-the-loop**
|
|
88
|
+
Nothing is applied without your approval.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## What AkitaLLM can do today
|
|
93
|
+
|
|
94
|
+
- 🔍 **Structural code reviews**
|
|
95
|
+
Detect bugs, architectural risks, performance issues, and security problems.
|
|
96
|
+
|
|
97
|
+
- 🧭 **Technical planning**
|
|
98
|
+
Generate step-by-step implementation plans in Markdown.
|
|
99
|
+
|
|
100
|
+
- 🧩 **Diff-based solutions**
|
|
101
|
+
Propose changes as standard unified diffs — no direct file mutation.
|
|
102
|
+
|
|
103
|
+
- 🧪 **Local validation**
|
|
104
|
+
Run tests and tooling before applying changes.
|
|
105
|
+
|
|
106
|
+
- 🔌 **Extensible architecture**
|
|
107
|
+
Plugin system for custom tools and workflows.
|
|
108
|
+
|
|
109
|
+
- 🤖 **Model agnostic**
|
|
110
|
+
Works with OpenAI, Anthropic, Ollama, and any LiteLLM-compatible provider.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Installation
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
pip install akitallm
|
|
118
|
+
````
|
|
119
|
+
|
|
120
|
+
Python 3.10+ required.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Basic usage
|
|
125
|
+
|
|
126
|
+
### Initialize / Review a project
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
akita review .
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Generate a technical plan
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
akita plan "Refactor authentication to use JWT with refresh tokens"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Solve a concrete problem
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
akita solve "Fix silent failures in the reasoning engine error handling"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
All commands follow the same pipeline:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
Analyze → Plan → Execute → Validate
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Extending AkitaLLM
|
|
153
|
+
|
|
154
|
+
AkitaLLM is designed to be extended by engineers.
|
|
155
|
+
|
|
156
|
+
* Custom tools
|
|
157
|
+
* Custom validators
|
|
158
|
+
* Custom reasoning steps
|
|
159
|
+
|
|
160
|
+
See the [Plugin Development Guide](PLUGINS.md).
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Contributing
|
|
165
|
+
|
|
166
|
+
AkitaLLM is not looking for volume.
|
|
167
|
+
It is looking for **engineering-quality contributions**.
|
|
168
|
+
|
|
169
|
+
If you care about:
|
|
170
|
+
|
|
171
|
+
* clean abstractions
|
|
172
|
+
* predictable systems
|
|
173
|
+
* readable diffs
|
|
174
|
+
* testable behavior
|
|
175
|
+
|
|
176
|
+
You’ll fit right in.
|
|
177
|
+
|
|
178
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
> “Understanding the internals is the first step to excellence.”
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.2.0"
|