aidp 0.21.1 → 0.23.0
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.
- checksums.yaml +4 -4
- data/README.md +145 -31
- data/lib/aidp/cli/devcontainer_commands.rb +501 -0
- data/lib/aidp/cli/issue_importer.rb +15 -3
- data/lib/aidp/cli.rb +107 -2
- data/lib/aidp/execute/prompt_manager.rb +16 -2
- data/lib/aidp/execute/runner.rb +10 -5
- data/lib/aidp/execute/work_loop_runner.rb +3 -3
- data/lib/aidp/harness/runner.rb +20 -6
- data/lib/aidp/harness/state/persistence.rb +12 -1
- data/lib/aidp/harness/state_manager.rb +13 -1
- data/lib/aidp/jobs/background_runner.rb +3 -1
- data/lib/aidp/logger.rb +41 -5
- data/lib/aidp/safe_directory.rb +87 -0
- data/lib/aidp/setup/devcontainer/backup_manager.rb +182 -0
- data/lib/aidp/setup/devcontainer/generator.rb +409 -0
- data/lib/aidp/setup/devcontainer/parser.rb +249 -0
- data/lib/aidp/setup/devcontainer/port_manager.rb +286 -0
- data/lib/aidp/setup/wizard.rb +219 -0
- data/lib/aidp/storage/csv_storage.rb +39 -2
- data/lib/aidp/storage/file_manager.rb +28 -3
- data/lib/aidp/storage/json_storage.rb +41 -2
- data/lib/aidp/version.rb +1 -1
- data/lib/aidp/watch/build_processor.rb +94 -4
- data/lib/aidp/watch/plan_generator.rb +16 -1
- data/lib/aidp/watch/plan_processor.rb +54 -3
- data/lib/aidp/watch/repository_client.rb +74 -0
- data/lib/aidp/watch/repository_safety_checker.rb +12 -3
- data/lib/aidp/watch/runner.rb +17 -7
- data/lib/aidp/workflows/guided_agent.rb +8 -42
- metadata +7 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1dedfe324bb5255c43e42a4ac3f716bb99f9db453ae436a1e2aa57b68754a28f
|
|
4
|
+
data.tar.gz: 24b5a225e474c14dabad326455e4d5286e175dc6a929a1bffab4ffb29c1c063c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b842c15a0169d3b3c7361cbdf633b5bb66d0189f40fb16e12099436b3db7eda3e983fb624326b2160dd018d63090feae2b92042f46758990c31cef9172252d36
|
|
7
|
+
data.tar.gz: 1c614a680d74d56fff4561a62eee471ab1d8f7b8b2cc801786da25a63c12b142948f8e418477a4b479b3b119abe2275b954d9202662f7acbb36cdd82401a68eb
|
data/README.md
CHANGED
|
@@ -48,8 +48,8 @@ AIDP provides first-class devcontainer support for sandboxed, secure AI agent ex
|
|
|
48
48
|
|
|
49
49
|
- **Network Security**: Strict firewall with allowlisted domains only
|
|
50
50
|
- **Sandboxed Environment**: Isolated from your host system
|
|
51
|
-
- **Elevated Permissions**: AI agents can run with full permissions inside the container
|
|
52
51
|
- **Consistent Setup**: Same environment across all developers
|
|
52
|
+
- **Automatic Management**: AIDP can generate and update your devcontainer configuration
|
|
53
53
|
|
|
54
54
|
### For AIDP Development
|
|
55
55
|
|
|
@@ -73,43 +73,54 @@ See [.devcontainer/README.md](.devcontainer/README.md) for complete documentatio
|
|
|
73
73
|
|
|
74
74
|
### Generating Devcontainers for Your Projects
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
AIDP can automatically generate and manage devcontainer configurations through the interactive wizard:
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
#
|
|
80
|
-
aidp
|
|
79
|
+
# Launch the interactive configuration wizard
|
|
80
|
+
aidp config --interactive
|
|
81
81
|
|
|
82
|
-
#
|
|
83
|
-
#
|
|
82
|
+
# During the wizard, you'll be asked:
|
|
83
|
+
# - Whether you want AIDP to manage your devcontainer configuration
|
|
84
|
+
# - If you want to add custom ports beyond auto-detected ones
|
|
84
85
|
|
|
85
|
-
#
|
|
86
|
-
|
|
86
|
+
# The wizard will detect ports based on your project type and generate
|
|
87
|
+
# a complete devcontainer.json configuration
|
|
87
88
|
```
|
|
88
89
|
|
|
89
|
-
|
|
90
|
+
You can also manage devcontainer configuration manually:
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
# .aidp/aidp.yml
|
|
94
|
+
devcontainer:
|
|
95
|
+
manage: true
|
|
96
|
+
custom_ports:
|
|
97
|
+
- number: 3000
|
|
98
|
+
label: "Application Server"
|
|
99
|
+
- number: 5432
|
|
100
|
+
label: "PostgreSQL"
|
|
101
|
+
```
|
|
90
102
|
|
|
91
|
-
|
|
92
|
-
- `.devcontainer/devcontainer.json` - VS Code configuration and extensions
|
|
93
|
-
- `.devcontainer/init-firewall.sh` - Network security rules
|
|
94
|
-
- `.devcontainer/README.md` - Setup and usage documentation
|
|
103
|
+
Then apply the configuration:
|
|
95
104
|
|
|
96
|
-
|
|
105
|
+
```bash
|
|
106
|
+
# Preview changes
|
|
107
|
+
aidp devcontainer diff
|
|
97
108
|
|
|
98
|
-
|
|
109
|
+
# Apply configuration
|
|
110
|
+
aidp devcontainer apply
|
|
99
111
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
devcontainer:
|
|
103
|
-
enabled: true
|
|
104
|
-
full_permissions_when_in_devcontainer: true # Run all providers with full permissions
|
|
112
|
+
# List backups
|
|
113
|
+
aidp devcontainer list-backups
|
|
105
114
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
skip_permission_checks:
|
|
109
|
-
- claude # Adds --dangerously-skip-permissions for Claude Code
|
|
115
|
+
# Restore from backup
|
|
116
|
+
aidp devcontainer restore 0
|
|
110
117
|
```
|
|
111
118
|
|
|
112
|
-
|
|
119
|
+
See [docs/DEVELOPMENT_CONTAINER.md](docs/DEVELOPMENT_CONTAINER.md) for complete devcontainer management documentation.
|
|
120
|
+
|
|
121
|
+
### Devcontainer Detection
|
|
122
|
+
|
|
123
|
+
AIDP automatically detects when it's running inside a devcontainer and adjusts its behavior accordingly. This detection uses multiple heuristics including environment variables, filesystem markers, and cgroup information. See [DevcontainerDetector](lib/aidp/utils/devcontainer_detector.rb) for implementation details.
|
|
113
124
|
|
|
114
125
|
## Core Features
|
|
115
126
|
|
|
@@ -190,6 +201,101 @@ aidp ws rm issue-123-fix-auth --delete-branch
|
|
|
190
201
|
|
|
191
202
|
See [Workstreams Guide](docs/WORKSTREAMS.md) for detailed usage.
|
|
192
203
|
|
|
204
|
+
### Watch Mode (Automated GitHub Integration)
|
|
205
|
+
|
|
206
|
+
AIDP can automatically monitor GitHub repositories and respond to labeled issues, creating plans and executing implementations autonomously:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
# Start watch mode for a repository
|
|
210
|
+
aidp watch https://github.com/owner/repo/issues
|
|
211
|
+
|
|
212
|
+
# Optional: specify polling interval, provider, and verbose output
|
|
213
|
+
aidp watch owner/repo --interval 60 --provider claude --verbose
|
|
214
|
+
|
|
215
|
+
# Run a single cycle (useful for CI/testing)
|
|
216
|
+
aidp watch owner/repo --once
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**Label Workflow:**
|
|
220
|
+
|
|
221
|
+
AIDP uses a smart label-based workflow to manage the lifecycle of automated issue resolution:
|
|
222
|
+
|
|
223
|
+
1. **Planning Phase** (`aidp-plan` label):
|
|
224
|
+
- Add this label to an issue to trigger plan generation
|
|
225
|
+
- AIDP generates an implementation plan with task breakdown and clarifying questions
|
|
226
|
+
- Posts the plan as a comment on the issue
|
|
227
|
+
- Automatically removes the `aidp-plan` label
|
|
228
|
+
|
|
229
|
+
2. **Review & Clarification**:
|
|
230
|
+
- **If questions exist**: AIDP adds `aidp-needs-input` label and waits for user response
|
|
231
|
+
- User responds to questions in a comment
|
|
232
|
+
- User manually removes `aidp-needs-input` and adds `aidp-build` to proceed
|
|
233
|
+
- **If no questions**: AIDP adds `aidp-ready` label, indicating it's ready to build
|
|
234
|
+
- User can review the plan before proceeding
|
|
235
|
+
- User manually adds `aidp-build` label when ready
|
|
236
|
+
|
|
237
|
+
3. **Implementation Phase** (`aidp-build` label):
|
|
238
|
+
- Triggers autonomous implementation via work loops
|
|
239
|
+
- Creates a feature branch and commits changes
|
|
240
|
+
- Runs tests and linters with automatic fixes
|
|
241
|
+
- **If clarification needed during implementation**:
|
|
242
|
+
- Posts clarification questions as a comment
|
|
243
|
+
- Automatically removes `aidp-build` label and adds `aidp-needs-input`
|
|
244
|
+
- Preserves work-in-progress for later resumption
|
|
245
|
+
- User responds to questions, then manually removes `aidp-needs-input` and re-adds `aidp-build`
|
|
246
|
+
- **On success**:
|
|
247
|
+
- Posts completion comment with summary
|
|
248
|
+
- Automatically removes the `aidp-build` label
|
|
249
|
+
|
|
250
|
+
**Customizable Labels:**
|
|
251
|
+
|
|
252
|
+
All label names are configurable to match your repository's existing label scheme. Configure via the interactive wizard or manually in `aidp.yml`:
|
|
253
|
+
|
|
254
|
+
```yaml
|
|
255
|
+
# .aidp/aidp.yml
|
|
256
|
+
watch:
|
|
257
|
+
labels:
|
|
258
|
+
plan_trigger: aidp-plan # Label to trigger plan generation
|
|
259
|
+
needs_input: aidp-needs-input # Label when plan needs user input
|
|
260
|
+
ready_to_build: aidp-ready # Label when plan is ready to build
|
|
261
|
+
build_trigger: aidp-build # Label to trigger implementation
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Run `aidp config --interactive` and enable watch mode to configure labels interactively.
|
|
265
|
+
|
|
266
|
+
**Safety Features:**
|
|
267
|
+
|
|
268
|
+
- **Public Repository Protection**: Disabled by default for public repos (require explicit opt-in)
|
|
269
|
+
- **Author Allowlist**: Restrict automation to trusted GitHub users only
|
|
270
|
+
- **Container Requirement**: Optionally require sandboxed environment
|
|
271
|
+
- **Force Override**: `--force` flag to bypass safety checks (dangerous!)
|
|
272
|
+
|
|
273
|
+
**Safety Configuration:**
|
|
274
|
+
|
|
275
|
+
```yaml
|
|
276
|
+
# .aidp/aidp.yml
|
|
277
|
+
watch:
|
|
278
|
+
safety:
|
|
279
|
+
allow_public_repos: true # Required for public repositories
|
|
280
|
+
author_allowlist: # Only these users can trigger automation
|
|
281
|
+
- trusted-maintainer
|
|
282
|
+
- team-member
|
|
283
|
+
require_container: true # Require devcontainer/Docker environment
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Run `aidp config --interactive` and enable watch mode to configure safety settings interactively.
|
|
287
|
+
|
|
288
|
+
**Clarification Requests:**
|
|
289
|
+
|
|
290
|
+
AIDP can automatically request clarification when it needs more information during implementation. This works in both watch mode and interactive mode:
|
|
291
|
+
|
|
292
|
+
- **Watch Mode**: Posts clarification questions as a GitHub comment, updates labels to `aidp-needs-input`, and waits for user response
|
|
293
|
+
- **Interactive Mode**: Prompts the user directly in the terminal to answer questions before continuing
|
|
294
|
+
|
|
295
|
+
This ensures AIDP never gets stuck - if it needs more information, it will ask for it rather than making incorrect assumptions or failing silently.
|
|
296
|
+
|
|
297
|
+
See [Watch Mode Guide](docs/FULLY_AUTOMATIC_MODE.md) and [Watch Mode Safety](docs/WATCH_MODE_SAFETY.md) for complete documentation.
|
|
298
|
+
|
|
193
299
|
## Command Reference
|
|
194
300
|
|
|
195
301
|
### Copilot Mode
|
|
@@ -263,6 +369,20 @@ aidp ws rm <slug> --delete-branch # Also delete git branch
|
|
|
263
369
|
aidp ws rm <slug> --force # Skip confirmation
|
|
264
370
|
```
|
|
265
371
|
|
|
372
|
+
### Configuration Commands
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
# Interactive configuration wizard (recommended)
|
|
376
|
+
aidp config --interactive # Configure all settings including watch mode
|
|
377
|
+
|
|
378
|
+
# Legacy setup wizard
|
|
379
|
+
aidp --setup-config # Re-run basic setup wizard
|
|
380
|
+
|
|
381
|
+
# Help and version
|
|
382
|
+
aidp --help # Show all commands
|
|
383
|
+
aidp --version # Show version
|
|
384
|
+
```
|
|
385
|
+
|
|
266
386
|
### System Commands
|
|
267
387
|
|
|
268
388
|
```bash
|
|
@@ -275,11 +395,6 @@ aidp providers
|
|
|
275
395
|
# Harness state management
|
|
276
396
|
aidp harness status
|
|
277
397
|
aidp harness reset
|
|
278
|
-
|
|
279
|
-
# Configuration
|
|
280
|
-
aidp --setup-config # Re-run setup wizard
|
|
281
|
-
aidp --help # Show all commands
|
|
282
|
-
aidp --version # Show version
|
|
283
398
|
```
|
|
284
399
|
|
|
285
400
|
## AI Providers
|
|
@@ -291,7 +406,6 @@ AIDP intelligently manages multiple providers with automatic switching:
|
|
|
291
406
|
- **Cursor CLI** - IDE-integrated provider for code-specific tasks
|
|
292
407
|
- **Gemini CLI** - Google's Gemini command-line interface for general tasks
|
|
293
408
|
- **GitHub Copilot CLI** - GitHub's AI pair programmer command-line interface
|
|
294
|
-
- **macOS UI** - macOS-specific UI automation provider
|
|
295
409
|
- **OpenCode** - Alternative open-source code generation provider
|
|
296
410
|
|
|
297
411
|
The system automatically switches providers when:
|