@stacksfinder/mcp-server 1.2.1 → 1.3.0

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.
Files changed (72) hide show
  1. package/LICENSE +16 -16
  2. package/README.md +126 -65
  3. package/dist/__tests__/mcp-tools.test.d.ts +8 -0
  4. package/dist/__tests__/mcp-tools.test.d.ts.map +1 -0
  5. package/dist/__tests__/mcp-tools.test.js +345 -0
  6. package/dist/__tests__/mcp-tools.test.js.map +1 -0
  7. package/dist/annotations.d.ts +63 -0
  8. package/dist/annotations.d.ts.map +1 -0
  9. package/dist/annotations.js +215 -0
  10. package/dist/annotations.js.map +1 -0
  11. package/dist/server.d.ts.map +1 -1
  12. package/dist/server.js +93 -22
  13. package/dist/server.js.map +1 -1
  14. package/dist/tools/audit.d.ts +4 -4
  15. package/dist/tools/audit.js +42 -42
  16. package/dist/tools/audit.js.map +1 -1
  17. package/dist/tools/check-compatibility.d.ts +1 -1
  18. package/dist/tools/check-compatibility.d.ts.map +1 -1
  19. package/dist/tools/check-compatibility.js +17 -17
  20. package/dist/tools/check-compatibility.js.map +1 -1
  21. package/dist/tools/estimator.d.ts +85 -0
  22. package/dist/tools/estimator.d.ts.map +1 -0
  23. package/dist/tools/estimator.js +326 -0
  24. package/dist/tools/estimator.js.map +1 -0
  25. package/dist/tools/project-kit/analyze-repo.js +12 -12
  26. package/dist/tools/project-kit/analyze-repo.js.map +1 -1
  27. package/package.json +4 -8
  28. package/dist/compatibility/index.d.ts +0 -11
  29. package/dist/compatibility/index.d.ts.map +0 -1
  30. package/dist/compatibility/index.js +0 -13
  31. package/dist/compatibility/index.js.map +0 -1
  32. package/dist/compatibility/rules.d.ts +0 -29
  33. package/dist/compatibility/rules.d.ts.map +0 -1
  34. package/dist/compatibility/rules.js +0 -419
  35. package/dist/compatibility/rules.js.map +0 -1
  36. package/dist/compatibility/scoring.d.ts +0 -54
  37. package/dist/compatibility/scoring.d.ts.map +0 -1
  38. package/dist/compatibility/scoring.js +0 -209
  39. package/dist/compatibility/scoring.js.map +0 -1
  40. package/dist/compatibility/types.d.ts +0 -176
  41. package/dist/compatibility/types.d.ts.map +0 -1
  42. package/dist/compatibility/types.js +0 -26
  43. package/dist/compatibility/types.js.map +0 -1
  44. package/dist/compatibility/utils.d.ts +0 -82
  45. package/dist/compatibility/utils.d.ts.map +0 -1
  46. package/dist/compatibility/utils.js +0 -269
  47. package/dist/compatibility/utils.js.map +0 -1
  48. package/dist/data/357/200/242/357/200/212cp H:bac_/303/240_guigui_v2stack_finderpackagesmcp-serversrcdatacompatibility_matrix.json H:bac_/303/240_guigui_v2stack_finderpackagesmcp-serverdistdata/357/200/242" +0 -226
  49. package/dist/http.d.ts +0 -7
  50. package/dist/http.d.ts.map +0 -1
  51. package/dist/http.js +0 -69
  52. package/dist/http.js.map +0 -1
  53. package/dist/lib/mcp-compatibility/index.d.ts +0 -33
  54. package/dist/lib/mcp-compatibility/index.d.ts.map +0 -1
  55. package/dist/lib/mcp-compatibility/index.js +0 -35
  56. package/dist/lib/mcp-compatibility/index.js.map +0 -1
  57. package/dist/lib/mcp-compatibility/rules.d.ts +0 -29
  58. package/dist/lib/mcp-compatibility/rules.d.ts.map +0 -1
  59. package/dist/lib/mcp-compatibility/rules.js +0 -419
  60. package/dist/lib/mcp-compatibility/rules.js.map +0 -1
  61. package/dist/lib/mcp-compatibility/scoring.d.ts +0 -54
  62. package/dist/lib/mcp-compatibility/scoring.d.ts.map +0 -1
  63. package/dist/lib/mcp-compatibility/scoring.js +0 -209
  64. package/dist/lib/mcp-compatibility/scoring.js.map +0 -1
  65. package/dist/lib/mcp-compatibility/types.d.ts +0 -176
  66. package/dist/lib/mcp-compatibility/types.d.ts.map +0 -1
  67. package/dist/lib/mcp-compatibility/types.js +0 -26
  68. package/dist/lib/mcp-compatibility/types.js.map +0 -1
  69. package/dist/lib/mcp-compatibility/utils.d.ts +0 -82
  70. package/dist/lib/mcp-compatibility/utils.d.ts.map +0 -1
  71. package/dist/lib/mcp-compatibility/utils.js +0 -269
  72. package/dist/lib/mcp-compatibility/utils.js.map +0 -1
