ft-scout 3.0.3 → 3.0.4

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/README.md CHANGED
@@ -1,105 +1,105 @@
1
- # 🚀 scout (FrontTerrain CLI)
2
-
3
- **FrontTerrain (`scout`)** — The Agentic AI Engineering & Onboarding Co-Pilot for Codebases.
4
-
5
- Scout works like GitHub Copilot directly inside your terminal — fixing bugs, creating new source code files, executing shell commands with AI failure diagnostics, scanning codebases, and interactive agentic chat.
6
-
7
- ---
8
-
9
- ## đŸ“Ļ Installation
10
-
11
- Install globally using npm:
12
-
13
- ```bash
14
- npm install -g ft-scout@latest
15
- ```
16
-
17
- ---
18
-
19
- ## ⚡ Quick Start & Commands
20
-
21
- Once installed, use `scout` or `ft` in any project directory:
22
-
23
- ### 🤖 Agentic AI Actions
24
-
25
- ```bash
26
- # ✨ Generate and create a new source code file
27
- scout create src/utils/math.ts "Create helper functions for sum, average, and array chunking"
28
- scout gen src/components/Header.tsx "Create a responsive React navigation header"
29
-
30
- # đŸ› ī¸ Auto-fix code using AI based on prompt, target file, or scan issue ID
31
- scout fix "Fix null pointer check in calculateTotal function"
32
- scout fix -f src/sampleBug.ts "Handle optional prices defensively"
33
- scout fix -i 1
34
-
35
- # ⚡ Run terminal/shell commands with automated AI error diagnosis
36
- scout run npm test
37
- scout exec tsc
38
- scout run python main.py
39
-
40
- # đŸ’Ŧ Interactive Agentic AI Chat session (with slash commands & action triggers)
41
- scout chat
42
- scout chat --web --lang spanish
43
-
44
- # â†Šī¸ Revert Scout's last action & restore backed-up file contents
45
- scout undo
46
- ```
47
-
48
- ### 🔍 Codebase Understanding & Due-Diligence
49
-
50
- ```bash
51
- # Initialize understanding map of a local or remote repository
52
- scout init [repoUrl]
53
-
54
- # Multilingual AI teardowns & onboarding summaries (e.g. spanish, hindi, french, japanese, etc.)
55
- scout init [repoUrl] --lang spanish
56
- scout init [repoUrl] -l hi
57
-
58
- # Human-readable onboarding summary (the "week-one explainer")
59
- scout brief
60
-
61
- # Bug & code quality scan report (read-only)
62
- scout scan
63
-
64
- # Feasibility + step-by-step implementation roadmap for a new feature
65
- scout add "Add rate limiting to API endpoints"
66
-
67
- # Architecture, performance, and DSA-level suggestions
68
- scout recommend
69
-
70
- # Security & dependency / supply-chain audit
71
- scout audit
72
-
73
- # Show knowledge holders of a specific directory or file (from git history)
74
- scout owners <path>
75
-
76
- # Show a code fragility map based on churn and hotfixes
77
- scout risky
78
-
79
- # Live internet search for live web context & up-to-date documentation
80
- scout search "Next.js 15 App Router"
81
- scout web "Tailwind CSS v4" --ask --lang french
82
-
83
- # History log of everything Scout has done in this repository
84
- scout history
85
-
86
- # Check for updates and auto-upgrade Scout
87
- scout upgrade
88
- ```
89
-
90
- ---
91
-
92
- ## ✨ Key Capabilities
93
-
94
- - ✨ **AI File Generation (`scout create`)**: Specify a file path and a requirement prompt. Scout generates clean, production-ready code, creates missing directories, and provides an interactive review prompt (**Keep** vs **Revert**).
95
- - đŸ› ī¸ **Prompt-Driven Auto-Fix (`scout fix`)**: Fix bugs and refactor code across single or multiple files. Scout analyzes the root cause, applies code edits, displays a technical explanation, and backs up original code.
96
- - ⚡ **Terminal Execution & Failure Diagnosis (`scout run`)**: Run tests, builds, or scripts directly. If execution fails, Scout analyzes stdout/stderr logs with AI, pinpoints the root cause, and offers to auto-fix the failing code automatically.
97
- - 🤖 **Agentic Copilot Chat (`scout chat`)**: An interactive terminal session with Slash Commands (`/create`, `/fix`, `/run`, `/read`, `/scan`, `/undo`, `/help`) and natural language tool execution.
98
- - â†Šī¸ **Safety & Instant Revert (`scout undo`)**: Every code modification or file creation is logged in `.ft/history.json` with file backups, allowing instant restoration anytime.
99
- - 🌐 **Multilingual Teardowns & Web Search (`scout search`)**: Access live internet documentation and generate breakdowns in 20+ languages.
100
-
101
- ---
102
-
103
- ## 📄 License
104
-
105
- ISC Š [FrontTerrain](https://github.com/Front-Terrain/FT-Check)
1
+ # 🚀 scout (FrontTerrain CLI)
2
+
3
+ **FrontTerrain (`scout`)** — The Agentic AI Engineering & Onboarding Co-Pilot for Codebases.
4
+
5
+ Scout works like GitHub Copilot directly inside your terminal — fixing bugs, creating new source code files, executing shell commands with AI failure diagnostics, scanning codebases, and interactive agentic chat.
6
+
7
+ ---
8
+
9
+ ## đŸ“Ļ Installation
10
+
11
+ Install globally using npm:
12
+
13
+ ```bash
14
+ npm install -g ft-scout@latest
15
+ ```
16
+
17
+ ---
18
+
19
+ ## ⚡ Quick Start & Commands
20
+
21
+ Once installed, use `scout` or `ft` in any project directory:
22
+
23
+ ### 🤖 Agentic AI Actions
24
+
25
+ ```bash
26
+ # ✨ Generate and create a new source code file
27
+ scout create src/utils/math.ts "Create helper functions for sum, average, and array chunking"
28
+ scout gen src/components/Header.tsx "Create a responsive React navigation header"
29
+
30
+ # đŸ› ī¸ Auto-fix code using AI based on prompt, target file, or scan issue ID
31
+ scout fix "Fix null pointer check in calculateTotal function"
32
+ scout fix -f src/sampleBug.ts "Handle optional prices defensively"
33
+ scout fix -i 1
34
+
35
+ # ⚡ Run terminal/shell commands with automated AI error diagnosis
36
+ scout run npm test
37
+ scout exec tsc
38
+ scout run python main.py
39
+
40
+ # đŸ’Ŧ Interactive Agentic AI Chat session (with slash commands & action triggers)
41
+ scout chat
42
+ scout chat --web --lang spanish
43
+
44
+ # â†Šī¸ Revert Scout's last action & restore backed-up file contents
45
+ scout undo
46
+ ```
47
+
48
+ ### 🔍 Codebase Understanding & Due-Diligence
49
+
50
+ ```bash
51
+ # Initialize understanding map of a local or remote repository
52
+ scout init [repoUrl]
53
+
54
+ # Multilingual AI teardowns & onboarding summaries (e.g. spanish, hindi, french, japanese, etc.)
55
+ scout init [repoUrl] --lang spanish
56
+ scout init [repoUrl] -l hi
57
+
58
+ # Human-readable onboarding summary (the "week-one explainer")
59
+ scout brief
60
+
61
+ # Bug & code quality scan report (read-only)
62
+ scout scan
63
+
64
+ # Feasibility + step-by-step implementation roadmap for a new feature
65
+ scout add "Add rate limiting to API endpoints"
66
+
67
+ # Architecture, performance, and DSA-level suggestions
68
+ scout recommend
69
+
70
+ # Security & dependency / supply-chain audit
71
+ scout audit
72
+
73
+ # Show knowledge holders of a specific directory or file (from git history)
74
+ scout owners <path>
75
+
76
+ # Show a code fragility map based on churn and hotfixes
77
+ scout risky
78
+
79
+ # Live internet search for live web context & up-to-date documentation
80
+ scout search "Next.js 15 App Router"
81
+ scout web "Tailwind CSS v4" --ask --lang french
82
+
83
+ # History log of everything Scout has done in this repository
84
+ scout history
85
+
86
+ # Check for updates and auto-upgrade Scout
87
+ scout upgrade
88
+ ```
89
+
90
+ ---
91
+
92
+ ## ✨ Key Capabilities
93
+
94
+ - ✨ **AI File Generation (`scout create`)**: Specify a file path and a requirement prompt. Scout generates clean, production-ready code, creates missing directories, and provides an interactive review prompt (**Keep** vs **Revert**).
95
+ - đŸ› ī¸ **Prompt-Driven Auto-Fix (`scout fix`)**: Fix bugs and refactor code across single or multiple files. Scout analyzes the root cause, applies code edits, displays a technical explanation, and backs up original code.
96
+ - ⚡ **Terminal Execution & Failure Diagnosis (`scout run`)**: Run tests, builds, or scripts directly. If execution fails, Scout analyzes stdout/stderr logs with AI, pinpoints the root cause, and offers to auto-fix the failing code automatically.
97
+ - 🤖 **Agentic Copilot Chat (`scout chat`)**: An interactive terminal session with Slash Commands (`/create`, `/fix`, `/run`, `/read`, `/scan`, `/undo`, `/help`) and natural language tool execution.
98
+ - â†Šī¸ **Safety & Instant Revert (`scout undo`)**: Every code modification or file creation is logged in `.ft/history.json` with file backups, allowing instant restoration anytime.
99
+ - 🌐 **Multilingual Teardowns & Web Search (`scout search`)**: Access live internet documentation and generate breakdowns in 20+ languages.
100
+
101
+ ---
102
+
103
+ ## 📄 License
104
+
105
+ ISC Š [FrontTerrain](https://github.com/Front-Terrain/FT-Check)
@@ -50,18 +50,18 @@ export async function handleChat(options) {
50
50
  manifestContent = '{}';
51
51
  }
52
52
  }
53
- const welcomeBanner = `
54
- ${chalk.bold.cyan('Interactive Agentic AI Chat Session Active')} ${targetLang ? `(${targetLang})` : ''}
55
-
56
- ${chalk.bold('Slash Commands Available:')}
57
- ${chalk.cyan('/create <file> <prompt>')} - Create a new source file
58
- ${chalk.cyan('/fix [file] [prompt]')} - Auto-fix code in file or codebase
59
- ${chalk.cyan('/run <command>')} - Execute terminal/shell command
60
- ${chalk.cyan('/read <file>')} - Read and display file contents
61
- ${chalk.cyan('/scan')} - Scan codebase for bugs
62
- ${chalk.cyan('/undo')} - Revert Scout's last action
63
- ${chalk.cyan('/help')} - Show slash commands help
64
- ${chalk.cyan('exit / quit')} - Quit chat session
53
+ const welcomeBanner = `
54
+ ${chalk.bold.cyan('Interactive Agentic AI Chat Session Active')} ${targetLang ? `(${targetLang})` : ''}
55
+
56
+ ${chalk.bold('Slash Commands Available:')}
57
+ ${chalk.cyan('/create <file> <prompt>')} - Create a new source file
58
+ ${chalk.cyan('/fix [file] [prompt]')} - Auto-fix code in file or codebase
59
+ ${chalk.cyan('/run <command>')} - Execute terminal/shell command
60
+ ${chalk.cyan('/read <file>')} - Read and display file contents
61
+ ${chalk.cyan('/scan')} - Scan codebase for bugs
62
+ ${chalk.cyan('/undo')} - Revert Scout's last action
63
+ ${chalk.cyan('/help')} - Show slash commands help
64
+ ${chalk.cyan('exit / quit')} - Quit chat session
65
65
  `.trim();
66
66
  safeNote(welcomeBanner, '🤖 Scout Agentic Copilot Chat');
67
67
  const chatHistory = [];
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["create.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAsBD,wBAAsB,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,iBAwJjF"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["create.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAsBD,wBAAsB,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,iBA6JjF"}
@@ -6,6 +6,7 @@ import { simpleGit } from 'simple-git';
6
6
  import { safeNote, renderMarkdown } from '../utils/markdown.js';
7
7
  import { recordHistoryAction, loadContext } from '../utils/config.js';
8
8
  import { generateCodeFile } from '../engine/llm.js';
9
+ import { createPullRequest } from '../engine/git.js';
9
10
  import { handleUndo } from './undo.js';
10
11
  import { normalizeLanguage } from '../utils/language.js';
11
12
  function getDirectoryFiles(dir, baseDir = dir, maxFiles = 150) {
@@ -76,23 +77,6 @@ export async function handleCreate(filePathInput, options) {
76
77
  }
77
78
  catch { }
78
79
  }
79
- const cleanTitle = path.basename(targetFilePath)
80
- .toLowerCase()
81
- .replace(/[^a-z0-9]+/g, '-')
82
- .replace(/^-|-$/g, '')
83
- .slice(0, 20);
84
- const branchName = `ft/create-${Date.now().toString().slice(-4)}-${cleanTitle}`;
85
- if (isRepo) {
86
- try {
87
- await git.checkoutLocalBranch(branchName);
88
- }
89
- catch {
90
- try {
91
- await git.checkout(branchName);
92
- }
93
- catch { }
94
- }
95
- }
96
80
  const s = spinner();
97
81
  s.start(`Scout is generating code for ${targetFilePath} with AI...`);
98
82
  let genResult;
@@ -120,44 +104,57 @@ export async function handleCreate(filePathInput, options) {
120
104
  recordHistoryAction({
121
105
  command: `ft create "${targetFilePath}" "${finalPrompt}"`,
122
106
  description: `Scout created file ${targetFilePath}`,
123
- branchName,
124
107
  previousBranch: currentBranch,
125
108
  affectedFiles: [targetFilePath],
126
109
  backups: [{ filePath: targetFilePath, originalContent }],
127
110
  });
128
111
  s.stop(chalk.green(`File ${targetFilePath} created successfully!`));
129
- const teardownContent = `
130
- ### 📄 Created File
131
- \`${targetFilePath}\`
132
-
133
- ### 💡 Description & Overview
134
- ${genResult.description}
135
-
136
- ### đŸ’ģ Preview
137
- \`\`\`
138
- ${genResult.code.slice(0, 500)}${genResult.code.length > 500 ? '\n... (truncated)' : ''}
139
- \`\`\`
140
-
141
- ---
142
- *File has been written to \`${targetFilePath}\`${isRepo ? ` on branch \`${branchName}\`` : ''}.*
112
+ const teardownContent = `
113
+ ### 📄 Created File
114
+ \`${targetFilePath}\`
115
+
116
+ ### 💡 Description & Overview
117
+ ${genResult.description}
118
+
119
+ ### đŸ’ģ Preview
120
+ \`\`\`
121
+ ${genResult.code.slice(0, 500)}${genResult.code.length > 500 ? '\n... (truncated)' : ''}
122
+ \`\`\`
123
+
124
+ ---
125
+ *File created directly at \`${targetFilePath}\`${isRepo ? ` on active branch \`${currentBranch}\`` : ''}.*
143
126
  `.trim();
144
127
  safeNote(renderMarkdown(teardownContent), '✨ Scout File Creation Teardown');
145
- const revertChoice = await select({
128
+ const actionChoice = await select({
146
129
  message: chalk.bold('Review Scout\'s generated file. What would you like to do?'),
147
130
  options: [
148
- { value: 'keep', label: '✅ Keep File', hint: 'Retain the newly created file in your project' },
149
- { value: 'revert', label: 'â†Šī¸ Revert / Delete File', hint: 'Remove the created file and restore branch state' },
131
+ { value: 'keep', label: '✅ Keep File', hint: `Retain the newly created file directly on current branch (${currentBranch})` },
132
+ { value: 'pr', label: '🔀 Create Pull Request', hint: 'Push created file to a new branch & open a Pull Request' },
133
+ { value: 'revert', label: 'â†Šī¸ Revert / Delete File', hint: 'Remove the created file immediately' },
150
134
  ],
151
135
  });
152
- if (isCancel(revertChoice) || revertChoice === 'revert') {
136
+ if (isCancel(actionChoice) || actionChoice === 'revert') {
153
137
  const revSpinner = spinner();
154
138
  revSpinner.start('Reverting Scout\'s file creation...');
155
139
  await handleUndo();
156
140
  revSpinner.stop('Creation reverted successfully.');
141
+ return;
157
142
  }
158
- else {
159
- safeNote(`${chalk.green('✓')} Saved ${chalk.bold.cyan(targetFilePath)}.\n` +
160
- `💡 ${chalk.dim('You can revert this creation anytime by running:')} ${chalk.cyan('scout undo')}`, '✅ Creation Confirmed');
143
+ if (actionChoice === 'pr') {
144
+ const prSpinner = spinner();
145
+ prSpinner.start('Creating Pull Request...');
146
+ const prRes = await createPullRequest({
147
+ branchPrefix: 'create',
148
+ title: `feat: Add ${targetFilePath}`,
149
+ affectedFiles: [targetFilePath],
150
+ commitMessage: `feat: Create ${targetFilePath}`,
151
+ });
152
+ prSpinner.stop('Pull Request workflow processed.');
153
+ safeNote(`${chalk.green('✓')} ${prRes.message}\n` +
154
+ `💡 ${chalk.dim('You remain on active branch:')} ${chalk.cyan(currentBranch)}`, '🔀 Pull Request Status');
155
+ return;
161
156
  }
157
+ safeNote(`${chalk.green('✓')} Saved ${chalk.bold.cyan(targetFilePath)} on branch ${chalk.bold.green(currentBranch)}.\n` +
158
+ `💡 ${chalk.dim('You can revert this creation anytime by running:')} ${chalk.cyan('scout undo')}`, '✅ Creation Confirmed');
162
159
  }
163
160
  //# sourceMappingURL=create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["create.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["fix.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAiCD,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,iBAwLnD"}
1
+ {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["fix.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAiCD,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,iBA8LnD"}
@@ -7,6 +7,7 @@ import { loadScanReport } from './scan.js';
7
7
  import { safeNote, renderMarkdown } from '../utils/markdown.js';
8
8
  import { recordHistoryAction, loadContext } from '../utils/config.js';
9
9
  import { generateCodeFix } from '../engine/llm.js';
10
+ import { createPullRequest } from '../engine/git.js';
10
11
  import { handleUndo } from './undo.js';
11
12
  import { normalizeLanguage } from '../utils/language.js';
12
13
  function getDirectoryFiles(dir, baseDir = dir, maxFiles = 150) {
@@ -94,7 +95,7 @@ export async function handleFix(options) {
94
95
  return;
95
96
  }
96
97
  const currentContent = fs.readFileSync(path.resolve(cwd, targetFile), 'utf-8');
97
- // Prepare git branch setup if in a git repo
98
+ // Check current active branch
98
99
  const git = simpleGit();
99
100
  const isRepo = await git.checkIsRepo();
100
101
  let currentBranch = 'main';
@@ -105,23 +106,6 @@ export async function handleFix(options) {
105
106
  }
106
107
  catch { }
107
108
  }
108
- const cleanTitle = finalPrompt
109
- .toLowerCase()
110
- .replace(/[^a-z0-9]+/g, '-')
111
- .replace(/^-|-$/g, '')
112
- .slice(0, 25);
113
- const branchName = `ft/fix-${Date.now().toString().slice(-4)}-${cleanTitle}`;
114
- if (isRepo) {
115
- try {
116
- await git.checkoutLocalBranch(branchName);
117
- }
118
- catch {
119
- try {
120
- await git.checkout(branchName);
121
- }
122
- catch { }
123
- }
124
- }
125
109
  const s = spinner();
126
110
  s.start('Scout is analyzing problem & auto-fixing code with AI...');
127
111
  let fixResult;
@@ -133,7 +117,7 @@ export async function handleFix(options) {
133
117
  safeNote(chalk.red(`Error: ${err?.message || String(err)}`), 'âš ī¸ Auto-Fix Error');
134
118
  return;
135
119
  }
136
- // Backup original content & apply fix
120
+ // Backup original content & apply fix directly on active branch
137
121
  const backups = [
138
122
  {
139
123
  filePath: targetFile,
@@ -151,44 +135,58 @@ export async function handleFix(options) {
151
135
  recordHistoryAction({
152
136
  command: `ft fix "${finalPrompt}"`,
153
137
  description: `Scout auto-fixed ${targetFile}`,
154
- branchName,
155
138
  previousBranch: currentBranch,
156
139
  affectedFiles: [targetFile],
157
140
  backups,
158
141
  });
159
142
  s.stop(chalk.green('Auto-fix generated and applied to codebase successfully!'));
160
143
  // Display explanation teardown
161
- const teardownContent = `
162
- ### 🔍 Target File
163
- \`${targetFile}\`
164
-
165
- ### 🔴 Problem Identified
166
- ${fixResult.problem}
167
-
168
- ### đŸ› ī¸ How Scout Fixed It
169
- ${fixResult.howFixed}
170
-
171
- ---
172
- *Changes have been written to \`${targetFile}\`${isRepo ? ` on branch \`${branchName}\`` : ''}.*
144
+ const teardownContent = `
145
+ ### 🔍 Target File
146
+ \`${targetFile}\`
147
+
148
+ ### 🔴 Problem Identified
149
+ ${fixResult.problem}
150
+
151
+ ### đŸ› ī¸ How Scout Fixed It
152
+ ${fixResult.howFixed}
153
+
154
+ ---
155
+ *Changes applied directly to \`${targetFile}\`${isRepo ? ` on active branch \`${currentBranch}\`` : ''}.*
173
156
  `.trim();
174
157
  safeNote(renderMarkdown(teardownContent), 'đŸ› ī¸ Scout Auto-Fix Teardown & Explanation');
175
- // Interactive option to keep or revert changes
176
- const revertChoice = await select({
158
+ // Interactive option to keep, create PR, or revert changes
159
+ const actionChoice = await select({
177
160
  message: chalk.bold('Review Scout\'s auto-fix result. What would you like to do?'),
178
161
  options: [
179
- { value: 'keep', label: '✅ Keep Changes', hint: 'Retain the auto-fixed code in your project' },
180
- { value: 'revert', label: 'â†Šī¸ Revert Changes', hint: 'Restore original code and branch immediately' },
162
+ { value: 'keep', label: '✅ Keep Changes', hint: `Retain auto-fixed code directly on current branch (${currentBranch})` },
163
+ { value: 'pr', label: '🔀 Create Pull Request', hint: 'Push fix to a new branch & open a Pull Request' },
164
+ { value: 'revert', label: 'â†Šī¸ Revert Changes', hint: 'Restore original code immediately' },
181
165
  ],
182
166
  });
183
- if (isCancel(revertChoice) || revertChoice === 'revert') {
167
+ if (isCancel(actionChoice) || actionChoice === 'revert') {
184
168
  const revSpinner = spinner();
185
169
  revSpinner.start('Reverting Scout\'s changes...');
186
170
  await handleUndo();
187
171
  revSpinner.stop('Changes reverted successfully.');
172
+ return;
188
173
  }
189
- else {
190
- safeNote(`${chalk.green('✓')} Auto-fix retained on ${chalk.bold.cyan(targetFile)}.\n` +
191
- `💡 ${chalk.dim('You can still revert these changes anytime by running:')} ${chalk.cyan('scout undo')}`, '✅ Fix Confirmed');
174
+ if (actionChoice === 'pr') {
175
+ const prSpinner = spinner();
176
+ prSpinner.start('Creating Pull Request...');
177
+ const prRes = await createPullRequest({
178
+ branchPrefix: 'fix',
179
+ title: finalPrompt,
180
+ affectedFiles: [targetFile],
181
+ commitMessage: `fix: ${finalPrompt} (${targetFile})`,
182
+ });
183
+ prSpinner.stop('Pull Request workflow processed.');
184
+ safeNote(`${chalk.green('✓')} ${prRes.message}\n` +
185
+ `💡 ${chalk.dim('You remain on active branch:')} ${chalk.cyan(currentBranch)}`, '🔀 Pull Request Status');
186
+ return;
192
187
  }
188
+ // Keep changes directly on active branch
189
+ safeNote(`${chalk.green('✓')} Auto-fix retained on ${chalk.bold.cyan(targetFile)} (Branch: ${chalk.bold.green(currentBranch)}).\n` +
190
+ `💡 ${chalk.dim('You can still revert these changes anytime by running:')} ${chalk.cyan('scout undo')}`, '✅ Fix Confirmed');
193
191
  }
194
192
  //# sourceMappingURL=fix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix.js","sourceRoot":"","sources":["fix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix.js","sourceRoot":"","sources":["fix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAUzD,SAAS,iBAAiB,CAAC,GAAW,EAAE,OAAO,GAAW,GAAG,EAAE,QAAQ,GAAW,GAAG;IACnF,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;gBAAE,MAAM;YACtC,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS;YACnG,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/B,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5F,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC1E,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,wBAAwB,CAAC,UAAkB,EAAE,SAAmB;IACvE,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxE,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAoB;IAClD,MAAM,eAAe,GAAG,WAAW,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,iBAAiB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IAEpG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,eAAe,EAAE,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC;IAErF,IAAI,WAAW,GAAG,OAAO,EAAE,MAAM,CAAC;IAClC,IAAI,mBAAmB,GAAuB,OAAO,EAAE,IAAI,CAAC;IAE5D,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,GAAG,cAAc,WAAW,CAAC,EAAE,KAAK,WAAW,CAAC,KAAK,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;YAChG,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC;QACzC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC;YACjC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC;YACnF,WAAW,EAAE,kFAAkF;YAC/F,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,SAAS,CAAC;SACtG,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9B,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,+BAA+B,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,WAAW,GAAI,eAA0B,CAAC,IAAI,EAAE,CAAC;IACnD,CAAC;IAED,+BAA+B;IAC/B,IAAI,UAAU,GAAG,mBAAmB,CAAC;IACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,wBAAwB,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC;IAC7E,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU;YACR,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,cAAc,IAAI,CAAC,KAAK,kBAAkB,IAAI,CAAC,KAAK,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC;gBACnH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAClF,SAAS,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QAChE,oFAAoF;QACpF,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACrD,QAAQ,CACN,KAAK,CAAC,IAAI,CAAC,iBAAiB,UAAU,4DAA4D,CAAC,EACnG,qBAAqB,CACtB,CAAC;QACF,MAAM,YAAY,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACnG,OAAO;IACT,CAAC;IAED,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QACjE,QAAQ,CACN,KAAK,CAAC,MAAM,CAAC,2IAA2I,CAAC,EACzJ,0BAA0B,CAC3B,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;IAE/E,8BAA8B;IAC9B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,aAAa,GAAG,MAAM,CAAC;IAE3B,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;YACzC,aAAa,GAAG,aAAa,CAAC,OAAO,IAAI,MAAM,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAEpE,IAAI,SAAS,CAAC;IACd,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,eAAe,CAC/B,WAAW,EACX,WAAW,EACX,SAAS,EACT,UAAU,EACV,cAAc,EACd,UAAU,EACV,OAAO,EAAE,MAAM,CAChB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACrD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAClF,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,MAAM,OAAO,GAAG;QACd;YACE,QAAQ,EAAE,UAAU;YACpB,eAAe,EAAE,cAAc;SAChC;KACF,CAAC;IAEF,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAAC,OAAO,QAAa,EAAE,CAAC;QACvB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACzD,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,QAAQ,EAAE,OAAO,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;QACpG,OAAO;IACT,CAAC;IAED,mBAAmB,CAAC;QAClB,OAAO,EAAE,WAAW,WAAW,GAAG;QAClC,WAAW,EAAE,oBAAoB,UAAU,EAAE;QAC7C,cAAc,EAAE,aAAa;QAC7B,aAAa,EAAE,CAAC,UAAU,CAAC;QAC3B,OAAO;KACR,CAAC,CAAC;IAEH,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAC;IAEhF,+BAA+B;IAC/B,MAAM,eAAe,GAAG;;IAEtB,UAAU;;;EAGZ,SAAS,CAAC,OAAO;;;EAGjB,SAAS,CAAC,QAAQ;;;iCAGa,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,uBAAuB,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE;GACnG,CAAC,IAAI,EAAE,CAAC;IAET,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,2CAA2C,CAAC,CAAC;IAEvF,2DAA2D;IAC3D,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC;QAChC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC;QAClF,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,sDAAsD,aAAa,GAAG,EAAE;YACxH,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,gDAAgD,EAAE;YACxG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,mCAAmC,EAAE;SAC3F;KACF,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC;QAC7B,UAAU,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAClD,MAAM,UAAU,EAAE,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC;QAC5B,SAAS,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAE5C,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC;YACpC,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,WAAW;YAClB,aAAa,EAAE,CAAC,UAAU,CAAC;YAC3B,aAAa,EAAE,QAAQ,WAAW,KAAK,UAAU,GAAG;SACrD,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAEnD,QAAQ,CACN,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI;YACxC,MAAM,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,EAC9E,wBAAwB,CACzB,CAAC;QACF,OAAO;IACT,CAAC;IAED,yCAAyC;IACzC,QAAQ,CACN,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM;QACzH,MAAM,KAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EACvG,iBAAiB,CAClB,CAAC;AACJ,CAAC"}
@@ -77,16 +77,16 @@ export async function handleRunCommand(commandInput, options) {
77
77
  diagSpinner.start('Scout AI is analyzing process failure output...');
78
78
  const analysis = await analyzeCommandError(fullCommand, exitCode, fullOutput, projectName, filesList, targetLang, options?.native);
79
79
  diagSpinner.stop(chalk.yellow('Failure diagnosis complete.'));
80
- const diagMarkdown = `
81
- ### 🔴 Process Failure Diagnosis
82
- Command: \`${fullCommand}\` (Exit Code ${exitCode})
83
-
84
- ### 🔍 Root Cause Analysis
85
- ${analysis.rootCause}
86
-
87
- ### 💡 Suggested Fix
88
- ${analysis.suggestedFix}
89
- ${analysis.targetFileToFix ? `\n### đŸŽ¯ Suspected File\n\`${analysis.targetFileToFix}\`` : ''}
80
+ const diagMarkdown = `
81
+ ### 🔴 Process Failure Diagnosis
82
+ Command: \`${fullCommand}\` (Exit Code ${exitCode})
83
+
84
+ ### 🔍 Root Cause Analysis
85
+ ${analysis.rootCause}
86
+
87
+ ### 💡 Suggested Fix
88
+ ${analysis.suggestedFix}
89
+ ${analysis.targetFileToFix ? `\n### đŸŽ¯ Suspected File\n\`${analysis.targetFileToFix}\`` : ''}
90
90
  `.trim();
91
91
  safeNote(renderMarkdown(diagMarkdown), 'âš ī¸ Scout AI Failure Diagnosis');
92
92
  const shouldFix = await confirm({
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["git.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAwB1E"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["git.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAwB1E;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CA0ED"}
@@ -22,4 +22,75 @@ export async function getFileOwners(filePath) {
22
22
  }))
23
23
  .sort((a, b) => b.commits - a.commits);
24
24
  }
25
+ export async function createPullRequest(options) {
26
+ const isRepo = await git.checkIsRepo();
27
+ if (!isRepo) {
28
+ return { branchName: '', message: 'Not a git repository.' };
29
+ }
30
+ let currentBranch = 'main';
31
+ try {
32
+ const branchSummary = await git.branch();
33
+ currentBranch = branchSummary.current || 'main';
34
+ }
35
+ catch { }
36
+ const cleanTitle = options.title
37
+ .toLowerCase()
38
+ .replace(/[^a-z0-9]+/g, '-')
39
+ .replace(/^-|-$/g, '')
40
+ .slice(0, 25);
41
+ const branchName = `ft/${options.branchPrefix}-${Date.now().toString().slice(-4)}-${cleanTitle}`;
42
+ try {
43
+ // Checkout new branch for PR & commit changes
44
+ await git.checkoutLocalBranch(branchName);
45
+ await git.add(options.affectedFiles);
46
+ await git.commit(options.commitMessage);
47
+ // Push to origin
48
+ let pushed = false;
49
+ try {
50
+ await git.push('origin', branchName, ['-u']);
51
+ pushed = true;
52
+ }
53
+ catch { }
54
+ // Try creating PR using GitHub CLI if installed
55
+ let ghCreated = false;
56
+ let prUrl = '';
57
+ const { exec } = await import('child_process');
58
+ const { promisify } = await import('util');
59
+ const execAsync = promisify(exec);
60
+ try {
61
+ const { stdout } = await execAsync(`gh pr create --title "${options.commitMessage.replace(/"/g, '\\"')}" --body "Automated Pull Request generated by Scout (FrontTerrain AI)." --head "${branchName}" --base "${currentBranch}"`);
62
+ if (stdout && (stdout.includes('http://') || stdout.includes('https://'))) {
63
+ ghCreated = true;
64
+ prUrl = stdout.trim();
65
+ }
66
+ }
67
+ catch { }
68
+ // Switch user back to active working branch
69
+ try {
70
+ await git.checkout(currentBranch);
71
+ }
72
+ catch { }
73
+ return {
74
+ branchName,
75
+ prUrl: prUrl || undefined,
76
+ ghCreated,
77
+ message: ghCreated
78
+ ? `Pull request opened successfully: ${prUrl}`
79
+ : pushed
80
+ ? `Branch \`${branchName}\` committed & pushed to origin. PR can be opened on GitHub.`
81
+ : `Branch \`${branchName}\` created locally with committed fix.`,
82
+ };
83
+ }
84
+ catch (err) {
85
+ // Restore active branch on failure
86
+ try {
87
+ await git.checkout(currentBranch);
88
+ }
89
+ catch { }
90
+ return {
91
+ branchName,
92
+ message: `Failed to create pull request: ${err?.message || String(err)}`,
93
+ };
94
+ }
95
+ }
25
96
  //# sourceMappingURL=git.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,YAAY,CAAC;AAEvD,MAAM,GAAG,GAAc,SAAS,EAAE,CAAC;AASnC,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB;IAClD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IAExB,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAwD,EAAE,CAAC;IAEtE,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACtD,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACxB,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,KAAK;QACnB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;QAClD,WAAW,EAAE,IAAI,CAAC,QAAQ;KAC3B,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["git.ts"],"names":[],"mappings":"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"}
