@traisetech/autopilot 2.3.0 → 2.5.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/README.md +215 -202
  3. package/bin/autopilot.js +9 -2
  4. package/docs/CONFIGURATION.md +103 -103
  5. package/docs/DESIGN_PRINCIPLES.md +114 -114
  6. package/docs/TEAM-MODE.md +51 -51
  7. package/docs/TROUBLESHOOTING.md +21 -21
  8. package/package.json +75 -69
  9. package/src/commands/config.js +110 -110
  10. package/src/commands/dashboard.mjs +151 -151
  11. package/src/commands/doctor.js +127 -153
  12. package/src/commands/guide.js +63 -0
  13. package/src/commands/init.js +8 -9
  14. package/src/commands/insights.js +237 -237
  15. package/src/commands/leaderboard.js +116 -116
  16. package/src/commands/pause.js +18 -18
  17. package/src/commands/preset.js +121 -121
  18. package/src/commands/resume.js +17 -17
  19. package/src/commands/start.js +41 -41
  20. package/src/commands/status.js +73 -39
  21. package/src/commands/stop.js +58 -50
  22. package/src/commands/undo.js +84 -84
  23. package/src/config/defaults.js +23 -16
  24. package/src/config/ignore.js +14 -31
  25. package/src/config/loader.js +80 -80
  26. package/src/core/commit.js +45 -52
  27. package/src/core/commitMessageGenerator.js +130 -0
  28. package/src/core/configValidator.js +92 -0
  29. package/src/core/events.js +110 -110
  30. package/src/core/focus.js +2 -1
  31. package/src/core/gemini.js +15 -15
  32. package/src/core/git.js +29 -2
  33. package/src/core/history.js +69 -69
  34. package/src/core/notifier.js +61 -0
  35. package/src/core/retryQueue.js +152 -0
  36. package/src/core/safety.js +224 -210
  37. package/src/core/state.js +69 -71
  38. package/src/core/watcher.js +193 -66
  39. package/src/index.js +70 -70
  40. package/src/utils/banner.js +6 -6
  41. package/src/utils/crypto.js +18 -18
  42. package/src/utils/identity.js +41 -41
  43. package/src/utils/logger.js +86 -68
  44. package/src/utils/paths.js +62 -62
  45. package/src/utils/process.js +141 -141
package/CHANGELOG.md CHANGED
@@ -1,8 +1,35 @@
1
1
  # Changelog
2
2
 
3
+
4
+ ## [2.5.0] - 2026-03-28
5
+
6
+ ### Added (v2.5.0)
7
+
8
+ - **VS Code Extension Engine**:
9
+ - Implemented `.autopilot-state.json` for real-time state synchronization (PID, status, uptime, branch, etc.).
10
+ - Added `.autopilot.log` with automatic rotation (500KB cap) for fast, incremental streaming in extension UI.
11
+ - Implemented 5s heartbeat in watcher to keep remote UIs perfectly synchronized.
12
+ - **Improved Process Lifecycle**:
13
+ - `autopilot stop` now performs deep cleanup of state, log, and PID files.
14
+ - Enforced `.autopilot-state.json` and `.autopilot.log` as reserved system files, auto-ignored by the watcher.
15
+
16
+ ### Improved (v2.5.0)
17
+
18
+ - **Logger Engine**: Pipe all CLI output to `.autopilot.log` by default.
19
+ - **Persistence**: Re-aligned `startedAt` timestamps to ISO strings for cross-tool compatibility.
20
+
21
+ ## [2.4.0] - 2026-03-10
22
+
23
+ ### Added (v2.4.0)
24
+
25
+ - **Focus Engine Upgrades**: Improved detection of deep work sessions and productivity streaks.
26
+ - **Enhanced AI Logic**: More accurate conventional commit categorization for mixed changes.
27
+
3
28
  ## [2.3.0] - 2026-02-18
4
29
 
5
- ### Added
30
+ ### Added (v2.3.0)
31
+
32
+
6
33
  - **Production-Ready Leaderboard**:
7
34
  - Implemented secure Row-Level Security (RLS) policies for anonymized stat synchronization.
8
35
  - Enhanced API response to include real-time global ranking.