package/dist/server.js CHANGED
@@ -14,7 +14,9 @@ import { prepareMCPInstallationTool, prepareMCPInstallation } from './tools/proj
14
14
  import { executeMCPInstallationTool, executeMCPInstallation } from './tools/project-kit/execute-installation.js';
15
15
  import { PrepareMCPInstallationInputSchema, ExecuteMCPInstallationInputSchema } from './tools/project-kit/installation-types.js';
16
16
  import { checkCompatibilityToolDefinition, executeCheckCompatibility, CheckCompatibilityInputSchema } from './tools/check-compatibility.js';
17
+ import { estimateProjectToolDefinition, executeEstimateProject, EstimateProjectInputSchema, getEstimateQuotaToolDefinition, executeGetEstimateQuota } from './tools/estimator.js';
17
18
  import { info, debug } from './utils/logger.js';
19
+ import { listTechnologiesAnnotations, analyzeTechAnnotations, compareTechsAnnotations, recommendStackDemoAnnotations, recommendStackAnnotations, getBlueprintAnnotations, createBlueprintAnnotations, setupApiKeyAnnotations, listApiKeysAnnotations, revokeApiKeyAnnotations, createAuditAnnotations, getAuditAnnotations, listAuditsAnnotations, compareAuditsAnnotations, getAuditQuotaAnnotations, getMigrationRecommendationAnnotations, generateMcpKitAnnotations, analyzeRepoMcpsAnnotations, prepareMcpInstallationAnnotations, executeMcpInstallationAnnotations, checkCompatibilityAnnotations, estimateProjectAnnotations, getEstimateQuotaAnnotations } from './annotations.js';
18
20
  /**
19
21
  * Create and configure the MCP server.
20
22
  */
@@ -30,7 +32,8 @@ export function createServer() {
30
32
  description: listTechsToolDefinition.description,
31
33
  inputSchema: {
32
34
  category: z.enum(CATEGORIES).optional().describe('Filter by category')
33
- }
35
+ },
36
+ annotations: listTechnologiesAnnotations
34
37
  }, async (args) => {
35
38
  debug('list_technologies called', args);
36
39
  const input = ListTechsInputSchema.parse(args);
@@ -46,7 +49,8 @@ export function createServer() {
46
49
  inputSchema: {
47
50
  technology: z.string().min(1).describe('Technology ID to analyze'),
48
51
  context: z.enum(CONTEXTS).optional().describe('Context for scoring')
49
- }
52
+ },
53
+ annotations: analyzeTechAnnotations
50
54
  }, async (args) => {
51
55
  debug('analyze_tech called', args);
52
56
  const input = AnalyzeTechInputSchema.parse(args);
@@ -63,7 +67,8 @@ export function createServer() {
63
67
  inputSchema: {
64
68
  technologies: z.array(z.string().min(1)).min(2).max(4).describe('Technologies to compare'),
65
69
  context: z.enum(CONTEXTS).optional().describe('Context for scoring')
66
- }
70
+ },
71
+ annotations: compareTechsAnnotations
67
72
  }, async (args) => {
68
73
  debug('compare_techs called', args);
69
74
  const input = CompareTechsInputSchema.parse(args);
@@ -92,7 +97,8 @@ export function createServer() {
92
97
  ])
