mita-code 0.1.0__tar.gz → 0.1.1a0__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.
- {mita_code-0.1.0 → mita_code-0.1.1a0}/PKG-INFO +11 -7
- {mita_code-0.1.0 → mita_code-0.1.1a0}/README.md +3 -3
- {mita_code-0.1.0 → mita_code-0.1.1a0}/pyproject.toml +24 -4
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/agent/context.py +2 -2
- mita_code-0.1.1a0/src/mita/agent/loop.py +690 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/cli.py +398 -163
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/config/defaults.py +27 -1
- mita_code-0.1.1a0/src/mita/config/loader.py +133 -0
- mita_code-0.1.1a0/src/mita/config/schema.py +363 -0
- mita_code-0.1.1a0/src/mita/config/toml_writer.py +119 -0
- mita_code-0.1.1a0/src/mita/config/trust.py +87 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/hooks/manager.py +12 -26
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/hooks/runner.py +22 -6
- mita_code-0.1.1a0/src/mita/index/__init__.py +10 -0
- mita_code-0.1.1a0/src/mita/index/embeddings.py +76 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/index/manager.py +72 -40
- mita_code-0.1.1a0/src/mita/index/parser.py +532 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/index/retriever.py +24 -13
- mita_code-0.1.1a0/src/mita/index/store.py +372 -0
- mita_code-0.1.1a0/src/mita/llm/__init__.py +1 -0
- mita_code-0.1.1a0/src/mita/llm/context.py +76 -0
- mita_code-0.1.1a0/src/mita/llm/factory.py +114 -0
- mita_code-0.1.1a0/src/mita/llm/health.py +21 -0
- mita_code-0.1.1a0/src/mita/llm/providers.py +120 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/memory/discovery.py +8 -2
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/memory/loader.py +10 -2
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/memory/manager.py +13 -12
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/models/manager.py +24 -14
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/models/ollama_client.py +11 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/models/server.py +2 -11
- mita_code-0.1.1a0/src/mita/plugins/manager.py +355 -0
- mita_code-0.1.1a0/src/mita/sessions/__init__.py +18 -0
- mita_code-0.1.1a0/src/mita/sessions/manager.py +128 -0
- mita_code-0.1.1a0/src/mita/sessions/restore.py +26 -0
- mita_code-0.1.1a0/src/mita/sessions/store.py +223 -0
- mita_code-0.1.1a0/src/mita/sessions/tracker.py +81 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/skills/executor.py +11 -2
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/skills/loader.py +3 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/builtins/__init__.py +3 -1
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/builtins/file_edit.py +7 -1
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/builtins/file_read.py +19 -2
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/builtins/file_write.py +6 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/builtins/git.py +9 -22
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/builtins/glob_tool.py +25 -6
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/builtins/grep_tool.py +32 -5
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/builtins/shell.py +29 -24
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/executor.py +37 -6
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/registry.py +1 -1
- mita_code-0.1.1a0/src/mita/tools/safety.py +277 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/schema.py +49 -6
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/ui/display.py +36 -10
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/ui/repl.py +32 -4
- mita_code-0.1.1a0/src/mita/ui/sink.py +181 -0
- mita_code-0.1.1a0/src/mita/ui/tui/__init__.py +1 -0
- mita_code-0.1.1a0/src/mita/ui/tui/app.py +267 -0
- mita_code-0.1.0/src/mita/agent/loop.py +0 -594
- mita_code-0.1.0/src/mita/config/loader.py +0 -53
- mita_code-0.1.0/src/mita/config/schema.py +0 -131
- mita_code-0.1.0/src/mita/index/__init__.py +0 -1
- mita_code-0.1.0/src/mita/index/embeddings.py +0 -49
- mita_code-0.1.0/src/mita/index/parser.py +0 -331
- mita_code-0.1.0/src/mita/index/store.py +0 -143
- mita_code-0.1.0/src/mita/llm/__init__.py +0 -1
- mita_code-0.1.0/src/mita/llm/client.py +0 -86
- mita_code-0.1.0/src/mita/llm/instructor.py +0 -80
- mita_code-0.1.0/src/mita/llm/streaming.py +0 -58
- mita_code-0.1.0/src/mita/plugins/client.py +0 -152
- mita_code-0.1.0/src/mita/plugins/manager.py +0 -210
- mita_code-0.1.0/src/mita/tools/safety.py +0 -91
- {mita_code-0.1.0 → mita_code-0.1.1a0}/LICENSE +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/__init__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/__main__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/agent/__init__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/agent/conversation.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/agent/system_prompt.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/config/__init__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/hooks/__init__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/memory/__init__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/models/__init__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/models/hardware.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/models/recommender.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/models/registry.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/plugins/__init__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/py.typed +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/skills/__init__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/skills/manager.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/tools/__init__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/ui/__init__.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/ui/spinner.py +0 -0
- {mita_code-0.1.0 → mita_code-0.1.1a0}/src/mita/ui/theme.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mita-code
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.1a0
|
|
4
4
|
Summary: Local-first, terminal-native agentic coding assistant powered by Ollama
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -19,10 +19,13 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.14
|
|
20
20
|
Classifier: Topic :: Software Development
|
|
21
21
|
Classifier: Typing :: Typed
|
|
22
|
-
Requires-Dist: instructor (>=1.14.5,<2.0.0)
|
|
23
22
|
Requires-Dist: lancedb (==0.25.3)
|
|
24
|
-
Requires-Dist:
|
|
25
|
-
Requires-Dist:
|
|
23
|
+
Requires-Dist: langchain (>=1.4.0,<2.0.0)
|
|
24
|
+
Requires-Dist: langchain-core (>=1.6.3,<2.0.0)
|
|
25
|
+
Requires-Dist: langchain-mcp-adapters (>=0.3.2,<0.4.0)
|
|
26
|
+
Requires-Dist: langchain-ollama (>=1.1.0,<2.0.0)
|
|
27
|
+
Requires-Dist: langchain-openai (>=1.6.2,<2.0.0)
|
|
28
|
+
Requires-Dist: langgraph (>=1.2.11,<2.0.0)
|
|
26
29
|
Requires-Dist: ollama (>=0.3.0)
|
|
27
30
|
Requires-Dist: pandas (>=3.0.1,<4.0.0)
|
|
28
31
|
Requires-Dist: prompt-toolkit (>=3.0.52,<4.0.0)
|
|
@@ -30,6 +33,7 @@ Requires-Dist: psutil (>=5.9.0)
|
|
|
30
33
|
Requires-Dist: pydantic (>=2.0.0)
|
|
31
34
|
Requires-Dist: pyyaml (>=6.0)
|
|
32
35
|
Requires-Dist: rich (>=13.0.0)
|
|
36
|
+
Requires-Dist: textual (>=0.80.0,<0.81.0)
|
|
33
37
|
Requires-Dist: tree-sitter (>=0.23.0)
|
|
34
38
|
Requires-Dist: tree-sitter-language-pack (>=0.6.0)
|
|
35
39
|
Requires-Dist: typer (>=0.9.0)
|
|
@@ -208,12 +212,12 @@ Higher-specificity files take priority. Each file is capped at 200 lines.
|
|
|
208
212
|
| CLI | [Typer](https://typer.tiangolo.com/) |
|
|
209
213
|
| Terminal UI | [Rich](https://rich.readthedocs.io/) |
|
|
210
214
|
| LLM Runtime | [Ollama](https://ollama.com) |
|
|
211
|
-
| LLM Client | [
|
|
212
|
-
|
|
|
215
|
+
| LLM Client | [LangChain](https://www.langchain.com/) (`ChatOllama` / `ChatOpenAI`) |
|
|
216
|
+
| Agent orchestration | [LangGraph](https://www.langchain.com/langgraph) |
|
|
213
217
|
| Vector Store | [LanceDB](https://lancedb.com/) |
|
|
214
218
|
| Code Parsing | [Tree-sitter](https://tree-sitter.github.io/) |
|
|
215
219
|
| Config | TOML (stdlib `tomllib`) |
|
|
216
|
-
| Plugins | [MCP](https://modelcontextprotocol.io/) |
|
|
220
|
+
| Plugins | [MCP](https://modelcontextprotocol.io/) via `langchain-mcp-adapters` |
|
|
217
221
|
|
|
218
222
|
## Contributing
|
|
219
223
|
|
|
@@ -166,12 +166,12 @@ Higher-specificity files take priority. Each file is capped at 200 lines.
|
|
|
166
166
|
| CLI | [Typer](https://typer.tiangolo.com/) |
|
|
167
167
|
| Terminal UI | [Rich](https://rich.readthedocs.io/) |
|
|
168
168
|
| LLM Runtime | [Ollama](https://ollama.com) |
|
|
169
|
-
| LLM Client | [
|
|
170
|
-
|
|
|
169
|
+
| LLM Client | [LangChain](https://www.langchain.com/) (`ChatOllama` / `ChatOpenAI`) |
|
|
170
|
+
| Agent orchestration | [LangGraph](https://www.langchain.com/langgraph) |
|
|
171
171
|
| Vector Store | [LanceDB](https://lancedb.com/) |
|
|
172
172
|
| Code Parsing | [Tree-sitter](https://tree-sitter.github.io/) |
|
|
173
173
|
| Config | TOML (stdlib `tomllib`) |
|
|
174
|
-
| Plugins | [MCP](https://modelcontextprotocol.io/) |
|
|
174
|
+
| Plugins | [MCP](https://modelcontextprotocol.io/) via `langchain-mcp-adapters` |
|
|
175
175
|
|
|
176
176
|
## Contributing
|
|
177
177
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "mita-code"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.1a0"
|
|
4
4
|
description = "Local-first, terminal-native agentic coding assistant powered by Ollama"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -37,15 +37,19 @@ rich = ">=13.0.0"
|
|
|
37
37
|
pydantic = ">=2.0.0"
|
|
38
38
|
psutil = ">=5.9.0"
|
|
39
39
|
ollama = ">=0.3.0"
|
|
40
|
-
litellm = "^1.82.0"
|
|
41
|
-
instructor = "^1.14.5"
|
|
42
40
|
prompt-toolkit = "^3.0.52"
|
|
43
41
|
lancedb = "0.25.3"
|
|
44
42
|
tree-sitter = ">=0.23.0"
|
|
45
43
|
tree-sitter-language-pack = ">=0.6.0"
|
|
46
44
|
pandas = "^3.0.1"
|
|
47
45
|
pyyaml = ">=6.0"
|
|
48
|
-
|
|
46
|
+
textual = "^0.80.0"
|
|
47
|
+
langchain = "^1.4.0"
|
|
48
|
+
langchain-core = "^1.6.3"
|
|
49
|
+
langchain-ollama = "^1.1.0"
|
|
50
|
+
langchain-openai = "^1.6.2"
|
|
51
|
+
langchain-mcp-adapters = "^0.3.2"
|
|
52
|
+
langgraph = "^1.2.11"
|
|
49
53
|
|
|
50
54
|
[tool.poetry.group.dev.dependencies]
|
|
51
55
|
pytest = ">=8.0.0"
|
|
@@ -57,6 +61,7 @@ invoke = ">=2.0.0"
|
|
|
57
61
|
isort = ">=5.12.0"
|
|
58
62
|
types-psutil = ">=5.9.0"
|
|
59
63
|
types-pyyaml = "^6.0.12.20250915"
|
|
64
|
+
pytest-cov = "^7.1.0"
|
|
60
65
|
|
|
61
66
|
|
|
62
67
|
[tool.poetry.group.docs.dependencies]
|
|
@@ -88,3 +93,18 @@ line_length = 100
|
|
|
88
93
|
[tool.pytest.ini_options]
|
|
89
94
|
testpaths = ["tests"]
|
|
90
95
|
asyncio_mode = "auto"
|
|
96
|
+
addopts = "--cov=mita --cov-report=term-missing"
|
|
97
|
+
|
|
98
|
+
[tool.coverage.run]
|
|
99
|
+
source = ["src/mita"]
|
|
100
|
+
branch = true
|
|
101
|
+
|
|
102
|
+
[tool.coverage.report]
|
|
103
|
+
fail_under = 80
|
|
104
|
+
show_missing = true
|
|
105
|
+
exclude_lines = [
|
|
106
|
+
"pragma: no cover",
|
|
107
|
+
"if TYPE_CHECKING:",
|
|
108
|
+
"if __name__ == .__main__.",
|
|
109
|
+
"@overload",
|
|
110
|
+
]
|
|
@@ -30,8 +30,8 @@ def assemble_context(
|
|
|
30
30
|
"""
|
|
31
31
|
working_dir = cwd or Path.cwd()
|
|
32
32
|
|
|
33
|
-
# Load memory from MITA.md files
|
|
34
|
-
memory_content = load_memory(cwd=working_dir)
|
|
33
|
+
# Load memory from MITA.md files, honoring the configured memory limits.
|
|
34
|
+
memory_content = load_memory(cwd=working_dir, settings=config.memory)
|
|
35
35
|
|
|
36
36
|
# Build system prompt
|
|
37
37
|
system_prompt = build_system_prompt(
|