ft-scout 4.0.1 → 4.0.3

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.
@@ -6,7 +6,7 @@ import chalk from 'chalk';
6
6
  import { spinner, confirm, isCancel } from '@clack/prompts';
7
7
  import { getDirectoryFiles, recordHistoryAction } from '../utils/config.js';
8
8
  import { safeNote, renderMarkdown } from '../utils/markdown.js';
9
- import { openai, callOpenAIWithRetry } from './llm.js';
9
+ import { openai, callOpenAIWithRetry, isQuotaExceededError } from './llm.js';
10
10
  import { checkFileSyntax, verifyAndSelfHealFiles, executeSmartCommand } from './verifier.js';
11
11
  const execAsync = promisify(exec);
12
12
  export const AGENT_TOOLS = [
@@ -25,25 +25,27 @@ export const AGENT_TOOLS = [
25
25
  },
26
26
  {
27
27
  name: 'write_file',
28
- description: 'Create a new file or overwrite an existing file with complete new content.',
28
+ description: 'Create a new file or overwrite an existing file with complete new content. WARNING: Do NOT use to re-format minified or large files manually as output token limits will truncate file content. Use run_command with formatting tools (e.g. npx prettier --write) instead.',
29
29
  parameters: {
30
30
  type: 'object',
31
31
  properties: {
32
32
  path: { type: 'string', description: 'Relative path to the target file' },
33
33
  content: { type: 'string', description: 'Complete source code / content string' },
34
+ reason: { type: 'string', description: 'Clear explanation of why this file change is being made and how it fulfills the goal' },
34
35
  },
35
36
  required: ['path', 'content'],
36
37
  },
37
38
  },
38
39
  {
39
40
  name: 'edit_file',
40
- description: 'Replace an exact target snippet in a file with new replacement code.',
41
+ description: 'Replace an exact target snippet in a file with new replacement code. For reformatting minified files, use run_command with CLI formatters instead.',
41
42
  parameters: {
42
43
  type: 'object',
43
44
  properties: {
44
45
  path: { type: 'string', description: 'Relative path to the target file' },
45
46
  target: { type: 'string', description: 'Exact string snippet to find in the file' },
46
47
  replacement: { type: 'string', description: 'New string snippet to replace target with' },
48
+ reason: { type: 'string', description: 'Clear explanation of why this edit is being made and how the fix/change works' },
47
49
  },
48
50
  required: ['path', 'target', 'replacement'],
49
51
  },
@@ -131,7 +133,7 @@ export class AgentExecutionLoop {
131
133
  }
132
134
  systemPrompt() {
133
135
  const filesList = getDirectoryFiles(this.cwd).slice(0, 100);
134
- return `You are Scout Agent, an elite AI Principal Software Engineer & Autonomous Coding Assistant (built like Claude Code).
136
+ return `You are Scout Agent, an elite AI Principal Software Engineer & Autonomous Coding Assistant (built like Antigravity & Claude Code).
135
137
 
136
138
  Project Name: "${this.projectName}"
137
139
  Working Directory: "${this.cwd}"
@@ -139,15 +141,22 @@ Working Directory: "${this.cwd}"
139
141
  Workspace Overview (first 100 files):
140
142
  ${filesList.join('\n')}
141
143
 
142
- Core Capabilities & Guidelines:
143
- 1. You act autonomously through step-by-step tool invocation.
144
- 2. Fully understand user intent in any language (English, Hinglish like "likho", "bnao", "code karo", "fix karo", Hindi, etc.).
145
- 3. Inspect codebase files with \`read_file\`, search with \`grep_search\` and \`glob_search\`.
146
- 4. CRITICAL: Whenever user asks to write, edit, create, implement, or fix code, YOU MUST CREATE ALL NECESSARY FILES required to completely fulfill the prompt (e.g. main source files, component files, styles, configs, tests, documentation). CALL \`write_file\` or \`edit_file\` for EVERY necessary file to save changes directly to disk in the workspace! Do NOT stop after creating just one file if more files are needed to make the code functional.
147
- 5. Execute shell commands (tests, builds, linters) using \`run_command\`.
148
- 6. Maintain strict docstring, comment, and code structure integrity. Do not wipe out unrelated code.
149
- 7. CRITICAL TERMINATION RULE: As soon as you have finished creating/modifying the necessary files or completing the user goal, YOU MUST CALL \`task_completed\` tool immediately. Do NOT invoke unnecessary read/search tools after all changes are made.
150
- 8. ALWAYS WRITE CLEAN & PROFESSIONAL CODE: Every line of code you write or edit MUST be clean, elegant, production-ready, modular, highly readable, and self-documenting. Adhere to modern language standards, clear variable/function naming, robust error handling, proper formatting/indentation, defensive null checks, and explicit TypeScript types or docstrings. Never produce incomplete, hacky, or unformatted code.
144
+ Core Directives & Behavioral Guidelines:
145
+ 1. HIGH AGENCY & AUTONOMY: You act autonomously through step-by-step tool invocation to solve complex coding tasks, debug issues, build features, create projects from scratch, or answer architectural questions.
146
+ 2. MULTILINGUAL & INTENT COMPREHENSION: Understand user intent in any language (English, Hinglish like "likho", "bnao", "code karo", "fix karo", "samjha do", Hindi, Spanish, etc.).
147
+ 3. AUTONOMOUS TARGET FILE DISCOVERY: You have full autonomy to locate, inspect, and modify target workspace files. When given a goal without an explicit file path, use auto-discovered target files, \`grep_search\`, or \`glob_search\` to locate relevant code before editing.
148
+ 4. COMPLETE FILE CREATION & EDITING: Whenever asked to write, edit, create, implement, or fix code, YOU MUST CREATE / MODIFY ALL NECESSARY FILES required to completely fulfill the prompt (e.g. main source files, component files, styles, configs, tests, documentation). CALL \`write_file\` or \`edit_file\` for EVERY necessary file to save changes directly to disk in the workspace! Always provide a clear \`reason\` argument for why the edit is made.
149
+ 5. RUN & VERIFY COMMANDS: Execute shell commands, tests, builds, and formatters using \`run_command\`. If a command or build fails, read the full error log, diagnose the root cause, and auto-fix the failing code immediately.
150
+ 6. NO CODE TRUNCATION OR PLACEHOLDERS: Maintain 100% code integrity. NEVER replace existing code or HTML tags with placeholder comments (e.g. \`<!-- remaining content -->\` or \`// TODO: rest of code\`) or stripped skeleton structures. Always output complete, functional code.
151
+ 7. REFORMATTING MINIFIED / LARGE FILES: When asked to format, beautify, or un-minify HTML, JS, CSS, or JSON files, DO NOT attempt to rewrite the file content manually using \`write_file\` or \`edit_file\` (which causes token truncation and content loss). ALWAYS use \`run_command\` to execute CLI formatters (e.g. \`npx prettier --write <file>\`, \`npx html-beautify -r <file>\`, \`npx js-beautify <file>\`, or run a quick Node script) to reformat files in-place on disk.
152
+ 8. FROM-SCRATCH PROJECT CREATION & AUTOMATED TESTING PROTOCOL: When asked to build/create a project from scratch:
153
+ a. Scaffold Architecture: Create configuration/manifest files (\`package.json\`, \`tsconfig.json\`, \`pyproject.toml\`, etc.) and folder structure using \`write_file\` or \`run_command\`.
154
+ b. Write Source Implementation: Create all necessary source files with fully functional, complete, production-ready code (no skeleton placeholders or TODOs).
155
+ c. Write Automated Tests: Create comprehensive unit/integration test suite files (e.g. \`test/*.test.ts\`, \`tests/test_*.py\`, etc.).
156
+ d. Execute Tests & Build Verification: Run test suites and builds via \`run_command\` (e.g. \`npm test\`, \`npx vitest run\`, \`pytest\`, \`cargo test\`, \`go test ./...\`).
157
+ e. Self-Heal & Pass: If tests or builds fail, inspect output logs, edit files using \`edit_file\` or \`write_file\` to resolve errors, re-run tests until 100% passing, and only call \`task_completed\` when all checks pass cleanly.
158
+ 9. CRITICAL TERMINATION RULE: As soon as you have finished creating/modifying the necessary files, running verification checks, or answering the user request, YOU MUST CALL \`task_completed\` tool immediately with a clear summary of your work.
159
+ 10. PRODUCTION-GRADE CODE QUALITY: Every line of code you write or edit MUST be clean, elegant, modular, production-ready, highly readable, self-documenting, formatted, and strictly typed.
151
160
 
152
161
  When returning tool calls, use standard OpenAI function calling format or JSON tool call payload format:
153
162
  \`\`\`json
@@ -162,13 +171,90 @@ When returning tool calls, use standard OpenAI function calling format or JSON t
162
171
  if (this.historyMessages.length === 0) {
163
172
  this.historyMessages.push({ role: 'system', content: this.systemPrompt() });
164
173
  }
174
+ // Autonomous Target File Discovery: Find relevant workspace files matching terms in userGoal
175
+ const filesList = getDirectoryFiles(this.cwd);
176
+ const stopWords = new Set([
177
+ 'the', 'a', 'an', 'in', 'is', 'for', 'to', 'of', 'and', 'or', 'on', 'at', 'by', 'from',
178
+ 'with', 'this', 'that', 'it', 'code', 'file', 'files', 'fix', 'add', 'make', 'create',
179
+ 'update', 'change', 'modify', 'edit', 'write', 'implement', 'bro', 'please', 'scout',
180
+ 'agent', 'bug', 'error', 'issue', 'help', 'app', 'project', 'script', 'function'
181
+ ]);
182
+ const words = userGoal.split(/[\s,;:\/\\]+/).map((w) => w.replace(/["'(),;:!]/g, '').trim());
183
+ const matchedFiles = [];
184
+ // 1. Check direct path or filename matches
185
+ for (const word of words) {
186
+ if (word && word.includes('.') && !word.startsWith('.')) {
187
+ const fullP = path.resolve(this.cwd, word);
188
+ if (fs.existsSync(fullP) && fs.statSync(fullP).isFile()) {
189
+ const relP = path.relative(this.cwd, fullP).replace(/\\/g, '/');
190
+ if (!matchedFiles.includes(relP))
191
+ matchedFiles.push(relP);
192
+ }
193
+ }
194
+ }
195
+ // 2. If no direct path matched, search workspace file names and contents for keywords
196
+ if (matchedFiles.length === 0) {
197
+ const keywords = words.filter((w) => w.length >= 3 && !stopWords.has(w.toLowerCase()));
198
+ for (const f of filesList) {
199
+ if (matchedFiles.length >= 3)
200
+ break;
201
+ const normF = f.replace(/\\/g, '/').toLowerCase();
202
+ const baseName = path.basename(normF, path.extname(normF));
203
+ for (const kw of keywords) {
204
+ const kwLower = kw.toLowerCase();
205
+ if (baseName === kwLower || normF.includes('/' + kwLower)) {
206
+ if (!matchedFiles.includes(f))
207
+ matchedFiles.push(f);
208
+ break;
209
+ }
210
+ }
211
+ }
212
+ // Search file contents for keywords if no filename match
213
+ if (matchedFiles.length === 0 && keywords.length > 0) {
214
+ for (const f of filesList) {
215
+ if (matchedFiles.length >= 2)
216
+ break;
217
+ const fullP = path.resolve(this.cwd, f);
218
+ try {
219
+ const text = fs.readFileSync(fullP, 'utf-8');
220
+ for (const kw of keywords) {
221
+ if (text.toLowerCase().includes(kw.toLowerCase())) {
222
+ if (!matchedFiles.includes(f))
223
+ matchedFiles.push(f);
224
+ break;
225
+ }
226
+ }
227
+ }
228
+ catch { }
229
+ }
230
+ }
231
+ }
232
+ for (const file of matchedFiles.slice(0, 3)) {
233
+ const fullP = path.resolve(this.cwd, file);
234
+ if (fs.existsSync(fullP) && fs.statSync(fullP).isFile()) {
235
+ const analyzeSpin = spinner();
236
+ analyzeSpin.start(chalk.cyan(`🔍 Auto-discovered target file: ${file}. Analyzing...`));
237
+ try {
238
+ const content = fs.readFileSync(fullP, 'utf-8');
239
+ const lines = content.split('\n');
240
+ analyzeSpin.stop(chalk.green(`✓ Auto-discovered & analyzed ${file} (${lines.length} lines)`));
241
+ this.historyMessages.push({
242
+ role: 'system',
243
+ content: `Autonomous File Discovery & Analysis of "${file}" (${lines.length} lines):\n\`\`\`\n${lines.slice(0, 300).map((l, i) => `${i + 1} | ${l}`).join('\n')}\n\`\`\``,
244
+ });
245
+ }
246
+ catch {
247
+ analyzeSpin.stop(chalk.yellow(`Could not read file ${file}`));
248
+ }
249
+ }
250
+ }
165
251
  this.historyMessages.push({ role: 'user', content: userGoal });
