claude-task-master 0.1.1__tar.gz → 0.1.3__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 (95) hide show
  1. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/PKG-INFO +144 -6
  2. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/README.md +136 -4
  3. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/pyproject.toml +23 -2
  4. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/__init__.py +1 -1
  5. claude_task_master-0.1.3/src/claude_task_master/api/__init__.py +98 -0
  6. claude_task_master-0.1.3/src/claude_task_master/api/models.py +553 -0
  7. claude_task_master-0.1.3/src/claude_task_master/api/routes.py +1135 -0
  8. claude_task_master-0.1.3/src/claude_task_master/api/routes_config.py +160 -0
  9. claude_task_master-0.1.3/src/claude_task_master/api/routes_control.py +278 -0
  10. claude_task_master-0.1.3/src/claude_task_master/api/routes_webhooks.py +980 -0
  11. claude_task_master-0.1.3/src/claude_task_master/api/server.py +551 -0
  12. claude_task_master-0.1.3/src/claude_task_master/auth/__init__.py +89 -0
  13. claude_task_master-0.1.3/src/claude_task_master/auth/middleware.py +448 -0
  14. claude_task_master-0.1.3/src/claude_task_master/auth/password.py +332 -0
  15. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/bin/claudetm +1 -1
  16. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/cli.py +4 -0
  17. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/cli_commands/__init__.py +2 -0
  18. claude_task_master-0.1.3/src/claude_task_master/cli_commands/ci_helpers.py +114 -0
  19. claude_task_master-0.1.3/src/claude_task_master/cli_commands/control.py +191 -0
  20. claude_task_master-0.1.3/src/claude_task_master/cli_commands/fix_pr.py +260 -0
  21. claude_task_master-0.1.3/src/claude_task_master/cli_commands/fix_session.py +174 -0
  22. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/cli_commands/workflow.py +51 -3
  23. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/__init__.py +13 -0
  24. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/agent_message.py +27 -5
  25. claude_task_master-0.1.3/src/claude_task_master/core/control.py +466 -0
  26. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/orchestrator.py +316 -4
  27. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/pr_context.py +7 -2
  28. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/prompts_working.py +32 -12
  29. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/state.py +84 -2
  30. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/state_exceptions.py +9 -6
  31. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/workflow_stages.py +160 -21
  32. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/github/client_pr.py +43 -1
  33. claude_task_master-0.1.3/src/claude_task_master/mcp/auth.py +153 -0
  34. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/mcp/server.py +268 -10
  35. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/mcp/tools.py +281 -0
  36. claude_task_master-0.1.3/src/claude_task_master/server.py +489 -0
  37. claude_task_master-0.1.3/src/claude_task_master/webhooks/__init__.py +73 -0
  38. claude_task_master-0.1.3/src/claude_task_master/webhooks/client.py +703 -0
  39. claude_task_master-0.1.3/src/claude_task_master/webhooks/config.py +565 -0
  40. claude_task_master-0.1.3/src/claude_task_master/webhooks/events.py +639 -0
  41. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master.egg-info/PKG-INFO +144 -6
  42. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master.egg-info/SOURCES.txt +22 -1
  43. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master.egg-info/entry_points.txt +2 -0
  44. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master.egg-info/requires.txt +8 -1
  45. claude_task_master-0.1.3/tests/test_server.py +510 -0
  46. claude_task_master-0.1.1/bin/claudetm +0 -509
  47. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/setup.cfg +0 -0
  48. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/cli_commands/config.py +0 -0
  49. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/cli_commands/github.py +0 -0
  50. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/cli_commands/info.py +0 -0
  51. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/agent.py +0 -0
  52. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/agent_exceptions.py +0 -0
  53. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/agent_models.py +0 -0
  54. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/agent_phases.py +0 -0
  55. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/agent_query.py +0 -0
  56. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/checkpoint.py +0 -0
  57. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/circuit_breaker.py +0 -0
  58. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/config.py +0 -0
  59. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/config_loader.py +0 -0
  60. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/console.py +0 -0
  61. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/context_accumulator.py +0 -0
  62. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/conversation.py +0 -0
  63. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/credentials.py +0 -0
  64. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/hooks.py +0 -0
  65. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/key_listener.py +0 -0
  66. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/logger.py +0 -0
  67. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/parallel.py +0 -0
  68. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/planner.py +0 -0
  69. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/progress_tracker.py +0 -0
  70. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/prompts.py +0 -0
  71. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/prompts_base.py +0 -0
  72. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/prompts_planning.py +0 -0
  73. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/prompts_verification.py +0 -0
  74. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/rate_limit.py +0 -0
  75. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/shutdown.py +0 -0
  76. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/state_backup.py +0 -0
  77. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/state_file_ops.py +0 -0
  78. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/state_pr.py +0 -0
  79. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/state_recovery.py +0 -0
  80. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/subagents.py +0 -0
  81. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/task_group.py +0 -0
  82. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/core/task_runner.py +0 -0
  83. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/github/__init__.py +0 -0
  84. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/github/client.py +0 -0
  85. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/github/client_ci.py +0 -0
  86. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/github/exceptions.py +0 -0
  87. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/github/pr_cycle.py +0 -0
  88. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/mcp/__init__.py +0 -0
  89. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/utils/__init__.py +0 -0
  90. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/utils/debug_claude_md.py +0 -0
  91. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/utils/doctor.py +0 -0
  92. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master/wrapper.py +0 -0
  93. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master.egg-info/dependency_links.txt +0 -0
  94. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/src/claude_task_master.egg-info/top_level.txt +0 -0
  95. {claude_task_master-0.1.1 → claude_task_master-0.1.3}/tests/test_wrapper.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-task-master
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: Autonomous task orchestration system that keeps Claude working until a goal is achieved
5
5
  Author: Claude Task Master Team
