ft-scout 2.0.7 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["setup.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,kBA+ChC"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["setup.ts"],"names":[],"mappings":"AAaA,wBAAsB,WAAW,kBAuZhC"}
@@ -1,29 +1,58 @@
1
- import { spinner, note } from '@clack/prompts';
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 issues = [];
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
- issues.push(`Missing ${chalk.yellow('.env')} file! (Found .env.example)`);
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 (.nvmrc or package.json engines)
46
+ // Check 2: Node version check
21
47
  const pkgPath = path.join(cwd, 'package.json');
22
48
  if (fs.existsSync(pkgPath)) {
23
- const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
24
- if (pkg.engines?.node) {
25
- passes.push(`${chalk.green('✓')} Expected Node engine: ${pkg.engines.node} (Current: ${process.version})`);
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
- s.stop('Setup diagnosis complete.');
42
- const report = [
43
- ...passes,
44
- ...issues.map((i) => `${chalk.red('⚠️ ')} ${i}`),
45
- ].join('\n');
46
- note(report, '🛠️ Setup Doctor');
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
@@ -23,12 +23,12 @@ program
23
23
  .name('scout')
24
24
  .alias('ft')
25
25
  .description('FrontTerrain — The Onboarding Co-Pilot for New Codebases')
26
- .version('2.0.7');
26
+ .version('2.0.8');
27
27
  // Header UI on execution with FrontTerrain proprietary logo & version auto-checker
28
28
  program.hook('preAction', async (_thisCommand, actionCommand) => {
29
- intro(renderBranding('2.0.7'));
29
+ intro(renderBranding('2.0.8'));
30
30
  if (actionCommand && actionCommand.name() !== 'upgrade') {
31
- await checkForUpdates('2.0.7');
31
+ await checkForUpdates('2.0.8');
32
32
  }
33
33
  });
34
34
  // Command definitions
@@ -159,7 +159,7 @@ program
159
159
  .command('upgrade')
160
160
  .description('Check for updates and auto-upgrade Scout to the latest version')
161
161
  .action(async () => {
162
- await checkForUpdates('2.0.7', true);
162
+ await checkForUpdates('2.0.8', true);
163
163
  outro(chalk.cyan('Upgrade check complete.'));
164
164
  });
165
165
  program.parse(process.argv);
@@ -1,5 +1,5 @@
1
1
  import chalk from 'chalk';
2
- export function renderBranding(version = '2.0.7') {
2
+ export function renderBranding(version = '2.0.8') {
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,6 +1,6 @@
1
1
  {
2
2
  "name": "ft-scout",
3
- "version": "2.0.7",
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",