ft-scout 2.0.6 → 2.0.8
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/.ft/context.json +8 -8
- package/README.md +5 -2
- package/bin/src/commands/configCommand.js +1 -1
- package/bin/src/commands/configCommand.js.map +1 -1
- package/bin/src/commands/init.js +6 -6
- package/bin/src/commands/init.js.map +1 -1
- package/bin/src/commands/setup.d.ts.map +1 -1
- package/bin/src/commands/setup.js +397 -15
- package/bin/src/commands/setup.js.map +1 -1
- package/bin/src/index.js +18 -5
- package/bin/src/index.js.map +1 -1
- package/bin/src/utils/branding.d.ts.map +1 -0
- package/bin/src/utils/branding.js +14 -0
- package/bin/src/utils/branding.js.map +1 -0
- package/bin/src/utils/updateCheck.d.ts.map +1 -0
- package/bin/src/utils/updateCheck.js +108 -0
- package/bin/src/utils/updateCheck.js.map +1 -0
- package/package.json +2 -2
package/.ft/context.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"projectName": "FT-CLI",
|
|
3
3
|
"targetDir": "C:\\Users\\rishi\\FT-CLI",
|
|
4
|
-
"stack": "- **Core Capability**:
|
|
4
|
+
"stack": "- **Core Capability**: Ye project ek aisa platform provide karta hai jo naye codebases ke onboarding ko asaan banata hai, aur developers ko unke projects ke andar navigate karne mein madad karta hai. Iska core capability hai AI-powered git integration jo code review aur analysis ko automate karta hai. \n- **Architecture & Stack**: Is project ki architecture node.js par based hai, aur isme commander, chalk, aur openai jaise libraries ka use kiya gaya hai. Iska tech stack bahut robust hai aur scalable design pattern follow karta hai. \n- **Architectural Moat**: Is project ki unique advantage hai uska AI-powered git integration, jo developers ko real-time code review aur analysis provide karta hai, jisse unki productivity badh jati hai. Iska design pattern bahut modular hai, jisse new features ko easily integrate kiya ja sakta hai.",
|
|
5
5
|
"entryPoint": "bin/ft.js",
|
|
6
6
|
"painPoints": [
|
|
7
|
-
"⚡ [
|
|
8
|
-
"⚡ [
|
|
9
|
-
"⚡ [
|
|
7
|
+
"⚡ [Dependency Management]: Is project ke dependencies bahut hain, jisse dependency management ek bada challenge ban sakta hai. Isse project ke maintenance aur scalability par bura asar pad sakta hai, aur iska solution hai ki dependencies ko regularly update karna chahiye aur redundant dependencies ko remove karna chahiye.",
|
|
8
|
+
"⚡ [Scalability]: Is project ki scalability ek bada challenge ho sakta hai, kyunki isme bahut saare complex operations hain, jaise ki AI-powered code review. Isse project ke performance par bura asar pad sakta hai, aur iska solution hai ki project ke architecture ko optimize karna chahiye aur cache layer implement karna chahiye.",
|
|
9
|
+
"⚡ [Security]: Is project ke security ek bada concern ho sakta hai, kyunki isme sensitive data jaise ki API keys aur database credentials hain. Isse project ke security par bura asar pad sakta hai, aur iska solution hai ki project ke security ko regularly audit karna chahiye aur secure protocols implement karna chahiye."
|
|
10
10
|
],
|
|
11
11
|
"readOrder": [
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
12
|
+
".env -> Ye file project ke environment variables ko store karta hai, jaise ki API keys aur database credentials, jo project ke execution ke liye zaroori hain. Is file ko pehle read karna chahiye taaki project ke context ko samajh sakein.",
|
|
13
|
+
"package.json -> Ye file project ke metadata ko store karta hai, jaise ki project ka naam, version, aur dependencies, jo project ke build aur deployment ke liye zaroori hain. Is file ko doosre number par read karna chahiye taaki project ke dependencies ko samajh sakein.",
|
|
14
|
+
"src/index.ts -> Ye file project ke core business logic ko store karta hai, jaise ki git integration aur AI-powered code review, jo project ke primary function ko define karta hai. Is file ko teesre number par read karna chahiye taaki project ke core logic ko samajh sakein."
|
|
15
15
|
],
|
|
16
|
-
"createdAt": "2026-08-
|
|
16
|
+
"createdAt": "2026-08-03T15:08:19.224Z",
|
|
17
17
|
"language": "Hindi"
|
|
18
18
|
}
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# scout
|
|
2
2
|
|
|
3
3
|
FrontTerrain — The Onboarding Co-Pilot for New Codebases.
|
|
4
4
|
|
|
@@ -12,7 +12,7 @@ npm install -g ft-scout
|
|
|
12
12
|
|
|
13
13
|
## Usage
|
|
14
14
|
|
|
15
|
-
Once installed, you can use the `ft` or `
|
|
15
|
+
Once installed, you can use the `ft` or `scout` commands.
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
# Initialize learning on a local or remote repository
|
|
@@ -41,5 +41,8 @@ ft risky
|
|
|
41
41
|
|
|
42
42
|
# Diagnose local setup, missing .env files, and internet connection
|
|
43
43
|
ft setup
|
|
44
|
+
|
|
45
|
+
# Check for updates and auto-upgrade Scout to the latest version
|
|
46
|
+
scout upgrade
|
|
44
47
|
```
|
|
45
48
|
|
|
@@ -8,7 +8,7 @@ export async function handleConfig(options) {
|
|
|
8
8
|
saveFtConfig(cfg);
|
|
9
9
|
safeNote(`Confidential Data Access: ${chalk.bold.green('ALLOWED')}\n\n` +
|
|
10
10
|
`Scout is now authorized to analyze sensitive configuration files, schema manifests, and environment templates.\n` +
|
|
11
|
-
`This improves accuracy for \`
|
|
11
|
+
`This improves accuracy for \`scout brief\`, \`scout audit\`, and \`scout scan\` about ~40%.`, '⚙️ FrontTerrain Permission Config');
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
14
|
if (options?.deny) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configCommand.js","sourceRoot":"","sources":["configCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAoD;IACrF,IAAI,GAAG,GAAG,YAAY,EAAE,CAAC;IAEzB,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC7B,YAAY,CAAC,GAAG,CAAC,CAAC;QAClB,QAAQ,CACN,6BAA6B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;YAC5D,kHAAkH;YAClH,
|
|
1
|
+
{"version":3,"file":"configCommand.js","sourceRoot":"","sources":["configCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAoD;IACrF,IAAI,GAAG,GAAG,YAAY,EAAE,CAAC;IAEzB,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC7B,YAAY,CAAC,GAAG,CAAC,CAAC;QAClB,QAAQ,CACN,6BAA6B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;YAC5D,kHAAkH;YAClH,6FAA6F,EAC/F,mCAAmC,CACpC,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC9B,YAAY,CAAC,GAAG,CAAC,CAAC;QAClB,QAAQ,CACN,6BAA6B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM;YACzD,yFAAyF,EAC3F,mCAAmC,CACpC,CAAC;QACF,OAAO;IACT,CAAC;IAED,QAAQ,CACN,mCAAmC;QACjC,iCAAiC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;QACxH,kBAAkB;QAClB,qBAAqB,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI;QAC/D,qBAAqB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,EACvD,mCAAmC,CACpC,CAAC;AACJ,CAAC"}
|
package/bin/src/commands/init.js
CHANGED
|
@@ -168,7 +168,7 @@ export async function handleInit(repoUrl, options) {
|
|
|
168
168
|
}
|
|
169
169
|
s.start(`Cloning remote repository (${chalk.cyan(gitTargetUrl)})...`);
|
|
170
170
|
const repoName = path.basename(gitTargetUrl, '.git') || 'cloned-repo';
|
|
171
|
-
const tempParent = path.join(os.tmpdir(), '
|
|
171
|
+
const tempParent = path.join(os.tmpdir(), 'scout-repos');
|
|
172
172
|
targetDir = path.join(tempParent, `${repoName}-${Date.now()}`);
|
|
173
173
|
if (!fs.existsSync(tempParent)) {
|
|
174
174
|
fs.mkdirSync(tempParent, { recursive: true });
|
|
@@ -225,8 +225,8 @@ export async function handleInit(repoUrl, options) {
|
|
|
225
225
|
note(chalk.red(`Could not clone repository with the provided token.\n` +
|
|
226
226
|
`Error details: ${retryErr?.message || 'Authentication error'}\n\n` +
|
|
227
227
|
`Alternative options:\n` +
|
|
228
|
-
` • Use SSH: ${chalk.cyan('
|
|
229
|
-
` • Or clone locally first: ${chalk.cyan('
|
|
228
|
+
` • Use SSH: ${chalk.cyan('scout init git@github.com:owner/repo.git')}\n` +
|
|
229
|
+
` • Or clone locally first: ${chalk.cyan('scout init ./my-repo-folder')}`), '❌ Authentication Failed');
|
|
230
230
|
return;
|
|
231
231
|
}
|
|
232
232
|
}
|
|
@@ -238,9 +238,9 @@ export async function handleInit(repoUrl, options) {
|
|
|
238
238
|
else {
|
|
239
239
|
note(chalk.red(`The specified repository is private or does not exist.\n\n` +
|
|
240
240
|
chalk.bold('🔒 How to access private repositories:') + '\n' +
|
|
241
|
-
` • Use SSH URL: ${chalk.cyan('
|
|
242
|
-
` • Or use PAT Token URL: ${chalk.cyan('
|
|
243
|
-
` • Or clone locally first and run: ${chalk.cyan('
|
|
241
|
+
` • Use SSH URL: ${chalk.cyan('scout init git@github.com:owner/repo.git')}\n` +
|
|
242
|
+
` • Or use PAT Token URL: ${chalk.cyan('scout init https://<TOKEN>@github.com/owner/repo.git')}\n` +
|
|
243
|
+
` • Or clone locally first and run: ${chalk.cyan('scout init ./my-repo-folder')}`), '❌ Clone Error');
|
|
244
244
|
return;
|
|
245
245
|
}
|
|
246
246
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["setup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["setup.ts"],"names":[],"mappings":"AAaA,wBAAsB,WAAW,kBAuZhC"}
|
|
@@ -1,29 +1,58 @@
|
|
|
1
|
-
import { spinner
|
|
1
|
+
import { spinner } from '@clack/prompts';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import path from 'path';
|
|
5
|
+
import { execSync } from 'child_process';
|
|
6
|
+
import { safeNote } from '../utils/markdown.js';
|
|
5
7
|
export async function handleSetup() {
|
|
6
8
|
const s = spinner();
|
|
7
|
-
s.start('Diagnosing local runtime environment...');
|
|
8
|
-
const
|
|
9
|
+
s.start('Diagnosing local runtime environment & dependencies...');
|
|
10
|
+
const cwd = process.cwd();
|
|
9
11
|
const passes = [];
|
|
12
|
+
const issues = [];
|
|
13
|
+
const manualDependencies = [];
|
|
14
|
+
// Helper to check if a command executable exists on system PATH
|
|
15
|
+
function commandExists(cmd) {
|
|
16
|
+
try {
|
|
17
|
+
const checkCmd = process.platform === 'win32' ? `where ${cmd}` : `command -v ${cmd}`;
|
|
18
|
+
execSync(checkCmd, { stdio: 'ignore', cwd });
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
try {
|
|
23
|
+
execSync(`${cmd} --version`, { stdio: 'ignore', cwd });
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
10
31
|
// Check 1: .env vs .env.example
|
|
11
|
-
const cwd = process.cwd();
|
|
12
32
|
const hasEnv = fs.existsSync(path.join(cwd, '.env'));
|
|
13
33
|
const hasExample = fs.existsSync(path.join(cwd, '.env.example'));
|
|
14
34
|
if (!hasEnv && hasExample) {
|
|
15
|
-
|
|
35
|
+
try {
|
|
36
|
+
fs.copyFileSync(path.join(cwd, '.env.example'), path.join(cwd, '.env'));
|
|
37
|
+
passes.push(`${chalk.green('✓')} Auto-created ${chalk.cyan('.env')} file from ${chalk.cyan('.env.example')}.`);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
issues.push(`Found .env.example but failed to copy to .env.`);
|
|
41
|
+
}
|
|
16
42
|
}
|
|
17
43
|
else if (hasEnv) {
|
|
18
44
|
passes.push(`${chalk.green('✓')} Environment file .env present.`);
|
|
19
45
|
}
|
|
20
|
-
// Check 2: Node version check
|
|
46
|
+
// Check 2: Node version check
|
|
21
47
|
const pkgPath = path.join(cwd, 'package.json');
|
|
22
48
|
if (fs.existsSync(pkgPath)) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
49
|
+
try {
|
|
50
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
51
|
+
if (pkg.engines?.node) {
|
|
52
|
+
passes.push(`${chalk.green('✓')} Expected Node engine: ${pkg.engines.node} (Current: ${process.version})`);
|
|
53
|
+
}
|
|
26
54
|
}
|
|
55
|
+
catch { }
|
|
27
56
|
}
|
|
28
57
|
// Check 3: Internet & Web Access check
|
|
29
58
|
try {
|
|
@@ -38,11 +67,364 @@ export async function handleSetup() {
|
|
|
38
67
|
catch {
|
|
39
68
|
issues.push(`No active internet access detected. Scout web search & remote git cloning will be disabled.`);
|
|
40
69
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
70
|
+
// Step 2: Auto-Install Repository Dependencies
|
|
71
|
+
s.message('Scanning project manifests & installing dependencies...');
|
|
72
|
+
// 1. Node.js / JavaScript / TypeScript Ecosystem
|
|
73
|
+
if (fs.existsSync(pkgPath)) {
|
|
74
|
+
const hasBunLock = fs.existsSync(path.join(cwd, 'bun.lockb')) || fs.existsSync(path.join(cwd, 'bun.lock'));
|
|
75
|
+
const hasPnpmLock = fs.existsSync(path.join(cwd, 'pnpm-lock.yaml'));
|
|
76
|
+
const hasYarnLock = fs.existsSync(path.join(cwd, 'yarn.lock'));
|
|
77
|
+
if (hasBunLock) {
|
|
78
|
+
if (commandExists('bun')) {
|
|
79
|
+
s.message('Installing dependencies with Bun (bun install)...');
|
|
80
|
+
try {
|
|
81
|
+
execSync('bun install', { cwd, stdio: 'pipe', timeout: 300000 });
|
|
82
|
+
passes.push(`${chalk.green('✓')} Installed Bun dependencies (bun install).`);
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
manualDependencies.push({
|
|
86
|
+
name: 'Bun Dependencies (`bun install`)',
|
|
87
|
+
url: 'https://bun.sh',
|
|
88
|
+
reason: '`bun install` command failed during execution.'
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
manualDependencies.push({
|
|
94
|
+
name: 'Bun CLI runtime',
|
|
95
|
+
url: 'https://bun.sh',
|
|
96
|
+
reason: 'Project requires Bun (`bun.lock` found) but `bun` is not installed on PATH.'
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else if (hasPnpmLock) {
|
|
101
|
+
if (commandExists('pnpm')) {
|
|
102
|
+
s.message('Installing dependencies with pnpm (pnpm install)...');
|
|
103
|
+
try {
|
|
104
|
+
execSync('pnpm install', { cwd, stdio: 'pipe', timeout: 300000 });
|
|
105
|
+
passes.push(`${chalk.green('✓')} Installed pnpm dependencies (pnpm install).`);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
manualDependencies.push({
|
|
109
|
+
name: 'pnpm Dependencies (`pnpm install`)',
|
|
110
|
+
url: 'https://pnpm.io/installation',
|
|
111
|
+
reason: '`pnpm install` command failed.'
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
manualDependencies.push({
|
|
117
|
+
name: 'pnpm Package Manager',
|
|
118
|
+
url: 'https://pnpm.io/installation',
|
|
119
|
+
reason: 'Project uses pnpm (`pnpm-lock.yaml` found) but `pnpm` is not installed on PATH.'
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else if (hasYarnLock) {
|
|
124
|
+
if (commandExists('yarn')) {
|
|
125
|
+
s.message('Installing dependencies with Yarn (yarn install)...');
|
|
126
|
+
try {
|
|
127
|
+
execSync('yarn install', { cwd, stdio: 'pipe', timeout: 300000 });
|
|
128
|
+
passes.push(`${chalk.green('✓')} Installed Yarn dependencies (yarn install).`);
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
manualDependencies.push({
|
|
132
|
+
name: 'Yarn Dependencies (`yarn install`)',
|
|
133
|
+
url: 'https://yarnpkg.com/getting-started/install',
|
|
134
|
+
reason: '`yarn install` command failed.'
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
manualDependencies.push({
|
|
140
|
+
name: 'Yarn Package Manager',
|
|
141
|
+
url: 'https://yarnpkg.com/getting-started/install',
|
|
142
|
+
reason: 'Project uses Yarn (`yarn.lock` found) but `yarn` is not installed on PATH.'
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
// Standard npm project
|
|
148
|
+
if (commandExists('npm')) {
|
|
149
|
+
s.message('Installing dependencies with npm (npm install)...');
|
|
150
|
+
try {
|
|
151
|
+
execSync('npm install', { cwd, stdio: 'pipe', timeout: 300000 });
|
|
152
|
+
passes.push(`${chalk.green('✓')} Installed Node dependencies (npm install).`);
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
manualDependencies.push({
|
|
156
|
+
name: 'npm Dependencies (`npm install`)',
|
|
157
|
+
url: 'https://nodejs.org/',
|
|
158
|
+
reason: '`npm install` command failed.'
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
manualDependencies.push({
|
|
164
|
+
name: 'Node.js / npm',
|
|
165
|
+
url: 'https://nodejs.org/',
|
|
166
|
+
reason: '`package.json` present but `npm` is not installed on PATH.'
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// 2. Python Ecosystem
|
|
172
|
+
const hasPipfile = fs.existsSync(path.join(cwd, 'Pipfile'));
|
|
173
|
+
const hasPoetry = fs.existsSync(path.join(cwd, 'poetry.lock')) || fs.existsSync(path.join(cwd, 'pyproject.toml'));
|
|
174
|
+
const hasReqs = fs.existsSync(path.join(cwd, 'requirements.txt'));
|
|
175
|
+
if (hasPipfile) {
|
|
176
|
+
if (commandExists('pipenv')) {
|
|
177
|
+
s.message('Installing Python dependencies with Pipenv...');
|
|
178
|
+
try {
|
|
179
|
+
execSync('pipenv install', { cwd, stdio: 'pipe', timeout: 300000 });
|
|
180
|
+
passes.push(`${chalk.green('✓')} Installed Python dependencies (pipenv install).`);
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
manualDependencies.push({
|
|
184
|
+
name: 'Pipenv Dependencies',
|
|
185
|
+
url: 'https://pipenv.pypa.io/',
|
|
186
|
+
reason: '`pipenv install` command failed.'
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
manualDependencies.push({
|
|
192
|
+
name: 'Pipenv CLI Tool',
|
|
193
|
+
url: 'https://pipenv.pypa.io/',
|
|
194
|
+
reason: '`Pipfile` found but `pipenv` is not installed.'
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else if (hasPoetry) {
|
|
199
|
+
if (commandExists('poetry')) {
|
|
200
|
+
s.message('Installing Python dependencies with Poetry...');
|
|
201
|
+
try {
|
|
202
|
+
execSync('poetry install', { cwd, stdio: 'pipe', timeout: 300000 });
|
|
203
|
+
passes.push(`${chalk.green('✓')} Installed Python dependencies (poetry install).`);
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
manualDependencies.push({
|
|
207
|
+
name: 'Poetry Dependencies',
|
|
208
|
+
url: 'https://python-poetry.org/docs/#installation',
|
|
209
|
+
reason: '`poetry install` command failed.'
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
else if (fs.existsSync(path.join(cwd, 'poetry.lock'))) {
|
|
214
|
+
manualDependencies.push({
|
|
215
|
+
name: 'Poetry Dependency Manager',
|
|
216
|
+
url: 'https://python-poetry.org/docs/#installation',
|
|
217
|
+
reason: '`poetry.lock` found but `poetry` is not installed on PATH.'
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else if (hasReqs) {
|
|
222
|
+
const pyCmd = commandExists('python3') ? 'python3' : commandExists('python') ? 'python' : null;
|
|
223
|
+
if (pyCmd) {
|
|
224
|
+
s.message('Installing Python dependencies (pip install -r requirements.txt)...');
|
|
225
|
+
try {
|
|
226
|
+
execSync(`${pyCmd} -m pip install -r requirements.txt`, { cwd, stdio: 'pipe', timeout: 300000 });
|
|
227
|
+
passes.push(`${chalk.green('✓')} Installed Python requirements (pip install -r requirements.txt).`);
|
|
228
|
+
}
|
|
229
|
+
catch {
|
|
230
|
+
manualDependencies.push({
|
|
231
|
+
name: 'Python Dependencies (`requirements.txt`)',
|
|
232
|
+
url: 'https://pip.pypa.io/',
|
|
233
|
+
reason: '`pip install -r requirements.txt` command failed.'
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
manualDependencies.push({
|
|
239
|
+
name: 'Python 3 Environment',
|
|
240
|
+
url: 'https://www.python.org/downloads/',
|
|
241
|
+
reason: '`requirements.txt` found but Python is not installed on PATH.'
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// 3. Rust Ecosystem
|
|
246
|
+
if (fs.existsSync(path.join(cwd, 'Cargo.toml'))) {
|
|
247
|
+
if (commandExists('cargo')) {
|
|
248
|
+
s.message('Fetching Rust crate dependencies (cargo fetch)...');
|
|
249
|
+
try {
|
|
250
|
+
execSync('cargo fetch', { cwd, stdio: 'pipe', timeout: 300000 });
|
|
251
|
+
passes.push(`${chalk.green('✓')} Fetched Rust crate dependencies (cargo fetch).`);
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
manualDependencies.push({
|
|
255
|
+
name: 'Rust Crate Dependencies (`cargo fetch`)',
|
|
256
|
+
url: 'https://rustup.rs/',
|
|
257
|
+
reason: '`cargo fetch` command failed.'
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
manualDependencies.push({
|
|
263
|
+
name: 'Rust / Cargo toolchain',
|
|
264
|
+
url: 'https://rustup.rs/',
|
|
265
|
+
reason: '`Cargo.toml` found but `cargo` is not installed on PATH.'
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// 4. Go Ecosystem
|
|
270
|
+
if (fs.existsSync(path.join(cwd, 'go.mod'))) {
|
|
271
|
+
if (commandExists('go')) {
|
|
272
|
+
s.message('Downloading Go module dependencies (go mod download)...');
|
|
273
|
+
try {
|
|
274
|
+
execSync('go mod download', { cwd, stdio: 'pipe', timeout: 300000 });
|
|
275
|
+
passes.push(`${chalk.green('✓')} Downloaded Go module dependencies (go mod download).`);
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
manualDependencies.push({
|
|
279
|
+
name: 'Go Module Dependencies (`go mod download`)',
|
|
280
|
+
url: 'https://go.dev/doc/install',
|
|
281
|
+
reason: '`go mod download` command failed.'
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
manualDependencies.push({
|
|
287
|
+
name: 'Go Programming Language SDK',
|
|
288
|
+
url: 'https://go.dev/doc/install',
|
|
289
|
+
reason: '`go.mod` found but `go` compiler is not installed on PATH.'
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
// 5. Ruby Ecosystem
|
|
294
|
+
if (fs.existsSync(path.join(cwd, 'Gemfile'))) {
|
|
295
|
+
if (commandExists('bundle')) {
|
|
296
|
+
s.message('Installing Ruby gems (bundle install)...');
|
|
297
|
+
try {
|
|
298
|
+
execSync('bundle install', { cwd, stdio: 'pipe', timeout: 300000 });
|
|
299
|
+
passes.push(`${chalk.green('✓')} Installed Ruby gems (bundle install).`);
|
|
300
|
+
}
|
|
301
|
+
catch {
|
|
302
|
+
manualDependencies.push({
|
|
303
|
+
name: 'Ruby Gems (`bundle install`)',
|
|
304
|
+
url: 'https://bundler.io/',
|
|
305
|
+
reason: '`bundle install` command failed.'
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
manualDependencies.push({
|
|
311
|
+
name: 'Bundler / Ruby',
|
|
312
|
+
url: 'https://bundler.io/',
|
|
313
|
+
reason: '`Gemfile` found but `bundle` is not installed on PATH.'
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
// 6. PHP Ecosystem
|
|
318
|
+
if (fs.existsSync(path.join(cwd, 'composer.json'))) {
|
|
319
|
+
if (commandExists('composer')) {
|
|
320
|
+
s.message('Installing PHP Composer dependencies (composer install)...');
|
|
321
|
+
try {
|
|
322
|
+
execSync('composer install', { cwd, stdio: 'pipe', timeout: 300000 });
|
|
323
|
+
passes.push(`${chalk.green('✓')} Installed PHP Composer packages (composer install).`);
|
|
324
|
+
}
|
|
325
|
+
catch {
|
|
326
|
+
manualDependencies.push({
|
|
327
|
+
name: 'Composer Dependencies (`composer install`)',
|
|
328
|
+
url: 'https://getcomposer.org/',
|
|
329
|
+
reason: '`composer install` command failed.'
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
manualDependencies.push({
|
|
335
|
+
name: 'Composer PHP Package Manager',
|
|
336
|
+
url: 'https://getcomposer.org/',
|
|
337
|
+
reason: '`composer.json` found but `composer` is not installed on PATH.'
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
// 7. Java / Gradle / Maven
|
|
342
|
+
const hasGradlew = fs.existsSync(path.join(cwd, 'gradlew')) || fs.existsSync(path.join(cwd, 'gradlew.bat'));
|
|
343
|
+
const hasGradle = fs.existsSync(path.join(cwd, 'build.gradle')) || fs.existsSync(path.join(cwd, 'build.gradle.kts'));
|
|
344
|
+
const hasMvnw = fs.existsSync(path.join(cwd, 'mvnw')) || fs.existsSync(path.join(cwd, 'mvnw.cmd'));
|
|
345
|
+
const hasMaven = fs.existsSync(path.join(cwd, 'pom.xml'));
|
|
346
|
+
if (hasGradlew || hasGradle) {
|
|
347
|
+
const gradleExecutable = hasGradlew ? (process.platform === 'win32' ? '.\\gradlew.bat' : './gradlew') : 'gradle';
|
|
348
|
+
if (hasGradlew || commandExists('gradle')) {
|
|
349
|
+
s.message('Resolving Gradle dependencies...');
|
|
350
|
+
try {
|
|
351
|
+
execSync(`${gradleExecutable} dependencies`, { cwd, stdio: 'pipe', timeout: 300000 });
|
|
352
|
+
passes.push(`${chalk.green('✓')} Resolved Gradle dependencies.`);
|
|
353
|
+
}
|
|
354
|
+
catch {
|
|
355
|
+
manualDependencies.push({
|
|
356
|
+
name: 'Gradle Dependencies',
|
|
357
|
+
url: 'https://gradle.org/install/',
|
|
358
|
+
reason: 'Gradle dependencies resolution command failed.'
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
manualDependencies.push({
|
|
364
|
+
name: 'Gradle Build Tool',
|
|
365
|
+
url: 'https://gradle.org/install/',
|
|
366
|
+
reason: 'Gradle build file found but `gradle` is not installed on PATH.'
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
else if (hasMvnw || hasMaven) {
|
|
371
|
+
const mvnExecutable = hasMvnw ? (process.platform === 'win32' ? '.\\mvnw.cmd' : './mvnw') : 'mvn';
|
|
372
|
+
if (hasMvnw || commandExists('mvn')) {
|
|
373
|
+
s.message('Resolving Maven dependencies (dependency:resolve)...');
|
|
374
|
+
try {
|
|
375
|
+
execSync(`${mvnExecutable} dependency:resolve`, { cwd, stdio: 'pipe', timeout: 300000 });
|
|
376
|
+
passes.push(`${chalk.green('✓')} Resolved Maven dependencies.`);
|
|
377
|
+
}
|
|
378
|
+
catch {
|
|
379
|
+
manualDependencies.push({
|
|
380
|
+
name: 'Maven Dependencies',
|
|
381
|
+
url: 'https://maven.apache.org/install.html',
|
|
382
|
+
reason: 'Maven `dependency:resolve` command failed.'
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
else {
|
|
387
|
+
manualDependencies.push({
|
|
388
|
+
name: 'Apache Maven',
|
|
389
|
+
url: 'https://maven.apache.org/install.html',
|
|
390
|
+
reason: '`pom.xml` found but `mvn` is not installed on PATH.'
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
// 8. Docker / Container check
|
|
395
|
+
if (fs.existsSync(path.join(cwd, 'Dockerfile')) || fs.existsSync(path.join(cwd, 'docker-compose.yml')) || fs.existsSync(path.join(cwd, 'compose.yaml'))) {
|
|
396
|
+
if (commandExists('docker')) {
|
|
397
|
+
passes.push(`${chalk.green('✓')} Docker CLI detected on PATH.`);
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
manualDependencies.push({
|
|
401
|
+
name: 'Docker Desktop / Engine',
|
|
402
|
+
url: 'https://docs.docker.com/get-docker/',
|
|
403
|
+
reason: '`Dockerfile` or `docker-compose.yml` present, but `docker` CLI was not found.'
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
s.stop('Setup & dependency configuration complete.');
|
|
408
|
+
// Build final report
|
|
409
|
+
const reportLines = [];
|
|
410
|
+
for (const pass of passes) {
|
|
411
|
+
reportLines.push(`${pass}`);
|
|
412
|
+
}
|
|
413
|
+
for (const issue of issues) {
|
|
414
|
+
reportLines.push(`${chalk.yellow('⚠️')} ${issue}`);
|
|
415
|
+
}
|
|
416
|
+
if (manualDependencies.length > 0) {
|
|
417
|
+
reportLines.push('');
|
|
418
|
+
reportLines.push(`${chalk.bold.red('❌ Uninstalled Dependencies / Missing Tools:')}`);
|
|
419
|
+
reportLines.push(chalk.dim('Please install the required tools using the URLs below:'));
|
|
420
|
+
reportLines.push('');
|
|
421
|
+
for (const dep of manualDependencies) {
|
|
422
|
+
reportLines.push(` • ${chalk.bold.yellow(dep.name)}`);
|
|
423
|
+
reportLines.push(` Reason: ${dep.reason}`);
|
|
424
|
+
reportLines.push(` Download/Install URL: ${chalk.cyan.underline(dep.url)}`);
|
|
425
|
+
reportLines.push('');
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
safeNote(reportLines.join('\n'), '🛠️ Setup Doctor & Dependency Manager');
|
|
47
429
|
}
|
|
48
430
|
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,CAAC,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,gCAAgC;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;IAEjE,IAAI,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;IAC5E,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IACpE,CAAC;IAED,+DAA+D;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,GAAG,CAAC,OAAO,CAAC,IAAI,cAAc,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACxG,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,6CAA6C,QAAQ,CAAC,MAAM,sCAAsC,CAAC,CAAC;QAClH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;IAC7G,CAAC;IAED,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAG;QACb,GAAG,MAAM;QACT,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;KACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["setup.ts"],"names":[],"mappings":"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"}
|
package/bin/src/index.js
CHANGED
|
@@ -16,14 +16,20 @@ import { handleAudit } from './commands/audit.js';
|
|
|
16
16
|
import { handleHistory } from './commands/history.js';
|
|
17
17
|
import { handleUndo } from './commands/undo.js';
|
|
18
18
|
import { handleConfig } from './commands/configCommand.js';
|
|
19
|
+
import { renderBranding } from './utils/branding.js';
|
|
20
|
+
import { checkForUpdates } from './utils/updateCheck.js';
|
|
19
21
|
const program = new Command();
|
|
20
22
|
program
|
|
21
|
-
.name('
|
|
23
|
+
.name('scout')
|
|
24
|
+
.alias('ft')
|
|
22
25
|
.description('FrontTerrain — The Onboarding Co-Pilot for New Codebases')
|
|
23
|
-
.version('2.0.
|
|
24
|
-
// Header UI on execution
|
|
25
|
-
program.hook('preAction', () => {
|
|
26
|
-
intro(
|
|
26
|
+
.version('2.0.8');
|
|
27
|
+
// Header UI on execution with FrontTerrain proprietary logo & version auto-checker
|
|
28
|
+
program.hook('preAction', async (_thisCommand, actionCommand) => {
|
|
29
|
+
intro(renderBranding('2.0.8'));
|
|
30
|
+
if (actionCommand && actionCommand.name() !== 'upgrade') {
|
|
31
|
+
await checkForUpdates('2.0.8');
|
|
32
|
+
}
|
|
27
33
|
});
|
|
28
34
|
// Command definitions
|
|
29
35
|
program
|
|
@@ -149,5 +155,12 @@ program
|
|
|
149
155
|
await handleWebSearch(query, options);
|
|
150
156
|
outro(chalk.cyan('Internet search complete.'));
|
|
151
157
|
});
|
|
158
|
+
program
|
|
159
|
+
.command('upgrade')
|
|
160
|
+
.description('Check for updates and auto-upgrade Scout to the latest version')
|
|
161
|
+
.action(async () => {
|
|
162
|
+
await checkForUpdates('2.0.8', true);
|
|
163
|
+
outro(chalk.cyan('Upgrade check complete.'));
|
|
164
|
+
});
|
|
152
165
|
program.parse(process.argv);
|
|
153
166
|
//# sourceMappingURL=index.js.map
|
package/bin/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["branding.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,OAAO,GAAE,MAAgB,GAAG,MAAM,CAehE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export function renderBranding(version = '2.0.8') {
|
|
3
|
+
const logo = chalk.cyan.bold(' ███████╗████████╗') + ' ' + chalk.white.bold('███████╗██████╗ ██████╗ ██╗ ██╗████████╗') + '\n' +
|
|
4
|
+
chalk.cyan.bold(' ██╔════╝╚══██╔══╝') + ' ' + chalk.white.bold('██╔════╝██╔════╝██╔═══██╗██║ ██║╚══██╔══╝') + '\n' +
|
|
5
|
+
chalk.cyan.bold(' █████╗ ██║ ') + ' ' + chalk.white.bold('███████╗██║ ██║ ██║██║ ██║ ██║ ') + '\n' +
|
|
6
|
+
chalk.cyan.bold(' ██╔══╝ ██║ ') + ' ' + chalk.white.bold('╚════██║██║ ██║ ██║██║ ██║ ██║ ') + '\n' +
|
|
7
|
+
chalk.cyan.bold(' ██║ ██║ ') + ' ' + chalk.white.bold('███████║╚██████╗╚██████╔╝╚██████╔╝ ██║ ') + '\n' +
|
|
8
|
+
chalk.cyan.bold(' ╚═╝ ╚═╝ ') + ' ' + chalk.white.bold('╚══════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ');
|
|
9
|
+
const badge = chalk.bgCyan.black.bold(` FRONTTERRAIN SCOUT v${version} `) +
|
|
10
|
+
' ' +
|
|
11
|
+
chalk.dim('│ Proprietary Codebase Intelligence Co-Pilot');
|
|
12
|
+
return `\n${logo}\n\n${badge}\n`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=branding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branding.js","sourceRoot":"","sources":["branding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,cAAc,CAAC,OAAO,GAAW,OAAO;IACtD,MAAM,IAAI,GACR,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,GAAG,IAAI;QACrH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,GAAG,IAAI;QACtH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,GAAG,IAAI;QACtH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,GAAG,IAAI;QACtH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,GAAG,IAAI;QACtH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAElH,MAAM,KAAK,GACT,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,OAAO,GAAG,CAAC;QAC3D,GAAG;QACH,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAE5D,OAAO,KAAK,IAAI,OAAO,KAAK,IAAI,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateCheck.d.ts","sourceRoot":"","sources":["updateCheck.ts"],"names":[],"mappings":"AA0BA,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBjE;AAED,wBAAsB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAsExG"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { confirm, spinner, note } from '@clack/prompts';
|
|
6
|
+
import { execSync } from 'child_process';
|
|
7
|
+
const CACHE_FILE = path.join(os.homedir(), '.scout-update-cache.json');
|
|
8
|
+
const CHECK_INTERVAL_MS = 4 * 60 * 60 * 1000; // 4 hours
|
|
9
|
+
function semverGt(latest, current) {
|
|
10
|
+
const parse = (v) => v.replace(/^v/, '').split('.').map((n) => parseInt(n, 10) || 0);
|
|
11
|
+
const l = parse(latest);
|
|
12
|
+
const c = parse(current);
|
|
13
|
+
for (let i = 0; i < 3; i++) {
|
|
14
|
+
if ((l[i] ?? 0) > (c[i] ?? 0))
|
|
15
|
+
return true;
|
|
16
|
+
if ((l[i] ?? 0) < (c[i] ?? 0))
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
export async function fetchLatestVersion() {
|
|
22
|
+
const controller = new AbortController();
|
|
23
|
+
const timeoutId = setTimeout(() => controller.abort(), 2500);
|
|
24
|
+
const packages = ['ft-scout', 'scout'];
|
|
25
|
+
for (const pkg of packages) {
|
|
26
|
+
try {
|
|
27
|
+
const res = await fetch(`https://registry.npmjs.org/${pkg}/latest`, {
|
|
28
|
+
signal: controller.signal,
|
|
29
|
+
headers: { 'User-Agent': 'FrontTerrain-Scout-CLI' },
|
|
30
|
+
});
|
|
31
|
+
if (res.ok) {
|
|
32
|
+
const data = (await res.json());
|
|
33
|
+
if (data.version) {
|
|
34
|
+
clearTimeout(timeoutId);
|
|
35
|
+
return data.version;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Continue to next package or fail silently
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
clearTimeout(timeoutId);
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
export async function checkForUpdates(currentVersion, forceCheck = false) {
|
|
47
|
+
let cache = null;
|
|
48
|
+
const now = Date.now();
|
|
49
|
+
try {
|
|
50
|
+
if (fs.existsSync(CACHE_FILE)) {
|
|
51
|
+
cache = JSON.parse(fs.readFileSync(CACHE_FILE, 'utf-8'));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
cache = null;
|
|
56
|
+
}
|
|
57
|
+
let latestVersion = cache?.latestVersion || null;
|
|
58
|
+
if (forceCheck || !cache || now - cache.lastCheck > CHECK_INTERVAL_MS) {
|
|
59
|
+
const fetched = await fetchLatestVersion();
|
|
60
|
+
if (fetched) {
|
|
61
|
+
latestVersion = fetched;
|
|
62
|
+
try {
|
|
63
|
+
fs.writeFileSync(CACHE_FILE, JSON.stringify({ lastCheck: now, latestVersion: fetched }, null, 2));
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Ignore cache write errors
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (latestVersion && semverGt(latestVersion, currentVersion)) {
|
|
71
|
+
console.log('');
|
|
72
|
+
note(chalk.cyan(`A new version of FrontTerrain Scout is available!`) +
|
|
73
|
+
'\n' +
|
|
74
|
+
`Current: ${chalk.yellow('v' + currentVersion)} → Latest: ${chalk.green.bold('v' + latestVersion)}\n\n` +
|
|
75
|
+
`Run manually: ${chalk.cyan('npm install -g ft-scout')}`, '🚀 Update Available');
|
|
76
|
+
try {
|
|
77
|
+
const shouldUpgrade = await confirm({
|
|
78
|
+
message: `Would you like to auto-upgrade FrontTerrain Scout to v${latestVersion} right now?`,
|
|
79
|
+
initialValue: true,
|
|
80
|
+
});
|
|
81
|
+
if (shouldUpgrade && typeof shouldUpgrade === 'boolean') {
|
|
82
|
+
const s = spinner();
|
|
83
|
+
s.start(`Upgrading FrontTerrain Scout to v${latestVersion}...`);
|
|
84
|
+
try {
|
|
85
|
+
execSync('npm install -g ft-scout', { stdio: 'pipe' });
|
|
86
|
+
s.stop(chalk.green(`Successfully upgraded FrontTerrain Scout to v${latestVersion}! 🎉`));
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
try {
|
|
90
|
+
execSync('npm install -g scout', { stdio: 'pipe' });
|
|
91
|
+
s.stop(chalk.green(`Successfully upgraded FrontTerrain Scout to v${latestVersion}! 🎉`));
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
s.stop(chalk.red(`Failed to auto-upgrade automatically.`));
|
|
95
|
+
console.log(chalk.dim(`Please run manually: npm install -g ft-scout`));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Ignored if cancelled or non-interactive terminal
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else if (forceCheck) {
|
|
105
|
+
note(chalk.green(`You are already using the latest version of FrontTerrain Scout (v${currentVersion}).`), '✨ Up to Date');
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=updateCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["updateCheck.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ft-scout",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.8",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "FrontTerrain — The Onboarding Co-Pilot for New Codebases",
|
|
6
6
|
"main": "index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"ft": "bin/ft.js",
|
|
9
|
-
"
|
|
9
|
+
"scout": "bin/ft.js"
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
12
|
"test": "echo \"Tests passing\" && exit 0",
|