6
6
  License-Expression: MIT
@@ -28,7 +28,13 @@ Requires-Dist: rich>=13.0.0
28
28
  Requires-Dist: httpx>=0.27.0
29
29
  Provides-Extra: mcp
30
30
  Requires-Dist: mcp>=1.0.0; extra == "mcp"
31
+ Provides-Extra: api
32
+ Requires-Dist: fastapi>=0.100.0; extra == "api"
33
+ Requires-Dist: uvicorn[standard]>=0.24.0; extra == "api"
34
+ Requires-Dist: passlib[bcrypt]>=1.7.4; extra == "api"
35
+ Requires-Dist: bcrypt<4.1.0,>=4.0.0; extra == "api"
31
36
  Provides-Extra: dev
37
+ Requires-Dist: claude-task-master[api]; extra == "dev"
32
38
  Requires-Dist: pytest>=8.0.0; extra == "dev"
33
39
  Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
34
40
  Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
@@ -36,7 +42,7 @@ Requires-Dist: pytest-timeout>=2.4.0; extra == "dev"
36
42
  Requires-Dist: ruff>=0.3.0; extra == "dev"
37
43
  Requires-Dist: mypy>=1.9.0; extra == "dev"
38
44
  Provides-Extra: all
39
- Requires-Dist: claude-task-master[dev,mcp]; extra == "all"
45
+ Requires-Dist: claude-task-master[api,dev,mcp]; extra == "all"
40
46
 
41
47
  # Claude Task Master
42
48
 
@@ -50,21 +56,99 @@ Autonomous task orchestration system that keeps Claude working until a goal is a
50
56
 
51
57
  ## Quick Start
52
58
 
59
+ ### Installation
60
+
61
+ **Option 1: Using uv (recommended)**
62
+
63
+ ```bash
64
+ # Install with uv
65
+ uv tool install claude-task-master
66
+ ```
67
+
68
+ **Option 2: Using pip**
69
+
53
70
  ```bash
54
71
  # Install from PyPI
55
72
  pip install claude-task-master
73
+ ```
56
74
 
57
- # Or with uv (recommended)
58
- uv tool install claude-task-master
75
+ **Option 3: Using Docker**
76
+
77
+ ```bash
78
+ # Pull the official Docker image from GitHub Container Registry
79
+ docker pull ghcr.io/developerz-ai/claude-task-master:latest
80
+
81
+ # Run with Docker (requires Claude credentials mounted)
82
+ docker run -d \
83
+ --name claudetm \
84
+ -p 8000:8000 \
85
+ -v ~/.claude:/home/claudetm/.claude:ro \
86
+ -v $(pwd):/app/project \
87
+ -v ~/.gitconfig:/home/claudetm/.gitconfig:ro \
88
+ -v ~/.config/gh:/home/claudetm/.config/gh:ro \
89
+ ghcr.io/developerz-ai/claude-task-master:latest
90
+ ```
91
+
92
+ See [Docker Deployment Guide](./docs/docker.md) for detailed Docker setup, volume mounts, and configuration options.
93
+
94
+ ### Authentication
95
+
96
+ Before using claudetm, you need to authenticate with Claude:
97
+
98
+ ```bash
99
+ # Run Claude CLI and login (this saves credentials that claudetm will use)
100
+ claude
101
+ /login
59
102
 
60
- # Verify setup
103
+ # Verify claudetm can access credentials
61
104
  claudetm doctor
105
+ ```
106
+
107
+ **For Docker users:** Ensure your `~/.claude/.credentials.json` exists before running the container, as Claude Task Master needs OAuth credentials to function.
108
+
109
+ ### Upgrading
110
+
111
+ **With uv:**
112
+ ```bash
113
+ uv tool install claude-task-master --force --reinstall
114
+ ```
62
115
 