93
98
  .describe('Type of project'),
94
99
  scale: z.enum(['mvp', 'startup', 'growth', 'enterprise']).optional().describe('Project scale')
95
- }
100
+ },
101
+ annotations: recommendStackDemoAnnotations
96
102
  }, async (args) => {
97
103
  debug('recommend_stack_demo called', args);
98
104
  const input = RecommendStackDemoInputSchema.parse(args);
@@ -135,7 +141,8 @@ export function createServer() {
135
141
  .optional()
136
142
  .describe('Top priorities (max 3)'),
137
143
  constraints: z.array(z.string()).optional().describe('Project constraints')
138
- }
144
+ },
145
+ annotations: recommendStackAnnotations
139
146
  }, async (args) => {
140
147
  debug('recommend_stack called', args);
141
148
  const input = RecommendStackInputSchema.parse(args);
@@ -151,7 +158,8 @@ export function createServer() {
151
158
  description: getBlueprintToolDefinition.description,
152
159
  inputSchema: {
153
160
  blueprintId: z.string().uuid().describe('Blueprint UUID')
154
- }
161
+ },
162
+ annotations: getBlueprintAnnotations
155
163
  }, async (args) => {
156
164
  debug('get_blueprint called', args);
157
165
  const input = GetBlueprintInputSchema.parse(args);
@@ -197,7 +205,8 @@ export function createServer() {
197
205
  .describe('Top 3 priorities (optional)'),
198
206
  constraints: z.array(z.string()).max(20).optional().describe('Technology constraint IDs (optional)'),
199
207
  waitForCompletion: z.boolean().optional().describe('Wait for completion (default: true)')
200
- }
208
+ },
209
+ annotations: createBlueprintAnnotations
201
210
  }, async (args) => {
202
211
  debug('create_blueprint called', args);
203
212
  const input = CreateBlueprintInputSchema.parse(args);
@@ -215,7 +224,8 @@ export function createServer() {
215
224
  email: z.string().email().describe('Your StacksFinder account email'),
216
225
  password: z.string().min(1).describe('Your StacksFinder account password'),
217
226
  keyName: z.string().max(100).optional().describe('Optional name for the API key')
218
- }
227
+ },
228
+ annotations: setupApiKeyAnnotations
219
229
  }, async (args) => {
220
230
  debug('setup_api_key called', args.email);
221
231
  const input = SetupApiKeyInputSchema.parse(args);
@@ -229,7 +239,8 @@ export function createServer() {
229
239
  server.registerTool(listApiKeysToolDefinition.name, {
230
240
  title: 'List API Keys',
231
241
  description: listApiKeysToolDefinition.description,
232
- inputSchema: {}
242
+ inputSchema: {},
243
+ annotations: listApiKeysAnnotations
233
244
  }, async () => {
234
245
  debug('list_api_keys called');
235
246
  const { text, isError } = await executeListApiKeys();
@@ -244,7 +255,8 @@ export function createServer() {
244
255
  description: revokeApiKeyToolDefinition.description,
245
256
  inputSchema: {
246
257
  keyId: z.string().uuid().describe('The UUID of the API key to revoke')
247
- }
258
+ },
259
+ annotations: revokeApiKeyAnnotations
248
260
  }, async (args) => {
249
261
  debug('revoke_api_key called', args.keyId);
250
262
  const input = RevokeApiKeyInputSchema.parse(args);
@@ -272,7 +284,8 @@ export function createServer() {
272
284
  .min(1)
273
285
  .max(50)
274
286
  .describe('Technologies to audit')
275
- }
287
+ },
288
+ annotations: createAuditAnnotations
276
289
  }, async (args) => {
277
290
  debug('create_audit called', args);
278
291
  const input = CreateAuditInputSchema.parse(args);
@@ -288,7 +301,8 @@ export function createServer() {
288
301
  description: getAuditToolDefinition.description,
289
302
  inputSchema: {
290
303
  auditId: z.string().uuid().describe('Audit report UUID')
291
- }
304
+ },
305
+ annotations: getAuditAnnotations
292
306
  }, async (args) => {
293
307
  debug('get_audit called', args);
294
308
  const input = GetAuditInputSchema.parse(args);
@@ -305,7 +319,8 @@ export function createServer() {
305
319
  inputSchema: {
306
320
  limit: z.number().min(1).max(50).optional().describe('Max results'),
307
321
  offset: z.number().min(0).optional().describe('Pagination offset')
308
- }
322
+ },
323
+ annotations: listAuditsAnnotations
309
324
  }, async (args) => {
310
325
  debug('list_audits called', args);
311
326
  const input = ListAuditsInputSchema.parse(args);
@@ -322,7 +337,8 @@ export function createServer() {
322
337
  inputSchema: {
323
338
  baseAuditId: z.string().uuid().describe('Base (older) audit ID'),
324
339
  compareAuditId: z.string().uuid().describe('Compare (newer) audit ID')
325
- }
340
+ },
341
+ annotations: compareAuditsAnnotations
326
342
  }, async (args) => {
327
343
  debug('compare_audits called', args);
328
344
  const input = CompareAuditsInputSchema.parse(args);
@@ -336,7 +352,8 @@ export function createServer() {
336
352
  server.registerTool(getAuditQuotaToolDefinition.name, {
337
353
  title: 'Get Audit Quota',
338
354
  description: getAuditQuotaToolDefinition.description,
339
- inputSchema: {}
355
+ inputSchema: {},
356
+ annotations: getAuditQuotaAnnotations
340
357
  }, async () => {
341
358
  debug('get_audit_quota called');
342
359
  const { text, isError } = await executeGetAuditQuota();
@@ -351,7 +368,8 @@ export function createServer() {
351
368
  description: getMigrationRecommendationToolDefinition.description,
352
369
  inputSchema: {
353
370
  auditId: z.string().uuid().describe('Audit report UUID to analyze for migration')
354
- }
371
+ },
372
+ annotations: getMigrationRecommendationAnnotations
355
373
  }, async (args) => {
356
374
  debug('get_migration_recommendation called', args);
357
375
  const input = GetMigrationRecommendationInputSchema.parse(args);
@@ -374,7 +392,8 @@ export function createServer() {
374
392
  constraints: z.array(z.string()).optional().describe('Tech constraints (e.g., must-use-postgresql)'),
375
393
  projectType: z.enum(PROJECT_TYPES).optional().describe('Project type (if known)'),
376
394
  scale: z.enum(SCALES).optional().describe('Project scale (if known)')
377
- }
395
+ },
396
+ annotations: generateMcpKitAnnotations
378
397
  }, async (args) => {
379
398
  debug('generate_mcp_kit called', args);
380
399
  const input = GenerateMCPKitInputSchema.parse(args);
@@ -391,7 +410,8 @@ export function createServer() {
391
410
  includeInstalled: z.boolean().optional().describe('Include already installed MCPs (default: false)'),
392
411
  mcpConfigPath: z.string().optional().describe('Override path to MCP configuration file'),
393
412
  workspaceRoot: z.string().optional().describe('Override workspace root directory (default: current directory)')
394
- }
413
+ },
414
+ annotations: analyzeRepoMcpsAnnotations
395
415
  }, async (args) => {
396
416
  debug('analyze_repo_mcps called', args);
397
417
  const input = AnalyzeRepoMCPsInputSchema.parse(args);
@@ -410,7 +430,8 @@ export function createServer() {
410
430
  mcpConfigPath: z.string().optional().describe('Override path to existing MCP configuration file'),
411
431
  includeInstalled: z.boolean().optional().describe('Include already installed MCPs in the preparation (default: false)'),
412
432
  envMcpPath: z.string().optional().describe('Path where .env-mcp will be created (default: .env-mcp in workspaceRoot)')
413
- }
433
+ },
434
+ annotations: prepareMcpInstallationAnnotations
414
435
  }, async (args) => {
415
436
  debug('prepare_mcp_installation called', args);
416
437
  const input = PrepareMCPInstallationInputSchema.parse(args);
@@ -430,7 +451,8 @@ export function createServer() {
430
451
  .optional()
431
452
  .describe('Target IDE/client for installation (default: claude-code)'),
432
453
  dryRun: z.boolean().optional().describe('Only generate commands without marking ready to execute (default: false)')
433
- }
454
+ },
455
+ annotations: executeMcpInstallationAnnotations
434
456
  }, async (args) => {
435
457
  debug('execute_mcp_installation called', args);
436
458
  const input = ExecuteMCPInstallationInputSchema.parse(args);
@@ -452,7 +474,8 @@ export function createServer() {
452
474
  .min(1)
453
475
  .max(20)
454
476
  .describe('Array of MCP server IDs to check compatibility between')
455
- }
477
+ },
478
+ annotations: checkCompatibilityAnnotations
456
479
  }, async (args) => {
457
480
  debug('check_mcp_compatibility called', args);
458
481
  const input = CheckCompatibilityInputSchema.parse(args);
@@ -465,7 +488,55 @@ export function createServer() {
465
488
  isError
466
489
  };
467
490
  });
