codeep 1.1.18 → 1.1.19

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.
@@ -1565,7 +1565,7 @@ export class App {
1565
1565
  bottomPanelHeight = previewLines + 6; // title + preview + extra line indicator + options
1566
1566
  }
1567
1567
  else if (this.isAgentRunning) {
1568
- bottomPanelHeight = 6; // Agent progress box (5 lines + 1 margin)
1568
+ bottomPanelHeight = 5; // Agent progress box (4 lines + 1 margin)
1569
1569
  }
1570
1570
  else if (this.permissionOpen) {
1571
1571
  bottomPanelHeight = 10; // Permission dialog
@@ -2172,7 +2172,6 @@ export class App {
2172
2172
  renderInlineAgentProgress(startY, width) {
2173
2173
  let y = startY;
2174
2174
  const spinner = SPINNER_FRAMES[this.spinnerFrame];
2175
- const boxWidth = width - 2; // Use full width minus small margin
2176
2175
  // Calculate stats
2177
2176
  const stats = {
2178
2177
  reads: this.agentActions.filter(a => a.type === 'read').length,
@@ -2184,93 +2183,71 @@ export class App {
2184
2183
  errors: this.agentActions.filter(a => a.result === 'error').length,
2185
2184
  };
2186
2185
  // Top border with title
2187
- // Helper to draw a box line with content
2188
- const drawBoxLine = (content, contentStyle = fg.white) => {
2189
- this.screen.write(0, y, '│', PRIMARY_COLOR);
2190
- this.screen.write(2, y, content, contentStyle);
2191
- this.screen.write(boxWidth - 1, y, '│', PRIMARY_COLOR);
2192
- y++;
2193
- };
2194
- // Top border with title
2195
2186
  const title = ` ${spinner} AGENT `;
2196
- const titlePadLeft = 3;
2197
- const titlePadRight = boxWidth - titlePadLeft - title.length - 1;
2198
- this.screen.write(0, y, '╭' + '─'.repeat(titlePadLeft), PRIMARY_COLOR);
2199
- this.screen.write(titlePadLeft + 1, y, title, PRIMARY_COLOR + style.bold);
2200
- this.screen.write(titlePadLeft + 1 + title.length, y, '─'.repeat(Math.max(0, titlePadRight)) + '╮', PRIMARY_COLOR);
2187
+ const titlePadLeft = 2;
2188
+ const titlePadRight = width - titlePadLeft - title.length - 1;
2189
+ this.screen.write(0, y, '─'.repeat(titlePadLeft), PRIMARY_COLOR);
2190
+ this.screen.write(titlePadLeft, y, title, PRIMARY_COLOR + style.bold);
2191
+ this.screen.write(titlePadLeft + title.length, y, '─'.repeat(Math.max(0, titlePadRight)), PRIMARY_COLOR);
2201
2192
  y++;
2202
- // Current action line
2203
- this.screen.write(0, y, '│', PRIMARY_COLOR);
2193
+ // Current action line (no side borders)
2204
2194
  if (this.agentActions.length > 0) {
2205
2195
  const lastAction = this.agentActions[this.agentActions.length - 1];
2206
2196
  const actionLabel = this.getActionLabel(lastAction.type);
2207
2197
  const actionColor = this.getActionColor(lastAction.type);
2208
- const maxTargetLen = boxWidth - actionLabel.length - 6;
2198
+ const maxTargetLen = width - actionLabel.length - 4;
2209
2199
  const target = this.formatActionTarget(lastAction.target, maxTargetLen);
2210
- this.screen.write(2, y, actionLabel, actionColor + style.bold);
2211
- this.screen.write(2 + actionLabel.length + 1, y, target, fg.white);
2200
+ this.screen.write(1, y, actionLabel, actionColor + style.bold);
2201
+ this.screen.write(1 + actionLabel.length + 1, y, target, fg.white);
2212
2202
  }
2213
2203
  else {
2214
- this.screen.write(2, y, 'Starting...', fg.gray);
2204
+ this.screen.write(1, y, 'Starting...', fg.gray);
2215
2205
  }
2216
- this.screen.write(boxWidth - 1, y, '│', PRIMARY_COLOR);
2217
- y++;
2218
- // Separator
2219
- this.screen.write(0, y, '├' + '─'.repeat(boxWidth - 2) + '┤', fg.gray);
2220
2206
  y++;
2221
- // File changes line
2222
- this.screen.write(0, y, '│', PRIMARY_COLOR);
2223
- this.screen.write(2, y, 'Files:', fg.cyan);
2224
- let fileX = 9;
2207
+ // Stats line: Files and step info
2208
+ let x = 1;
2209
+ // File changes
2225
2210
  if (stats.writes > 0) {
2226
2211
  const txt = `+${stats.writes}`;
2227
- this.screen.write(fileX, y, txt, fg.green);
2228
- fileX += txt.length + 1;
2212
+ this.screen.write(x, y, txt, fg.green);
2213
+ x += txt.length + 1;
2229
2214
  }
2230
2215
  if (stats.edits > 0) {
2231
2216
  const txt = `~${stats.edits}`;
2232
- this.screen.write(fileX, y, txt, fg.yellow);
2233
- fileX += txt.length + 1;
2217
+ this.screen.write(x, y, txt, fg.yellow);
2218
+ x += txt.length + 1;
2234
2219
  }
2235
2220
  if (stats.deletes > 0) {
2236
2221
  const txt = `-${stats.deletes}`;
2237
- this.screen.write(fileX, y, txt, fg.red);
2238
- fileX += txt.length + 1;
2239
- }
2240
- if (stats.writes === 0 && stats.edits === 0 && stats.deletes === 0) {
2241
- this.screen.write(fileX, y, 'no changes yet', fg.gray);
2242
- }
2243
- this.screen.write(boxWidth - 1, y, '│', PRIMARY_COLOR);
2244
- y++;
2245
- // Stats line
2246
- this.screen.write(0, y, '│', PRIMARY_COLOR);
2247
- this.screen.write(2, y, 'Stats:', fg.cyan);
2248
- let statX = 9;
2249
- const statParts = [];
2250
- if (stats.reads > 0)
2251
- statParts.push({ text: `${stats.reads}R`, color: fg.blue });
2252
- if (stats.commands > 0)
2253
- statParts.push({ text: `${stats.commands}C`, color: fg.magenta });
2254
- if (stats.searches > 0)
2255
- statParts.push({ text: `${stats.searches}S`, color: fg.cyan });
2256
- statParts.push({ text: `step ${this.agentIteration}`, color: fg.white });
2257
- for (let i = 0; i < statParts.length; i++) {
2258
- if (i > 0) {
2259
- this.screen.write(statX, y, '|', fg.gray);
2260
- statX += 2;
2261
- }
2262
- this.screen.write(statX, y, statParts[i].text, statParts[i].color);
2263
- statX += statParts[i].text.length + 1;
2264
- }
2265
- this.screen.write(boxWidth - 1, y, '│', PRIMARY_COLOR);
2222
+ this.screen.write(x, y, txt, fg.red);
2223
+ x += txt.length + 1;
2224
+ }
2225
+ if (stats.reads > 0) {
2226
+ const txt = `${stats.reads}R`;
2227
+ this.screen.write(x, y, txt, fg.blue);
2228
+ x += txt.length + 1;
2229
+ }
2230
+ if (stats.commands > 0) {
2231
+ const txt = `${stats.commands}C`;
2232
+ this.screen.write(x, y, txt, fg.magenta);
2233
+ x += txt.length + 1;
2234
+ }
2235
+ if (stats.searches > 0) {
2236
+ const txt = `${stats.searches}S`;
2237
+ this.screen.write(x, y, txt, fg.cyan);
2238
+ x += txt.length + 1;
2239
+ }
2240
+ // Step info on the right
2241
+ const stepText = `step ${this.agentIteration}`;
2242
+ this.screen.write(width - stepText.length - 1, y, stepText, fg.gray);
2266
2243
  y++;
2267
2244
  // Bottom border with help
2268
2245
  const helpText = ' Esc to stop ';
2269
- const helpPadLeft = Math.floor((boxWidth - helpText.length - 2) / 2);
2270
- const helpPadRight = Math.ceil((boxWidth - helpText.length - 2) / 2);
2271
- this.screen.write(0, y, '╰' + '─'.repeat(helpPadLeft), PRIMARY_COLOR);
2272
- this.screen.write(helpPadLeft + 1, y, helpText, fg.gray);
2273
- this.screen.write(helpPadLeft + 1 + helpText.length, y, '─'.repeat(helpPadRight) + '╯', PRIMARY_COLOR);
2246
+ const helpPadLeft = Math.floor((width - helpText.length) / 2);
2247
+ const helpPadRight = Math.ceil((width - helpText.length) / 2);
2248
+ this.screen.write(0, y, '─'.repeat(helpPadLeft), fg.gray);
2249
+ this.screen.write(helpPadLeft, y, helpText, fg.gray);
2250
+ this.screen.write(helpPadLeft + helpText.length, y, '─'.repeat(helpPadRight), fg.gray);
2274
2251
  }
2275
2252
  /**
2276
2253
  * Get color for action type
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeep",
3
- "version": "1.1.18",
3
+ "version": "1.1.19",
4
4
  "description": "AI-powered coding assistant built for the terminal. Multiple LLM providers, project-aware context, and a seamless development workflow.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",