63
- # Run a task
116
+ **With pip:**
117
+ ```bash
118
+ pip install --upgrade claude-task-master
119
+ ```
120
+
121
+ **With Docker:**
122
+ ```bash
123
+ # Pull the latest image
124
+ docker pull ghcr.io/developerz-ai/claude-task-master:latest
125
+
126
+ # Restart your container with the new image
127
+ docker-compose up -d
128
+ ```
129
+
130
+ **Check version:**
131
+ ```bash
132
+ claudetm --version
133
+ ```
134
+
135
+ ### Run a Task
136
+
137
+ **Using the CLI:**
138
+ ```bash
64
139
  cd your-project
65
140
  claudetm start "Add user authentication with tests"
66
141
  ```
67
142
 
143
+ **Using Docker:**
144
+ ```bash
145
+ # Task execution is handled through the unified server
146
+ # Create tasks via the REST API or MCP interface
147
+ curl -H "Authorization: Bearer password" \
148
+ http://localhost:8000/tasks -X POST \
149
+ -d '{"goal": "Add user authentication"}'
150
+ ```
151
+
68
152
  ## Overview
69
153
 
70
154
  Claude Task Master uses the Claude Agent SDK to autonomously work on complex tasks. Give it a goal, and it will:
@@ -252,6 +336,17 @@ To use OpenRouter instead of direct Anthropic API:
252
336
  CLAUDETM_DEBUG=1 claudetm status
253
337
  ```
254
338
 
339
+ ## Documentation
340
+
341
+ Complete documentation for all features and deployment options:
342
+
343
+ | Guide | Description |
344
+ |-------|-------------|
345
+ | **[Docker Deployment](./docs/docker.md)** | Docker installation, configuration, volume mounts, and production deployment |
346
+ | **[Authentication](./docs/authentication.md)** | Password-based authentication for REST API, MCP server, and webhooks |
347
+ | **[REST API Reference](./docs/api-reference.md)** | Complete REST API endpoint documentation with examples |
348
+ | **[Webhooks](./docs/webhooks.md)** | Webhook events, payload formats, HMAC signature verification, and integration examples |
349
+
255
350
  ## Usage
256
351
 
257
352
  ### CLI Commands
@@ -460,6 +555,49 @@ claudetm context
460
555
 
461
556
  The system follows SOLID principles with strict Single Responsibility:
462
557
 
558
+ ### Server Architecture
559
+
560
+ When running with the unified server (`claudetm-server`), the following components work together:
561
+
562
+ ```
563
+ ┌─────────────────────────────────────────────────────────────────────┐
564
+ │ Claude Task Master Server │
565
+ │ │
566
+ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
567
+ │ │ REST API │ │ MCP Server │ │ Webhooks │ │
568
+ │ │ (FastAPI) │ │ (FastMCP) │ │ (httpx) │ │
569
+ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
570
+ │ │ │ │ │
571
+ │ └──────────────────┼──────────────────┘ │
572
+ │ │ │
573
+ │ ┌───────▼───────┐ │
574
+ │ │ Auth Module │ │
575
+ │ │ (Password) │ │
576
+ │ └───────────────┘ │
577
+ └─────────────────────────────────────────────────────────────────────┘
578
+
579
+ Docker Container:
580
+ ┌─────────────────────────────────────────────────────────────────────┐
581
+ │ claudetm-server │
582
+ │ │
583
+ │ Volumes: │
584
+ │ - /app/project → project directory │
585
+ │ - /root/.claude → Claude credentials (~/.claude) │
586
+ │ │
587
+ │ Env: CLAUDETM_PASSWORD, CLAUDETM_WEBHOOK_URL, ... │
588
+ └─────────────────────────────────────────────────────────────────────┘
589
+ ```
590
+
591
+ **Server Features:**
592
+ - **REST API** - Create and manage tasks, view status, manage webhooks
593
+ - **MCP Server** - Claude editor integration for native IDE support
594
+ - **Webhooks** - Send notifications on task events with HMAC verification
595
+ - **Unified Authentication** - Single password protects all three interfaces
596
+ - **Docker Ready** - Multi-arch image published to GitHub Container Registry
597
+
598
+ For detailed Docker deployment, see [Docker Deployment Guide](./docs/docker.md).
599
+ For authentication details, see [Authentication Guide](./docs/authentication.md).
600
+
463
601
  ### Core Components
464
602
 
465
603
  | Component | Responsibility |
@@ -10,21 +10,99 @@ Autonomous task orchestration system that keeps Claude working until a goal is a
10
10
 
11
11
  ## Quick Start
12
12
 
13
+ ### Installation
14
+
15
+ **Option 1: Using uv (recommended)**
16
+
17
+ ```bash
18
+ # Install with uv
19
+ uv tool install claude-task-master
20
+ ```
21
+
22
+ **Option 2: Using pip**
23
+
13
24
  ```bash