468
- info('Registered 21 tools: list_technologies, analyze_tech, compare_techs, recommend_stack_demo, recommend_stack, get_blueprint, create_blueprint, setup_api_key, list_api_keys, revoke_api_key, create_audit, get_audit, list_audits, compare_audits, get_audit_quota, get_migration_recommendation, generate_mcp_kit, analyze_repo_mcps, prepare_mcp_installation, execute_mcp_installation, check_mcp_compatibility');
491
+ // ========================================================================
492
+ // ESTIMATOR TOOLS (Project Scope & Pricing)
493
+ // ========================================================================
494
+ // Register estimate_project tool (API-based, requires API key with estimate:write)
495
+ server.registerTool(estimateProjectToolDefinition.name, {
496
+ title: 'Estimate Project',
497
+ description: estimateProjectToolDefinition.description,
498
+ inputSchema: {
499
+ specs: z
500
+ .string()
501
+ .min(100)
502
+ .max(10000)
503
+ .describe('Project specifications (min 100 chars, max 10,000)'),
504
+ teamSize: z.number().min(1).max(100).optional().describe('Number of developers'),
505
+ seniorityLevel: z
506
+ .enum(['junior', 'mid', 'senior', 'expert'])
507
+ .optional()
508
+ .describe('Average team seniority (default: mid)'),
509
+ region: z
510
+ .enum(['france', 'us', 'uk', 'remote-global'])
511
+ .optional()
512
+ .describe('Region for pricing (default: france)'),
513
+ includeMarket: z.boolean().optional().describe('Include market analysis (default: true, Pro tier only)')
514
+ },
515
+ annotations: estimateProjectAnnotations
516
+ }, async (args) => {
517
+ debug('estimate_project called', { specsLength: args.specs?.length });
518
+ const input = EstimateProjectInputSchema.parse(args);
519
+ const { text, isError } = await executeEstimateProject(input);
520
+ return {
521
+ content: [{ type: 'text', text }],
522
+ isError
523
+ };
524
+ });
525
+ // Register get_estimate_quota tool (API-based, requires API key)
526
+ server.registerTool(getEstimateQuotaToolDefinition.name, {
527
+ title: 'Get Estimate Quota',
528
+ description: getEstimateQuotaToolDefinition.description,
529
+ inputSchema: {},
530
+ annotations: getEstimateQuotaAnnotations
531
+ }, async () => {
532
+ debug('get_estimate_quota called');
533
+ const { text, isError } = await executeGetEstimateQuota({});
534
+ return {
535
+ content: [{ type: 'text', text }],
536
+ isError
537
+ };
538
+ });
539
+ info('Registered 23 tools: list_technologies, analyze_tech, compare_techs, recommend_stack_demo, recommend_stack, get_blueprint, create_blueprint, setup_api_key, list_api_keys, revoke_api_key, create_audit, get_audit, list_audits, compare_audits, get_audit_quota, get_migration_recommendation, generate_mcp_kit, analyze_repo_mcps, prepare_mcp_installation, execute_mcp_installation, check_mcp_compatibility, estimate_project, get_estimate_quota');
469
540
  return server;