166
252
  let step = 0;
167
253
  let finalSummary = '';
168
254
  while (step < this.maxSteps) {
169
255
  step++;
170
256
  const stepSpinner = spinner();
171
- stepSpinner.start(chalk.cyan(`🤖 Scout Agent Step ${step}/${this.maxSteps}...`));
257
+ stepSpinner.start(chalk.cyan(`Scout is Working`));
172
258
  try {
173
259
  const response = await callOpenAIWithRetry(async (model) => {
174
260
  return await openai.chat.completions.create({
@@ -239,18 +325,24 @@ When returning tool calls, use standard OpenAI function calling format or JSON t
239
325
  if (textContent.trim()) {
240
326
  safeNote(renderMarkdown(textContent), `🤖 Scout Agent Thought (Step ${step})`);
241
327
  }
242
- // If assistant didn't call a tool in this step:
243
- const lowerText = textContent.toLowerCase();
244
- const promisesNextAction = lowerText.includes('next') || lowerText.includes('will create') || lowerText.includes('will write') || lowerText.includes('step');
245
- if (this.modifiedFiles.size > 0 || !promisesNextAction || step >= 2) {
246
- return { success: true, summary: textContent || `Successfully modified ${Array.from(this.modifiedFiles).join(', ')}` };
247
- }
328
+ // If assistant responded with text without calling tools, prompt it to execute tools to complete the goal
248
329
  this.historyMessages.push({
249
330
  role: 'user',
250
- content: 'Please proceed by invoking necessary tool calls (write_file, edit_file, run_command, task_completed) to fulfill the goal.',
331
+ content: 'You provided a text response but have not called any tools (write_file, edit_file, run_command, task_completed). Please execute necessary tool calls to complete the user goal, or invoke task_completed if finished.',
251
332
  });
252
333
  }
253
334
  catch (err) {
335
+ if (isQuotaExceededError(err)) {
336
+ stepSpinner.stop(chalk.red(`❌ API Quota Exceeded (Step ${step}).`));
337
+ safeNote(`${chalk.bold.red('❌ FrontTerrain API Quota Exceeded!')}\n\n` +
338
+ `${chalk.yellow('You have reached the API usage limit or rate cap for FrontTerrain AI service.')}\n\n` +
339
+ `${chalk.bold.cyan('⏳ Please come back and try again in a few hours (or check back later today).')}\n\n` +
340
+ `${chalk.dim('Scout Agent session has ended gracefully to protect remaining workflow.')}`, '⚠️ API Quota Limit Reached');
341
+ return {
342
+ success: false,
343
+ summary: 'FrontTerrain API Quota Exceeded. Please come back in a few hours.',
344
+ };
345
+ }
254
346
  stepSpinner.stop(chalk.red(`Step ${step} execution error: ${err?.message || String(err)}`));
255
347
  this.historyMessages.push({
256
348
  role: 'user',
@@ -312,25 +404,39 @@ When returning tool calls, use standard OpenAI function calling format or JSON t
312
404
  switch (name) {
313
405
  case 'read_file': {
314
406
  const targetPath = String(args.path || '').trim();
407
+ const readSpin = spinner();
408
+ readSpin.start(chalk.cyan(`🔍 Analyzing file ${targetPath}...`));
315
409
  const fullPath = path.isAbsolute(targetPath) ? targetPath : path.resolve(this.cwd, targetPath);
316
410
  if (!fs.existsSync(fullPath) || !fs.statSync(fullPath).isFile()) {
411
+ readSpin.stop(chalk.red(`Failed to analyze file ${targetPath}: File not found.`));
317
412
  return { result: `Error: File not found at path "${targetPath}"` };
318
413
  }
319
414
  const fileContent = fs.readFileSync(fullPath, 'utf-8');
320
415
  const lines = fileContent.split('\n');
321
416
  const start = Math.max(1, Number(args.startLine) || 1);
322
417
  const end = Math.min(lines.length, Number(args.endLine) || lines.length);
418
+ readSpin.stop(chalk.green(`✓ Analyzed file ${targetPath} (${lines.length} lines)`));
323
419
  const sliced = lines.slice(start - 1, end).map((l, i) => `${start + i} | ${l}`).join('\n');
324
- return { result: `File: ${targetPath} (Lines ${start}-${end}/${lines.length}):\n${sliced}` };
420
+ let minifiedNotice = '';
421
+ if (lines.length <= 5 && fileContent.length > 500) {
422
+ minifiedNotice = `\n\n[NOTICE: File appears minified (${lines.length} line(s), ${fileContent.length} chars). If your goal is to format/beautify this file, DO NOT use write_file or edit_file to rewrite it manually (which causes output token truncation and loses content). Instead, use run_command with CLI formatters like \`npx prettier --write "${targetPath}"\` or \`npx html-beautify -r "${targetPath}"\` to format it in-place.]`;
423
+ }
424
+ return { result: `File: ${targetPath} (Lines ${start}-${end}/${lines.length}):\n${sliced}${minifiedNotice}` };
325
425
  }
326
426
  case 'write_file': {
327
427
  const targetPath = String(args.path || '').trim();
328
428
  let content = String(args.content || '');
429
+ const reason = String(args.reason || args.why || args.description || 'Created/updated file content to fulfill user prompt.');
329
430
  if (content.includes('\\n') && !content.includes('\n')) {
330
431
  content = content.replace(/\\n/g, '\n').replace(/\\t/g, '\t');
331
432
  }
332
433
  const fullPath = path.isAbsolute(targetPath) ? targetPath : path.resolve(this.cwd, targetPath);
434
+ const fileExists = fs.existsSync(fullPath);
435
+ const actionText = fileExists ? 'Editing file' : 'Creating file';
436
+ const writeSpin = spinner();
437
+ writeSpin.start(chalk.yellow(`✏️ ${actionText} ${targetPath}...`));
333
438
  if (!this.autoApprove && process.stdout.isTTY) {
439
+ writeSpin.stop();
334
440
  const ok = await confirm({
335
441
  message: chalk.yellow(`Allow Scout Agent to write file: ${chalk.bold.cyan(targetPath)}?`),
336
442
  initialValue: true,
@@ -338,10 +444,12 @@ When returning tool calls, use standard OpenAI function calling format or JSON t
338
444
  if (isCancel(ok) || !ok) {
339
445
  return { result: `User rejected write_file to "${targetPath}"` };
340
446
  }
447
+ writeSpin.start(chalk.yellow(`✏️ ${actionText} ${targetPath}...`));
341
448
  }
342
- if (fs.existsSync(fullPath)) {
343
- const orig = fs.readFileSync(fullPath, 'utf-8');
344
- this.backups.push({ filePath: targetPath, originalContent: orig });
449
+ let origContent = '__FT_WAS_NEW__';
450
+ if (fileExists) {
451
+ origContent = fs.readFileSync(fullPath, 'utf-8');
452
+ this.backups.push({ filePath: targetPath, originalContent: origContent });
345
453
  }
346
454
  else {
347
455
  this.backups.push({ filePath: targetPath, originalContent: '__FT_WAS_NEW__' });
@@ -349,18 +457,30 @@ When returning tool calls, use standard OpenAI function calling format or JSON t
349
457
  }
350
458
  fs.writeFileSync(fullPath, content, 'utf-8');
351
459
  this.modifiedFiles.add(targetPath);
460
+ const oldLineCount = origContent !== '__FT_WAS_NEW__' ? origContent.split('\n').length : 0;
461
+ const newLineCount = content.split('\n').length;
462
+ const numberOfLinesChanged = origContent === '__FT_WAS_NEW__' ? newLineCount : Math.abs(newLineCount - oldLineCount) || newLineCount;
463
+ writeSpin.stop(chalk.green(`✓ ${actionText} ${targetPath}`));
464
+ safeNote(` • File: ${chalk.bold.cyan(targetPath)}\n` +
465
+ ` • Changed: ${chalk.bold.yellow(numberOfLinesChanged + ' line(s)')}\n` +
466
+ ` • Why: ${reason}`, `📝 Changed ${numberOfLinesChanged} line(s) in ${targetPath}`);
467
+ const checkSpin = spinner();
468
+ checkSpin.start(chalk.cyan(`🔍 Checking for error: edited ${targetPath}...`));
352
469
  const syntaxCheck = await checkFileSyntax(targetPath, this.cwd);
353
470
  if (!syntaxCheck.valid) {
471
+ checkSpin.stop(chalk.red(`⚠️ Checking for error: edited ${targetPath} — Compiler/Syntax Error!`));
354
472
  return {
355
- result: `Successfully wrote ${content.length} characters to "${targetPath}".\n\n⚠️ AUTOMATED SYNTAX / COMPILER ERROR DETECTED IN "${targetPath}":\n${syntaxCheck.errors.join('\n')}\n\nPLEASE IMMEDIATELY FIX THIS SYNTAX ERROR IN YOUR NEXT TOOL CALL.`
473
+ result: `Successfully wrote ${content.length} characters (${numberOfLinesChanged} lines changed) to "${targetPath}".\n\n⚠️ AUTOMATED SYNTAX / COMPILER ERROR DETECTED IN "${targetPath}":\n${syntaxCheck.errors.join('\n')}\n\nPLEASE IMMEDIATELY FIX THIS SYNTAX ERROR IN YOUR NEXT TOOL CALL.`
356
474
  };
357
475
  }
358
- return { result: `Successfully wrote ${content.length} characters to "${targetPath}". Syntax check passed cleanly.` };
476
+ checkSpin.stop(chalk.green(`✓ Checking for error: edited ${targetPath} Syntax & build clean.`));
477
+ return { result: `Successfully wrote ${content.length} characters (${numberOfLinesChanged} lines changed) to "${targetPath}". Rationale: ${reason}. Syntax check passed cleanly.` };
359
478
  }
360
479
  case 'edit_file': {
361
480
  const targetPath = String(args.path || '').trim();
362
481
  let target = String(args.target || '');
363
482
  let replacement = String(args.replacement || '');
483
+ const reason = String(args.reason || args.why || args.description || 'Replaced target code snippet with updated implementation.');
364
484
  if (replacement.includes('\\n') && !replacement.includes('\n')) {
365
485
  replacement = replacement.replace(/\\n/g, '\n').replace(/\\t/g, '\t');
366
486
  }
@@ -368,14 +488,26 @@ When returning tool calls, use standard OpenAI function calling format or JSON t
368
488
  target = target.replace(/\\n/g, '\n').replace(/\\t/g, '\t');
369
489
  }
370
490
  const fullPath = path.isAbsolute(targetPath) ? targetPath : path.resolve(this.cwd, targetPath);
491
+ const editSpin = spinner();
492
+ editSpin.start(chalk.yellow(`✏️ Editing file ${targetPath}...`));
371
493
  if (!fs.existsSync(fullPath)) {
494
+ editSpin.stop(chalk.red(`Failed to edit file ${targetPath}: File does not exist.`));
372
495
  return { result: `Error: File "${targetPath}" does not exist.` };
373
496
  }
374
497
  const origContent = fs.readFileSync(fullPath, 'utf-8');
375
498
  if (!origContent.includes(target)) {
499
+ editSpin.stop(chalk.yellow(`Target snippet not found in ${targetPath}.`));
376
500
  return { result: `Error: Target snippet not found in "${targetPath}". Please re-read file content.` };
377
501
  }
502
+ const occurrences = origContent.split(target).length - 1;
503
+ if (occurrences > 1) {
504
+ editSpin.stop(chalk.yellow(`Ambiguous edit in ${targetPath}: target snippet occurs ${occurrences} times.`));
505
+ return {
506
+ result: `Error: Target snippet occurs ${occurrences} times in "${targetPath}". To avoid corrupting the file, please provide a larger unique block of surrounding code in "target".`
507
+ };
508
+ }
378
509
  if (!this.autoApprove && process.stdout.isTTY) {
510
+ editSpin.stop();
379
511
  const ok = await confirm({
380
512
  message: chalk.yellow(`Allow Scout Agent to edit snippet in file: ${chalk.bold.cyan(targetPath)}?`),
381
513
  initialValue: true,
@@ -383,21 +515,35 @@ When returning tool calls, use standard OpenAI function calling format or JSON t
383
515
  if (isCancel(ok) || !ok) {
384
516
  return { result: `User rejected edit_file to "${targetPath}"` };
385
517
  }
518
+ editSpin.start(chalk.yellow(`✏️ Editing file ${targetPath}...`));
386
519
  }
387
520
  this.backups.push({ filePath: targetPath, originalContent: origContent });
388
521
  const updated = origContent.replace(target, replacement);
389
522
  fs.writeFileSync(fullPath, updated, 'utf-8');
390
523
  this.modifiedFiles.add(targetPath);
524
+ const targetLines = target.split('\n').length;
525
+ const replacementLines = replacement.split('\n').length;
526
+ const numberOfLinesChanged = Math.max(targetLines, replacementLines);
527
+ editSpin.stop(chalk.green(`✓ Edited file ${targetPath}`));
528
+ safeNote(` • File: ${chalk.bold.cyan(targetPath)}\n` +
529
+ ` • Changed: ${chalk.bold.yellow(numberOfLinesChanged + ' line(s)')}\n` +
530
+ ` • Why: ${reason}`, `📝 Changed ${numberOfLinesChanged} line(s) in ${targetPath}`);
531
+ const checkSpin = spinner();
532
+ checkSpin.start(chalk.cyan(`🔍 Checking for error: edited ${targetPath}...`));
391
533
  const syntaxCheck = await checkFileSyntax(targetPath, this.cwd);
392
534
  if (!syntaxCheck.valid) {
535
+ checkSpin.stop(chalk.red(`⚠️ Checking for error: edited ${targetPath} — Compiler/Syntax Error!`));
393
536
  return {
394
- result: `Successfully replaced target snippet in "${targetPath}".\n\n⚠️ AUTOMATED SYNTAX / COMPILER ERROR DETECTED IN "${targetPath}":\n${syntaxCheck.errors.join('\n')}\n\nPLEASE IMMEDIATELY FIX THIS SYNTAX ERROR IN YOUR NEXT TOOL CALL.`
537
+ result: `Successfully replaced snippet (${numberOfLinesChanged} lines changed) in "${targetPath}".\n\n⚠️ AUTOMATED SYNTAX / COMPILER ERROR DETECTED IN "${targetPath}":\n${syntaxCheck.errors.join('\n')}\n\nPLEASE IMMEDIATELY FIX THIS SYNTAX ERROR IN YOUR NEXT TOOL CALL.`
395
538
  };
396
539
  }
397
- return { result: `Successfully replaced target snippet in "${targetPath}". Syntax check passed cleanly.` };
540
+ checkSpin.stop(chalk.green(`✓ Checking for error: edited ${targetPath} Syntax & build clean.`));
541
+ return { result: `Successfully replaced target snippet (${numberOfLinesChanged} lines changed) in "${targetPath}". Rationale: ${reason}. Syntax check passed cleanly.` };
398
542
  }
399
543
  case 'run_command': {
400
544
  const cmd = String(args.command || '').trim();
545
+ const isTestCmd = /\b(?:test|vitest|jest|pytest|mocha|jasmine|cargo test|go test)\b/i.test(cmd);
546
+ const actionLabel = isTestCmd ? `Running command for testing: \`${cmd}\`` : `Running command: \`${cmd}\``;
401
547
  if (!this.autoApprove && process.stdout.isTTY) {
402
548
  const ok = await confirm({
403
549
  message: chalk.yellow(`Allow Scout Agent to run shell command: ${chalk.bold.cyan(cmd)}?`),
@@ -408,20 +554,20 @@ When returning tool calls, use standard OpenAI function calling format or JSON t
408
554
  }
409
555
  }
410
556
  const runSpin = spinner();
411
- runSpin.start(chalk.dim(`Executing: \`${cmd}\`...`));
557
+ runSpin.start(chalk.cyan(`⚡ ${actionLabel}...`));
412
558
  const res = await executeSmartCommand(cmd, this.cwd, 3000);
413
559
  if (res.isBackgroundServer) {
414
- runSpin.stop(chalk.green(`Command \`${cmd}\` started in background (PID ${res.pid}).`));
560
+ runSpin.stop(chalk.green(`✓ ${actionLabel} started in background (PID ${res.pid}).`));
415
561
  return {
416
562
  result: `Command started and running in background (PID ${res.pid || 'active'}). Output:\n${res.output.slice(0, 8000)}\n\n[Process is running as background server. Scout Agent can proceed directly to next step.]`
417
563
  };
418
564
  }
419
565
  if (res.exitCode === 0) {
420
- runSpin.stop(chalk.green(`Command \`${cmd}\` executed successfully (Exit Code 0).`));
566
+ runSpin.stop(chalk.green(`✓ ${actionLabel} executed successfully (Exit Code 0).`));
421
567
  return { result: `Command Exit Code 0 Output:\n${res.output.slice(0, 8000)}` };
422
568
  }
423
569
  else {
424
- runSpin.stop(chalk.red(`Command \`${cmd}\` failed with code ${res.exitCode}.`));
570
+ runSpin.stop(chalk.red(`❌ ${actionLabel} failed with code ${res.exitCode}.`));
425
571
  return { result: `Command Exit Code ${res.exitCode} Error:\n${res.output.slice(0, 8000)}` };
426
572
  }
427
573
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agentEngine.js","sourceRoot":"","sources":["agentEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentEngine.js","sourceRoot":"","sources":["agentEngine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["llm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["llm.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,23 @@ export const openai = new OpenAI({
13
13
  baseURL: 'https://frontterrain.com/api',
14
14
  });
15
15
  const MODEL_FALLBACKS = ['llama-3.1-8b-instant', 'llama-3.3-70b-versatile'];
16
+ export function isQuotaExceededError(err) {
17
+ if (!err)
18
+ return false;
19
+ const status = err?.status || err?.statusCode || err?.response?.status;
20
+ const errStr = String(err?.message || err?.error?.message || err?.error || err || '').toLowerCase();
21
+ return (status === 429 ||
22
+ errStr.includes('429') ||
23
+ errStr.includes('insufficient_quota') ||
24
+ errStr.includes('quota exceeded') ||
25
+ errStr.includes('exceeded your current quota') ||
26
+ errStr.includes('rate_limit_exceeded') ||
27
+ errStr.includes('quota_exceeded') ||
28
+ errStr.includes('resource_exhausted') ||
29
+ errStr.includes('out of credits') ||
30
+ errStr.includes('too many requests') ||
31
+ errStr.includes('upstream api error'));
32
+ }
16
33
  export async function callOpenAIWithRetry(fn, maxRetries = 3, initialDelayMs = 1000) {
17
34
  let lastError;
18
35
  for (const model of MODEL_FALLBACKS) {