14
25
  # Install from PyPI
15
26
  pip install claude-task-master
27
+ ```
16
28
 
17
- # Or with uv (recommended)
18
- uv tool install claude-task-master
29
+ **Option 3: Using Docker**
30
+
31
+ ```bash
32
+ # Pull the official Docker image from GitHub Container Registry
33
+ docker pull ghcr.io/developerz-ai/claude-task-master:latest
34
+
35
+ # Run with Docker (requires Claude credentials mounted)
36
+ docker run -d \
37
+ --name claudetm \
38
+ -p 8000:8000 \
39
+ -v ~/.claude:/home/claudetm/.claude:ro \
40
+ -v $(pwd):/app/project \
41
+ -v ~/.gitconfig:/home/claudetm/.gitconfig:ro \
42
+ -v ~/.config/gh:/home/claudetm/.config/gh:ro \
43
+ ghcr.io/developerz-ai/claude-task-master:latest
44
+ ```
45
+
46
+ See [Docker Deployment Guide](./docs/docker.md) for detailed Docker setup, volume mounts, and configuration options.
47
+
48
+ ### Authentication
49
+
50
+ Before using claudetm, you need to authenticate with Claude:
51
+
52
+ ```bash
53
+ # Run Claude CLI and login (this saves credentials that claudetm will use)
54
+ claude
55
+ /login
19
56
 
20
- # Verify setup
57
+ # Verify claudetm can access credentials
21
58
  claudetm doctor
59
+ ```
60
+
61
+ **For Docker users:** Ensure your `~/.claude/.credentials.json` exists before running the container, as Claude Task Master needs OAuth credentials to function.
62
+
63
+ ### Upgrading
64
+
65
+ **With uv:**
66
+ ```bash
67
+ uv tool install claude-task-master --force --reinstall
68
+ ```
22
69
 
23
- # Run a task
70
+ **With pip:**
71
+ ```bash
72
+ pip install --upgrade claude-task-master
73
+ ```
74
+
75
+ **With Docker:**
76
+ ```bash
77
+ # Pull the latest image
78
+ docker pull ghcr.io/developerz-ai/claude-task-master:latest
79
+
80
+ # Restart your container with the new image
81
+ docker-compose up -d
82
+ ```
83
+
84
+ **Check version:**
85
+ ```bash
86
+ claudetm --version
87
+ ```
88
+
89
+ ### Run a Task
90
+
91
+ **Using the CLI:**
92
+ ```bash
24
93
  cd your-project
25
94
  claudetm start "Add user authentication with tests"
26
95
  ```
27
96
 
97
+ **Using Docker:**
98
+ ```bash
99
+ # Task execution is handled through the unified server
100
+ # Create tasks via the REST API or MCP interface
101
+ curl -H "Authorization: Bearer password" \
102
+ http://localhost:8000/tasks -X POST \
103
+ -d '{"goal": "Add user authentication"}'
104
+ ```
105
+
28
106
  ## Overview
29
107
 
30
108
  Claude Task Master uses the Claude Agent SDK to autonomously work on complex tasks. Give it a goal, and it will:
@@ -212,6 +290,17 @@ To use OpenRouter instead of direct Anthropic API:
212
290
  CLAUDETM_DEBUG=1 claudetm status
213
291
  ```
214
292
 