470
541
  }
471
542
  // ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -10,25 +10,25 @@ export declare const CreateAuditInputSchema: z.ZodObject<{
10
10
  category: z.ZodOptional<z.ZodString>;
11
11
  }, "strip", z.ZodTypeAny, {
12
12
  name: string;
13
- category?: string | undefined;
14
13
  version?: string | undefined;
14
+ category?: string | undefined;
15
15
  }, {
16
16
  name: string;
17
- category?: string | undefined;
18
17
  version?: string | undefined;
18
+ category?: string | undefined;
19
19
  }>, "many">;
20
20
  }, "strip", z.ZodTypeAny, {
21
21
  technologies: {
22
22
  name: string;
23
- category?: string | undefined;
24
23
  version?: string | undefined;
24
+ category?: string | undefined;
25
25
  }[];
26
26
  name: string;
27
27
  }, {
28
28
  technologies: {
29
29
  name: string;
30
- category?: string | undefined;
31
30
  version?: string | undefined;
31
+ category?: string | undefined;
32
32
  }[];
33
33
  name: string;
34
34
  }>;
@@ -174,30 +174,30 @@ Use this after create_audit to get actionable migration guidance.`,
174
174
  // ============================================================================
175
175
  // FORMATTERS
176
176
  // ============================================================================
177
- function formatSeverityEmoji(severity) {
177
+ function formatSeverityMarker(severity) {
178
178
  switch (severity) {
179
179
  case 'critical':
180
- return '🔴';
180
+ return '[CRITICAL]';
181
181
  case 'high':
182
- return '🟠';
182
+ return '[HIGH]';
183
183
  case 'medium':
184
- return '🟡';
184
+ return '[MEDIUM]';
185
185
  case 'low':
186
- return 'đŸŸĸ';
186
+ return '[LOW]';
187
187
  case 'info':
188
- return 'â„šī¸';
188
+ return '[INFO]';
189
189
  default:
190
- return 'â€ĸ';
190
+ return '[-]';
191
191
  }
192
192
  }
193
193
  function formatHealthScore(score) {
194
194
  if (score >= 90)
195
- return `✅ ${score}/100 (Excellent)`;
195
+ return `[EXCELLENT] ${score}/100`;
196
196
  if (score >= 70)
197
- return `🟡 ${score}/100 (Good)`;
197
+ return `[GOOD] ${score}/100`;
198
198
  if (score >= 50)
199
- return `🟠 ${score}/100 (Fair)`;
200
- return `🔴 ${score}/100 (Needs Attention)`;
199
+ return `[FAIR] ${score}/100`;
200
+ return `[NEEDS ATTENTION] ${score}/100`;
201
201
  }
202
202
  function formatAuditReport(audit) {
203
203
  let text = `## Audit Report: ${audit.name}\n\n`;
