proagents 1.6.15 ā 1.6.17
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.
- package/.proagents/examples/README.md +2 -2
- package/README.md +56 -535
- package/bin/proagents.js +9 -3
- package/lib/commands/init.js +4 -174
- package/lib/commands/version.js +25 -4
- package/package.json +1 -1
|
@@ -42,8 +42,8 @@ These show the actual back-and-forth interaction between user and AI.
|
|
|
42
42
|
# View example for your project type
|
|
43
43
|
proagents example show react
|
|
44
44
|
|
|
45
|
-
# Initialize
|
|
46
|
-
proagents init
|
|
45
|
+
# Initialize ProAgents
|
|
46
|
+
npx proagents init
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
## Contributing Examples
|
package/README.md
CHANGED
|
@@ -9,34 +9,29 @@ A portable, universal development workflow framework that works with **any AI pl
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
### š [COMMANDS.md](COMMANDS.md) - Complete Command Reference (100+ Commands)
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
CLI commands, AI commands (pa:), workflow phases, debugging, testing, deployment, and more.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
npx proagents init
|
|
18
|
-
```
|
|
16
|
+
---
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
## Why ProAgents?
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
- **AI-Agnostic**: Works with Claude, ChatGPT, Gemini, Cursor, Copilot - switch AI tools anytime without losing context
|
|
21
|
+
- **Multi-AI Collaboration**: Multiple AIs can work on the same project with shared context and conflict detection
|
|
22
|
+
- **Guided Workflow**: 10-phase development process from Analysis to Deployment with quality gates
|
|
23
|
+
- **Learning System**: AI learns from your corrections and never repeats the same mistakes
|
|
25
24
|
|
|
26
|
-
|
|
25
|
+
---
|
|
27
26
|
|
|
28
|
-
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
No install required. Just run:
|
|
29
30
|
|
|
30
31
|
```bash
|
|
31
|
-
|
|
32
|
-
npx proagents migrate
|
|
32
|
+
npx proagents init
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
**What migration does:**
|
|
36
|
-
- Renames `proagents/` ā `.proagents/`
|
|
37
|
-
- Updates paths in `README.md`, `CLAUDE.md`, `.cursorrules`
|
|
38
|
-
- Preserves all your existing configurations
|
|
39
|
-
|
|
40
35
|
---
|
|
41
36
|
|
|
42
37
|
## Quick Start
|
|
@@ -48,26 +43,37 @@ cd your-project
|
|
|
48
43
|
npx proagents init
|
|
49
44
|
```
|
|
50
45
|
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
46
|
+
**What happens:**
|
|
47
|
+
- Creates `./.proagents/` folder with workflow files
|
|
48
|
+
- Prompts for project name and type (auto-detected)
|
|
49
|
+
- Prompts for tech stack (API style, database, styling, auth)
|
|
50
|
+
- Creates AI instruction files (CLAUDE.md, .cursorrules, etc.)
|
|
55
51
|
|
|
56
52
|
### 2. Use Commands in Any AI
|
|
57
53
|
|
|
58
|
-
|
|
54
|
+
Open your AI assistant (Claude, ChatGPT, Cursor, etc.) and type:
|
|
59
55
|
|
|
60
56
|
```
|
|
61
57
|
pa:feature "Add user authentication"
|
|
62
|
-
pa:fix "Login button not working"
|
|
63
|
-
pa:status
|
|
64
58
|
```
|
|
65
59
|
|
|
66
|
-
|
|
60
|
+
**What happens:**
|
|
61
|
+
- AI loads project context automatically
|
|
62
|
+
- Guides you through 10-phase workflow
|
|
63
|
+
- Logs all changes for other AIs to see
|
|
64
|
+
|
|
65
|
+
### 3. See Progress
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
pa:status
|
|
69
|
+
```
|
|
67
70
|
|
|
71
|
+
**Example output:**
|
|
68
72
|
```
|
|
69
|
-
|
|
70
|
-
Implementation
|
|
73
|
+
Feature: Add user authentication
|
|
74
|
+
Phase: Implementation (5/10)
|
|
75
|
+
Progress: āāāāāāāāāāāā 50%
|
|
76
|
+
Next: pa:test
|
|
71
77
|
```
|
|
72
78
|
|
|
73
79
|
---
|
|
@@ -106,22 +112,6 @@ pa:fix "bug in auth" # AI auto-loads context, then fixes
|
|
|
106
112
|
pa:undo-last # Revert last AI's entire session
|
|
107
113
|
```
|
|
108
114
|
|
|
109
|
-
### Project Templates
|
|
110
|
-
|
|
111
|
-
Pre-configured settings for common stacks:
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
npx proagents init --template nextjs-saas # Next.js SaaS
|
|
115
|
-
npx proagents init --template react-spa # React SPA
|
|
116
|
-
npx proagents init --template react-native-app # React Native
|
|
117
|
-
npx proagents init --template express-api # Express API
|
|
118
|
-
npx proagents init --template nestjs-api # NestJS API
|
|
119
|
-
npx proagents init --template vue-spa # Vue.js SPA
|
|
120
|
-
npx proagents init --template python-fastapi # Python FastAPI
|
|
121
|
-
|
|
122
|
-
npx proagents init --list-templates # Show all templates
|
|
123
|
-
```
|
|
124
|
-
|
|
125
115
|
### AI Learning & Feedback
|
|
126
116
|
|
|
127
117
|
- **Feedback Log** - AI learns from corrections, doesn't repeat mistakes
|
|
@@ -155,514 +145,54 @@ ProAgents follows **"ALWAYS DO, NEVER JUST TELL"** principle:
|
|
|
155
145
|
## CLI Commands
|
|
156
146
|
|
|
157
147
|
```bash
|
|
158
|
-
#
|
|
159
|
-
npx proagents init # Initialize
|
|
160
|
-
npx proagents init --template <name> # Use a project template
|
|
161
|
-
npx proagents init --list-templates # List available templates
|
|
162
|
-
|
|
163
|
-
# Features & Fixes
|
|
164
|
-
proagents feature start "name" # Start a new feature
|
|
165
|
-
proagents feature status # Check feature status
|
|
166
|
-
proagents fix "bug description" # Quick bug fix mode
|
|
148
|
+
# Initialize
|
|
149
|
+
npx proagents init # Initialize or update ProAgents
|
|
167
150
|
|
|
168
|
-
#
|
|
169
|
-
proagents doctor # Health check installation
|
|
170
|
-
proagents doctor --full # Extended checks (branches, logs, features)
|
|
151
|
+
# Daily Use
|
|
171
152
|
proagents status # Show ProAgents status
|
|
172
|
-
proagents
|
|
173
|
-
|
|
174
|
-
# Release Notes
|
|
175
|
-
proagents release # Interactive release note generator
|
|
176
|
-
proagents release -t detailed # Full comprehensive notes
|
|
177
|
-
proagents release -t short # Quick summary
|
|
178
|
-
proagents release -t client # Business-focused, non-technical
|
|
179
|
-
proagents release -t developer # Technical details for devs
|
|
180
|
-
proagents release -t hotfix # Urgent patch notes
|
|
181
|
-
proagents release -t prerelease # Beta/RC notes
|
|
182
|
-
proagents release --include fixes # Only include bug fixes
|
|
183
|
-
proagents release --include features # Only include features
|
|
184
|
-
proagents release --append -o FILE # Append to existing notes
|
|
185
|
-
proagents release --bump # Suggest version bump
|
|
186
|
-
proagents release --module auth # Filter by module name
|
|
187
|
-
proagents release --changelog # Update CHANGELOG.md
|
|
188
|
-
proagents release --tag # Create git tag
|
|
189
|
-
proagents release --json # JSON output for CI/CD
|
|
190
|
-
|
|
191
|
-
# Updating ProAgents
|
|
192
|
-
npx proagents init # Smart update (recommended)
|
|
193
|
-
proagents upgrade # Full replace (use with caution)
|
|
153
|
+
proagents doctor # Health check installation
|
|
154
|
+
proagents stats # Show project & AI usage stats
|
|
194
155
|
|
|
195
156
|
# AI Platforms
|
|
196
157
|
proagents ai list # List installed AI platforms
|
|
197
158
|
proagents ai add # Add more platforms
|
|
198
|
-
proagents ai remove # Remove platforms
|
|
199
159
|
|
|
200
|
-
#
|
|
201
|
-
proagents
|
|
202
|
-
proagents
|
|
203
|
-
proagents config export # Export config for sharing
|
|
204
|
-
proagents config import <file> # Import config from file
|
|
205
|
-
|
|
206
|
-
# Statistics & Monitoring
|
|
207
|
-
proagents stats # Show project & AI usage stats
|
|
208
|
-
proagents stats --json # JSON output for scripting
|
|
209
|
-
|
|
210
|
-
# Changelog Management
|
|
211
|
-
proagents changelog view # View recent changelog entries
|
|
212
|
-
proagents changelog add "entry" # Add new changelog entry
|
|
213
|
-
proagents changelog list # List available changelogs
|
|
214
|
-
proagents changelog export # Export to CHANGELOG.md
|
|
215
|
-
proagents changelog git # View git history as changelog
|
|
216
|
-
|
|
217
|
-
# Backup & Restore
|
|
218
|
-
proagents restore <backup.json> # Restore from uninstall backup
|
|
219
|
-
|
|
220
|
-
# Shell Completions
|
|
221
|
-
proagents completion bash # Generate bash completions
|
|
222
|
-
proagents completion zsh # Generate zsh completions
|
|
223
|
-
proagents completion fish # Generate fish completions
|
|
224
|
-
|
|
225
|
-
# Quick File Access
|
|
226
|
-
proagents open # Show available shortcuts
|
|
227
|
-
proagents open config # Open proagents.config.yaml
|
|
228
|
-
proagents open changelog # Open recent changelog
|
|
229
|
-
proagents open activity # Open activity log
|
|
230
|
-
proagents open context # Open worklog context
|
|
231
|
-
|
|
232
|
-
# Other
|
|
233
|
-
proagents docs # Open documentation
|
|
234
|
-
proagents commands # Show all commands
|
|
235
|
-
proagents uninstall # Remove ProAgents
|
|
160
|
+
# Release
|
|
161
|
+
proagents release # Generate release notes
|
|
162
|
+
proagents release --changelog # Update CHANGELOG.md
|
|
236
163
|
```
|
|
237
164
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
| Command | What It Does | When to Use |
|
|
241
|
-
|---------|--------------|-------------|
|
|
242
|
-
| `npx proagents init` | **Smart update** - Updates 60 framework folders, merges config, preserves your work | **Recommended** for regular updates |
|
|
243
|
-
| `proagents upgrade` | **Full replace** - Removes everything, installs fresh, restores backups | Only when you need a complete reset |
|
|
244
|
-
|
|
245
|
-
**What's preserved with `init` (smart update):**
|
|
246
|
-
- `active-features/` - Your work in progress
|
|
247
|
-
- `changelog/` - Your change history (_recent.md, modules/, features/)
|
|
248
|
-
- `worklog/` - Your work context (_context.md, ai-stats.json)
|
|
249
|
-
- `.learning/` - Learned patterns
|
|
250
|
-
- `cache/` - Analysis cache
|
|
251
|
-
- `proagents.config.yaml` - Your values kept, new options merged
|
|
252
|
-
|
|
253
|
-
**What's preserved with `upgrade` (full replace):**
|
|
254
|
-
- `proagents.config.yaml`, `activity.log`, `handoff.md`, `.lock`
|
|
255
|
-
- `active-features/` - All files
|
|
256
|
-
- `changelog/` - _recent.md, modules/, features/, yearly folders
|
|
257
|
-
- `worklog/` - _context.md, ai-stats.json
|
|
165
|
+
š **Want more?** See [COMMANDS.md](COMMANDS.md) for 30+ CLI commands (release notes, stats, config, backups, shell completions...)
|
|
258
166
|
|
|
259
167
|
---
|
|
260
168
|
|
|
261
|
-
## AI Commands (pa:)
|
|
169
|
+
## Essential AI Commands (pa:)
|
|
262
170
|
|
|
263
171
|
Type these in any AI assistant (Claude, ChatGPT, Gemini, Cursor, etc.):
|
|
264
172
|
|
|
265
|
-
### Quick Aliases
|
|
266
|
-
| Alias | Expands To |
|
|
267
|
-
|-------|------------|
|
|
268
|
-
| `pa:f` | `pa:feature` |
|
|
269
|
-
| `pa:s` | `pa:status` |
|
|
270
|
-
| `pa:h` | `pa:help` |
|
|
271
|
-
| `pa:d` | `pa:doc` |
|
|
272
|
-
| `pa:t` | `pa:test` |
|
|
273
|
-
| `pa:q` | `pa:qa` |
|
|
274
|
-
| `pa:a` | `pa:analyze` |
|
|
275
|
-
| `pa:r` | `pa:requirements` |
|
|
276
|
-
| `pa:p` | `pa:plan` |
|
|
277
|
-
| `pa:i` | `pa:implement` |
|
|
278
|
-
| `pa:rev` | `pa:review` |
|
|
279
|
-
| `pa:dbg` | `pa:debug` |
|
|
280
|
-
| `pa:l` | `pa:logs` |
|
|
281
|
-
|
|
282
|
-
### Core Commands
|
|
283
173
|
| Command | Description |
|
|
284
174
|
|---------|-------------|
|
|
285
175
|
| `pa:feature "name"` | Start new feature workflow (all phases) |
|
|
286
176
|
| `pa:fix "description"` | Quick bug fix mode |
|
|
287
177
|
| `pa:status` | Show current progress |
|
|
178
|
+
| `pa:sync` | Load project context (usually auto) |
|
|
179
|
+
| `pa:test` | Run tests |
|
|
180
|
+
| `pa:review` | Code review workflow |
|
|
181
|
+
| `pa:deploy` | Deployment preparation |
|
|
288
182
|
| `pa:help` | Show all commands |
|
|
183
|
+
| `pa:undo-last` | Revert last AI's changes |
|
|
184
|
+
| `pa:handoff` | Create notes for another AI |
|
|
289
185
|
|
|
290
|
-
|
|
291
|
-
| Command | Phase | Description |
|
|
292
|
-
|---------|-------|-------------|
|
|
293
|
-
| `pa:analyze` | Analysis | Deep codebase analysis |
|
|
294
|
-
| `pa:requirements` | Requirements | Gather feature requirements |
|
|
295
|
-
| `pa:design` | Design | UI/Architecture design |
|
|
296
|
-
| `pa:plan` | Planning | Create implementation plan |
|
|
297
|
-
| `pa:implement` | Implementation | Execute code changes |
|
|
298
|
-
| `pa:test` | Testing | Create and run tests |
|
|
299
|
-
| `pa:review` | Review | Code review workflow |
|
|
300
|
-
| `pa:doc` | Documentation | Generate documentation |
|
|
301
|
-
| `pa:deploy` | Deployment | Deployment preparation |
|
|
302
|
-
|
|
303
|
-
### Documentation
|
|
304
|
-
| Command | Description |
|
|
305
|
-
|---------|-------------|
|
|
306
|
-
| `pa:doc` | Generate documentation |
|
|
307
|
-
| `pa:changelog` | Update CHANGELOG.md |
|
|
308
|
-
| `pa:release` | Generate release notes |
|
|
309
|
-
|
|
310
|
-
### Quality & Testing
|
|
311
|
-
| Command | Description |
|
|
312
|
-
|---------|-------------|
|
|
313
|
-
| `pa:qa` | Run quality assurance checks |
|
|
314
|
-
| `pa:rollback` | Rollback procedures |
|
|
315
|
-
|
|
316
|
-
### Cross-AI Continuity
|
|
317
|
-
| Command | Description |
|
|
318
|
-
|---------|-------------|
|
|
319
|
-
| `pa:sync` | **Run first** - Load project context |
|
|
320
|
-
| `pa:resume` | Quick resume - shows last session + next action |
|
|
321
|
-
| `pa:session-start` | Begin new work session |
|
|
322
|
-
| `pa:session-end` | Finalize session, update logs |
|
|
323
|
-
| `pa:conflict-check` | Check if files modified by other AI |
|
|
324
|
-
| `pa:undo-last` | Undo last AI's entire session (revert all changes) |
|
|
325
|
-
| `pa:undo-file "path"` | Undo changes to specific file |
|
|
326
|
-
| `pa:changelog` | Update all changelogs |
|
|
327
|
-
| `pa:changelog --from-git` | Auto-populate from git commits |
|
|
328
|
-
| `pa:changelog-feature X` | View feature changelog |
|
|
329
|
-
| `pa:changelog-module X` | View module changelog |
|
|
330
|
-
| `pa:history` | View command history |
|
|
331
|
-
| `pa:activity` | Show recent AI activity |
|
|
332
|
-
| `pa:handoff` | Create handoff notes |
|
|
333
|
-
|
|
334
|
-
### Learning & Tracking
|
|
335
|
-
| Command | Description |
|
|
336
|
-
|---------|-------------|
|
|
337
|
-
| `pa:decision "title"` | Log architectural decision |
|
|
338
|
-
| `pa:decisions` | Show all decisions |
|
|
339
|
-
| `pa:error "description"` | Log error and solution |
|
|
340
|
-
| `pa:errors` | Search past errors |
|
|
341
|
-
| `pa:feedback "description"` | Log feedback for AI learning |
|
|
342
|
-
|
|
343
|
-
### AI Platform Management
|
|
344
|
-
| Command | Description |
|
|
345
|
-
|---------|-------------|
|
|
346
|
-
| `pa:ai-list` | List installed AI platforms |
|
|
347
|
-
| `pa:ai-add` | Add more AI platforms |
|
|
348
|
-
| `pa:ai-sync` | Sync config with files |
|
|
349
|
-
|
|
350
|
-
### Navigation & Flow
|
|
351
|
-
| Command | Description |
|
|
352
|
-
|---------|-------------|
|
|
353
|
-
| `pa:next` | Show next step in workflow |
|
|
354
|
-
| `pa:resume` | Resume paused feature |
|
|
355
|
-
| `pa:skip` | Skip current phase |
|
|
356
|
-
| `pa:back` | Go to previous phase |
|
|
357
|
-
| `pa:progress` | Show visual progress bar |
|
|
358
|
-
|
|
359
|
-
### Context & History
|
|
360
|
-
| Command | Description |
|
|
361
|
-
|---------|-------------|
|
|
362
|
-
| `pa:context` | View project context |
|
|
363
|
-
| `pa:diff` | Show changes since last session |
|
|
364
|
-
| `pa:history` | Show command history |
|
|
365
|
-
| `pa:checkpoint` | Create restore point |
|
|
366
|
-
| `pa:undo` | Undo last action |
|
|
186
|
+
**Quick aliases:** `pa:f` (feature), `pa:s` (status), `pa:t` (test), `pa:h` (help)
|
|
367
187
|
|
|
368
|
-
|
|
369
|
-
| Command | Description |
|
|
370
|
-
|---------|-------------|
|
|
371
|
-
| `pa:sprint-start` | Start new sprint |
|
|
372
|
-
| `pa:sprint-end` | End sprint with summary |
|
|
373
|
-
| `pa:estimate` | Estimate task complexity |
|
|
374
|
-
| `pa:velocity` | Show velocity metrics |
|
|
375
|
-
|
|
376
|
-
### Integration
|
|
377
|
-
| Command | Description |
|
|
378
|
-
|---------|-------------|
|
|
379
|
-
| `pa:github` | GitHub integration |
|
|
380
|
-
| `pa:github-pr` | Create pull request |
|
|
381
|
-
| `pa:jira` | Sync with Jira |
|
|
382
|
-
| `pa:notify` | Send notification |
|
|
383
|
-
|
|
384
|
-
### Code Quality
|
|
385
|
-
| Command | Description |
|
|
386
|
-
|---------|-------------|
|
|
387
|
-
| `pa:metrics` | Code quality metrics |
|
|
388
|
-
| `pa:coverage` | Test coverage report |
|
|
389
|
-
| `pa:deps` | Analyze dependencies |
|
|
390
|
-
| `pa:deps-outdated` | Find outdated packages |
|
|
391
|
-
| `pa:deps-security` | Security scan |
|
|
392
|
-
|
|
393
|
-
### Code Generation
|
|
394
|
-
| Command | Description |
|
|
395
|
-
|---------|-------------|
|
|
396
|
-
| `pa:generate` | Show generation options |
|
|
397
|
-
| `pa:generate-component` | Generate component |
|
|
398
|
-
| `pa:generate-api` | Generate API endpoint |
|
|
399
|
-
| `pa:generate-test` | Generate test file |
|
|
400
|
-
|
|
401
|
-
### Refactoring
|
|
402
|
-
| Command | Description |
|
|
403
|
-
|---------|-------------|
|
|
404
|
-
| `pa:refactor` | Suggest refactoring |
|
|
405
|
-
| `pa:rename` | Rename across codebase |
|
|
406
|
-
| `pa:extract` | Extract function/component |
|
|
407
|
-
| `pa:cleanup` | Remove dead code |
|
|
408
|
-
|
|
409
|
-
### Time Tracking
|
|
410
|
-
| Command | Description |
|
|
411
|
-
|---------|-------------|
|
|
412
|
-
| `pa:time-start` | Start time tracking |
|
|
413
|
-
| `pa:time-stop` | Stop tracking |
|
|
414
|
-
| `pa:time-report` | Show time report |
|
|
415
|
-
|
|
416
|
-
### Environment & Database
|
|
417
|
-
| Command | Description |
|
|
418
|
-
|---------|-------------|
|
|
419
|
-
| `pa:env-check` | Verify environment |
|
|
420
|
-
| `pa:secrets-scan` | Scan for secrets |
|
|
421
|
-
| `pa:db-migrate` | Run migrations |
|
|
422
|
-
| `pa:db-seed` | Seed database |
|
|
423
|
-
|
|
424
|
-
### Accessibility & Performance
|
|
425
|
-
| Command | Description |
|
|
426
|
-
|---------|-------------|
|
|
427
|
-
| `pa:a11y` | Accessibility audit |
|
|
428
|
-
| `pa:lighthouse` | Lighthouse audit |
|
|
429
|
-
| `pa:perf` | Performance analysis |
|
|
430
|
-
|
|
431
|
-
### Export & Learning
|
|
432
|
-
| Command | Description |
|
|
433
|
-
|---------|-------------|
|
|
434
|
-
| `pa:export` | Export config/data |
|
|
435
|
-
| `pa:import` | Import data |
|
|
436
|
-
| `pa:backup` | Backup proagents |
|
|
437
|
-
| `pa:learn` | Teach AI a pattern |
|
|
438
|
-
| `pa:suggestions` | Show AI suggestions |
|
|
439
|
-
|
|
440
|
-
### API & Documentation
|
|
441
|
-
| Command | Description |
|
|
442
|
-
|---------|-------------|
|
|
443
|
-
| `pa:api-docs` | Generate OpenAPI/Swagger docs |
|
|
444
|
-
| `pa:storybook` | Generate Storybook stories |
|
|
445
|
-
| `pa:readme` | Auto-generate/update README |
|
|
446
|
-
| `pa:types` | Generate TypeScript types |
|
|
447
|
-
|
|
448
|
-
### Git Advanced
|
|
449
|
-
| Command | Description |
|
|
450
|
-
|---------|-------------|
|
|
451
|
-
| `pa:branch` | Branch management |
|
|
452
|
-
| `pa:merge` | Smart merge with conflict preview |
|
|
453
|
-
| `pa:conflict` | Resolve merge conflicts with AI |
|
|
454
|
-
| `pa:changelog-gen` | Auto-generate changelog |
|
|
455
|
-
|
|
456
|
-
### Search & Code Navigation
|
|
457
|
-
| Command | Description |
|
|
458
|
-
|---------|-------------|
|
|
459
|
-
| `pa:find` | Find code patterns/usage |
|
|
460
|
-
| `pa:todo` | Find all TODOs in code |
|
|
461
|
-
| `pa:fixme` | Find FIXMEs and critical issues |
|
|
462
|
-
| `pa:unused` | Find unused code/exports |
|
|
463
|
-
|
|
464
|
-
### Code Analysis
|
|
465
|
-
| Command | Description |
|
|
466
|
-
|---------|-------------|
|
|
467
|
-
| `pa:complexity` | Cyclomatic complexity analysis |
|
|
468
|
-
| `pa:duplication` | Find duplicate code blocks |
|
|
469
|
-
| `pa:hotspots` | Find frequently changed files |
|
|
470
|
-
|
|
471
|
-
### Debug & Logs
|
|
472
|
-
| Command | Description |
|
|
473
|
-
|---------|-------------|
|
|
474
|
-
| `pa:debug` | Start debug session |
|
|
475
|
-
| `pa:debug-add` | Add debug logs to code |
|
|
476
|
-
| `pa:debug-add "file"` | Add logs to specific file |
|
|
477
|
-
| `pa:debug-trace "func"` | Add entry/exit logs to function |
|
|
478
|
-
| `pa:debug-var "var"` | Track variable changes |
|
|
479
|
-
| `pa:debug-api` | Add API request/response logging |
|
|
480
|
-
| `pa:debug-state` | Add state change logging |
|
|
481
|
-
| `pa:debug-error` | Add error boundary logging |
|
|
482
|
-
| `pa:debug-web` | Web console debugging |
|
|
483
|
-
| `pa:debug-rn` | React Native debugging |
|
|
484
|
-
| `pa:debug-android` | Android native (logcat) |
|
|
485
|
-
| `pa:debug-ios` | iOS native debugging |
|
|
486
|
-
| `pa:logs` | View recent logs |
|
|
487
|
-
| `pa:logs-filter "term"` | Filter logs by term |
|
|
488
|
-
| `pa:debug-clean` | Remove all debug statements |
|
|
489
|
-
|
|
490
|
-
### Testing Advanced
|
|
491
|
-
| Command | Description |
|
|
492
|
-
|---------|-------------|
|
|
493
|
-
| `pa:test-e2e` | Create/run E2E tests |
|
|
494
|
-
| `pa:test-unit` | Generate unit tests |
|
|
495
|
-
| `pa:mock` | Generate mocks/stubs |
|
|
496
|
-
| `pa:snapshot` | Snapshot testing management |
|
|
497
|
-
|
|
498
|
-
### DevOps & Infrastructure
|
|
499
|
-
| Command | Description |
|
|
500
|
-
|---------|-------------|
|
|
501
|
-
| `pa:docker` | Docker commands |
|
|
502
|
-
| `pa:ci` | CI/CD pipeline management |
|
|
503
|
-
| `pa:deploy-preview` | Deploy preview environment |
|
|
504
|
-
|
|
505
|
-
### Release Management
|
|
506
|
-
| Command | Description |
|
|
507
|
-
|---------|-------------|
|
|
508
|
-
| `pa:version` | Show/bump version |
|
|
509
|
-
| `pa:tag` | Create git tag |
|
|
510
|
-
| `pa:publish` | Publish package to registry |
|
|
511
|
-
|
|
512
|
-
### Code Review & PR
|
|
513
|
-
| Command | Description |
|
|
514
|
-
|---------|-------------|
|
|
515
|
-
| `pa:review-request` | Request code review from team |
|
|
516
|
-
| `pa:review-comments` | Show PR review comments |
|
|
517
|
-
| `pa:review-approve` | Approve current PR |
|
|
518
|
-
|
|
519
|
-
### Architecture
|
|
520
|
-
| Command | Description |
|
|
521
|
-
|---------|-------------|
|
|
522
|
-
| `pa:architecture` | Show architecture overview |
|
|
523
|
-
| `pa:architecture-diagram` | Generate diagram (Mermaid) |
|
|
524
|
-
| `pa:architecture-export` | Export diagram (SVG/PNG) |
|
|
525
|
-
|
|
526
|
-
### API Testing
|
|
527
|
-
| Command | Description |
|
|
528
|
-
|---------|-------------|
|
|
529
|
-
| `pa:api-test` | Test API endpoints |
|
|
530
|
-
| `pa:curl` | Generate curl commands |
|
|
531
|
-
| `pa:postman` | Generate Postman collection |
|
|
532
|
-
|
|
533
|
-
### Health & Monitoring
|
|
534
|
-
| Command | Description |
|
|
535
|
-
|---------|-------------|
|
|
536
|
-
| `pa:health` | Project health check |
|
|
537
|
-
| `pa:monitor` | Show monitoring status |
|
|
538
|
-
| `pa:uptime` | Service uptime check |
|
|
539
|
-
|
|
540
|
-
### Quick Actions
|
|
541
|
-
| Command | Description |
|
|
542
|
-
|---------|-------------|
|
|
543
|
-
| `pa:quick` | Show quick actions menu |
|
|
544
|
-
| `pa:alias` | Manage command aliases |
|
|
545
|
-
| `pa:alias-add` | Add custom alias |
|
|
546
|
-
| `pa:alias-remove` | Remove custom alias |
|
|
547
|
-
|
|
548
|
-
### Platform-Specific Test Suites
|
|
549
|
-
|
|
550
|
-
**Fully automated**: Auto-install tools, run tests, auto-fix failures, loop until all pass.
|
|
551
|
-
|
|
552
|
-
| Command | Description |
|
|
553
|
-
|---------|-------------|
|
|
554
|
-
| `pa:test-mobile` | Full mobile test suite (React Native, Android, iOS, Flutter) |
|
|
555
|
-
| `pa:test-web` | Full web test suite (React/Next.js/Vue) |
|
|
556
|
-
| `pa:test-api` | Full API test suite (Node.js/Python) |
|
|
557
|
-
| `pa:test-visual` | Visual/design comparison testing |
|
|
558
|
-
| `pa:test-auto-fix` | Auto-fix failing tests |
|
|
559
|
-
| `pa:test-loop` | Test ā Fix ā Retest until all pass |
|
|
560
|
-
| `pa:compare-figma` | Compare UI against Figma design |
|
|
561
|
-
| `pa:compare-image` | Compare UI against image/sketch |
|
|
562
|
-
| `pa:screenshot` | Capture app screenshots |
|
|
563
|
-
|
|
564
|
-
**What these commands do:**
|
|
565
|
-
- Check required tools ā Auto-install if missing
|
|
566
|
-
- Run all tests (unit, integration, e2e)
|
|
567
|
-
- Auto-fix failures (no confirmation needed)
|
|
568
|
-
- Loop until all pass or fix is impossible
|
|
569
|
-
|
|
570
|
-
### Custom Commands
|
|
571
|
-
| Command | Description |
|
|
572
|
-
|---------|-------------|
|
|
573
|
-
| `pa:standup` | Generate daily standup |
|
|
574
|
-
| `pa:tech-debt` | Scan for technical debt |
|
|
575
|
-
| `pa:security-scan` | Run security checklist |
|
|
576
|
-
|
|
577
|
-
Define your own in `./.proagents/custom-commands.yaml`
|
|
578
|
-
|
|
579
|
-
---
|
|
580
|
-
|
|
581
|
-
## Key Files
|
|
582
|
-
|
|
583
|
-
After initialization, these files help AI understand your project:
|
|
584
|
-
|
|
585
|
-
| File | Purpose | AI Should |
|
|
586
|
-
|------|---------|-----------|
|
|
587
|
-
| `.proagents/context.md` | Persistent project knowledge | **Read first every session!** |
|
|
588
|
-
| `.proagents/feedback.md` | Past corrections & preferences | Learn from mistakes |
|
|
589
|
-
| `.proagents/watchlist.yaml` | Protected files list | Ask before modifying |
|
|
590
|
-
| `.proagents/activity.log` | AI activity history | Check for conflicts |
|
|
591
|
-
| `.proagents/decisions.md` | Architectural decisions | Understand why choices were made |
|
|
592
|
-
| `.proagents/errors.md` | Past errors & solutions | Find solutions faster |
|
|
593
|
-
| `.proagents/handoff.md` | Handoff notes | Continue where another AI left off |
|
|
594
|
-
|
|
595
|
-
---
|
|
596
|
-
|
|
597
|
-
## Project Structure
|
|
598
|
-
|
|
599
|
-
```
|
|
600
|
-
your-project/
|
|
601
|
-
āāā .proagents/
|
|
602
|
-
ā āāā proagents.config.yaml # Project configuration
|
|
603
|
-
ā āāā AI_INSTRUCTIONS.md # Instructions for all AIs
|
|
604
|
-
ā āāā PROAGENTS.md # Quick command reference
|
|
605
|
-
ā āāā context.md # Persistent project context
|
|
606
|
-
ā āāā feedback.md # AI learning from corrections
|
|
607
|
-
ā āāā watchlist.yaml # Protected files
|
|
608
|
-
ā āāā activity.log # AI activity log
|
|
609
|
-
ā āāā decisions.md # Decision log
|
|
610
|
-
ā āāā errors.md # Error tracker
|
|
611
|
-
ā āāā handoff.md # Handoff notes
|
|
612
|
-
ā āāā custom-commands.yaml # Custom pa: commands
|
|
613
|
-
ā āāā worklog/ # Cross-AI session tracking
|
|
614
|
-
ā ā āāā _context.md # Quick context for any AI
|
|
615
|
-
ā ā āāā ai-stats.json # AI performance stats
|
|
616
|
-
ā ā āāā YYYY-MM-DD-ai-*.md # Session logs
|
|
617
|
-
ā āāā changelog/ # Detailed changelogs
|
|
618
|
-
ā ā āāā _recent.md # Last 10 changes
|
|
619
|
-
ā ā āāā features/ # Per-feature changelogs
|
|
620
|
-
ā ā āāā modules/ # Per-module changelogs
|
|
621
|
-
ā āāā active-features/ # Feature tracking
|
|
622
|
-
ā āāā prompts/ # Workflow prompts
|
|
623
|
-
ā āāā templates/ # Document templates
|
|
624
|
-
ā āāā checklists/ # Quality checklists
|
|
625
|
-
ā āāā ...
|
|
626
|
-
āāā CLAUDE.md # Claude-specific instructions
|
|
627
|
-
āāā .cursorrules # Cursor-specific instructions
|
|
628
|
-
āāā GEMINI.md # Gemini-specific instructions
|
|
629
|
-
āāā proagents.config.yaml # Main config (project root)
|
|
630
|
-
```
|
|
631
|
-
|
|
632
|
-
---
|
|
633
|
-
|
|
634
|
-
## Configuration
|
|
635
|
-
|
|
636
|
-
`proagents.config.yaml` stores your project settings:
|
|
637
|
-
|
|
638
|
-
```yaml
|
|
639
|
-
project:
|
|
640
|
-
name: my-app
|
|
641
|
-
type: nextjs
|
|
642
|
-
|
|
643
|
-
automation:
|
|
644
|
-
decisions:
|
|
645
|
-
architecture:
|
|
646
|
-
api_style: rest
|
|
647
|
-
state_management: zustand
|
|
648
|
-
styling: tailwind
|
|
649
|
-
database: postgresql
|
|
650
|
-
orm: prisma
|
|
651
|
-
auth_method: jwt
|
|
652
|
-
testing:
|
|
653
|
-
framework: vitest
|
|
654
|
-
coverage_target: 80
|
|
655
|
-
|
|
656
|
-
platforms:
|
|
657
|
-
- claude
|
|
658
|
-
- cursor
|
|
659
|
-
- copilot
|
|
660
|
-
```
|
|
188
|
+
š **Want more?** See [COMMANDS.md](COMMANDS.md) for 100+ AI commands (debugging, testing, refactoring, code generation, sprints...)
|
|
661
189
|
|
|
662
190
|
---
|
|
663
191
|
|
|
664
192
|
## Supported AI Platforms
|
|
665
193
|
|
|
194
|
+
ProAgents works with **any AI that has agentic capability** (can read files and execute commands). Pre-configured instruction files are available for:
|
|
195
|
+
|
|
666
196
|
| Platform | Instruction File |
|
|
667
197
|
|----------|-----------------|
|
|
668
198
|
| Claude Code | `CLAUDE.md` |
|
|
@@ -677,17 +207,7 @@ platforms:
|
|
|
677
207
|
| Kiro | `KIRO.md` |
|
|
678
208
|
| Groq | `GROQ.md` |
|
|
679
209
|
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
## Integrations
|
|
683
|
-
|
|
684
|
-
**Project Management:** Jira, Linear, GitHub Issues, GitLab Issues, Asana, Trello, Notion
|
|
685
|
-
|
|
686
|
-
**Version Control:** GitHub, GitLab
|
|
687
|
-
|
|
688
|
-
**Communication:** Slack
|
|
689
|
-
|
|
690
|
-
**CI/CD:** GitHub Actions, GitLab CI, Jenkins, Azure DevOps
|
|
210
|
+
**Using a different AI?** Point it to `.proagents/AI_INSTRUCTIONS.md` - it contains everything needed to work with ProAgents.
|
|
691
211
|
|
|
692
212
|
---
|
|
693
213
|
|
|
@@ -695,6 +215,7 @@ platforms:
|
|
|
695
215
|
|
|
696
216
|
| Document | Description |
|
|
697
217
|
|----------|-------------|
|
|
218
|
+
| š **[COMMANDS.md](COMMANDS.md)** | **100+ CLI & AI commands** |
|
|
698
219
|
| [Getting Started Story](./.proagents/GETTING-STARTED-STORY.md) | Narrative walkthrough |
|
|
699
220
|
| [Complete Workflow](./.proagents/WORKFLOW.md) | 10-phase workflow guide |
|
|
700
221
|
| [AI Instructions](./.proagents/AI_INSTRUCTIONS.md) | Full AI command reference |
|
package/bin/proagents.js
CHANGED
|
@@ -12,7 +12,7 @@ import { configListCommand, configShowCommand, configEditCommand, configSetComma
|
|
|
12
12
|
import { doctorCommand } from '../lib/commands/doctor.js';
|
|
13
13
|
import { upgradeCommand } from '../lib/commands/upgrade.js';
|
|
14
14
|
import { migrateCommand } from '../lib/commands/migrate.js';
|
|
15
|
-
import { versionCommand } from '../lib/commands/version.js';
|
|
15
|
+
import { versionCommand, checkForUpdates } from '../lib/commands/version.js';
|
|
16
16
|
import { releaseCommand } from '../lib/commands/release.js';
|
|
17
17
|
import { statsCommand } from '../lib/commands/stats.js';
|
|
18
18
|
import { restoreCommand } from '../lib/commands/restore.js';
|
|
@@ -42,8 +42,6 @@ program
|
|
|
42
42
|
.description('Initialize ProAgents in the current project')
|
|
43
43
|
.option('-f, --force', 'Overwrite existing proagents folder')
|
|
44
44
|
.option('--skip-config', 'Skip creating config file')
|
|
45
|
-
.option('-t, --template <name>', 'Use a project template (e.g., nextjs-saas, react-spa)')
|
|
46
|
-
.option('--list-templates', 'List available project templates')
|
|
47
45
|
.action(initCommand);
|
|
48
46
|
|
|
49
47
|
// Feature commands
|
|
@@ -314,3 +312,11 @@ program
|
|
|
314
312
|
.action(openCommand);
|
|
315
313
|
|
|
316
314
|
program.parse();
|
|
315
|
+
|
|
316
|
+
// Check for updates after command completes (non-blocking)
|
|
317
|
+
// Skip for version command (it already shows version info)
|
|
318
|
+
const commandName = program.args[0];
|
|
319
|
+
if (commandName !== 'version' && commandName !== '--version' && commandName !== '-V') {
|
|
320
|
+
// Run update check in background without blocking
|
|
321
|
+
checkForUpdates().catch(() => {});
|
|
322
|
+
}
|
package/lib/commands/init.js
CHANGED
|
@@ -316,115 +316,6 @@ const PROJECT_TYPES = [
|
|
|
316
316
|
}
|
|
317
317
|
];
|
|
318
318
|
|
|
319
|
-
// Project templates - pre-configured settings for common stacks
|
|
320
|
-
const PROJECT_TEMPLATES = {
|
|
321
|
-
'nextjs-saas': {
|
|
322
|
-
name: 'Next.js SaaS Starter',
|
|
323
|
-
description: 'Full-stack SaaS with authentication, database, and payments',
|
|
324
|
-
project: { type: 'nextjs' },
|
|
325
|
-
techStack: {
|
|
326
|
-
api_style: 'rest',
|
|
327
|
-
state_management: 'zustand',
|
|
328
|
-
styling: 'tailwind',
|
|
329
|
-
database: 'postgresql',
|
|
330
|
-
orm: 'prisma',
|
|
331
|
-
auth_method: 'nextauth',
|
|
332
|
-
test_framework: 'vitest'
|
|
333
|
-
},
|
|
334
|
-
platforms: ['claude', 'cursor', 'copilot']
|
|
335
|
-
},
|
|
336
|
-
'react-spa': {
|
|
337
|
-
name: 'React Single Page App',
|
|
338
|
-
description: 'Frontend-focused React application with modern tooling',
|
|
339
|
-
project: { type: 'react' },
|
|
340
|
-
techStack: {
|
|
341
|
-
api_style: 'rest',
|
|
342
|
-
state_management: 'zustand',
|
|
343
|
-
styling: 'tailwind',
|
|
344
|
-
database: 'none',
|
|
345
|
-
orm: 'none',
|
|
346
|
-
auth_method: 'jwt',
|
|
347
|
-
test_framework: 'vitest'
|
|
348
|
-
},
|
|
349
|
-
platforms: ['claude', 'cursor']
|
|
350
|
-
},
|
|
351
|
-
'react-native-app': {
|
|
352
|
-
name: 'React Native Mobile App',
|
|
353
|
-
description: 'Cross-platform mobile app with Expo',
|
|
354
|
-
project: { type: 'react-native' },
|
|
355
|
-
techStack: {
|
|
356
|
-
api_style: 'rest',
|
|
357
|
-
state_management: 'zustand',
|
|
358
|
-
styling: 'tailwind',
|
|
359
|
-
database: 'supabase',
|
|
360
|
-
orm: 'none',
|
|
361
|
-
auth_method: 'supabase',
|
|
362
|
-
test_framework: 'jest'
|
|
363
|
-
},
|
|
364
|
-
platforms: ['claude', 'cursor']
|
|
365
|
-
},
|
|
366
|
-
'express-api': {
|
|
367
|
-
name: 'Express.js REST API',
|
|
368
|
-
description: 'Backend API with Express, PostgreSQL, and JWT auth',
|
|
369
|
-
project: { type: 'express' },
|
|
370
|
-
techStack: {
|
|
371
|
-
api_style: 'rest',
|
|
372
|
-
state_management: 'none',
|
|
373
|
-
styling: 'none',
|
|
374
|
-
database: 'postgresql',
|
|
375
|
-
orm: 'prisma',
|
|
376
|
-
auth_method: 'jwt',
|
|
377
|
-
test_framework: 'jest'
|
|
378
|
-
},
|
|
379
|
-
platforms: ['claude', 'cursor']
|
|
380
|
-
},
|
|
381
|
-
'nestjs-api': {
|
|
382
|
-
name: 'NestJS Enterprise API',
|
|
383
|
-
description: 'Enterprise-grade API with NestJS and TypeORM',
|
|
384
|
-
project: { type: 'nestjs' },
|
|
385
|
-
techStack: {
|
|
386
|
-
api_style: 'rest',
|
|
387
|
-
state_management: 'none',
|
|
388
|
-
styling: 'none',
|
|
389
|
-
database: 'postgresql',
|
|
390
|
-
orm: 'typeorm',
|
|
391
|
-
auth_method: 'jwt',
|
|
392
|
-
test_framework: 'jest'
|
|
393
|
-
},
|
|
394
|
-
platforms: ['claude', 'cursor']
|
|
395
|
-
},
|
|
396
|
-
'vue-spa': {
|
|
397
|
-
name: 'Vue.js Single Page App',
|
|
398
|
-
description: 'Vue 3 with Composition API and Pinia',
|
|
399
|
-
project: { type: 'vue' },
|
|
400
|
-
techStack: {
|
|
401
|
-
api_style: 'rest',
|
|
402
|
-
state_management: 'none',
|
|
403
|
-
styling: 'tailwind',
|
|
404
|
-
database: 'none',
|
|
405
|
-
orm: 'none',
|
|
406
|
-
auth_method: 'jwt',
|
|
407
|
-
test_framework: 'vitest'
|
|
408
|
-
},
|
|
409
|
-
platforms: ['claude', 'cursor']
|
|
410
|
-
},
|
|
411
|
-
'python-fastapi': {
|
|
412
|
-
name: 'Python FastAPI',
|
|
413
|
-
description: 'Modern Python API with FastAPI and SQLAlchemy',
|
|
414
|
-
project: { type: 'python' },
|
|
415
|
-
techStack: {
|
|
416
|
-
api_style: 'rest',
|
|
417
|
-
state_management: 'none',
|
|
418
|
-
styling: 'none',
|
|
419
|
-
database: 'postgresql',
|
|
420
|
-
orm: 'none',
|
|
421
|
-
auth_method: 'jwt',
|
|
422
|
-
test_framework: 'pytest'
|
|
423
|
-
},
|
|
424
|
-
platforms: ['claude', 'cursor']
|
|
425
|
-
}
|
|
426
|
-
};
|
|
427
|
-
|
|
428
319
|
// Tech stack configuration options
|
|
429
320
|
const TECH_STACK_OPTIONS = {
|
|
430
321
|
api_style: {
|
|
@@ -963,41 +854,6 @@ async function promptProjectConfig(targetDir, existingConfig = {}) {
|
|
|
963
854
|
};
|
|
964
855
|
}
|
|
965
856
|
|
|
966
|
-
/**
|
|
967
|
-
* List available templates
|
|
968
|
-
*/
|
|
969
|
-
export function listTemplates() {
|
|
970
|
-
console.log(chalk.bold('\nAvailable Project Templates'));
|
|
971
|
-
console.log(chalk.gray('ā'.repeat(50)));
|
|
972
|
-
|
|
973
|
-
for (const [id, template] of Object.entries(PROJECT_TEMPLATES)) {
|
|
974
|
-
console.log(`\n ${chalk.cyan(id)}`);
|
|
975
|
-
console.log(` ${template.name}`);
|
|
976
|
-
console.log(chalk.gray(` ${template.description}`));
|
|
977
|
-
}
|
|
978
|
-
|
|
979
|
-
console.log(chalk.gray('\n\nUsage: npx proagents init --template <name>\n'));
|
|
980
|
-
}
|
|
981
|
-
|
|
982
|
-
/**
|
|
983
|
-
* Apply a project template
|
|
984
|
-
*/
|
|
985
|
-
function applyTemplate(templateId, targetDir) {
|
|
986
|
-
const template = PROJECT_TEMPLATES[templateId];
|
|
987
|
-
if (!template) {
|
|
988
|
-
return null;
|
|
989
|
-
}
|
|
990
|
-
|
|
991
|
-
// Return config object that matches what promptProjectConfig returns
|
|
992
|
-
return {
|
|
993
|
-
name: basename(targetDir),
|
|
994
|
-
type: template.project.type,
|
|
995
|
-
typeName: PROJECT_TYPES.find(t => t.id === template.project.type)?.name || template.project.type,
|
|
996
|
-
techStack: template.techStack,
|
|
997
|
-
platforms: template.platforms
|
|
998
|
-
};
|
|
999
|
-
}
|
|
1000
|
-
|
|
1001
857
|
/**
|
|
1002
858
|
* Load existing partial config (for resume after interrupted setup)
|
|
1003
859
|
*/
|
|
@@ -1331,27 +1187,8 @@ No releases yet. Use \`pa:release\` to generate release notes.
|
|
|
1331
1187
|
console.log(chalk.green('ā Created RELEASE_NOTES.md'));
|
|
1332
1188
|
}
|
|
1333
1189
|
|
|
1334
|
-
// Project configuration -
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
if (options.listTemplates) {
|
|
1338
|
-
listTemplates();
|
|
1339
|
-
return;
|
|
1340
|
-
}
|
|
1341
|
-
|
|
1342
|
-
if (options.template) {
|
|
1343
|
-
// Use template
|
|
1344
|
-
projectConfig = applyTemplate(options.template, targetDir);
|
|
1345
|
-
if (!projectConfig) {
|
|
1346
|
-
console.log(chalk.red(`\nError: Template "${options.template}" not found.`));
|
|
1347
|
-
listTemplates();
|
|
1348
|
-
return;
|
|
1349
|
-
}
|
|
1350
|
-
console.log(chalk.green(`\nā Using template: ${PROJECT_TEMPLATES[options.template].name}`));
|
|
1351
|
-
} else {
|
|
1352
|
-
// Interactive prompts - pass existing config for pre-filling
|
|
1353
|
-
projectConfig = await promptProjectConfig(targetDir, existingConfig);
|
|
1354
|
-
}
|
|
1190
|
+
// Project configuration - interactive prompts with auto-detection
|
|
1191
|
+
const projectConfig = await promptProjectConfig(targetDir, existingConfig);
|
|
1355
1192
|
|
|
1356
1193
|
// Save progress after project config
|
|
1357
1194
|
savePartialConfig(configPath, {
|
|
@@ -1394,15 +1231,8 @@ For detailed commands, see \`./.proagents/PROAGENTS.md\`
|
|
|
1394
1231
|
console.log(chalk.green('ā Created README.md with ProAgents commands'));
|
|
1395
1232
|
}
|
|
1396
1233
|
|
|
1397
|
-
// AI platform selection -
|
|
1398
|
-
|
|
1399
|
-
if (options.template && projectConfig.platforms) {
|
|
1400
|
-
selectedPlatforms = projectConfig.platforms;
|
|
1401
|
-
console.log(chalk.gray(` Using template platforms: ${selectedPlatforms.join(', ')}`));
|
|
1402
|
-
} else {
|
|
1403
|
-
// Pass existing config for pre-selection
|
|
1404
|
-
selectedPlatforms = await selectPlatforms(existingConfig.ai_platforms);
|
|
1405
|
-
}
|
|
1234
|
+
// AI platform selection - interactive with auto-detection
|
|
1235
|
+
const selectedPlatforms = await selectPlatforms(existingConfig.ai_platforms);
|
|
1406
1236
|
|
|
1407
1237
|
// Save progress after platform selection
|
|
1408
1238
|
savePartialConfig(configPath, {
|
package/lib/commands/version.js
CHANGED
|
@@ -9,7 +9,7 @@ const __dirname = dirname(__filename);
|
|
|
9
9
|
/**
|
|
10
10
|
* Get CLI version from package.json
|
|
11
11
|
*/
|
|
12
|
-
function getCliVersion() {
|
|
12
|
+
export function getCliVersion() {
|
|
13
13
|
try {
|
|
14
14
|
const packagePath = join(__dirname, '..', '..', 'package.json');
|
|
15
15
|
const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
@@ -41,7 +41,7 @@ function getProjectVersion(targetDir) {
|
|
|
41
41
|
/**
|
|
42
42
|
* Fetch latest version from npm
|
|
43
43
|
*/
|
|
44
|
-
async function getLatestVersion() {
|
|
44
|
+
export async function getLatestVersion() {
|
|
45
45
|
try {
|
|
46
46
|
const controller = new AbortController();
|
|
47
47
|
const timeout = setTimeout(() => controller.abort(), 5000);
|
|
@@ -66,7 +66,7 @@ async function getLatestVersion() {
|
|
|
66
66
|
* Compare semantic versions
|
|
67
67
|
* Returns: -1 if v1 < v2, 0 if equal, 1 if v1 > v2
|
|
68
68
|
*/
|
|
69
|
-
function compareVersions(v1, v2) {
|
|
69
|
+
export function compareVersions(v1, v2) {
|
|
70
70
|
const parts1 = v1.split('.').map(Number);
|
|
71
71
|
const parts2 = v2.split('.').map(Number);
|
|
72
72
|
|
|
@@ -79,6 +79,27 @@ function compareVersions(v1, v2) {
|
|
|
79
79
|
return 0;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Check for updates and display notification if available
|
|
84
|
+
* Non-blocking - runs asynchronously
|
|
85
|
+
*/
|
|
86
|
+
export async function checkForUpdates() {
|
|
87
|
+
try {
|
|
88
|
+
const cliVersion = getCliVersion();
|
|
89
|
+
const latestVersion = await getLatestVersion();
|
|
90
|
+
|
|
91
|
+
if (latestVersion && compareVersions(cliVersion, latestVersion) < 0) {
|
|
92
|
+
console.log('');
|
|
93
|
+
console.log(chalk.yellow(` āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā®`));
|
|
94
|
+
console.log(chalk.yellow(` ā Update available: ${chalk.gray('v' + cliVersion)} ā ${chalk.green('v' + latestVersion)} ā`));
|
|
95
|
+
console.log(chalk.yellow(` ā Run: ${chalk.cyan('npx proagents init')} to update ā`));
|
|
96
|
+
console.log(chalk.yellow(` ā°āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāÆ`));
|
|
97
|
+
}
|
|
98
|
+
} catch (error) {
|
|
99
|
+
// Silently ignore update check errors
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
82
103
|
/**
|
|
83
104
|
* Version command - show detailed version information
|
|
84
105
|
*/
|
|
@@ -118,7 +139,7 @@ export async function versionCommand(options = {}) {
|
|
|
118
139
|
console.log(chalk.green('v' + latestVersion + ' (up to date)'));
|
|
119
140
|
} else {
|
|
120
141
|
console.log(chalk.yellow('v' + latestVersion + ' (update available)'));
|
|
121
|
-
console.log(chalk.yellow(` ā³ Run '
|
|
142
|
+
console.log(chalk.yellow(` ā³ Run 'npx proagents init' to update`));
|
|
122
143
|
}
|
|
123
144
|
} else {
|
|
124
145
|
console.log(chalk.gray('Could not fetch (offline or npm unavailable)'));
|