@jmylchreest/aide-plugin 0.0.26 → 0.0.28

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.
@@ -23,11 +23,13 @@ git worktree list
23
23
  ```
24
24
 
25
25
  Check the AIDE worktree state file for metadata and status:
26
+
26
27
  ```bash
27
28
  cat .aide/state/worktrees.json
28
29
  ```
29
30
 
30
31
  **Worktree Status Values:**
32
+
31
33
  - `active` - Agent is still working on this worktree
32
34
  - `agent-complete` - Agent finished, ready for merge review
33
35
  - `merged` - Successfully merged to main
@@ -35,6 +37,7 @@ cat .aide/state/worktrees.json
35
37
  **Only merge worktrees with status `agent-complete`.**
36
38
 
37
39
  Example state file:
40
+
38
41
  ```json
39
42
  {
40
43
  "active": [
@@ -106,18 +109,21 @@ When merge conflicts occur, **do not use `-X theirs` or `-X ours`** - these blin
106
109
  Instead, resolve conflicts intelligently:
107
110
 
108
111
  #### Step 1: Attempt merge and identify conflicts
112
+
109
113
  ```bash
110
114
  git merge feat/<name> --no-edit
111
115
  # If conflicts occur, git will list the conflicted files
112
116
  ```
113
117
 
114
118
  #### Step 2: For each conflicted file, read and analyze
119
+
115
120
  ```bash
116
121
  # Read the file with conflict markers
117
122
  cat <conflicted-file>
118
123
  ```
119
124
 
120
125
  The conflict markers show:
126
+
121
127
  ```
122
128
  <<<<<<< HEAD
123
129
  [changes from main branch]
@@ -136,12 +142,14 @@ Act as an expert code reviewer. For each conflict:
136
142
  4. **Edit the file** to remove conflict markers and combine both sets of functionality correctly
137
143
 
138
144
  The resolution must:
145
+
139
146
  - Remove all conflict markers (`<<<<<<<`, `=======`, `>>>>>>>`)
140
147
  - Preserve the functional intent of BOTH changes
141
148
  - Be syntactically and semantically correct
142
149
  - Maintain code style consistency
143
150
 
144
151
  #### Step 4: Verify and complete
152
+
145
153
  ```bash
146
154
  # Stage the resolved files
147
155
  git add <resolved-file>
@@ -158,20 +166,24 @@ git commit --no-edit
158
166
  If you **cannot resolve** the conflict (logic is contradictory, tests fail after resolution, or changes are too complex):
159
167
 
160
168
  1. **Abort the merge** to restore clean state:
169
+
161
170
  ```bash
162
171
  git merge --abort
163
172
  ```
164
173
 
165
174
  2. **Record the failure** using aide messaging:
166
175
  ```bash
167
- aide message send --from=resolver --to=orchestrator "CONFLICT: Cannot merge feat/<name> - <brief reason>"
176
+ ./.aide/bin/aide message send --from=resolver --to=orchestrator "CONFLICT: Cannot merge feat/<name> - <brief reason>"
168
177
  ```
169
178
 
179
+ **Binary location:** The aide binary is at `.aide/bin/aide`. If it's on your `$PATH`, you can use `aide` directly.
180
+
170
181
  3. **Skip this branch** and continue with remaining branches
171
182
 
172
183
  4. **Report at completion** - list unmerged branches in the final summary for manual review
173
184
 
174
185
  **Do NOT:**
186
+
175
187
  - Force through a broken resolution
176
188
  - Use `-X theirs` or `-X ours` to blindly pick one side
177
189
  - Get stuck - always abort and report if resolution fails
@@ -179,6 +191,7 @@ If you **cannot resolve** the conflict (logic is contradictory, tests fail after
179
191
  #### Example Resolution
180
192
 
181
193
  **Conflict:**
194
+
182
195
  ```typescript
183
196
  <<<<<<< HEAD
184
197
  function getUser(id: string): User {
@@ -193,17 +206,20 @@ function getUser(id: string): User | null {
193
206
  ```
194
207
 
195
208
  **Analysis:**
209
+
196
210
  - HEAD: Basic lookup returning User
197
211
  - Feature: Added null-safety with explicit null return
198
212
 
199
213
  **Resolution:**
214
+
200
215
  ```typescript
201
216
  function getUser(id: string): User | null {
202
- const user = db.users.find(u => u.id === id);
217
+ const user = db.users.find((u) => u.id === id);
203
218
  return user ?? null;
204
219
  }
205
220
  ```
206
- *Feature branch improved null safety - this is additive, keep it.*
221
+
222
+ _Feature branch improved null safety - this is additive, keep it._
207
223
 
208
224
  ### 5. Cleanup
209
225
 
@@ -281,7 +297,7 @@ git branch --list 'feat/*' | xargs git branch -d
281
297
  1. **Abort immediately**: `git merge --abort`
282
298
  2. **Record the failure**:
283
299
  ```bash
284
- aide message send --from=resolver --to=orchestrator "Merge failed: feat/<name> - <reason>"
300
+ ./.aide/bin/aide message send --from=resolver --to=orchestrator "Merge failed: feat/<name> - <reason>"
285
301
  ```
286
302
  3. **Continue with remaining branches** - do not block on one failure
287
303
  4. **Include in final report** - list all failed branches with reasons
@@ -33,10 +33,10 @@ function isMcpCommandCurrent(config: ReturnType<typeof readConfig>): boolean {
33
33
 
34
34
  const cmd = mcpConfig.command;
35
35
 
36
- // Current format: ["npx", "-y", "@jmylchreest/aide-plugin", "mcp"]
36
+ // Current format: ["bunx", "-y", "@jmylchreest/aide-plugin", "mcp"]
37
37
  if (
38
38
  cmd.length === 4 &&
39
- cmd[0] === "npx" &&
39
+ cmd[0] === "bunx" &&
40
40
  cmd[1] === "-y" &&
41
41
  cmd[2] === PLUGIN_NAME &&
42
42
  cmd[3] === "mcp"
package/src/cli/mcp.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * MCP subcommand — delegates to aide-wrapper.sh to start the MCP server.
3
3
  *
4
4
  * This is the entry point used by OpenCode's MCP config:
5
- * "command": ["npx", "-y", "@jmylchreest/aide-plugin", "mcp"]
5
+ * "command": ["bunx", "-y", "@jmylchreest/aide-plugin", "mcp"]
6
6
  *
7
7
  * The wrapper handles binary discovery/download, then exec's `aide mcp`.
8
8
  */
@@ -347,6 +347,17 @@ export function buildWelcomeContext(
347
347
  lines.push(`Project: ${getProjectName(state.cwd)}`);
348
348
  lines.push("");
349
349
 
350
+ lines.push("## Binary Path");
351
+ lines.push("");
352
+ lines.push(
353
+ "The aide CLI is at `.aide/bin/aide`. When running aide commands in Bash:",
354
+ );
355
+ lines.push("- Use full path: `./.aide/bin/aide <command>`");
356
+ lines.push(
357
+ '- Or add to PATH: `export PATH="$PWD/.aide/bin:$PATH" && aide <command>`',
358
+ );
359
+ lines.push("");
360
+
350
361
  if (memories.static.global.length > 0) {
351
362
  lines.push("## Preferences (Global)");
352
363
  lines.push("");
@@ -16,7 +16,7 @@
16
16
  * "mcp": {
17
17
  * "aide": {
18
18
  * "type": "local",
19
- * "command": ["npx", "-y", "@jmylchreest/aide-plugin", "mcp"],
19
+ * "command": ["bunx", "-y", "@jmylchreest/aide-plugin", "mcp"],
20
20
  * "environment": { "AIDE_CODE_WATCH": "1", "AIDE_CODE_WATCH_DELAY": "30s" },
21
21
  * "enabled": true
22
22
  * }