package/bin/src/index.js CHANGED
@@ -29,12 +29,12 @@ program
29
29
  .name('scout')
30
30
  .alias('ft')
31
31
  .description('FrontTerrain — The Onboarding Co-Pilot for New Codebases')
32
- .version('3.0.3');
32
+ .version('3.0.4');
33
33
  // Header UI on execution with FrontTerrain proprietary logo & version auto-checker
34
34
  program.hook('preAction', async (_thisCommand, actionCommand) => {
35
- intro(renderBranding('3.0.3'));
35
+ intro(renderBranding('3.0.4'));
36
36
  if (actionCommand && actionCommand.name() !== 'upgrade') {
37
- await checkForUpdates('3.0.3');
37
+ await checkForUpdates('3.0.4');
38
38
  }
39
39
  });
40
40
  // PostAction hook for Discovery Layer (runs on successful command completion)
@@ -221,7 +221,7 @@ program
221
221
  .command('upgrade')
222
222
  .description('Check for updates and auto-upgrade Scout to the latest version')
223
223
  .action(async () => {
224
- await checkForUpdates('3.0.3', true);
224
+ await checkForUpdates('3.0.4', true);
225
225
  outro(chalk.cyan('Upgrade check complete.'));
226
226
  });
227
227
  program.parse(process.argv);
