matex-cli 1.2.15 → 1.2.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/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +76 -60
- package/dist/commands/dev.js.map +1 -1
- package/dist/utils/command-executor.d.ts.map +1 -1
- package/dist/utils/command-executor.js +37 -6
- package/dist/utils/command-executor.js.map +1 -1
- package/dist/utils/patcher.d.ts +15 -0
- package/dist/utils/patcher.d.ts.map +1 -1
- package/dist/utils/patcher.js +63 -22
- package/dist/utils/patcher.js.map +1 -1
- package/dist/utils/tui.d.ts +17 -1
- package/dist/utils/tui.d.ts.map +1 -1
- package/dist/utils/tui.js +73 -12
- package/dist/utils/tui.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/dev.ts +78 -58
- package/src/utils/command-executor.ts +43 -6
- package/src/utils/patcher.ts +70 -24
- package/src/utils/tui.ts +78 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,UAAU,SAmQjB,CAAC"}
|
package/dist/commands/dev.js
CHANGED
|
@@ -88,28 +88,29 @@ Your primary goal is to provide PERFECT solutions for the user (your fellow brot
|
|
|
88
88
|
2. **[Sunil Dai] (🧬)**: The Expert Architect. Vibe: Senior, wise, mentor. Focus: Backend logic, database, and clean scaleable code ("Leave it to me vai").
|
|
89
89
|
3. **[Sandip Dai] (🎨)**: The Design Specialist. Vibe: Creative, aesthetic. Focus: UI, UX, CSS, and "WOW" effects ("I'll make it look premium brother").
|
|
90
90
|
4. **[Narayan Dai] (🛡️)**: The Validator. Vibe: Precise, strict. Focus: Security, debugging, and import/export verification ("I've checked the code brother, it's solid").
|
|
91
|
-
5. **[Ajay Vai] (🏆)**: The Conclusion. Role: Final hand-off and success celebration.
|
|
92
91
|
|
|
93
|
-
### 💬
|
|
94
|
-
- **CHAT
|
|
95
|
-
- **
|
|
96
|
-
- **NEPALI FLAVOR:** Use
|
|
92
|
+
### 💬 BRO-VIBE PROTOCOL:
|
|
93
|
+
- **CHAT FIRST:** Before code, brothers MUST have a short, energetic chat.
|
|
94
|
+
- **AGENT TAGS:** Always prefix your dialogue with your name like: [Ajay Vai]: "...".
|
|
95
|
+
- **NEPALI FLAVOR:** Use "Vai," "Dai," "Tapai," "Ekdam ramro" naturally.
|
|
97
96
|
|
|
98
|
-
###
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
97
|
+
### 🛠️ FILE GENERATION & EDIT PROTOCOLS (CRITICAL):
|
|
98
|
+
1. **NEW FILES:** Use the following tag for ALL new files:
|
|
99
|
+
<file path="path/to/filename.ext">
|
|
100
|
+
content here
|
|
101
|
+
</file>
|
|
102
102
|
|
|
103
|
-
|
|
104
|
-
- **USE SEARCH/REPLACE BLOCKS** for all file modifications. This is faster and safer than full rewrites.
|
|
105
|
-
- **FORMAT:**
|
|
103
|
+
2. **SURGICAL EDITS (for existing files):**
|
|
106
104
|
**path/to/file.ext**
|
|
107
105
|
<<<< SEARCH
|
|
108
106
|
exact lines to find
|
|
109
107
|
====
|
|
110
108
|
new lines to replace with
|
|
111
109
|
>>>> REPLACE
|
|
112
|
-
|
|
110
|
+
|
|
111
|
+
### ✂️ BREVITY AS POWER:
|
|
112
|
+
- **NO FULL FILE DUMPS** unless specifically asked.
|
|
113
|
+
- **NO CHAT REPETITION** of code. Just summary.
|
|
113
114
|
|
|
114
115
|
### 🛠️ ENVIRONMENT CONTEXT:
|
|
115
116
|
${repoMap}`
|
|
@@ -145,80 +146,94 @@ ${repoMap}`
|
|
|
145
146
|
const MAX_LOOPS = 10;
|
|
146
147
|
while (loopCount < MAX_LOOPS) {
|
|
147
148
|
loopCount++;
|
|
148
|
-
if (loopCount > 1) {
|
|
149
|
-
spinner_1.spinner.start('Analyzing result & Validating...');
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
spinner_1.spinner.start('Thinking...');
|
|
153
|
-
}
|
|
154
149
|
try {
|
|
150
|
+
if (loopCount > 1) {
|
|
151
|
+
spinner_1.spinner.start('Analyzing result & Validating...');
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
spinner_1.spinner.start('Thinking...');
|
|
155
|
+
}
|
|
155
156
|
let fullResponse = '';
|
|
156
157
|
let buffer = '';
|
|
157
158
|
let hasStarted = false;
|
|
158
159
|
let inCodeBlock = false;
|
|
159
|
-
let
|
|
160
|
+
let codeBuffer = '';
|
|
161
|
+
let codeLang = 'bash';
|
|
162
|
+
let activeAgent = 'Ajay Vai';
|
|
163
|
+
let messageBuffer = '';
|
|
160
164
|
tui_1.TUI.drawStatusBar('Swarm is processing...');
|
|
161
165
|
await client.chatStream({
|
|
162
166
|
messages,
|
|
163
|
-
model: options.model,
|
|
164
|
-
temperature: 0.3,
|
|
167
|
+
model: options.model,
|
|
168
|
+
temperature: 0.3,
|
|
165
169
|
max_tokens: 8000,
|
|
166
170
|
}, (chunk) => {
|
|
167
171
|
if (!hasStarted) {
|
|
168
172
|
spinner_1.spinner.stop();
|
|
169
173
|
hasStarted = true;
|
|
174
|
+
console.log(); // Spacing
|
|
170
175
|
}
|
|
171
176
|
buffer += chunk;
|
|
172
|
-
fullResponse += chunk;
|
|
177
|
+
fullResponse += chunk;
|
|
173
178
|
const lines = buffer.split('\n');
|
|
174
179
|
buffer = lines.pop() || '';
|
|
175
180
|
for (const line of lines) {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
const agentMatch = line.match(/\[(Ajay Vai|Sunil Dai|Sandip Dai|Narayan Dai)\]/);
|
|
181
|
+
const trimmedLine = line.trim();
|
|
182
|
+
// 1. Agent Detection (Improved Regex for bolding)
|
|
183
|
+
const agentRegex = /\[\**\s*(Ajay Vai|Sunil Dai|Sandip Dai|Narayan Dai)\s*\**\]/;
|
|
184
|
+
const agentMatch = line.match(agentRegex);
|
|
181
185
|
if (agentMatch) {
|
|
182
|
-
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const color = tag === 'Ajay Vai' ? chalk_1.default.magenta :
|
|
187
|
-
tag === 'Sunil Dai' ? chalk_1.default.blue :
|
|
188
|
-
tag === 'Sandip Dai' ? chalk_1.default.hex('#FF69B4') : // Hot Pink
|
|
186
|
+
activeAgent = agentMatch[1];
|
|
187
|
+
const color = activeAgent === 'Ajay Vai' ? chalk_1.default.magenta :
|
|
188
|
+
activeAgent === 'Sunil Dai' ? chalk_1.default.blue :
|
|
189
|
+
activeAgent === 'Sandip Dai' ? chalk_1.default.hex('#FF69B4') :
|
|
189
190
|
chalk_1.default.green;
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
content = content.replace(`[${tag}]`, '').trim();
|
|
195
|
-
if (!content)
|
|
196
|
-
continue;
|
|
191
|
+
process.stdout.write(`\n ${color.bold(`${activeAgent}:`)} `);
|
|
192
|
+
messageBuffer += trimmedLine + ' ';
|
|
193
|
+
continue;
|
|
197
194
|
}
|
|
198
195
|
// 2. Code Block Detection
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
196
|
+
const codeBlockRegex = /```(\w*)/;
|
|
197
|
+
const codeMatch = line.match(codeBlockRegex);
|
|
198
|
+
if (codeMatch) {
|
|
199
|
+
if (inCodeBlock) {
|
|
200
|
+
inCodeBlock = false;
|
|
201
|
+
tui_1.TUI.drawCodeContainer('Generated Block', codeLang, codeBuffer.trim());
|
|
202
|
+
codeBuffer = '';
|
|
203
|
+
process.stdout.write('\n'); // Space after box
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
inCodeBlock = true;
|
|
207
|
+
codeLang = codeMatch[1] || 'bash';
|
|
208
|
+
process.stdout.write(chalk_1.default.gray('\n [⚡] Building code block...\n'));
|
|
203
209
|
}
|
|
204
210
|
continue;
|
|
205
211
|
}
|
|
206
|
-
// 3.
|
|
212
|
+
// 3. Content Handling
|
|
207
213
|
if (inCodeBlock) {
|
|
208
|
-
|
|
209
|
-
console.log(chalk_1.default.blue(line));
|
|
210
|
-
}
|
|
214
|
+
codeBuffer += line + '\n';
|
|
211
215
|
}
|
|
212
|
-
else {
|
|
213
|
-
|
|
216
|
+
else if (trimmedLine) {
|
|
217
|
+
// Strip markdown artifacts for a cleaner stream
|
|
218
|
+
const cleanText = trimmedLine
|
|
219
|
+
.replace(/\*\*%?\*/g, '')
|
|
220
|
+
.replace(/#{1,6}\s/g, '')
|
|
221
|
+
.replace(/\*\*:\*\*/g, ':')
|
|
222
|
+
.trim();
|
|
223
|
+
if (cleanText) {
|
|
224
|
+
process.stdout.write(chalk_1.default.gray(cleanText + ' '));
|
|
225
|
+
messageBuffer += cleanText + ' ';
|
|
226
|
+
}
|
|
214
227
|
}
|
|
215
228
|
}
|
|
216
229
|
});
|
|
217
230
|
spinner_1.spinner.stop();
|
|
218
|
-
// Final
|
|
219
|
-
if (
|
|
220
|
-
|
|
231
|
+
// Final Code Flush if still in block
|
|
232
|
+
if (inCodeBlock && codeBuffer.trim()) {
|
|
233
|
+
tui_1.TUI.drawCodeContainer('Generated Block', codeLang, codeBuffer.trim());
|
|
221
234
|
}
|
|
235
|
+
// Space before commands/prompt
|
|
236
|
+
console.log('\n');
|
|
222
237
|
// Add assistant response to history
|
|
223
238
|
messages.push({ role: 'assistant', content: fullResponse });
|
|
224
239
|
const response = fullResponse;
|
|
@@ -229,7 +244,7 @@ ${repoMap}`
|
|
|
229
244
|
const result = await executeWithPermission(response);
|
|
230
245
|
if (result.executed) {
|
|
231
246
|
if (result.success) {
|
|
232
|
-
|
|
247
|
+
tui_1.TUI.log(chalk_1.default.gray('↺ Feeding output to AI...'));
|
|
233
248
|
messages.push({
|
|
234
249
|
role: 'user',
|
|
235
250
|
content: `✅ Command executed successfully. Output:\n${result.output}\n\nProceed to the next step.`
|
|
@@ -237,7 +252,7 @@ ${repoMap}`
|
|
|
237
252
|
continue;
|
|
238
253
|
}
|
|
239
254
|
else {
|
|
240
|
-
|
|
255
|
+
tui_1.TUI.log(chalk_1.default.yellow('\n↺ Command failed. Asking AI to fix...'));
|
|
241
256
|
messages.push({
|
|
242
257
|
role: 'user',
|
|
243
258
|
content: `❌ Command failed with error:\n${result.error}\n\nPlease fix this. If the file doesn't exist, create it first. Or use a different command.`
|
|
@@ -255,14 +270,15 @@ ${repoMap}`
|
|
|
255
270
|
}
|
|
256
271
|
catch (error) {
|
|
257
272
|
spinner_1.spinner.fail('Request failed');
|
|
258
|
-
|
|
273
|
+
tui_1.TUI.log(chalk_1.default.red(`Error: ${error.message}\n`));
|
|
259
274
|
messages.pop();
|
|
260
275
|
break;
|
|
261
276
|
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
277
|
+
} // end while (loopCount)
|
|
278
|
+
} // end while (true)
|
|
264
279
|
}
|
|
265
280
|
catch (error) {
|
|
281
|
+
tui_1.TUI.exit(); // Restore terminal state on fatal error
|
|
266
282
|
console.error(chalk_1.default.red(`\n❌ Error: ${error.message}`));
|
|
267
283
|
process.exit(1);
|
|
268
284
|
}
|
package/dist/commands/dev.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,wDAAgC;AAChC,4CAAgD;AAChD,0CAA4D;AAC5D,8CAA2C;AAC3C,oEAA2E;AAC3E,sDAAkD;AAClD,sCAAmC;AAEtB,QAAA,UAAU,GAAG,IAAI,mBAAO,CAAC,KAAK,CAAC;KACvC,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,qBAAqB,EAAE,sEAAsE,EAAE,sBAAa,CAAC,eAAe,EAAE,CAAC;KACtI,MAAM,CAAC,cAAc,EAAE,2CAA2C,CAAC;KACnE,MAAM,CAAC,KAAK,EAAE,OAAY,EAAE,EAAE;IAC3B,IAAI,CAAC;QACD,oBAAoB;QACpB,MAAM,MAAM,GAAG,sBAAa,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,oBAAoB;QACpB,MAAM,MAAM,GAAG,IAAI,uBAAc,CAAC,MAAM,EAAE,sBAAa,CAAC,UAAU,EAAE,CAAC,CAAC;QAEtE,uCAAuC;QACvC,SAAG,CAAC,IAAI,EAAE,CAAC;QAEX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAE5E,0CAA0C;QAC1C,SAAG,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC;QACvD,sCAAiB,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,IAAI,wBAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC;QAE/C,SAAG,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC;QAClD,sCAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC;QAErE,qDAAqD;QACrD,MAAM,QAAQ,GAAkB;YAC5B;gBACI,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-executor.d.ts","sourceRoot":"","sources":["../../src/utils/command-executor.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CA0BhE;AA0BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAmB1D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CA4B3E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAYjH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"command-executor.d.ts","sourceRoot":"","sources":["../../src/utils/command-executor.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CA0BhE;AA0BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAmB1D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CA4B3E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAYjH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA+GtF;AAED;;GAEG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,OAAO,CAAqE;IAEpF,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAQrC,UAAU;iBAVwB,MAAM;mBAAa,IAAI;iBAAW,OAAO;;IAc3E,KAAK;CAGR;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
|
@@ -136,10 +136,42 @@ async function executeCommand(command, shell) {
|
|
|
136
136
|
async function executeWithPermission(response) {
|
|
137
137
|
const commands = extractCommands(response);
|
|
138
138
|
const patches = patcher_1.Patcher.parseEditBlocks(response);
|
|
139
|
-
|
|
139
|
+
const files = patcher_1.Patcher.parseFileBlocks(response);
|
|
140
|
+
if (commands.length === 0 && patches.length === 0 && files.length === 0) {
|
|
140
141
|
return { success: true, executed: false };
|
|
141
142
|
}
|
|
142
|
-
// 1. Handle
|
|
143
|
+
// 1. Handle New File Creation
|
|
144
|
+
for (const file of files) {
|
|
145
|
+
let showFull = false;
|
|
146
|
+
let decided = false;
|
|
147
|
+
while (!decided) {
|
|
148
|
+
const isTruncated = patcher_1.Patcher.showDiff(file, showFull);
|
|
149
|
+
const choices = [
|
|
150
|
+
{ name: '✅ Create this new file brother', value: 'create' },
|
|
151
|
+
{ name: '⏭️ Skip', value: 'skip' }
|
|
152
|
+
];
|
|
153
|
+
if (isTruncated && !showFull) {
|
|
154
|
+
choices.splice(1, 0, { name: '🔍 View Full Code', value: 'full' });
|
|
155
|
+
}
|
|
156
|
+
const { action } = await inquirer_1.default.prompt([{
|
|
157
|
+
type: 'list',
|
|
158
|
+
name: 'action',
|
|
159
|
+
message: chalk_1.default.cyan(`Create ${file.filePath}?`),
|
|
160
|
+
choices: choices
|
|
161
|
+
}]);
|
|
162
|
+
if (action === 'full') {
|
|
163
|
+
showFull = true;
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
if (action === 'create') {
|
|
167
|
+
const result = patcher_1.Patcher.createFile(file);
|
|
168
|
+
if (!result.success)
|
|
169
|
+
return { success: false, executed: true, error: result.error };
|
|
170
|
+
}
|
|
171
|
+
decided = true;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// 2. Handle Shell Commands
|
|
143
175
|
for (let i = 0; i < commands.length; i++) {
|
|
144
176
|
const command = commands[i];
|
|
145
177
|
const shouldExecute = await askPermission(command);
|
|
@@ -159,7 +191,7 @@ async function executeWithPermission(response) {
|
|
|
159
191
|
}
|
|
160
192
|
}
|
|
161
193
|
}
|
|
162
|
-
//
|
|
194
|
+
// 3. Handle Surgical Patches
|
|
163
195
|
for (const patch of patches) {
|
|
164
196
|
let showFull = false;
|
|
165
197
|
let decided = false;
|
|
@@ -167,7 +199,7 @@ async function executeWithPermission(response) {
|
|
|
167
199
|
const isTruncated = patcher_1.Patcher.showDiff(patch, showFull);
|
|
168
200
|
const choices = [
|
|
169
201
|
{ name: '✅ Apply this surgical patch brother', value: 'apply' },
|
|
170
|
-
{ name: '⏭️ Skip
|
|
202
|
+
{ name: '⏭️ Skip', value: 'skip' }
|
|
171
203
|
];
|
|
172
204
|
if (isTruncated && !showFull) {
|
|
173
205
|
choices.splice(1, 0, { name: '🔍 View Full Diff', value: 'full' });
|
|
@@ -175,12 +207,11 @@ async function executeWithPermission(response) {
|
|
|
175
207
|
const { action } = await inquirer_1.default.prompt([{
|
|
176
208
|
type: 'list',
|
|
177
209
|
name: 'action',
|
|
178
|
-
message: chalk_1.default.cyan(`
|
|
210
|
+
message: chalk_1.default.cyan(`Patch ${patch.filePath}?`),
|
|
179
211
|
choices: choices
|
|
180
212
|
}]);
|
|
181
213
|
if (action === 'full') {
|
|
182
214
|
showFull = true;
|
|
183
|
-
// Loop will repeat and show full diff
|
|
184
215
|
continue;
|
|
185
216
|
}
|
|
186
217
|
if (action === 'apply') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-executor.js","sourceRoot":"","sources":["../../src/utils/command-executor.ts"],"names":[],"mappings":";;;;;;AAmBA,0CA0BC;AA6BD,8CAmBC;AAKD,sCA4BC;AAKD,wCAYC;AAeD,
|
|
1
|
+
{"version":3,"file":"command-executor.js","sourceRoot":"","sources":["../../src/utils/command-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/patcher.d.ts
CHANGED
|
@@ -15,6 +15,21 @@ export declare class Patcher {
|
|
|
15
15
|
* >>>> REPLACE
|
|
16
16
|
*/
|
|
17
17
|
static parseEditBlocks(response: string): EditBlock[];
|
|
18
|
+
/**
|
|
19
|
+
* Parse file creation blocks from AI response
|
|
20
|
+
* Format:
|
|
21
|
+
* <file path="path/to/file.ext">
|
|
22
|
+
* content
|
|
23
|
+
* </file>
|
|
24
|
+
*/
|
|
25
|
+
static parseFileBlocks(response: string): EditBlock[];
|
|
26
|
+
/**
|
|
27
|
+
* Create a new file (and its directories)
|
|
28
|
+
*/
|
|
29
|
+
static createFile(block: EditBlock): {
|
|
30
|
+
success: boolean;
|
|
31
|
+
error?: string;
|
|
32
|
+
};
|
|
18
33
|
/**
|
|
19
34
|
* Apply a surgical patch to a file
|
|
20
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patcher.d.ts","sourceRoot":"","sources":["../../src/utils/patcher.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,OAAO;IAChB;;;;;;;;;OASG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"patcher.d.ts","sourceRoot":"","sources":["../../src/utils/patcher.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,OAAO;IAChB;;;;;;;;;OASG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IAgBrD;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IAgBrD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAoBzE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IA2CzE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,GAAE,OAAe,GAAG,OAAO;CA4DpE"}
|
package/dist/utils/patcher.js
CHANGED
|
@@ -21,7 +21,6 @@ class Patcher {
|
|
|
21
21
|
*/
|
|
22
22
|
static parseEditBlocks(response) {
|
|
23
23
|
const blocks = [];
|
|
24
|
-
// Match filename followed by search/replace block
|
|
25
24
|
const blockRegex = /\*\*([^*]+)\*\*\s*<<<< SEARCH\n([\s\S]*?)\n====\n([\s\S]*?)\n>>>> REPLACE/g;
|
|
26
25
|
let match;
|
|
27
26
|
while ((match = blockRegex.exec(response)) !== null) {
|
|
@@ -33,6 +32,46 @@ class Patcher {
|
|
|
33
32
|
}
|
|
34
33
|
return blocks;
|
|
35
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Parse file creation blocks from AI response
|
|
37
|
+
* Format:
|
|
38
|
+
* <file path="path/to/file.ext">
|
|
39
|
+
* content
|
|
40
|
+
* </file>
|
|
41
|
+
*/
|
|
42
|
+
static parseFileBlocks(response) {
|
|
43
|
+
const blocks = [];
|
|
44
|
+
const fileRegex = /<file path="([^"]+)">([\s\S]*?)<\/file>/g;
|
|
45
|
+
let match;
|
|
46
|
+
while ((match = fileRegex.exec(response)) !== null) {
|
|
47
|
+
blocks.push({
|
|
48
|
+
filePath: match[1].trim(),
|
|
49
|
+
search: '', // Not used for new files
|
|
50
|
+
replace: match[2]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return blocks;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create a new file (and its directories)
|
|
57
|
+
*/
|
|
58
|
+
static createFile(block) {
|
|
59
|
+
tui_1.TUI.drawStatusBar(`Creating File: ${block.filePath}...`);
|
|
60
|
+
try {
|
|
61
|
+
const fullPath = path_1.default.resolve(process.cwd(), block.filePath);
|
|
62
|
+
const dir = path_1.default.dirname(fullPath);
|
|
63
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
64
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
65
|
+
}
|
|
66
|
+
fs_1.default.writeFileSync(fullPath, block.replace, 'utf8');
|
|
67
|
+
tui_1.TUI.drawStatusBar(`✅ Success: ${block.filePath} created.`);
|
|
68
|
+
return { success: true };
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
tui_1.TUI.drawStatusBar(`❌ Error: ${err.message}`);
|
|
72
|
+
return { success: false, error: err.message };
|
|
73
|
+
}
|
|
74
|
+
}
|
|
36
75
|
/**
|
|
37
76
|
* Apply a surgical patch to a file
|
|
38
77
|
*/
|
|
@@ -48,7 +87,7 @@ class Patcher {
|
|
|
48
87
|
// Normalize and trim for better matching robustness
|
|
49
88
|
const normalizedContent = content.replace(/\r\n/g, '\n');
|
|
50
89
|
const normalizedSearch = block.search.replace(/\r\n/g, '\n').trim();
|
|
51
|
-
const normalizedReplace = block.replace.replace(/\r\n/g, '\n')
|
|
90
|
+
const normalizedReplace = block.replace.replace(/\r\n/g, '\n');
|
|
52
91
|
if (!normalizedContent.includes(normalizedSearch)) {
|
|
53
92
|
// Try a fuzzy match by trimming internal lines as well
|
|
54
93
|
const fuzzyContent = normalizedContent.split('\n').map(l => l.trimEnd()).join('\n');
|
|
@@ -60,9 +99,8 @@ class Patcher {
|
|
|
60
99
|
error: `Search block not found in ${block.filePath}. Please ensure the code snippet matches exactly (ignoring trailing whitespace).`
|
|
61
100
|
};
|
|
62
101
|
}
|
|
63
|
-
// If fuzzy match worked, we can still try to replace but it's riskier.
|
|
64
|
-
// For now, let's stick to strict-ish matching but with trimmed ends.
|
|
65
102
|
}
|
|
103
|
+
// Perform replacement on normalized content
|
|
66
104
|
const updatedContent = normalizedContent.replace(normalizedSearch, normalizedReplace);
|
|
67
105
|
fs_1.default.writeFileSync(fullPath, updatedContent, 'utf8');
|
|
68
106
|
tui_1.TUI.drawStatusBar(`✅ Success: ${block.filePath} patched.`);
|
|
@@ -78,33 +116,36 @@ class Patcher {
|
|
|
78
116
|
*/
|
|
79
117
|
static showDiff(block, full = false) {
|
|
80
118
|
const width = Math.min(process.stdout.columns || 80, 100);
|
|
81
|
-
const searchLines = block.search.split('\n');
|
|
119
|
+
const searchLines = (block.search || '').split('\n');
|
|
82
120
|
const replaceLines = block.replace.split('\n');
|
|
83
|
-
const
|
|
121
|
+
const isNewFile = !block.search;
|
|
122
|
+
const isLarge = replaceLines.length > 8;
|
|
84
123
|
const shouldTruncate = isLarge && !full;
|
|
85
124
|
const displaySearch = shouldTruncate ? searchLines.slice(0, 5) : searchLines;
|
|
86
125
|
const displayReplace = shouldTruncate ? replaceLines.slice(0, 5) : replaceLines;
|
|
87
126
|
process.stdout.write('\n');
|
|
88
127
|
// 1. Title Bar with Traffic Lights
|
|
89
|
-
const
|
|
128
|
+
const type = isNewFile ? '🆕 NEW FILE' : '📂 PATCH';
|
|
129
|
+
const title = ` ${type}: ${block.filePath} `;
|
|
90
130
|
const trafficLights = chalk_1.default.red('●') + ' ' + chalk_1.default.yellow('●') + ' ' + chalk_1.default.green('●');
|
|
91
|
-
const remainingWidth = width - 12 - title.length;
|
|
92
131
|
console.log(chalk_1.default.gray('┏' + '━'.repeat(width - 2) + '┓'));
|
|
93
|
-
console.log(chalk_1.default.gray('┃ ') + trafficLights + chalk_1.default.cyan.bold(title).padEnd(width - 10) + chalk_1.default.gray(' ┃'));
|
|
132
|
+
console.log(chalk_1.default.gray('┃ ') + trafficLights + ' ' + chalk_1.default.cyan.bold(title).padEnd(width - 10) + chalk_1.default.gray(' ┃'));
|
|
94
133
|
console.log(chalk_1.default.gray('┣' + '━'.repeat(width - 2) + '┫'));
|
|
95
|
-
// 2. Search Block (Deletions)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
134
|
+
// 2. Search Block (Deletions) - Only for patches
|
|
135
|
+
if (!isNewFile) {
|
|
136
|
+
displaySearch.forEach((line) => {
|
|
137
|
+
const prefix = chalk_1.default.red('┃ ') + chalk_1.default.bgRed.white(' - ') + ' ';
|
|
138
|
+
const content = chalk_1.default.red(line.substring(0, width - 10));
|
|
139
|
+
console.log(prefix + content.padEnd(width - 8) + chalk_1.default.gray(' ┃'));
|
|
140
|
+
});
|
|
141
|
+
if (shouldTruncate && searchLines.length > 5) {
|
|
142
|
+
console.log(chalk_1.default.red('┃ ') + chalk_1.default.gray(` ... (${searchLines.length - 5} more lines hidden)`).padEnd(width - 5) + chalk_1.default.gray(' ┃'));
|
|
143
|
+
}
|
|
144
|
+
// Separator between search and replace
|
|
145
|
+
console.log(chalk_1.default.gray('┣' + '╍'.repeat(width - 2) + '┫'));
|
|
103
146
|
}
|
|
104
|
-
// 3.
|
|
105
|
-
|
|
106
|
-
// 4. Replace Block (Additions)
|
|
107
|
-
displayReplace.forEach((line, idx) => {
|
|
147
|
+
// 3. Replace Block (Additions)
|
|
148
|
+
displayReplace.forEach((line) => {
|
|
108
149
|
const prefix = chalk_1.default.green('┃ ') + chalk_1.default.bgGreen.black(' + ') + ' ';
|
|
109
150
|
const content = chalk_1.default.green(line.substring(0, width - 10));
|
|
110
151
|
console.log(prefix + content.padEnd(width - 8) + chalk_1.default.gray(' ┃'));
|
|
@@ -112,7 +153,7 @@ class Patcher {
|
|
|
112
153
|
if (shouldTruncate && replaceLines.length > 5) {
|
|
113
154
|
console.log(chalk_1.default.green('┃ ') + chalk_1.default.gray(` ... (${replaceLines.length - 5} more lines hidden)`).padEnd(width - 5) + chalk_1.default.gray(' ┃'));
|
|
114
155
|
}
|
|
115
|
-
//
|
|
156
|
+
// 4. Footer
|
|
116
157
|
console.log(chalk_1.default.gray('┗' + '━'.repeat(width - 2) + '┛'));
|
|
117
158
|
if (shouldTruncate) {
|
|
118
159
|
console.log(chalk_1.default.yellow(' 💡 Note: This diff is minimized. Use (v) to see full code.'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../src/utils/patcher.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,kDAA0B;AAC1B,+BAA4B;AAQ5B,MAAa,OAAO;IAChB;;;;;;;;;OASG;IACH,MAAM,CAAC,eAAe,CAAC,QAAgB;QACnC,MAAM,MAAM,GAAgB,EAAE,CAAC;QAC/B,
|
|
1
|
+
{"version":3,"file":"patcher.js","sourceRoot":"","sources":["../../src/utils/patcher.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/tui.d.ts
CHANGED
|
@@ -21,10 +21,26 @@ export declare class TUI {
|
|
|
21
21
|
* Draw the persistent top header
|
|
22
22
|
*/
|
|
23
23
|
static drawHeader(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Helper to draw a box with content
|
|
26
|
+
*/
|
|
27
|
+
private static drawBox;
|
|
24
28
|
/**
|
|
25
29
|
* Draw a real-time status bar at the bottom
|
|
26
30
|
*/
|
|
27
|
-
static drawStatusBar(status: string): void;
|
|
31
|
+
static drawStatusBar(status: string, force?: boolean): void;
|
|
32
|
+
/**
|
|
33
|
+
* Draw a premium code container
|
|
34
|
+
*/
|
|
35
|
+
static drawCodeContainer(title: string, lang: string, content: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Draw a message box for agent dialogue
|
|
38
|
+
*/
|
|
39
|
+
static drawMessageContainer(agent: string, message: string): void;
|
|
40
|
+
/**
|
|
41
|
+
* Wrap text to a specific width
|
|
42
|
+
*/
|
|
43
|
+
private static wrapText;
|
|
28
44
|
/**
|
|
29
45
|
* Log content into the scrollable area
|
|
30
46
|
*/
|
package/dist/utils/tui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/utils/tui.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,qBAAa,GAAG;IACZ,OAAO,CAAC,MAAM,CAAC,aAAa,CAAS;IACrC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAM;IAElC;;OAEG;IACH,MAAM,CAAC,IAAI;IAiBX;;OAEG;IACH,MAAM,CAAC,IAAI;IAaX;;OAEG;IACH,MAAM,CAAC,KAAK;IAMZ;;OAEG;IACH,MAAM,CAAC,UAAU;IAWjB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/utils/tui.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,qBAAa,GAAG;IACZ,OAAO,CAAC,MAAM,CAAC,aAAa,CAAS;IACrC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAM;IAElC;;OAEG;IACH,MAAM,CAAC,IAAI;IAiBX;;OAEG;IACH,MAAM,CAAC,IAAI;IAaX;;OAEG;IACH,MAAM,CAAC,KAAK;IAMZ;;OAEG;IACH,MAAM,CAAC,UAAU;IAWjB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IAoBtB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe;IAsB3D;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAKrE;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAY1D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ;IAiBvB;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM;CAQ7B"}
|