@@ -210,17 +210,17 @@ function formatAuditReport(audit) {
210
210
  text += `### Summary\n`;
211
211
  text += `| Severity | Count |\n`;
212
212
  text += `|----------|-------|\n`;
213
- text += `| 🔴 Critical | ${audit.summary.criticalCount} |\n`;
214
- text += `| 🟠 High | ${audit.summary.highCount} |\n`;
215
- text += `| 🟡 Medium | ${audit.summary.mediumCount} |\n`;
216
- text += `| đŸŸĸ Low | ${audit.summary.lowCount} |\n`;
217
- text += `| â„šī¸ Info | ${audit.summary.infoCount} |\n`;
213
+ text += `| Critical | ${audit.summary.criticalCount} |\n`;
214
+ text += `| High | ${audit.summary.highCount} |\n`;
215
+ text += `| Medium | ${audit.summary.mediumCount} |\n`;
216
+ text += `| Low | ${audit.summary.lowCount} |\n`;
217
+ text += `| Info | ${audit.summary.infoCount} |\n`;
218
218
  text += `\n**Total Findings**: ${audit.summary.totalFindings}\n`;
219
219
  }
220
220
  if (audit.findings && audit.findings.length > 0) {
221
221
  text += `\n### Findings\n\n`;
222
222
  for (const finding of audit.findings) {
223
- text += `#### ${formatSeverityEmoji(finding.severity)} ${finding.title}\n`;
223
+ text += `#### ${formatSeverityMarker(finding.severity)} ${finding.title}\n`;
224
224
  text += `**Technology**: ${finding.technology}`;
225
225
  if (finding.currentVersion) {
226
226
  text += ` (v${finding.currentVersion})`;
@@ -249,7 +249,7 @@ function formatAuditReport(audit) {
249
249
  }
250
250
  }
251
251
  else if (audit.status === 'completed') {
252
- text += `\n### 🎉 No Issues Found\n`;
252
+ text += `\n### All Clear\n`;
253
253
  text += `Your stack passed all checks. Great job maintaining your technical health!\n`;
254
254
  }
255
255
  return text;
@@ -262,24 +262,24 @@ function formatComparison(comparison) {
262
262
  text += `| ${comparison.baseAudit.name} (base) | ${comparison.baseAudit.healthScore}/100 |\n`;
263
263
  text += `| ${comparison.compareAudit.name} (compare) | ${comparison.compareAudit.healthScore}/100 |\n`;
264
264
  text += `\n`;
265
- const trendEmoji = comparison.trend === 'improving'
266
- ? '📈'
265
+ const trendMarker = comparison.trend === 'improving'
266
+ ? '[UP]'
267
267
  : comparison.trend === 'degrading'
268
- ? '📉'
269
- : 'âžĄī¸';
270
- text += `### Trend: ${trendEmoji} ${comparison.trend.toUpperCase()}\n`;
268
+ ? '[DOWN]'
269
+ : '[STABLE]';
270
+ text += `### Trend: ${trendMarker} ${comparison.trend.toUpperCase()}\n`;
271
271
  text += `**Health Score Change**: ${comparison.healthScoreDelta > 0 ? '+' : ''}${comparison.healthScoreDelta} points\n\n`;
272
272
  if (comparison.resolvedCount > 0) {
273
- text += `### ✅ Resolved Issues (${comparison.resolvedCount})\n`;
273
+ text += `### Resolved Issues (${comparison.resolvedCount})\n`;
274
274
  for (const finding of comparison.resolvedFindings) {
275
- text += `- ${formatSeverityEmoji(finding.severity)} ${finding.title} (${finding.technology})\n`;
275
+ text += `- ${formatSeverityMarker(finding.severity)} ${finding.title} (${finding.technology})\n`;
276
276
  }
277
277
  text += `\n`;
278
278
  }
279
279
  if (comparison.newCount > 0) {
280
- text += `### âš ī¸ New Issues (${comparison.newCount})\n`;
280
+ text += `### New Issues (${comparison.newCount})\n`;
281
281
  for (const finding of comparison.newFindings) {
282
- text += `- ${formatSeverityEmoji(finding.severity)} ${finding.title} (${finding.technology})\n`;
282
+ text += `- ${formatSeverityMarker(finding.severity)} ${finding.title} (${finding.technology})\n`;
283
283
  }
284
284
  text += `\n`;
285
285
  }
@@ -291,19 +291,19 @@ function formatComparison(comparison) {
291
291
  }
292
292
  function formatMigrationRecommendation(response) {
293
293
  if (!response.needsMigration) {
294
- return `## Migration Analysis\n\n✅ **No migration recommended.**\n\nYour stack is healthy with no critical issues requiring migration.\n\n**Migration Score**: ${response.migrationScore}/100 (below threshold)`;
294
+ return `## Migration Analysis\n\n**No migration recommended.**\n\nYour stack is healthy with no critical issues requiring migration.\n\n**Migration Score**: ${response.migrationScore}/100 (below threshold)`;
295
295
  }
296
296
  const rec = response.recommendation;
297
297
  if (!rec) {
298
298
  return `## Migration Analysis\n\nUnable to generate recommendation.`;
299
299
  }
300
- const urgencyEmoji = {
301
- critical: '🚨',
302
- high: 'âš ī¸',
303
- medium: '📋',
304
- low: 'â„šī¸'
300
+ const urgencyMarker = {
301
+ critical: '[CRITICAL]',
302
+ high: '[HIGH]',
303
+ medium: '[MEDIUM]',
304
+ low: '[LOW]'
305
305
  }[rec.urgency];
306
- let text = `## ${urgencyEmoji} Migration Recommendation\n\n`;
306
+ let text = `## ${urgencyMarker} Migration Recommendation\n\n`;
307
307
  text += `### ${rec.title}\n\n`;
308
308
  text += `**Migration Score**: ${response.migrationScore}/100\n`;
309
309
  text += `**Urgency**: ${rec.urgency.toUpperCase()}\n`;
@@ -314,7 +314,7 @@ function formatMigrationRecommendation(response) {
314
314
  text += `${rec.summary}\n\n`;
315
315
  // Technologies to Replace
316
316
  if (rec.techsToReplace.length > 0) {
317
- text += `### 🔄 Technologies to Replace\n\n`;
317
+ text += `### Technologies to Replace\n\n`;
318
318
  text += `| Technology | Version | Reason |\n`;
319
319
  text += `|------------|---------|--------|\n`;
320
320
  for (const tech of rec.techsToReplace) {
@@ -324,7 +324,7 @@ function formatMigrationRecommendation(response) {
324
324
  }
325
325
  // Suggested Alternatives
326
326
  if (rec.suggestedAlternatives.length > 0) {
327
- text += `### ✨ Recommended Alternatives\n\n`;
327
+ text += `### Recommended Alternatives\n\n`;
328
328
  for (const alt of rec.suggestedAlternatives) {
329
329
  text += `**${alt.forTech}** → `;
330
330
  const alts = alt.alternatives.map(a => a === alt.preferredChoice ? `**${a}** (recommended)` : a);
@@ -335,7 +335,7 @@ function formatMigrationRecommendation(response) {
335
335
  }
336
336
  // Migration Roadmap
337
337
  if (rec.migrationSteps.length > 0) {
338
- text += `### 📋 Migration Roadmap\n\n`;
338
+ text += `### Migration Roadmap\n\n`;
339
339
  for (const step of rec.migrationSteps) {
340
340
  text += `**Phase ${step.order}: ${step.phase}** (${step.effort} effort)\n`;
341
341
  text += `${step.description}\n`;
@@ -347,23 +347,23 @@ function formatMigrationRecommendation(response) {
347
347
  }
348
348
  // Risks
349
349
  if (rec.risks.length > 0) {
350
- text += `### âš ī¸ Risk Assessment\n\n`;
350
+ text += `### Risk Assessment\n\n`;
351
351
  for (const risk of rec.risks) {
352
- const riskEmoji = risk.level === 'high' ? '🔴' : risk.level === 'medium' ? '🟡' : 'đŸŸĸ';
353
- text += `${riskEmoji} **${risk.level.toUpperCase()} RISK**: ${risk.description}\n`;
352
+ const riskMarker = risk.level === 'high' ? '[HIGH]' : risk.level === 'medium' ? '[MEDIUM]' : '[LOW]';
353
+ text += `${riskMarker} **${risk.level.toUpperCase()} RISK**: ${risk.description}\n`;
354
354
  text += ` _Mitigation_: ${risk.mitigation}\n\n`;
355
355
  }
356
356
  }
357
357
  // Inferred Constraints
358
358
  if (rec.inferredConstraints.length > 0) {
359
- text += `### đŸŽ¯ Inferred Builder Constraints\n\n`;
359
+ text += `### Inferred Builder Constraints\n\n`;
360
360
  text += `These constraints will be pre-filled when generating a migration blueprint:\n`;
361
361
  text += rec.inferredConstraints.map(c => `\`${c}\``).join(', ');
362
362
  text += `\n\n`;
363
363
  }
364
364
  // Builder Pre-fill info
365
365
  if (response.builderPreFill) {
366
- text += `### 🚀 Generate Migration Blueprint\n\n`;
366
+ text += `### Generate Migration Blueprint\n\n`;
367
367
  text += `Use the StacksFinder Builder with these pre-filled settings:\n`;
368
368
  if (response.builderPreFill.context.projectType) {
369
369
  text += `- **Project Type**: ${response.builderPreFill.context.projectType}\n`;