package/README.md CHANGED
@@ -1,202 +1,215 @@
1
- # 🚀 Autopilot
2
-
3
- <div align="center">
4
-
5
- ![Autopilot Logo](https://img.shields.io/badge/Autopilot-blue?style=for-the-badge&logo=git&logoColor=white)
6
-
7
- **An intelligent Git automation CLI that safely commits and pushes your code so you can focus on building.**
8
-
9
- [![npm version](https://img.shields.io/npm/v/@traisetech/autopilot?style=flat-square&color=success)](https://www.npmjs.com/package/@traisetech/autopilot)
10
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
11
- [![Node Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen?style=flat-square)](https://nodejs.org)
12
- [![Downloads](https://img.shields.io/npm/dm/@traisetech/autopilot?style=flat-square&color=blue)](https://www.npmjs.com/package/@traisetech/autopilot)
13
- [![GitHub Stars](https://img.shields.io/github/stars/PraiseTechzw/autopilot-cli?style=flat-square&color=gold)](https://github.com/PraiseTechzw/autopilot-cli/stargazers)
14
- [![Build Status](https://img.shields.io/github/actions/workflow/status/PraiseTechzw/autopilot-cli/ci.yml?style=flat-square)](https://github.com/PraiseTechzw/autopilot-cli/actions)
15
- [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
16
-
17
- **Built by [Praise Masunga](https://github.com/PraiseTechzw) (PraiseTechzw)**
18
-
19
- [Features](#-features) • [Installation](#-installation) • [How It Works](#-how-autopilot-works) • [Safety & Guarantees](#-safety--guarantees) • [Commands](#-commands)
20
-
21
- </div>
22
-
23
- ---
24
-
25
- ## 📖 Table of Contents
26
-
27
- - [How Autopilot Works](#-how-autopilot-works)
28
- - [Safety & Guarantees](#-safety--guarantees)
29
- - [Failure & Recovery](#-failure--recovery)
30
- - [AI & Privacy](#-ai--privacy)
31
- - [Leaderboard & Metrics](#-leaderboard--metrics)
32
- - [Installation](#-installation)
33
- - [Quick Start](#-quick-start)
34
- - [Commands](#-commands)
35
- - [Configuration](#-configuration)
36
- - [Contributing](#-contributing)
37
- - [License](#-license)
38
-
39
- ---
40
-
41
- ## 🔍 How Autopilot Works
42
-
43
- Autopilot is a local CLI tool that runs in the background of your terminal. It watches your file system for changes and automates the Git workflow based on your configuration.
44
-
45
- **No Magic. Just Automation.**
46
-
47
- 1. **Watch**: It monitors your project directory for file modifications, creations, and deletions.
48
- 2. **Wait**: It uses a smart debounce timer (default: 20s) to wait until you stop typing.
49
- 3. **Check**: It verifies the repository status (branch, remote, conflicts) before acting.
50
- 4. **Commit**: It stages changes and creates a commit. If AI is enabled, it generates a meaningful message; otherwise, it uses a smart template.
51
- 5. **Push**: It pushes to your remote repository (optional, enabled by default).
52
-
53
- You can stop, pause, or undo Autopilot at any time.
54
-
55
- ---
56
-
57
- ## 🛡️ Safety & Guarantees
58
-
59
- We prioritize the safety of your code above all else. Autopilot follows strict rules to ensure your work is never lost or corrupted.
60
-
61
- ### Non-Negotiable Guarantees
62
-
63
- - **Never force-pushes**: Autopilot only performs standard `git push` operations. It will never overwrite remote history.
64
- - **Never commits ignored files**: It strictly respects your `.gitignore` and `.autopilotignore` rules.
65
- - **Never operates during merge/rebase**: If your repo is in a merge, rebase, or cherry-pick state, Autopilot pauses automatically.
66
- - **Never transmits source code without opt-in**: Your code stays local. It is only sent to an AI provider (Gemini/Grok) if you explicitly enable AI features and provide your own API key.
67
- - **Pauses when uncertain**: If a git error occurs, a conflict is detected, or the network fails, Autopilot pauses and waits for your intervention.
68
- - **Allows all actions to be undone**: The `autopilot undo` command safely reverts the last automated commit without losing your file changes.
69
-
70
- ---
71
-
72
- ## ⚠️ Failure & Recovery
73
-
74
- What happens when things go wrong? Autopilot is designed to fail safely.
75
-
76
- - **Merge Conflicts**: If a `git pull` results in a conflict, Autopilot aborts the operation and notifies you. It will not attempt to resolve conflicts automatically.
77
- - **Network Issues**: If the internet disconnects, Autopilot will queue commits locally and attempt to push when connectivity is restored (if auto-push is enabled).
78
- - **Accidental Commits**: If Autopilot commits something you didn't intend, simply run `autopilot undo`. Your files will remain modified in your working directory, but the commit will be removed.
79
-
80
- ---
81
-
82
- ## 🤖 AI & Privacy
83
-
84
- Autopilot offers **optional** AI integration (Google Gemini or xAI Grok) to generate context-aware commit messages.
85
-
86
- - **Opt-In Only**: AI features are disabled by default. You must enable them and provide your own API key.
87
- - **Data Usage**: When enabled, only the `git diff` (text changes) is sent to the AI provider to generate the message.
88
- - **Privacy**: Your code is not trained on by Autopilot. We do not store or proxy your code. Interactions are directly between your machine and the AI provider.
89
- - **Ranking**: AI usage does not affect your position on the Leaderboard.
90
-
91
- ---
92
-
93
- ## 🏆 Leaderboard & Metrics
94
-
95
- Autopilot includes a Focus Engine that tracks your local productivity (coding time, commit streaks). You can optionally sync this data to the global Leaderboard.
96
-
97
- - **Participation is Opt-In**: You must explicitly enable syncing with `autopilot config set leaderboard.sync true`.
98
- - **Privacy-Safe**: We do not send your email or username directly. IDs are hashed/anonymized.
99
- - **No Code Collected**: The leaderboard tracks *metrics* (time, counts), not code. No file contents are ever synced.
100
- - **Insight over Competition**: The goal is to help you understand your habits, not to gamify commit spam. Rankings favor consistency and quality.
101
-
102
- ---
103
-
104
- ## ⬇️ Installation
105
-
106
- Install Autopilot globally using npm:
107
-
108
- ```bash
109
- npm install -g @traisetech/autopilot
110
- ```
111
-
112
- Or run it directly via npx:
113
-
114
- ```bash
115
- npx @traisetech/autopilot start
116
- ```
117
-
118
- ---
119
-
120
- ## 🚀 Quick Start
121
-
122
- 1. **Navigate to your Git repository:**
123
- ```bash
124
- cd /path/to/my-project
125
- ```
126
-
127
- 2. **Initialize Autopilot:**
128
- ```bash
129
- autopilot init
130
- ```
131
- Follow the interactive prompts to configure settings (or accept defaults).
132
-
133
- 3. **Start the watcher:**
134
- ```bash
135
- autopilot start
136
- ```
137
-
138
- **Autopilot is now running!** It will monitor file changes and automatically commit/push them based on your configuration.
139
-
140
- 4. **View the Dashboard:**
141
- Open a new terminal and run:
142
- ```bash
143
- autopilot dashboard
144
- ```
145
-
146
- ---
147
-
148
- ## 🛠️ Commands
149
-
150
- | Command | Description |
151
- |---------|-------------|
152
- | `autopilot init` | Initialize configuration in the current repo. |
153
- | `autopilot start` | Start the watcher process (foreground). |
154
- | `autopilot stop` | Stop the running watcher process. |
155
- | `autopilot status` | Check if Autopilot is running. |
156
- | `autopilot dashboard` | View real-time status and activity UI. |
157
- | `autopilot undo` | Revert the last Autopilot commit. |
158
- | `autopilot pause` | Temporarily pause automation. |
159
- | `autopilot resume` | Resume automation. |
160
- | `autopilot insights` | View productivity stats and analytics. |
161
- | `autopilot doctor` | Diagnose configuration and environment issues. |
162
-
163
- ---
164
-
165
- ## ⚙️ Configuration
166
-
167
- Autopilot uses an `.autopilotrc.json` file in your project root.
168
-
169
- ```json
170
- {
171
- "debounceSeconds": 20,
172
- "minSecondsBetweenCommits": 180,
173
- "autoPush": true,
174
- "blockBranches": ["main", "master"],
175
- "teamMode": true,
176
- "preventSecrets": true,
177
- "ai": {
178
- "enabled": true,
179
- "provider": "gemini"
180
- }
181
- }
182
- ```
183
-
184
- See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for full details.
185
-
186
- ---
187
-
188
- ## 🤝 Contributing
189
-
190
- We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.
191
-
192
- 1. Fork the repo
193
- 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
194
- 3. Commit your changes (`git commit -m 'feat: add amazing feature'`)
195
- 4. Push to the branch (`git push origin feature/amazing-feature`)
196
- 5. Open a Pull Request
197
-
198
- ---
199
-
200
- ## 📄 License
201
-
202
- This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
1
+ # 🚀 Autopilot
2
+
3
+ <div align="center">
4
+
5
+ ![Autopilot Logo](https://img.shields.io/badge/Autopilot-blue?style=for-the-badge&logo=git&logoColor=white)
6
+
7
+ **An intelligent Git automation CLI that safely commits and pushes your code so you can focus on building.**
8
+
9
+ [![npm version](https://img.shields.io/npm/v/@traisetech/autopilot?style=flat-square&color=success)](https://www.npmjs.com/package/@traisetech/autopilot)
10
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)
11
+ [![Node Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen?style=flat-square)](https://nodejs.org)
12
+ [![Downloads](https://img.shields.io/npm/dm/@traisetech/autopilot?style=flat-square&color=blue)](https://www.npmjs.com/package/@traisetech/autopilot)
13
+ [![GitHub Stars](https://img.shields.io/github/stars/PraiseTechzw/autopilot-cli?style=flat-square&color=gold)](https://github.com/PraiseTechzw/autopilot-cli/stargazers)
14
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/PraiseTechzw/autopilot-cli/ci.yml?style=flat-square)](https://github.com/PraiseTechzw/autopilot-cli/actions)
15
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
16
+
17
+ **Built by [Praise Masunga](https://github.com/PraiseTechzw) (PraiseTechzw)**
18
+
19
+ [Features](#-features) • [Installation](#-installation) • [How It Works](#-how-autopilot-works) • [Safety & Guarantees](#-safety--guarantees) • [Commands](#-commands)
20
+
21
+ </div>
22
+
23
+ ---
24
+
25
+ ## 📖 Table of Contents
26
+
27
+ - [How Autopilot Works](#-how-autopilot-works)
28
+ - [Safety & Guarantees](#-safety--guarantees)
29
+ - [Failure & Recovery](#-failure--recovery)
30
+ - [AI & Privacy](#-ai--privacy)
31
+ - [Leaderboard & Metrics](#-leaderboard--metrics)
32
+ - [Installation](#-installation)
33
+ - [Quick Start](#-quick-start)
34
+ - [Commands](#-commands)
35
+ - [Configuration](#-configuration)
36
+ - [Contributing](#-contributing)
37
+ - [License](#-license)
38
+
39
+ ---
40
+
41
+ ## 🔍 How Autopilot Works
42
+
43
+ Autopilot is a local CLI tool that runs in the background of your terminal. It watches your file system for changes and automates the Git workflow based on your configuration.
44
+
45
+ **No Magic. Just Automation.**
46
+
47
+ 1. **Watch**: It monitors your project directory for file modifications, creations, and deletions.
48
+ 2. **Wait**: It uses a smart debounce timer (default: 20s) to wait until you stop typing.
49
+ 3. **Check**: It verifies the repository status (branch, remote, conflicts) before acting.
50
+ 4. **Commit**: It stages changes and creates a commit. If AI is enabled, it generates a meaningful message; otherwise, it uses a smart template.
51
+ 5. **Push**: It pushes to your remote repository (optional, enabled by default).
52
+
53
+ You can stop, pause, or undo Autopilot at any time.
54
+
55
+ ---
56
+
57
+ ## 🛡️ Safety & Guarantees
58
+
59
+ We prioritize the safety of your code above all else. Autopilot follows strict rules to ensure your work is never lost or corrupted.
60
+
61
+ ### Non-Negotiable Guarantees
62
+
63
+ - **Never force-pushes**: Autopilot only performs standard `git push` operations. It will never overwrite remote history.
64
+ - **Never commits ignored files**: It strictly respects your `.gitignore` and `.autopilotignore` rules.
65
+ - **Never operates during merge/rebase**: If your repo is in a merge, rebase, or cherry-pick state, Autopilot pauses automatically.
66
+ - **Never transmits source code without opt-in**: Your code stays local. It is only sent to an AI provider (Gemini/Grok) if you explicitly enable AI features and provide your own API key.
67
+ - **Pauses when uncertain**: If a git error occurs, a conflict is detected, or the network fails, Autopilot pauses and waits for your intervention.
68
+ - **Allows all actions to be undone**: The `autopilot undo` command safely reverts the last automated commit without losing your file changes.
69
+
70
+ ---
71
+
72
+ ## ⚠️ Failure & Recovery
73
+
74
+ What happens when things go wrong? Autopilot is designed to fail safely.
75
+
76
+ - **Merge Conflicts**: If a `git pull` results in a conflict, Autopilot aborts the operation and notifies you. It will not attempt to resolve conflicts automatically.
77
+ - **Network Issues**: If the internet disconnects, Autopilot will queue commits locally and attempt to push when connectivity is restored (if auto-push is enabled).
78
+ - **Accidental Commits**: If Autopilot commits something you didn't intend, simply run `autopilot undo`. Your files will remain modified in your working directory, but the commit will be removed.
79
+
80
+ ---
81
+
82
+ ## 🤖 AI & Privacy
83
+
84
+ Autopilot offers **optional** AI integration (Google Gemini or xAI Grok) to generate context-aware commit messages.
85
+
86
+ - **Opt-In Only**: AI features are disabled by default. You must enable them and provide your own API key.
87
+ - **Data Usage**: When enabled, only the `git diff` (text changes) is sent to the AI provider to generate the message.
88
+ - **Privacy**: Your code is not trained on by Autopilot. We do not store or proxy your code. Interactions are directly between your machine and the AI provider.
89
+ - **Ranking**: AI usage does not affect your position on the Leaderboard.
90
+
91
+ ---
92
+
93
+ ## 🏆 Leaderboard & Metrics
94
+
95
+ Autopilot includes a Focus Engine that tracks your local productivity (coding time, commit streaks). You can optionally sync this data to the global Leaderboard.
96
+
97
+ - **Participation is Opt-In**: You must explicitly enable syncing with `autopilot config set leaderboard.sync true`.
98
+ - **Privacy-Safe**: We do not send your email or username directly. IDs are hashed/anonymized.
99
+ - **No Code Collected**: The leaderboard tracks *metrics* (time, counts), not code. No file contents are ever synced.
100
+ - **Insight over Competition**: The goal is to help you understand your habits, not to gamify commit spam. Rankings favor consistency and quality.
101
+
102
+ ---
103
+
104
+ ## ⬇️ Installation
105
+
106
+ Install Autopilot globally using npm:
107
+
108
+ ```bash
109
+ npm install -g @traisetech/autopilot
110
+ ```
111
+
112
+ Or run it directly via npx:
113
+
114
+ ```bash
115
+ npx @traisetech/autopilot start
116
+ ```
117
+
118
+ ---
119
+
120
+ ## 🚀 Quick Start
121
+
122
+ 1. **Navigate to your Git repository:**
123
+ ```bash
124
+ cd /path/to/my-project
125
+ ```
126
+
127
+ 2. **Initialize Autopilot:**
128
+ ```bash
129
+ autopilot init
130
+ ```
131
+ Follow the interactive prompts to configure settings (or accept defaults).
132
+
133
+ 3. **Start the watcher:**
134
+ ```bash
135
+ autopilot start
136
+ ```
137
+
138
+ **Autopilot is now running!** It will monitor file changes and automatically commit/push them based on your configuration.
139
+
140
+ 4. **View the Dashboard:**
141
+ Open a new terminal and run:
142
+ ```bash
143
+ autopilot dashboard
144
+ ```
145
+
146
+ ---
147
+
148
+ ## 🎨 VS Code Extension (Recommended)
149
+
150
+ Prefer a GUI? Use our official **Autopilot VS Code Extension**:
151
+
152
+ - **Live Sidebar**: Monitor status, branch, and queue at a glance.
153
+ - **Integrated Logs**: View color-coded process output directly in your editor.
154
+ - **Quick Actions**: Start, stop, pause, and undo with a single click from the status bar.
155
+ - **Settings UI**: Form-based configuration of your `.autopilotrc.json`.
156
+
157
+ **[Install from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=praisetechzw.autopilot-vscode)**
158
+
159
+ ---
160
+
161
+ ## 🛠️ Commands
162
+
163
+ | Command | Description |
164
+ |---------|-------------|
165
+ | `autopilot init` | Initialize configuration in the current repo. |
166
+ | `autopilot start` | Start the watcher process (foreground). |
167
+ | `autopilot stop` | Stop the running watcher process. |
168
+ | `autopilot status` | Check if Autopilot is running. |
169
+ | `autopilot dashboard` | View real-time status and activity UI. |
170
+ | `autopilot undo` | Revert the last Autopilot commit. |
171
+ | `autopilot pause` | Temporarily pause automation. |
172
+ | `autopilot resume` | Resume automation. |
173
+ | `autopilot insights` | View productivity stats and analytics. |
174
+ | `autopilot doctor` | Diagnose configuration and environment issues. |
175
+
176
+ ---
177
+
178
+ ## ⚙️ Configuration
179
+
180
+ Autopilot uses an `.autopilotrc.json` file in your project root.
181
+
182
+ ```json
183
+ {
184
+ "debounceSeconds": 20,
185
+ "minSecondsBetweenCommits": 180,
186
+ "autoPush": true,
187
+ "blockBranches": ["main", "master"],
188
+ "teamMode": true,
189
+ "preventSecrets": true,
190
+ "ai": {
191
+ "enabled": true,
192
+ "provider": "gemini"
193
+ }
194
+ }
195
+ ```
196
+
197
+ See [docs/CONFIGURATION.md](docs/CONFIGURATION.md) for full details.
198
+
199
+ ---
200
+
201
+ ## 🤝 Contributing
202
+
203
+ We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.
204
+
205
+ 1. Fork the repo
206
+ 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
207
+ 3. Commit your changes (`git commit -m 'feat: add amazing feature'`)
208
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
209
+ 5. Open a Pull Request
210
+
211
+ ---
212
+
213
+ ## 📄 License
214
+
215
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
package/bin/autopilot.js CHANGED
@@ -14,6 +14,7 @@ const doctor = require('../src/commands/doctor');
14
14
  const presetCommand = require('../src/commands/preset');
15
15
  const configCommand = require('../src/commands/config');
16
16
  const interactiveCommand = require('../src/commands/interactive');
17
+ const guideCommand = require('../src/commands/guide');
17
18
  const pkg = require('../package.json');
18
19
  const logger = require('../src/utils/logger');
19
20
  const { checkForUpdate } = require('../src/utils/update-check');
@@ -32,7 +33,8 @@ const commands = {
32
33
  doctor: doctor,
33
34
  preset: presetCommand,
34
35
  config: configCommand,
35
- interactive: interactiveCommand
36
+ interactive: interactiveCommand,
37
+ guide: guideCommand
36
38
  };
37
39
 
38
40
  // Runtime assertion to prevent wiring errors
@@ -130,6 +132,11 @@ program
130
132
  .option('-g, --global', 'Set the preference globally')
131
133
  .action(interactiveCommand);
132
134
 
135
+ program
136
+ .command('guide')
137
+ .description('Interactive guide to using Autopilot')
138
+ .action(guideCommand);
139
+
133
140
  program
134
141
  .command('doctor')
135
142
  .description('Diagnose and validate autopilot setup')
@@ -142,5 +149,5 @@ program
142
149
 
143
150
  (async () => {
144
151
  await checkForUpdate();
145
- program.parse(process.argv);
152
+ await program.parseAsync(process.argv);
146
153
  })();