locdex 1.3.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.
Files changed (52) hide show
  1. locdex-1.3.0/PKG-INFO +243 -0
  2. locdex-1.3.0/README.md +206 -0
  3. locdex-1.3.0/pyproject.toml +83 -0
  4. locdex-1.3.0/setup.cfg +4 -0
  5. locdex-1.3.0/src/locdex/agent.py +955 -0
  6. locdex-1.3.0/src/locdex/agent_tools.py +452 -0
  7. locdex-1.3.0/src/locdex/cloud_fallback.py +196 -0
  8. locdex-1.3.0/src/locdex/config.py +151 -0
  9. locdex-1.3.0/src/locdex/editor.py +55 -0
  10. locdex-1.3.0/src/locdex/local_model.py +11 -0
  11. locdex-1.3.0/src/locdex/local_runtime.py +111 -0
  12. locdex-1.3.0/src/locdex/main.py +350 -0
  13. locdex-1.3.0/src/locdex/memory.py +88 -0
  14. locdex-1.3.0/src/locdex/model_manager.py +207 -0
  15. locdex-1.3.0/src/locdex/model_profiles.py +71 -0
  16. locdex-1.3.0/src/locdex/parser.py +27 -0
  17. locdex-1.3.0/src/locdex/planner.py +48 -0
  18. locdex-1.3.0/src/locdex/router.py +71 -0
  19. locdex-1.3.0/src/locdex/runtime_manager.py +432 -0
  20. locdex-1.3.0/src/locdex/safety.py +89 -0
  21. locdex-1.3.0/src/locdex/telemetry.py +295 -0
  22. locdex-1.3.0/src/locdex/validator.py +276 -0
  23. locdex-1.3.0/src/locdex.egg-info/PKG-INFO +243 -0
  24. locdex-1.3.0/src/locdex.egg-info/SOURCES.txt +50 -0
  25. locdex-1.3.0/src/locdex.egg-info/dependency_links.txt +1 -0
  26. locdex-1.3.0/src/locdex.egg-info/entry_points.txt +2 -0
  27. locdex-1.3.0/src/locdex.egg-info/requires.txt +10 -0
  28. locdex-1.3.0/src/locdex.egg-info/top_level.txt +1 -0
  29. locdex-1.3.0/tests/test_agent_hardening.py +109 -0
  30. locdex-1.3.0/tests/test_agent_intent_truthfulness.py +75 -0
  31. locdex-1.3.0/tests/test_agent_loop_v12.py +58 -0
  32. locdex-1.3.0/tests/test_agent_permissions_recovery.py +174 -0
  33. locdex-1.3.0/tests/test_agent_progress.py +60 -0
  34. locdex-1.3.0/tests/test_agent_tools_v12.py +42 -0
  35. locdex-1.3.0/tests/test_editor.py +39 -0
  36. locdex-1.3.0/tests/test_git_permissions_v12.py +11 -0
  37. locdex-1.3.0/tests/test_memory_lightweight_v18.py +12 -0
  38. locdex-1.3.0/tests/test_model_manager_v12.py +44 -0
  39. locdex-1.3.0/tests/test_model_profiles_v13.py +23 -0
  40. locdex-1.3.0/tests/test_parser.py +36 -0
  41. locdex-1.3.0/tests/test_repair_tool_retry.py +188 -0
  42. locdex-1.3.0/tests/test_router.py +73 -0
  43. locdex-1.3.0/tests/test_router_context_v12.py +18 -0
  44. locdex-1.3.0/tests/test_runtime_manager_v13.py +158 -0
  45. locdex-1.3.0/tests/test_safety.py +42 -0
  46. locdex-1.3.0/tests/test_safety_v12.py +25 -0
  47. locdex-1.3.0/tests/test_smoke_harness.py +122 -0
  48. locdex-1.3.0/tests/test_smoke_validation_repair.py +132 -0
  49. locdex-1.3.0/tests/test_staging_v12.py +19 -0
  50. locdex-1.3.0/tests/test_telemetry_v14.py +111 -0
  51. locdex-1.3.0/tests/test_validator.py +51 -0
  52. locdex-1.3.0/tests/test_verified_mutations.py +56 -0
