todo-agent 0.1.1__py3-none-any.whl → 0.2.1__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.
- todo_agent/_version.py +2 -2
- todo_agent/core/__init__.py +3 -3
- todo_agent/core/conversation_manager.py +39 -17
- todo_agent/core/todo_manager.py +40 -30
- todo_agent/infrastructure/__init__.py +1 -1
- todo_agent/infrastructure/config.py +7 -5
- todo_agent/infrastructure/inference.py +109 -54
- todo_agent/infrastructure/llm_client_factory.py +13 -9
- todo_agent/infrastructure/logger.py +38 -41
- todo_agent/infrastructure/ollama_client.py +22 -15
- todo_agent/infrastructure/openrouter_client.py +37 -26
- todo_agent/infrastructure/todo_shell.py +12 -10
- todo_agent/infrastructure/token_counter.py +39 -38
- todo_agent/interface/cli.py +51 -37
- todo_agent/interface/tools.py +47 -40
- todo_agent/main.py +1 -1
- {todo_agent-0.1.1.dist-info → todo_agent-0.2.1.dist-info}/METADATA +72 -32
- todo_agent-0.2.1.dist-info/RECORD +27 -0
- todo_agent-0.1.1.dist-info/RECORD +0 -27
- {todo_agent-0.1.1.dist-info → todo_agent-0.2.1.dist-info}/WHEEL +0 -0
- {todo_agent-0.1.1.dist-info → todo_agent-0.2.1.dist-info}/entry_points.txt +0 -0
- {todo_agent-0.1.1.dist-info → todo_agent-0.2.1.dist-info}/licenses/LICENSE +0 -0
- {todo_agent-0.1.1.dist-info → todo_agent-0.2.1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: todo-agent
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.2.1
|
4
4
|
Summary: A natural language interface for todo.sh task management
|
5
5
|
Author: codeprimate
|
6
6
|
Maintainer: codeprimate
|
@@ -10,7 +10,7 @@ Project-URL: Documentation, https://github.com/codeprimate/todo-agent#readme
|
|
10
10
|
Project-URL: Repository, https://github.com/codeprimate/todo-agent
|
11
11
|
Project-URL: Bug Tracker, https://github.com/codeprimate/todo-agent/issues
|
12
12
|
Keywords: todo,task-management,llm,natural-language,cli
|
13
|
-
Classifier: Development Status ::
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
14
14
|
Classifier: Intended Audience :: Developers
|
15
15
|
Classifier: Intended Audience :: End Users/Desktop
|
16
16
|
Classifier: Operating System :: OS Independent
|
@@ -24,28 +24,25 @@ Classifier: Topic :: Text Processing :: Linguistic
|
|
24
24
|
Requires-Python: >=3.8
|
25
25
|
Description-Content-Type: text/markdown
|
26
26
|
License-File: LICENSE
|
27
|
-
Requires-Dist: requests>=2.
|
28
|
-
Requires-Dist: typing-extensions>=4.
|
29
|
-
Requires-Dist: types-requests>=2.
|
30
|
-
Requires-Dist: rich>=
|
31
|
-
Requires-Dist: tiktoken>=0.
|
27
|
+
Requires-Dist: requests>=2.32.0
|
28
|
+
Requires-Dist: typing-extensions>=4.15.0
|
29
|
+
Requires-Dist: types-requests>=2.32.0
|
30
|
+
Requires-Dist: rich>=14.0.0
|
31
|
+
Requires-Dist: tiktoken>=0.11.0
|
32
32
|
Provides-Extra: dev
|
33
|
-
Requires-Dist:
|
34
|
-
Requires-Dist:
|
35
|
-
Requires-Dist:
|
36
|
-
Requires-Dist:
|
37
|
-
Requires-Dist:
|
38
|
-
Requires-Dist:
|
39
|
-
Requires-Dist:
|
40
|
-
Requires-Dist:
|
41
|
-
Requires-Dist:
|
42
|
-
Requires-Dist:
|
43
|
-
Requires-Dist:
|
44
|
-
Requires-Dist:
|
45
|
-
Requires-Dist:
|
46
|
-
Requires-Dist: build>=1.0.0; extra == "dev"
|
47
|
-
Requires-Dist: twine>=4.0.0; extra == "dev"
|
48
|
-
Requires-Dist: setuptools_scm[toml]>=6.2.0; extra == "dev"
|
33
|
+
Requires-Dist: ruff>=0.12.0; extra == "dev"
|
34
|
+
Requires-Dist: mypy>=1.17.0; extra == "dev"
|
35
|
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
36
|
+
Requires-Dist: pytest-cov>=6.0.0; extra == "dev"
|
37
|
+
Requires-Dist: pre-commit>=4.0.0; extra == "dev"
|
38
|
+
Requires-Dist: bandit>=1.8.0; extra == "dev"
|
39
|
+
Requires-Dist: sphinx>=8.0.0; extra == "dev"
|
40
|
+
Requires-Dist: sphinx-rtd-theme>=3.0.0; extra == "dev"
|
41
|
+
Requires-Dist: radon>=6.0.0; extra == "dev"
|
42
|
+
Requires-Dist: xenon>=0.9.0; extra == "dev"
|
43
|
+
Requires-Dist: build>=1.2.0; extra == "dev"
|
44
|
+
Requires-Dist: twine>=6.0.0; extra == "dev"
|
45
|
+
Requires-Dist: setuptools_scm[toml]>=9.0.0; extra == "dev"
|
49
46
|
Dynamic: license-file
|
50
47
|
|
51
48
|
# Todo Agent
|
@@ -141,10 +138,15 @@ You can add this to your shell profile (`.bashrc`, `.zshrc`, etc.) to make it pe
|
|
141
138
|
# Clone and install from source
|
142
139
|
git clone https://github.com/codeprimate/todo-agent.git
|
143
140
|
cd todo_agent
|
144
|
-
pip install -e .
|
145
141
|
|
146
|
-
#
|
147
|
-
|
142
|
+
# Option 1: Install built package locally
|
143
|
+
make install
|
144
|
+
|
145
|
+
# Option 2: Install in development mode with dev dependencies
|
146
|
+
make install-dev
|
147
|
+
|
148
|
+
# Option 3: Install in development mode (basic)
|
149
|
+
pip install -e .
|
148
150
|
```
|
149
151
|
|
150
152
|
### 2. Set up your LLM provider
|
@@ -224,14 +226,52 @@ The `TODO_FILE`, `DONE_FILE`, and `REPORT_FILE` are automatically inferred from
|
|
224
226
|
# Clone and install
|
225
227
|
git clone https://github.com/codeprimate/todo-agent.git
|
226
228
|
cd todo_agent
|
227
|
-
pip install -e ".[dev]"
|
228
229
|
|
229
|
-
#
|
230
|
-
|
230
|
+
# Install options:
|
231
|
+
# - Built package (like production install)
|
232
|
+
make install
|
233
|
+
# - Development mode with dev dependencies (recommended for development)
|
234
|
+
make install-dev
|
235
|
+
# - Basic development mode
|
236
|
+
pip install -e .
|
237
|
+
|
238
|
+
# Available Makefile tasks:
|
239
|
+
make test # Run tests with coverage
|
240
|
+
make format # Format and lint code
|
241
|
+
make lint # Run linting only
|
242
|
+
make build # Build package distribution
|
243
|
+
make clean # Clean build artifacts
|
244
|
+
make install # Build and install package locally
|
245
|
+
make install-dev # Install in development mode with dev dependencies
|
246
|
+
```
|
247
|
+
|
248
|
+
## Code Quality and Linting
|
249
|
+
|
250
|
+
This project uses comprehensive linting to maintain code quality:
|
251
|
+
|
252
|
+
### Linting Tools
|
253
|
+
- **Ruff**: Fast Python linter and formatter (replaces Black, isort, and Flake8)
|
254
|
+
- **MyPy**: Static type checking
|
255
|
+
- **Bandit**: Security vulnerability scanning
|
256
|
+
|
257
|
+
**Note**: Ruff is configured to be compatible with Black's formatting style and provides 10-100x faster performance than traditional tools.
|
258
|
+
|
259
|
+
### Pre-commit Hooks
|
260
|
+
Install pre-commit hooks for automatic linting on commits:
|
261
|
+
```bash
|
262
|
+
pre-commit install
|
263
|
+
```
|
264
|
+
|
265
|
+
### Linting in Test Suite
|
266
|
+
Linting checks are integrated into the test suite via `tests/test_linting.py`. The `make test` command runs all tests including linting checks. You can also run linting tests separately:
|
267
|
+
```bash
|
268
|
+
# Run linting tests only
|
269
|
+
pytest -m lint
|
270
|
+
```
|
231
271
|
|
232
|
-
|
233
|
-
|
234
|
-
|
272
|
+
### Configuration Files
|
273
|
+
- `pyproject.toml`: Ruff, MyPy, and pytest configuration
|
274
|
+
- `.pre-commit-config.yaml`: Pre-commit hooks configuration
|
235
275
|
```
|
236
276
|
|
237
277
|
## Architecture
|
@@ -0,0 +1,27 @@
|
|
1
|
+
todo_agent/__init__.py,sha256=RUowhd14r3tqB_7rl83unGV8oBjra3UOIl7jix-33fk,254
|
2
|
+
todo_agent/_version.py,sha256=vYqoJTG51NOUmYyL0xt8asRK8vUT4lGAdal_EZ59mvw,704
|
3
|
+
todo_agent/main.py,sha256=_eVwOnoV7jpZzH8sk0ce_4RBt0fzRysZTEwyAzzZJDg,1255
|
4
|
+
todo_agent/core/__init__.py,sha256=QAZ4it63pXv5-DxtNcuSAmg7ZnCY5ackI5yycvKHr9I,365
|
5
|
+
todo_agent/core/conversation_manager.py,sha256=Mxjxn3BTjSnju6xryQcpOWdE8wWWJqTdDFTC86D9xc8,11639
|
6
|
+
todo_agent/core/exceptions.py,sha256=cPvvkIbKdI7l51wC7cE-ZxUi54P3nf2m7x2lMNMRFYM,399
|
7
|
+
todo_agent/core/todo_manager.py,sha256=wV-J_E_aK7yRNT-WbILKJgqBFhbcXDZa6Pb4IjbgGkU,7974
|
8
|
+
todo_agent/infrastructure/__init__.py,sha256=SGbHXgzq6U1DMgOfWPMsWEK99zjPSF-6gzy7xqc5fsI,284
|
9
|
+
todo_agent/infrastructure/config.py,sha256=zyp6qOlg1nN_awphivlgGNBE6fL0Hf66YgvWxR8ldyQ,2117
|
10
|
+
todo_agent/infrastructure/inference.py,sha256=XCM18hpHwWxDLV-31yO_UOYbqQ7lRjGz-PQduyp6Xio,10289
|
11
|
+
todo_agent/infrastructure/llm_client.py,sha256=ZoObyqaRP6i_eqGYGfJWGeWTJ-VNxpY70ay04vt2v_E,1390
|
12
|
+
todo_agent/infrastructure/llm_client_factory.py,sha256=SmPHNS4QifFI8CmsAz7uTcYjTdFzq8x9jVNybOmyerk,1884
|
13
|
+
todo_agent/infrastructure/logger.py,sha256=2ykG_0lyzmEGxDF6ZRl1qiTUGDuFeQgzv4Na6vRmXcM,4110
|
14
|
+
todo_agent/infrastructure/ollama_client.py,sha256=6WsjSftsHNt-CeScK6GSrJ_CMe80OiATT3idcJgPCBk,5654
|
15
|
+
todo_agent/infrastructure/openrouter_client.py,sha256=GVOJTzPDOKNdHEu-y-HQygMcLvrFw1KB6NZU_rJR3-c,6859
|
16
|
+
todo_agent/infrastructure/todo_shell.py,sha256=z6kqUKDX-i4DfYJKoOLiPLCp8y6m1HdTDLHTvmLpzMc,5801
|
17
|
+
todo_agent/infrastructure/token_counter.py,sha256=PCKheOVJbp1s89yhh_i6iKgURMt9mVoYkwjQJCc2xCE,4958
|
18
|
+
todo_agent/infrastructure/prompts/system_prompt.txt,sha256=uCb6yz3uDQdwcB8HJcF0y1_1b75oRtRnCMMHQLHI3NI,2415
|
19
|
+
todo_agent/interface/__init__.py,sha256=7nnDEP7w2qYMQJPPzlojCOoYebqw6SmAqJ886CdwXT4,204
|
20
|
+
todo_agent/interface/cli.py,sha256=pnMyRP2rSEPKwCwEJrVsEomN7uQB_HgAysiAfp-WK3M,8872
|
21
|
+
todo_agent/interface/tools.py,sha256=mlPPLVwECYrTtOX8ysIORRfErIOJl43qlTvfdpy2Vbs,28559
|
22
|
+
todo_agent-0.2.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
23
|
+
todo_agent-0.2.1.dist-info/METADATA,sha256=I0vIeKddVZKOx3p0--btuj3Ip_g3_fMq5t9VbCZxQ14,10047
|
24
|
+
todo_agent-0.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
25
|
+
todo_agent-0.2.1.dist-info/entry_points.txt,sha256=4W7LrCib6AXP5IZDwWRht8S5gutLu5oNfTJHGbt4oHs,52
|
26
|
+
todo_agent-0.2.1.dist-info/top_level.txt,sha256=a65mlPIhPZHuq2bRIi_sCMAIJsUddvXt171OBF6r6co,11
|
27
|
+
todo_agent-0.2.1.dist-info/RECORD,,
|
@@ -1,27 +0,0 @@
|
|
1
|
-
todo_agent/__init__.py,sha256=RUowhd14r3tqB_7rl83unGV8oBjra3UOIl7jix-33fk,254
|
2
|
-
todo_agent/_version.py,sha256=m8HxkqoKGw_wAJtc4ZokpJKNLXqp4zwnNhbnfDtro7w,704
|
3
|
-
todo_agent/main.py,sha256=YUcCf6oYSnmbT4KfRK6uKzdPxbjLYtSdrRCWxRjTzAI,1247
|
4
|
-
todo_agent/core/__init__.py,sha256=YM7c1CqWzlQlHerlxgLPsW0fABO3tpeV4NIUKma9bNc,365
|
5
|
-
todo_agent/core/conversation_manager.py,sha256=dyNml0D6Lk8SDKSbd6GIC2SjUOlsAooRmMIMfNRlhzc,10896
|
6
|
-
todo_agent/core/exceptions.py,sha256=cPvvkIbKdI7l51wC7cE-ZxUi54P3nf2m7x2lMNMRFYM,399
|
7
|
-
todo_agent/core/todo_manager.py,sha256=puq2QWvZ4jblRoWfSmy2Zk-O-nXJVATJwa1cCFppjms,7960
|
8
|
-
todo_agent/infrastructure/__init__.py,sha256=XeMvJ-ZvVz2pZmZthZrC4Qlk8VxwLHyIpqr3btUIHLE,284
|
9
|
-
todo_agent/infrastructure/config.py,sha256=XYp3CJP51vJYA3vM_Dq5BLYn02vNuFE31qC45Zjml5I,2095
|
10
|
-
todo_agent/infrastructure/inference.py,sha256=7TJKpIaBlOQ1NbBB3LOt2M9aO613jbr6aJNmmIUyNuo,9568
|
11
|
-
todo_agent/infrastructure/llm_client.py,sha256=ZoObyqaRP6i_eqGYGfJWGeWTJ-VNxpY70ay04vt2v_E,1390
|
12
|
-
todo_agent/infrastructure/llm_client_factory.py,sha256=-FD6gBflLB0zqpNASTSmr8Yxl5bHaxCOLlMWAcck60U,1715
|
13
|
-
todo_agent/infrastructure/logger.py,sha256=JF3G1Yq6lB6YIgaXnxjCWy4zbP7TPEIdvDIpwRApn34,4247
|
14
|
-
todo_agent/infrastructure/ollama_client.py,sha256=VgXPInI5KH6P1Ub9WYJyfYgKkVWbEuJxE_Bts-dke6o,5358
|
15
|
-
todo_agent/infrastructure/openrouter_client.py,sha256=AzUSKWF3_9RfhSMzCn82tW2fu6W1uFe0NzgfInwnn0o,6601
|
16
|
-
todo_agent/infrastructure/todo_shell.py,sha256=7CF6WnB2W4_v95kjr-DxrRQUDHfuCvUQtJ0NrhDGUow,5738
|
17
|
-
todo_agent/infrastructure/token_counter.py,sha256=NC9-y4v7kJRFRlAYe1a7tW-pfFtE4qQslUpVxR-yssM,5121
|
18
|
-
todo_agent/infrastructure/prompts/system_prompt.txt,sha256=uCb6yz3uDQdwcB8HJcF0y1_1b75oRtRnCMMHQLHI3NI,2415
|
19
|
-
todo_agent/interface/__init__.py,sha256=7nnDEP7w2qYMQJPPzlojCOoYebqw6SmAqJ886CdwXT4,204
|
20
|
-
todo_agent/interface/cli.py,sha256=2c7Pq6-_5URTbvN98_eWKf68m8gwXr6_TJ-XxtxikLc,8429
|
21
|
-
todo_agent/interface/tools.py,sha256=QZce0HHk5BYmUrGTBLse49tg2C6o5p3pkbd2c99x4MQ,28500
|
22
|
-
todo_agent-0.1.1.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
23
|
-
todo_agent-0.1.1.dist-info/METADATA,sha256=lSvqywYW84c-iUAbqkPv1wuOPYaPCgjvUR3dZJQWZwM,8635
|
24
|
-
todo_agent-0.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
25
|
-
todo_agent-0.1.1.dist-info/entry_points.txt,sha256=4W7LrCib6AXP5IZDwWRht8S5gutLu5oNfTJHGbt4oHs,52
|
26
|
-
todo_agent-0.1.1.dist-info/top_level.txt,sha256=a65mlPIhPZHuq2bRIi_sCMAIJsUddvXt171OBF6r6co,11
|
27
|
-
todo_agent-0.1.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|