293
+ ## Documentation
294
+
295
+ Complete documentation for all features and deployment options:
296
+
297
+ | Guide | Description |
298
+ |-------|-------------|
299
+ | **[Docker Deployment](./docs/docker.md)** | Docker installation, configuration, volume mounts, and production deployment |
300
+ | **[Authentication](./docs/authentication.md)** | Password-based authentication for REST API, MCP server, and webhooks |
301
+ | **[REST API Reference](./docs/api-reference.md)** | Complete REST API endpoint documentation with examples |
302
+ | **[Webhooks](./docs/webhooks.md)** | Webhook events, payload formats, HMAC signature verification, and integration examples |
303
+
215
304
  ## Usage
216
305
 
217
306
  ### CLI Commands
@@ -420,6 +509,49 @@ claudetm context
420
509
 
421
510
  The system follows SOLID principles with strict Single Responsibility:
422
511
 
512
+ ### Server Architecture
513
+
514
+ When running with the unified server (`claudetm-server`), the following components work together:
515
+
516
+ ```
517
+ ┌─────────────────────────────────────────────────────────────────────┐
518
+ │ Claude Task Master Server │
519
+ │ │
520
+ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
521
+ │ │ REST API │ │ MCP Server │ │ Webhooks │ │
522
+ │ │ (FastAPI) │ │ (FastMCP) │ │ (httpx) │ │
523
+ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
524
+ │ │ │ │ │
525
+ │ └──────────────────┼──────────────────┘ │
526
+ │ │ │
527
+ │ ┌───────▼───────┐ │
528
+ │ │ Auth Module │ │
529
+ │ │ (Password) │ │
530
+ │ └───────────────┘ │
531
+ └─────────────────────────────────────────────────────────────────────┘
532
+
533
+ Docker Container:
534
+ ┌─────────────────────────────────────────────────────────────────────┐
535
+ │ claudetm-server │
536
+ │ │
537
+ │ Volumes: │
538
+ │ - /app/project → project directory │
539
+ │ - /root/.claude → Claude credentials (~/.claude) │
540
+ │ │
541
+ │ Env: CLAUDETM_PASSWORD, CLAUDETM_WEBHOOK_URL, ... │
542
+ └─────────────────────────────────────────────────────────────────────┘
543
+ ```
544
+
545
+ **Server Features:**
546
+ - **REST API** - Create and manage tasks, view status, manage webhooks
547
+ - **MCP Server** - Claude editor integration for native IDE support
548
+ - **Webhooks** - Send notifications on task events with HMAC verification
549
+ - **Unified Authentication** - Single password protects all three interfaces
550
+ - **Docker Ready** - Multi-arch image published to GitHub Container Registry
551
+
552
+ For detailed Docker deployment, see [Docker Deployment Guide](./docs/docker.md).
553
+ For authentication details, see [Authentication Guide](./docs/authentication.md).
554
+
423
555
  ### Core Components
424
556
 
425
557
  | Component | Responsibility |
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "claude-task-master"
7
- version = "0.1.1"
7
+ version = "0.1.3"
8
8
  description = "Autonomous task orchestration system that keeps Claude working until a goal is achieved"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -42,7 +42,16 @@ Changelog = "https://github.com/developerz-ai/claude-task-master/blob/main/CHANG
42
42
 
43
43
  [project.optional-dependencies]
44
44
  mcp = ["mcp>=1.0.0"]