locdex-1.3.0/PKG-INFO ADDED
@@ -0,0 +1,243 @@
1
+ Metadata-Version: 2.4
2
+ Name: locdex
3
+ Version: 1.3.0
4
+ Summary: A local-first AI coding agent with direct workspace editing, hardware-aware local inference, guarded Git tools, and optional cloud fallback.
5
+ Author-email: Emmanuel Amoo <amooemma10@gmail.com>, Gideon Amoo <amooademola55@gmail.com>
6
+ Maintainer-email: Enoch Amoo <amooadeyinka887@gmail.com>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/Locdex/Locdex
9
+ Project-URL: Repository, https://github.com/Locdex/Locdex
10
+ Project-URL: Issues, https://github.com/Locdex/Locdex/issues
11
+ Project-URL: Changelog, https://github.com/Locdex/Locdex/releases
12
+ Keywords: ai,coding-agent,local-ai,developer-tools,llm,cli,code-generation,qwen,gguf,llama-cpp
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.10
21
+ Classifier: Programming Language :: Python :: 3.11
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Topic :: Software Development
24
+ Classifier: Topic :: Software Development :: Code Generators
25
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
+ Requires-Python: <3.13,>=3.10
27
+ Description-Content-Type: text/markdown
28
+ Requires-Dist: requests>=2.32
29
+ Requires-Dist: huggingface-hub>=0.30
30
+ Requires-Dist: platformdirs>=4.3
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest>=8.0; extra == "dev"
33
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
34
+ Requires-Dist: ruff>=0.8; extra == "dev"
35
+ Requires-Dist: build>=1.2; extra == "dev"
36
+ Requires-Dist: twine>=5.1; extra == "dev"
37
+
38
+ # Locdex: Local-First Agentic Coding CLI
39
+
40
+ Locdex is a local-first coding agent that works directly in the developer's current directory. It can inspect a repository, edit files, run commands and tests, inspect diffs, and perform Git operations when the user explicitly asks. Its differentiators are local-first execution, model routing, cost control, bounded tools, validation, and transparent agent behavior.
41
+
42
+ ## v1.3 launch runtime
43
+
44
+ Locdex no longer requires Ollama and no longer makes `pip install locdex` compile llama.cpp on the user's machine.
45
+
46
+ `locdex setup` now:
47
+
48
+ 1. detects the operating system, CPU architecture, system RAM, and available accelerator;
49
+ 2. chooses a prebuilt llama-cpp-python runtime for CPU, Apple Metal, NVIDIA CUDA, Linux ROCm, Windows HIP Radeon, or Vulkan where detected;
50
+ 3. caches the detected hardware fingerprint and re-detects if the machine changes;
51
+ 4. lets the user choose Qwen3-Coder or the optional Kimi-distilled model;
52
+ 5. checks available disk space before downloading;
53
+ 6. verifies the pinned Qwen model SHA-256;
54
+ 7. runs a small-context local inference smoke test before declaring setup complete.
55
+
56
+ If automatic GPU model loading fails, Locdex retries once on CPU rather than immediately failing the whole session.
57
+
58
+ ## Local model choices
59
+
60
+ ### Qwen3-Coder — supported default
61
+
62
+ - Base: `Qwen/Qwen3-Coder-30B-A3B-Instruct`
63
+ - Locdex GGUF: `unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF`
64
+ - Quant: Q4_K_M
65
+ - Download: about 18.6 GB
66
+ - Locdex status: **supported/default**
67
+ - Practical target: 32 GB system RAM; Locdex warns below 24 GB
68
+
69
+ ### Kimi-distilled 9B — optional/experimental
70
+
71
+ - Upstream: `khazarai/Qwen3.5-9B-Kimi-k3-Distilled`
72
+ - Locdex GGUF: `mradermacher/Qwen3.5-9B-Kimi-k3-Distilled-GGUF`
73
+ - Quant: Q4_K_M
74
+ - Download: about 5.8 GB
75
+ - Locdex status: **experimental**
76
+ - Practical target: 16 GB system RAM
77
+
78
+ Both can be installed at the same time. Only the selected model is loaded for a session.
79
+
80
+ ## Prerequisites
81
+
82
+ - Python 3.10+; Python 3.10-3.12 currently has the widest upstream prebuilt accelerated-runtime coverage.
83
+ - Git.
84
+ - Qwen: roughly 21 GB free disk including download/cache headroom; 32 GB RAM recommended.
85
+ - Kimi: roughly 8 GB free disk including download/cache headroom; 16 GB RAM recommended.
86
+ - Docker is not used in the current release. Candidate validation uses a disposable staged copy on the host.
87
+
88
+ Ollama is **not** required.
89
+
90
+ ## Installation
91
+
92
+ ```bash
93
+ git clone https://github.com/bandojayy/Locdex.git
94
+ cd Locdex
95
+ python -m pip install -e .
96
+ ```
97
+
98
+ Then run the hardware-aware setup:
99
+
100
+ ```bash
101
+ locdex setup
102
+ ```
103
+
104
+ Or choose explicitly:
105
+
106
+ ```bash
107
+ locdex setup --model qwen
108
+ locdex setup --model kimi
109
+ ```
110
+
111
+ `locdex setup` installs a matching prebuilt local inference runtime, downloads the selected GGUF and smoke-tests it.
112
+
113
+ ## Model management
114
+
115
+ ```bash
116
+ locdex model list
117
+ locdex model status
118
+
119
+ locdex model install qwen
120
+ locdex model install kimi
121
+
122
+ locdex model use qwen
123
+ locdex model use kimi
124
+
125
+ locdex model remove qwen
126
+ locdex model remove kimi
127
+ ```
128
+
129
+ The selection persists in Locdex's user config. `LOCDEX_MODEL=qwen|kimi` can override it for one process.
130
+
131
+ ## Runtime management
132
+
133
+ ```bash
134
+ locdex runtime status
135
+ locdex runtime install
136
+ locdex runtime repair
137
+ ```
138
+
139
+ `runtime repair` forces reinstall of the currently detected prebuilt backend. The installer deliberately uses binary wheels only; it will report an unsupported configuration instead of silently invoking a local C/C++ toolchain.
140
+
141
+ Typical detected backends:
142
+
143
+ - Apple Silicon → Metal
144
+ - supported NVIDIA + CUDA → CUDA wheel matched to the detected driver capability
145
+ - Linux AMD ROCm → ROCm wheel
146
+ - Windows AMD → HIP Radeon when enabled with `LOCDEX_AMD_HIP=1`
147
+ - Linux/Windows with `vulkaninfo` available → Vulkan fallback
148
+ - otherwise → CPU
149
+
150
+ Set `LOCDEX_N_GPU_LAYERS=0` to force CPU or `LOCDEX_N_GPU_LAYERS=<integer>` to override automatic offload.
151
+
152
+ ## Normal workflow
153
+
154
+ ```text
155
+ $ locdex chat
156
+
157
+ > fix the empty-token authentication bug
158
+ [agent] reads relevant files
159
+ [agent] searches tests
160
+ [agent] edits src/auth.py directly
161
+ [agent] runs tests
162
+ [agent] inspects git diff
163
+ ✓ Fixed empty-token handling. Tests passed.
164
+
165
+ > commit it
166
+ [agent] git status
167
+ [agent] git add ...
168
+ [agent] git commit -m "Fix empty-token authentication"
169
+ ✓ Committed.
170
+
171
+ > push this branch
172
+ [agent] git push ...
173
+ ✓ Pushed.
174
+ ```
175
+
176
+ There is no mandatory `ship it` ceremony. `ship it` is just a convenience phrase that authorizes staging, committing and pushing when appropriate.
177
+
178
+ ## Agent tools
179
+
180
+ Locdex exposes bounded tools to the local model instead of unrestricted Python access:
181
+
182
+ - list/search/read repository files;
183
+ - write or replace text files inside the workspace;
184
+ - delete files or empty directories;
185
+ - execute argv-style development commands with timeouts;
186
+ - run common test suites;
187
+ - inspect Git status and diffs;
188
+ - stage, commit, pull and push through dedicated Git tools.
189
+
190
+ Direct file access outside the workspace and `.git` internals is blocked. `run_command` cannot invoke `git`/`gh`; Git mutations go through dedicated tools so Locdex can enforce explicit user intent.
191
+
192
+ ## Configuration overrides
193
+
194
+ ```bash
195
+ export LOCDEX_MODEL=qwen # or kimi
196
+ export LOCDEX_MODEL_PATH=/absolute/path/model.gguf
197
+
198
+ export LOCDEX_MODEL_REPO='owner/model-GGUF'
199
+ export LOCDEX_MODEL_PATTERN='*Q4_K_M.gguf'
200
+ export LOCDEX_MODEL_REVISION='commit-or-tag'
201
+ export LOCDEX_MODEL_SHA256='expected_sha256_here'
202
+
203
+ export LOCDEX_N_CTX=16384
204
+ export LOCDEX_N_THREADS=8
205
+ export LOCDEX_N_GPU_LAYERS=auto # auto is the default
206
+ ```
207
+
208
+ ## Optional cloud fallback
209
+
210
+ Locdex does **not** assume OpenRouter or any other cloud provider/model. Cloud fallback stays disabled until you explicitly configure it.
211
+
212
+ ### OpenRouter
213
+
214
+ ```bash
215
+ export LOCDEX_CLOUD_PROVIDER='openrouter'
216
+ export LOCDEX_CLOUD_MODEL='your-selected-provider/model'
217
+ export OPENROUTER_API_KEY='...'
218
+ ```
219
+
220
+ ### Anthropic directly
221
+
222
+ ```bash
223
+ export LOCDEX_CLOUD_PROVIDER='anthropic'
224
+ export LOCDEX_CLOUD_MODEL='your-selected-claude-model'
225
+ export ANTHROPIC_API_KEY='...'
226
+ ```
227
+
228
+ ### Any OpenAI-compatible endpoint
229
+
230
+ ```bash
231
+ export LOCDEX_CLOUD_PROVIDER='custom'
232
+ export LOCDEX_CLOUD_MODEL='your-selected-model'
233
+ export LOCDEX_CLOUD_BASE_URL='https://your-provider.example/v1/chat/completions'
234
+ export LOCDEX_CLOUD_API_KEY='...'
235
+ ```
236
+
237
+ Use `LOCDEX_CLOUD_MODELS='model-a,model-b'` instead of `LOCDEX_CLOUD_MODEL` if you intentionally want a fallback chain. The local agent remains first; cloud escalation uses only the provider and model(s) you configured.
238
+
239
+ ## Testing status
240
+
241
+ The bundle includes unit/regression coverage for agent editing, Git intent enforcement, model profiles, model manifests, hardware detection, prebuilt-runtime installation policy, router context and safety. These tests do not replace physical-machine acceptance testing.
242
+
243
+ See `TESTING.md` for the launch matrix.
locdex-1.3.0/README.md ADDED
@@ -0,0 +1,206 @@
1
+ # Locdex: Local-First Agentic Coding CLI
2
+
3
+ Locdex is a local-first coding agent that works directly in the developer's current directory. It can inspect a repository, edit files, run commands and tests, inspect diffs, and perform Git operations when the user explicitly asks. Its differentiators are local-first execution, model routing, cost control, bounded tools, validation, and transparent agent behavior.
4
+
5
+ ## v1.3 launch runtime
6
+
7
+ Locdex no longer requires Ollama and no longer makes `pip install locdex` compile llama.cpp on the user's machine.
8
+
9
+ `locdex setup` now:
10
+
11
+ 1. detects the operating system, CPU architecture, system RAM, and available accelerator;
12
+ 2. chooses a prebuilt llama-cpp-python runtime for CPU, Apple Metal, NVIDIA CUDA, Linux ROCm, Windows HIP Radeon, or Vulkan where detected;
13
+ 3. caches the detected hardware fingerprint and re-detects if the machine changes;
14
+ 4. lets the user choose Qwen3-Coder or the optional Kimi-distilled model;
15
+ 5. checks available disk space before downloading;
16
+ 6. verifies the pinned Qwen model SHA-256;
17
+ 7. runs a small-context local inference smoke test before declaring setup complete.
18
+
19
+ If automatic GPU model loading fails, Locdex retries once on CPU rather than immediately failing the whole session.
20
+
21
+ ## Local model choices
22
+
23
+ ### Qwen3-Coder — supported default
24
+
25
+ - Base: `Qwen/Qwen3-Coder-30B-A3B-Instruct`
26
+ - Locdex GGUF: `unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF`
27
+ - Quant: Q4_K_M
28
+ - Download: about 18.6 GB
29
+ - Locdex status: **supported/default**
30
+ - Practical target: 32 GB system RAM; Locdex warns below 24 GB
31
+
32
+ ### Kimi-distilled 9B — optional/experimental
33
+
34
+ - Upstream: `khazarai/Qwen3.5-9B-Kimi-k3-Distilled`
35
+ - Locdex GGUF: `mradermacher/Qwen3.5-9B-Kimi-k3-Distilled-GGUF`
36
+ - Quant: Q4_K_M
37
+ - Download: about 5.8 GB
38
+ - Locdex status: **experimental**
39
+ - Practical target: 16 GB system RAM
40
+
41
+ Both can be installed at the same time. Only the selected model is loaded for a session.
42
+
43
+ ## Prerequisites
44
+
45
+ - Python 3.10+; Python 3.10-3.12 currently has the widest upstream prebuilt accelerated-runtime coverage.
46
+ - Git.
47
+ - Qwen: roughly 21 GB free disk including download/cache headroom; 32 GB RAM recommended.
48
+ - Kimi: roughly 8 GB free disk including download/cache headroom; 16 GB RAM recommended.
49
+ - Docker is not used in the current release. Candidate validation uses a disposable staged copy on the host.
50
+
51
+ Ollama is **not** required.
52
+
53
+ ## Installation
54
+
55
+ ```bash
56
+ git clone https://github.com/bandojayy/Locdex.git
57
+ cd Locdex
58
+ python -m pip install -e .
59
+ ```
60
+
61
+ Then run the hardware-aware setup:
62
+
63
+ ```bash
64
+ locdex setup
65
+ ```
66
+
67
+ Or choose explicitly:
68
+
69
+ ```bash
70
+ locdex setup --model qwen
71
+ locdex setup --model kimi
72
+ ```
73
+
74
+ `locdex setup` installs a matching prebuilt local inference runtime, downloads the selected GGUF and smoke-tests it.
75
+
76
+ ## Model management
77
+
78
+ ```bash
79
+ locdex model list
80
+ locdex model status
81
+
82
+ locdex model install qwen
83
+ locdex model install kimi
84
+
85
+ locdex model use qwen
86
+ locdex model use kimi
87
+
88
+ locdex model remove qwen
89
+ locdex model remove kimi
90
+ ```
91
+
92
+ The selection persists in Locdex's user config. `LOCDEX_MODEL=qwen|kimi` can override it for one process.
93
+
94
+ ## Runtime management
95
+
96
+ ```bash
97
+ locdex runtime status
98
+ locdex runtime install
99
+ locdex runtime repair
100
+ ```
101
+
102
+ `runtime repair` forces reinstall of the currently detected prebuilt backend. The installer deliberately uses binary wheels only; it will report an unsupported configuration instead of silently invoking a local C/C++ toolchain.
103
+
104
+ Typical detected backends:
105
+
106
+ - Apple Silicon → Metal
107
+ - supported NVIDIA + CUDA → CUDA wheel matched to the detected driver capability
108
+ - Linux AMD ROCm → ROCm wheel
109
+ - Windows AMD → HIP Radeon when enabled with `LOCDEX_AMD_HIP=1`
110
+ - Linux/Windows with `vulkaninfo` available → Vulkan fallback
111
+ - otherwise → CPU
112
+
113
+ Set `LOCDEX_N_GPU_LAYERS=0` to force CPU or `LOCDEX_N_GPU_LAYERS=<integer>` to override automatic offload.
114
+
115
+ ## Normal workflow
116
+
117
+ ```text
118
+ $ locdex chat
119
+
120
+ > fix the empty-token authentication bug
121
+ [agent] reads relevant files
122
+ [agent] searches tests
123
+ [agent] edits src/auth.py directly
124
+ [agent] runs tests
125
+ [agent] inspects git diff
126
+ ✓ Fixed empty-token handling. Tests passed.
127
+
128
+ > commit it
129
+ [agent] git status
130
+ [agent] git add ...
131
+ [agent] git commit -m "Fix empty-token authentication"
132
+ ✓ Committed.
133
+
134
+ > push this branch
135
+ [agent] git push ...
136
+ ✓ Pushed.
137
+ ```
138
+
139
+ There is no mandatory `ship it` ceremony. `ship it` is just a convenience phrase that authorizes staging, committing and pushing when appropriate.
140
+
141
+ ## Agent tools
142
+
143
+ Locdex exposes bounded tools to the local model instead of unrestricted Python access:
144
+
145
+ - list/search/read repository files;
146
+ - write or replace text files inside the workspace;
147
+ - delete files or empty directories;
148
+ - execute argv-style development commands with timeouts;
149
+ - run common test suites;
150
+ - inspect Git status and diffs;
151
+ - stage, commit, pull and push through dedicated Git tools.
152
+
153
+ Direct file access outside the workspace and `.git` internals is blocked. `run_command` cannot invoke `git`/`gh`; Git mutations go through dedicated tools so Locdex can enforce explicit user intent.
154
+
155
+ ## Configuration overrides
156
+
157
+ ```bash
158
+ export LOCDEX_MODEL=qwen # or kimi
159
+ export LOCDEX_MODEL_PATH=/absolute/path/model.gguf
160
+
161
+ export LOCDEX_MODEL_REPO='owner/model-GGUF'
162
+ export LOCDEX_MODEL_PATTERN='*Q4_K_M.gguf'
163
+ export LOCDEX_MODEL_REVISION='commit-or-tag'
164
+ export LOCDEX_MODEL_SHA256='expected_sha256_here'
165
+
166
+ export LOCDEX_N_CTX=16384
167
+ export LOCDEX_N_THREADS=8
168
+ export LOCDEX_N_GPU_LAYERS=auto # auto is the default
169
+ ```
170
+
171
+ ## Optional cloud fallback
172
+
173
+ Locdex does **not** assume OpenRouter or any other cloud provider/model. Cloud fallback stays disabled until you explicitly configure it.
174
+
175
+ ### OpenRouter
176
+
177
+ ```bash
178
+ export LOCDEX_CLOUD_PROVIDER='openrouter'
179
+ export LOCDEX_CLOUD_MODEL='your-selected-provider/model'
180
+ export OPENROUTER_API_KEY='...'
181
+ ```
182
+
183
+ ### Anthropic directly
184
+
185
+ ```bash
186
+ export LOCDEX_CLOUD_PROVIDER='anthropic'
187
+ export LOCDEX_CLOUD_MODEL='your-selected-claude-model'
188
+ export ANTHROPIC_API_KEY='...'
189
+ ```
190
+
191
+ ### Any OpenAI-compatible endpoint
192
+
193
+ ```bash
194
+ export LOCDEX_CLOUD_PROVIDER='custom'
195
+ export LOCDEX_CLOUD_MODEL='your-selected-model'
196
+ export LOCDEX_CLOUD_BASE_URL='https://your-provider.example/v1/chat/completions'
197
+ export LOCDEX_CLOUD_API_KEY='...'
198
+ ```
199
+
200
+ Use `LOCDEX_CLOUD_MODELS='model-a,model-b'` instead of `LOCDEX_CLOUD_MODEL` if you intentionally want a fallback chain. The local agent remains first; cloud escalation uses only the provider and model(s) you configured.
201
+
202
+ ## Testing status
203
+
204
+ The bundle includes unit/regression coverage for agent editing, Git intent enforcement, model profiles, model manifests, hardware detection, prebuilt-runtime installation policy, router context and safety. These tests do not replace physical-machine acceptance testing.
205
+
206
+ See `TESTING.md` for the launch matrix.
@@ -0,0 +1,83 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "locdex"
7
+ version = "1.3.0"
8
+ description = "A local-first AI coding agent with direct workspace editing, hardware-aware local inference, guarded Git tools, and optional cloud fallback."
9
+ readme = "README.md"
10
+ requires-python = ">=3.10,<3.13"
11
+ license = { text = "MIT" }
12
+
13
+ authors = [
14
+ { name = "Emmanuel Amoo", email = "amooemma10@gmail.com" },
15
+ { name = "Gideon Amoo", email = "amooademola55@gmail.com" },
16
+ ]
17
+
18
+ maintainers = [
19
+ { name = "Enoch Amoo", email = "amooadeyinka887@gmail.com" },
20
+ ]
21
+
22
+ keywords = [
23
+ "ai",
24
+ "coding-agent",
25
+ "local-ai",
26
+ "developer-tools",
27
+ "llm",
28
+ "cli",
29
+ "code-generation",
30
+ "qwen",
31
+ "gguf",
32
+ "llama-cpp",
33
+ ]
34
+
35
+ classifiers = [
36
+ "Development Status :: 4 - Beta",
37
+ "Environment :: Console",
38
+ "Intended Audience :: Developers",
39
+ "License :: OSI Approved :: MIT License",
40
+ "Operating System :: OS Independent",
41
+ "Programming Language :: Python",
42
+ "Programming Language :: Python :: 3",
43
+ "Programming Language :: Python :: 3.10",
44
+ "Programming Language :: Python :: 3.11",
45
+ "Programming Language :: Python :: 3.12",
46
+ "Topic :: Software Development",
47
+ "Topic :: Software Development :: Code Generators",
48
+ "Topic :: Software Development :: Libraries :: Python Modules",
49
+ ]
50
+
51
+ dependencies = [
52
+ "requests>=2.32",
53
+ "huggingface-hub>=0.30",
54
+ "platformdirs>=4.3",
55
+ ]
56
+
57
+ [project.optional-dependencies]
58
+ dev = [
59
+ "pytest>=8.0",
60
+ "pytest-cov>=5.0",
61
+ "ruff>=0.8",
62
+ "build>=1.2",
63
+ "twine>=5.1",
64
+ ]
65
+
66
+ [project.scripts]
67
+ locdex = "locdex.main:cli"
68
+
69
+ [project.urls]
70
+ Homepage = "https://github.com/Locdex/Locdex"
71
+ Repository = "https://github.com/Locdex/Locdex"
72
+ Issues = "https://github.com/Locdex/Locdex/issues"
73
+ Changelog = "https://github.com/Locdex/Locdex/releases"
74
+
75
+ [tool.setuptools.packages.find]
76
+ where = ["src"]
77
+
78
+ [tool.ruff]
79
+ line-length = 110
80
+
81
+ [tool.pytest.ini_options]
82
+ testpaths = ["tests"]
83
+ addopts = "--basetemp=.pytest-locdex"
locdex-1.3.0/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+