@@ -1,5 +1,5 @@
1
1
  import chalk from 'chalk';
2
- export function renderBranding(version = '3.0.3') {
2
+ export function renderBranding(version = '3.0.4') {
3
3
  const logo = chalk.cyan.bold(' ███████╗████████╗') + ' ' + chalk.white.bold('███████╗██████╗ ██████╗ ██╗ ██╗████████╗') + '\n' +
4
4
  chalk.cyan.bold(' ██╔════╝╚══██╔══╝') + ' ' + chalk.white.bold('██╔════╝██╔════╝██╔═══██╗██║ ██║╚══██╔══╝') + '\n' +
5
5
  chalk.cyan.bold(' █████╗ ██║ ') + ' ' + chalk.white.bold('███████╗██║ ██║ ██║██║ ██║ ██║ ') + '\n' +
package/package.json CHANGED
@@ -1,48 +1,48 @@
1
- {
2
- "name": "ft-scout",
3
- "version": "3.0.3",
4
- "type": "module",
5
- "description": "FrontTerrain — The Onboarding Co-Pilot for New Codebases",
6
- "main": "index.js",
7
- "bin": {
8
- "ft": "bin/ft.js",
9
- "scout": "bin/ft.js"
10
- },
11
- "scripts": {
12
- "test": "echo \"Tests passing\" && exit 0",
13
- "build": "tsc"
14
- },
15
- "keywords": [
16
- "cli",
17
- "onboarding",
18
- "git",
19
- "llm",
20
- "ai"
21
- ],
22
- "author": "Front Terrain",
23
- "license": "ISC",
24
- "repository": {
25
- "type": "git",
26
- "url": "git+https://github.com/Front-Terrain/FT-Check.git"
27
- },
28
- "bugs": {
29
- "url": "https://github.com/Front-Terrain/FT-Check/issues"
30
- },
31
- "homepage": "https://github.com/Front-Terrain/FT-Check#readme",
32
- "engines": {
33
- "node": ">=18.0.0"
34
- },
35
- "dependencies": {
36
- "@clack/prompts": "^1.7.0",
37
- "chalk": "^6.0.0",
38
- "commander": "^15.0.0",
39
- "dotenv": "^17.4.2",
40
- "openai": "^7.1.0",
41
- "simple-git": "^3.36.0"
42
- },
43
- "devDependencies": {
44
- "@types/node": "^26.1.2",
45
- "tsx": "^4.23.1",
46
- "typescript": "^7.0.2"
47
- }
48
- }
1
+ {
2
+ "name": "ft-scout",
3
+ "version": "3.0.4",
4
+ "type": "module",
5
+ "description": "FrontTerrain — The Onboarding Co-Pilot for New Codebases",
6
+ "main": "index.js",
7
+ "bin": {
8
+ "ft": "bin/ft.js",
9
+ "scout": "bin/ft.js"
10
+ },
11
+ "scripts": {
12
+ "test": "echo \"Tests passing\" && exit 0",
13
+ "build": "tsc"
14
+ },
15
+ "keywords": [
16
+ "cli",
17
+ "onboarding",
18
+ "git",
19
+ "llm",
20
+ "ai"
21
+ ],
22
+ "author": "Front Terrain",
23
+ "license": "ISC",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/Front-Terrain/FT-Check.git"
27
+ },
28
+ "bugs": {
29
+ "url": "https://github.com/Front-Terrain/FT-Check/issues"
30
+ },
31
+ "homepage": "https://github.com/Front-Terrain/FT-Check#readme",
32
+ "engines": {
33
+ "node": ">=18.0.0"
34
+ },
35
+ "dependencies": {
36
+ "@clack/prompts": "^1.7.0",
37
+ "chalk": "^6.0.0",
38
+ "commander": "^15.0.0",
39
+ "dotenv": "^17.4.2",
40
+ "openai": "^7.1.0",
41
+ "simple-git": "^3.36.0"
42
+ },
43
+ "devDependencies": {
44
+ "@types/node": "^26.1.2",
45
+ "tsx": "^4.23.1",
46
+ "typescript": "^7.0.2"
47
+ }
48
+ }