45
+ api = [
46
+ "fastapi>=0.100.0",
47
+ "uvicorn[standard]>=0.24.0",
48
+ # Note: passlib (last release: 1.7.4, Oct 2020) is unmaintained but has no known CVEs.
49
+ # It's widely used and bcrypt is timing-safe. Consider argon2-cffi as future alternative.
50
+ "passlib[bcrypt]>=1.7.4",
51
+ "bcrypt>=4.0.0,<4.1.0", # Pin bcrypt for passlib compatibility
52
+ ]
45
53
  dev = [
54
+ "claude-task-master[api]", # Include API dependencies for testing
46
55
  "pytest>=8.0.0",
47
56
  "pytest-cov>=4.1.0",
48
57
  "pytest-asyncio>=0.23.0",
@@ -51,7 +60,7 @@ dev = [
51
60
  "mypy>=1.9.0",
52
61
  ]
53
62
  all = [
54
- "claude-task-master[mcp,dev]",
63
+ "claude-task-master[mcp,api,dev]",
55
64
  ]
56
65
 
57
66
  [project.scripts]
@@ -61,6 +70,10 @@ claudetm = "claude_task_master.wrapper:main"
61
70
  claudetm-py = "claude_task_master.cli:app"
62
71
  # MCP server entry point
63
72
  claudetm-mcp = "claude_task_master.mcp.server:main"
73
+ # REST API server entry point
74
+ claudetm-api = "claude_task_master.api.server:main"
75
+ # Unified server entry point (REST API + MCP together)
76
+ claudetm-server = "claude_task_master.server:main"
64
77
 
65
78
  # Setuptools configuration
66
79
  [tool.setuptools.packages.find]
@@ -117,6 +130,14 @@ ignore_missing_imports = true
117
130
  module = "mcp.*"
118
131
  ignore_missing_imports = true
119
132
 
133
+ [[tool.mypy.overrides]]
134
+ module = ["fastapi.*", "uvicorn.*"]
135
+ ignore_missing_imports = true
136
+
137
+ [[tool.mypy.overrides]]
138
+ module = "passlib.*"
139
+ ignore_missing_imports = true
140
+
120
141
  [[tool.mypy.overrides]]
121
142
  module = "tests.*"
122
143
  disallow_untyped_defs = false
@@ -3,5 +3,5 @@
3
3
  Uses Claude Agent SDK to keep Claude working until a goal is achieved.
4
4
  """
5
5
 
6
- __version__ = "0.1.1"
6
+ __version__ = "0.1.3"
7
7
  __all__ = ["__version__"]
@@ -0,0 +1,98 @@
1
+ """REST API layer for Claude Task Master.
2
+
3
+ This module provides a FastAPI-based REST API that exposes claudetm functionality
4
+ as HTTP endpoints for remote task monitoring.
5
+
6
+ Currently Implemented Endpoints:
7
+ - GET /status: Get current task status
8
+ - GET /plan: Get task plan content
9
+ - GET /logs: Get log content
10
+ - GET /progress: Get progress summary
11
+ - GET /context: Get accumulated context/learnings
12
+ - GET /health: Health check endpoint
13
+
14
+ Usage:
15
+ # Import and create the app
16
+ from claude_task_master.api import create_app
17
+
18
+ app = create_app()
19
+
20
+ # Or run directly
21
+ from claude_task_master.api import run_server
22
+
23
+ run_server(host="0.0.0.0", port=8000)
24
+ """
25
+
26
+ # API components - imported as they are implemented
27
+ from claude_task_master.api.models import (
28
+ # Response models
29
+ APIInfo,
30
+ # Request models
31
+ ConfigUpdateRequest,
32
+ ContextResponse,
33
+ ControlResponse,
34
+ ErrorResponse,
35
+ HealthResponse,
36
+ # Enums
37
+ LogFormat,
38
+ LogLevel,
39
+ LogsResponse,
40
+ PauseRequest,
41
+ PlanResponse,
42
+ ProgressResponse,
43
+ ResumeRequest,
44
+ StopRequest,
45
+ TaskDeleteResponse,
46
+ TaskInitRequest,
47
+ TaskInitResponse,
48
+ TaskListItem,
49
+ TaskListResponse,
50
+ TaskOptionsResponse,
51
+ TaskProgressInfo,
52
+ TaskStatus,
53
+ TaskStatusResponse,
54
+ WorkflowStage,
55
+ )
56
+
57
+ # Routes
58
+ from claude_task_master.api.routes import create_info_router, register_routes
59
+
60
+ # Server components
61
+ from claude_task_master.api.server import create_app, get_app, run_server
62
+
63
+ __all__: list[str] = [
64
+ # Server
65
+ "create_app",
66
+ "run_server",
67
+ "get_app",
68
+ # Enums
69
+ "TaskStatus",
70
+ "WorkflowStage",
71
+ "LogLevel",
72
+ "LogFormat",
73
+ # Request models
74
+ "PauseRequest",
75
+ "StopRequest",
76
+ "ResumeRequest",
77
+ "ConfigUpdateRequest",
78
+ "TaskInitRequest",
79
+ # Response models
80
+ "TaskStatusResponse",
81
+ "TaskOptionsResponse",
82
+ "TaskProgressInfo",
83
+ "ControlResponse",
84
+ "PlanResponse",
85
+ "LogsResponse",
86
+ "ProgressResponse",
87
+ "ContextResponse",
88
+ "TaskListItem",
89
+ "TaskListResponse",
90
+ "HealthResponse",
91
+ "TaskInitResponse",
92
+ "TaskDeleteResponse",
93
+ "ErrorResponse",
94
+ "APIInfo",
95
+ # Routes
96
+ "create_info_router",
97
+ "register_routes",
98
+ ]