@aiready/context-analyzer 0.22.14 → 0.22.15

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,6 +1,6 @@
1
1
 
2
2
  
3
- > @aiready/context-analyzer@0.22.13 build /Users/pengcao/projects/aiready/packages/context-analyzer
3
+ > @aiready/context-analyzer@0.22.14 build /Users/pengcao/projects/aiready/packages/context-analyzer
4
4
  > tsup src/index.ts src/cli.ts --format cjs,esm --dts
5
5
 
6
6
  CLI Building entry: src/cli.ts, src/index.ts
@@ -9,25 +9,25 @@
9
9
  CLI Target: es2020
10
10
  CJS Build start
11
11
  ESM Build start
12
- CJS dist/cli.js 71.51 KB
13
- CJS dist/index.js 70.37 KB
14
- CJS ⚡️ Build success in 202ms
12
+ ESM dist/cli.mjs 1.81 KB
13
+ ESM dist/cli-action-JKG3R6RV.mjs 3.00 KB
14
+ ESM dist/orchestrator-QNE2E4TE.mjs 190.00 B
15
15
  ESM dist/chunk-ISWPFG2C.mjs 39.61 KB
16
+ ESM dist/python-context-BWDC4E5Z.mjs 4.48 KB
17
+ ESM dist/chunk-64U3PNO3.mjs 2.65 KB
16
18
  ESM dist/index.mjs 9.02 KB
17
19
  ESM dist/chunk-HD4Y3GYL.mjs 4.48 KB
18
- ESM dist/chunk-64U3PNO3.mjs 2.65 KB
20
+ ESM dist/chunk-JSM7Q5CY.mjs 4.98 KB
19
21
  ESM dist/interactive-setup-JGFBFI3M.mjs 2.44 KB
20
- ESM dist/python-context-BWDC4E5Z.mjs 4.48 KB
21
- ESM dist/orchestrator-QNE2E4TE.mjs 190.00 B
22
- ESM dist/console-report-AP4JYNQY.mjs 3.54 KB
23
22
  ESM dist/summary-TZFB6ZFM.mjs 119.00 B
24
- ESM dist/cli.mjs 1.81 KB
25
- ESM dist/cli-action-W7TESWAV.mjs 3.00 KB
26
- ESM dist/chunk-JSM7Q5CY.mjs 4.98 KB
27
- ESM dist/html-report-ULELSIYG.mjs 2.15 KB
28
- ESM ⚡️ Build success in 203ms
23
+ ESM dist/html-report-BYGKWC3K.mjs 2.15 KB
24
+ ESM dist/console-report-CVGRMWEU.mjs 3.54 KB
25
+ ESM ⚡️ Build success in 81ms
26
+ CJS dist/index.js 70.37 KB
27
+ CJS dist/cli.js 71.51 KB
28
+ CJS ⚡️ Build success in 83ms
29
29
  DTS Build start
30
- DTS ⚡️ Build success in 1731ms
30
+ DTS ⚡️ Build success in 2192ms
31
31
  DTS dist/cli.d.ts 20.00 B
32
32
  DTS dist/index.d.ts 14.57 KB
33
33
  DTS dist/cli.d.mts 20.00 B
@@ -1,6 +1,6 @@
1
1
 
2
2
  
3
- > @aiready/context-analyzer@0.22.13 format-check /Users/pengcao/projects/aiready/packages/context-analyzer
3
+ > @aiready/context-analyzer@0.22.14 format-check /Users/pengcao/projects/aiready/packages/context-analyzer
4
4
  > prettier --check . --ignore-path ../../.prettierignore
5
5
 
6
6
  Checking formatting...
@@ -1,5 +1,5 @@
1
1
 
2
2
  
3
- > @aiready/context-analyzer@0.22.13 lint /Users/pengcao/projects/aiready/packages/context-analyzer
3
+ > @aiready/context-analyzer@0.22.14 lint /Users/pengcao/projects/aiready/packages/context-analyzer
4
4
  > eslint src
5
5
 
@@ -1,14 +1,12 @@
1
1
 
2
2
  
3
- > @aiready/context-analyzer@0.22.13 test /Users/pengcao/projects/aiready/packages/context-analyzer
3
+ > @aiready/context-analyzer@0.22.14 test /Users/pengcao/projects/aiready/packages/context-analyzer
4
4
  > vitest run --exclude "**/dist/**"
5
5
 
6
6
  [?25l
7
7
   RUN  v4.0.18 /Users/pengcao/projects/aiready/packages/context-analyzer
8
8
 
9
- ✓ src/__tests__/report/console-report.test.ts (8 tests) 26ms
10
- ✓ src/__tests__/consolidation.test.ts (6 tests) 2ms
11
- ✓ src/__tests__/report/html-report.test.ts (11 tests) 22ms
9
+ ✓ src/__tests__/report/console-report.test.ts (8 tests) 19ms
12
10
  stderr | src/__tests__/python-context.test.ts > python-context > analyzePythonContext > should filter for Python files only
13
11
  Failed to analyze src/file2.py: TypeError: Cannot read properties of undefined (reading 'split')
14
12
  at Module.analyzePythonContext (/Users/pengcao/projects/aiready/packages/context-analyzer/src/analyzers/python-context.ts:91:32)
@@ -23,29 +21,31 @@
23
21
  at /Users/pengcao/projects/aiready/packages/context-analyzer/src/__tests__/python-context.test.ts:84:23
24
22
  at file:///Users/pengcao/projects/aiready/node_modules/.pnpm/@vitest+runner@4.0.18/node_modules/@vitest/runner/dist/index.js:915:20
25
23
 
26
- ✓ src/__tests__/python-context.test.ts (4 tests) 34ms
27
- ✓ src/__tests__/scoring.test.ts (15 tests) 10ms
28
- ✓ src/__tests__/issue-analyzer.test.ts (17 tests) 35ms
29
- ✓ src/__tests__/domain-inference.test.ts (26 tests) 7ms
30
- ✓ src/__tests__/defaults.test.ts (7 tests) 3ms
31
- ✓ src/__tests__/cluster-detector.test.ts (3 tests) 3ms
32
- ✓ src/__tests__/contract.test.ts (1 test) 18ms
33
- ✓ src/__tests__/analyzer.test.ts (14 tests) 55ms
34
- ✓ src/__tests__/orchestrator.test.ts (8 tests) 110ms
35
- ✓ src/__tests__/fragmentation-coupling.test.ts (2 tests) 40ms
36
- ✓ src/__tests__/auto-detection.test.ts (8 tests) 35ms
37
- ✓ src/__tests__/fragmentation-log.test.ts (3 tests) 3ms
38
- ✓ src/__tests__/fragmentation-advanced.test.ts (3 tests) 2ms
24
+ ✓ src/__tests__/python-context.test.ts (4 tests) 16ms
25
+ ✓ src/__tests__/domain-inference.test.ts (26 tests) 25ms
26
+ ✓ src/__tests__/report/html-report.test.ts (11 tests) 96ms
39
27
  ✓ src/__tests__/remediation.test.ts (6 tests) 3ms
40
- ✓ src/__tests__/provider.test.ts (2 tests) 2ms
41
- ✓ src/__tests__/enhanced-cohesion.test.ts (6 tests) 2ms
28
+ ✓ src/__tests__/scoring.test.ts (15 tests) 15ms
29
+ ✓ src/__tests__/issue-analyzer.test.ts (17 tests) 114ms
30
+ ✓ src/__tests__/contract.test.ts (1 test) 80ms
31
+ ✓ src/__tests__/fragmentation-coupling.test.ts (2 tests) 198ms
32
+ ✓ src/__tests__/auto-detection.test.ts (8 tests) 217ms
33
+ ✓ src/__tests__/analyzer.test.ts (14 tests) 175ms
34
+ ✓ src/__tests__/orchestrator.test.ts (8 tests) 384ms
35
+ ✓ src/__tests__/boilerplate-barrel.test.ts (7 tests) 35ms
36
+ ✓ src/__tests__/cluster-detector.test.ts (3 tests) 6ms
37
+ ✓ src/__tests__/defaults.test.ts (7 tests) 18ms
38
+ ✓ src/__tests__/consolidation.test.ts (6 tests) 4ms
39
+ ✓ src/__tests__/fragmentation-log.test.ts (3 tests) 1ms
42
40
  ✓ src/__tests__/structural-cohesion.test.ts (4 tests) 3ms
43
- ✓ src/__tests__/boilerplate-barrel.test.ts (7 tests) 4ms
44
- ✓ src/__tests__/file-classification.test.ts (1 test) 2ms
41
+ ✓ src/__tests__/enhanced-cohesion.test.ts (6 tests) 5ms
42
+ ✓ src/__tests__/fragmentation-advanced.test.ts (3 tests) 2ms
43
+ ✓ src/__tests__/provider.test.ts (2 tests) 37ms
44
+ ✓ src/__tests__/file-classification.test.ts (1 test) 1ms
45
45
 
46
46
   Test Files  22 passed (22)
47
47
   Tests  162 passed (162)
48
-  Start at  21:15:39
49
-  Duration  2.35s (transform 2.91s, setup 0ms, import 16.24s, tests 422ms, environment 2ms)
48
+  Start at  01:04:42
49
+  Duration  7.01s (transform 8.95s, setup 0ms, import 44.26s, tests 1.45s, environment 8ms)
50
50
 
51
51
  [?25h
@@ -1,5 +1,5 @@
1
1
 
2
2
  
3
- > @aiready/context-analyzer@0.22.13 type-check /Users/pengcao/projects/aiready/packages/context-analyzer
3
+ > @aiready/context-analyzer@0.22.14 type-check /Users/pengcao/projects/aiready/packages/context-analyzer
4
4
  > tsc --noEmit
5
5
 
@@ -0,0 +1,93 @@
1
+ import {
2
+ analyzeContext
3
+ } from "./chunk-ISWPFG2C.mjs";
4
+ import "./chunk-64U3PNO3.mjs";
5
+ import {
6
+ generateSummary
7
+ } from "./chunk-HD4Y3GYL.mjs";
8
+ import "./chunk-JSM7Q5CY.mjs";
9
+
10
+ // src/cli-action.ts
11
+ import {
12
+ loadMergedConfig,
13
+ handleJSONOutput,
14
+ handleCLIError,
15
+ getElapsedTime,
16
+ resolveOutputPath
17
+ } from "@aiready/core";
18
+ import chalk from "chalk";
19
+ import { writeFileSync } from "fs";
20
+ async function contextActionHandler(directory, options) {
21
+ console.log(chalk.blue("\u{1F50D} Analyzing context window costs...\n"));
22
+ const startTime = Date.now();
23
+ try {
24
+ const defaults = {
25
+ maxDepth: 5,
26
+ maxContextBudget: 1e4,
27
+ minCohesion: 0.6,
28
+ maxFragmentation: 0.5,
29
+ focus: "all",
30
+ includeNodeModules: false,
31
+ include: void 0,
32
+ exclude: void 0,
33
+ maxResults: 10
34
+ };
35
+ let finalOptions = await loadMergedConfig(directory, defaults, {
36
+ maxDepth: options.maxDepth ? parseInt(options.maxDepth) : void 0,
37
+ maxContextBudget: options.maxContext ? parseInt(options.maxContext) : void 0,
38
+ minCohesion: options.minCohesion ? parseFloat(options.minCohesion) : void 0,
39
+ maxFragmentation: options.maxFragmentation ? parseFloat(options.maxFragmentation) : void 0,
40
+ focus: options.focus || void 0,
41
+ includeNodeModules: options.includeNodeModules,
42
+ include: options.include?.split(","),
43
+ exclude: options.exclude?.split(","),
44
+ maxResults: options.maxResults ? parseInt(options.maxResults) : void 0
45
+ });
46
+ if (options.interactive) {
47
+ const { runInteractiveSetup } = await import("./interactive-setup-JGFBFI3M.mjs");
48
+ finalOptions = await runInteractiveSetup(directory, finalOptions);
49
+ }
50
+ const results = await analyzeContext(finalOptions);
51
+ const summary = generateSummary(results, finalOptions);
52
+ const duration = getElapsedTime(startTime);
53
+ if (options.output === "json") {
54
+ handleJSONOutput(
55
+ {
56
+ summary: {
57
+ ...summary,
58
+ executionTime: duration,
59
+ config: {
60
+ scan: { tools: ["context"] },
61
+ tools: { context: finalOptions }
62
+ },
63
+ toolConfigs: { context: finalOptions }
64
+ },
65
+ context: { results }
66
+ },
67
+ options.outputFile
68
+ );
69
+ } else if (options.output === "html") {
70
+ const { generateHTMLReport } = await import("./html-report-BYGKWC3K.mjs");
71
+ const html = generateHTMLReport(summary, results);
72
+ const outputPath = resolveOutputPath(
73
+ directory,
74
+ options.outputFile,
75
+ "context-report.html"
76
+ );
77
+ writeFileSync(outputPath, html, "utf-8");
78
+ console.log(chalk.green(`
79
+ \u2705 HTML report saved to: ${outputPath}`));
80
+ } else {
81
+ const { displayConsoleReport } = await import("./console-report-CVGRMWEU.mjs");
82
+ displayConsoleReport(summary, results, finalOptions.maxResults);
83
+ console.log(chalk.dim(`
84
+ \u2728 Analysis completed in ${duration}ms
85
+ `));
86
+ }
87
+ } catch (error) {
88
+ handleCLIError(error, "context-analyzer");
89
+ }
90
+ }
91
+ export {
92
+ contextActionHandler
93
+ };
package/dist/cli.js CHANGED
@@ -1914,8 +1914,8 @@ function generateHTMLReport(summary, results) {
1914
1914
  {
1915
1915
  title: "Context Analysis Report",
1916
1916
  packageName: "context-analyzer",
1917
- packageUrl: "https://github.com/caopengau/aiready-context-analyzer",
1918
- bugUrl: "https://github.com/caopengau/aiready-context-analyzer/issues",
1917
+ packageUrl: "https://github.com/getaiready/aiready-context-analyzer",
1918
+ bugUrl: "https://github.com/getaiready/aiready-context-analyzer/issues",
1919
1919
  emoji: "\u{1F9E0}"
1920
1920
  },
1921
1921
  stats,
@@ -1995,12 +1995,12 @@ function displayConsoleReport(summary, results, maxResults = 10) {
1995
1995
  console.log(import_chalk2.default.cyan(divider));
1996
1996
  console.log(
1997
1997
  import_chalk2.default.dim(
1998
- "\n\u2B50 Like aiready? Star us on GitHub: https://github.com/caopengau/aiready-context-analyzer"
1998
+ "\n\u2B50 Like aiready? Star us on GitHub: https://github.com/getaiready/aiready-context-analyzer"
1999
1999
  )
2000
2000
  );
2001
2001
  console.log(
2002
2002
  import_chalk2.default.dim(
2003
- "\u{1F41B} Found a bug? Report it: https://github.com/caopengau/aiready-context-analyzer/issues\n"
2003
+ "\u{1F41B} Found a bug? Report it: https://github.com/getaiready/aiready-context-analyzer/issues\n"
2004
2004
  )
2005
2005
  );
2006
2006
  }
package/dist/cli.mjs CHANGED
@@ -37,7 +37,7 @@ function defineContextCommand(program2) {
37
37
  "--interactive",
38
38
  "Run interactive setup to suggest excludes and focus areas"
39
39
  ).action(async (directory, options) => {
40
- const { contextActionHandler } = await import("./cli-action-W7TESWAV.mjs");
40
+ const { contextActionHandler } = await import("./cli-action-JKG3R6RV.mjs");
41
41
  await contextActionHandler(directory, options);
42
42
  });
43
43
  }
@@ -0,0 +1,74 @@
1
+ // src/report/console-report.ts
2
+ import chalk from "chalk";
3
+ function displayConsoleReport(summary, results, maxResults = 10) {
4
+ const divider = "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500";
5
+ const totalIssues = summary.criticalIssues + summary.majorIssues + summary.minorIssues;
6
+ console.log(chalk.bold("\u{1F4CA} Context Analysis Summary:\n"));
7
+ console.log(` \u2022 Total Files: ${chalk.cyan(summary.totalFiles)}`);
8
+ console.log(
9
+ ` \u2022 Total Tokens: ${chalk.cyan(summary.totalTokens.toLocaleString())}`
10
+ );
11
+ console.log(
12
+ ` \u2022 Avg Budget: ${chalk.cyan(summary.avgContextBudget.toFixed(0))} tokens`
13
+ );
14
+ console.log(
15
+ ` \u2022 Potential Saving: ${chalk.green(summary.totalPotentialSavings.toLocaleString())} tokens`
16
+ );
17
+ console.log();
18
+ if (totalIssues > 0) {
19
+ console.log(chalk.bold("\u26A0\uFE0F Issues Detected:\n"));
20
+ console.log(` \u2022 ${chalk.red("\u{1F534} Critical:")} ${summary.criticalIssues}`);
21
+ console.log(` \u2022 ${chalk.yellow("\u{1F7E1} Major:")} ${summary.majorIssues}`);
22
+ console.log(` \u2022 ${chalk.blue("\u{1F535} Minor:")} ${summary.minorIssues}`);
23
+ console.log();
24
+ } else {
25
+ console.log(chalk.green("\u2705 No significant context issues detected!\n"));
26
+ }
27
+ if (summary.fragmentedModules.length > 0) {
28
+ console.log(chalk.bold("\u{1F9E9} Top Fragmented Modules:\n"));
29
+ summary.fragmentedModules.slice(0, maxResults).forEach((mod) => {
30
+ const scoreColor = mod.fragmentationScore > 0.7 ? chalk.red : mod.fragmentationScore > 0.4 ? chalk.yellow : chalk.green;
31
+ console.log(
32
+ ` ${scoreColor("\u25A0")} ${chalk.white(mod.domain)} ${chalk.dim(`(${mod.files.length} files, ${(mod.fragmentationScore * 100).toFixed(0)}% frag)`)}`
33
+ );
34
+ });
35
+ console.log();
36
+ }
37
+ if (summary.topExpensiveFiles.length > 0) {
38
+ console.log(chalk.bold("\u{1F4B8} Most Expensive Files (Context Budget):\n"));
39
+ summary.topExpensiveFiles.slice(0, maxResults).forEach((item) => {
40
+ const fileName = item.file.split("/").slice(-2).join("/");
41
+ const severityColor = item.severity === "critical" ? chalk.red : item.severity === "major" ? chalk.yellow : chalk.blue;
42
+ console.log(
43
+ ` ${severityColor("\u25CF")} ${chalk.white(fileName)} ${chalk.dim(`- ${item.contextBudget.toLocaleString()} tokens`)}`
44
+ );
45
+ });
46
+ console.log();
47
+ }
48
+ if (totalIssues > 0) {
49
+ console.log(chalk.bold("\u{1F4A1} Top Recommendations:\n"));
50
+ const topFiles = results.filter((r) => r.severity === "critical" || r.severity === "major").slice(0, 3);
51
+ topFiles.forEach((result, index) => {
52
+ const fileName = result.file.split("/").slice(-2).join("/");
53
+ console.log(chalk.cyan(` ${index + 1}. ${fileName}`));
54
+ result.recommendations.slice(0, 2).forEach((rec) => {
55
+ console.log(chalk.dim(` \u2022 ${rec}`));
56
+ });
57
+ });
58
+ console.log();
59
+ }
60
+ console.log(chalk.cyan(divider));
61
+ console.log(
62
+ chalk.dim(
63
+ "\n\u2B50 Like aiready? Star us on GitHub: https://github.com/getaiready/aiready-context-analyzer"
64
+ )
65
+ );
66
+ console.log(
67
+ chalk.dim(
68
+ "\u{1F41B} Found a bug? Report it: https://github.com/getaiready/aiready-context-analyzer/issues\n"
69
+ )
70
+ );
71
+ }
72
+ export {
73
+ displayConsoleReport
74
+ };
@@ -0,0 +1,73 @@
1
+ // src/report/html-report.ts
2
+ import {
3
+ generateIssueSummary,
4
+ generateTable,
5
+ generateStandardHtmlReport
6
+ } from "@aiready/core";
7
+ function generateHTMLReport(summary, results) {
8
+ const totalIssues = summary.criticalIssues + summary.majorIssues + summary.minorIssues;
9
+ void results;
10
+ const stats = [
11
+ { value: summary.totalFiles, label: "Files Analyzed" },
12
+ { value: summary.totalTokens.toLocaleString(), label: "Total Tokens" },
13
+ { value: summary.avgContextBudget.toFixed(0), label: "Avg Context Budget" },
14
+ {
15
+ value: totalIssues,
16
+ label: "Total Issues",
17
+ color: totalIssues > 0 ? "#f39c12" : void 0
18
+ }
19
+ ];
20
+ const sections = [];
21
+ if (totalIssues > 0) {
22
+ sections.push({
23
+ title: "\u26A0\uFE0F Issues Summary",
24
+ content: generateIssueSummary(
25
+ summary.criticalIssues,
26
+ summary.majorIssues,
27
+ summary.minorIssues,
28
+ summary.totalPotentialSavings
29
+ )
30
+ });
31
+ }
32
+ if (summary.fragmentedModules.length > 0) {
33
+ sections.push({
34
+ title: "\u{1F9E9} Fragmented Modules",
35
+ content: generateTable({
36
+ headers: ["Domain", "Files", "Fragmentation", "Token Cost"],
37
+ rows: summary.fragmentedModules.map((m) => [
38
+ m.domain,
39
+ String(m.files.length),
40
+ `${(m.fragmentationScore * 100).toFixed(0)}%`,
41
+ m.totalTokens.toLocaleString()
42
+ ])
43
+ })
44
+ });
45
+ }
46
+ if (summary.topExpensiveFiles.length > 0) {
47
+ sections.push({
48
+ title: "\u{1F4B8} Most Expensive Files",
49
+ content: generateTable({
50
+ headers: ["File", "Context Budget", "Severity"],
51
+ rows: summary.topExpensiveFiles.map((f) => [
52
+ f.file,
53
+ `${f.contextBudget.toLocaleString()} tokens`,
54
+ `<span class="issue-${f.severity}">${f.severity.toUpperCase()}</span>`
55
+ ])
56
+ })
57
+ });
58
+ }
59
+ return generateStandardHtmlReport(
60
+ {
61
+ title: "Context Analysis Report",
62
+ packageName: "context-analyzer",
63
+ packageUrl: "https://github.com/getaiready/aiready-context-analyzer",
64
+ bugUrl: "https://github.com/getaiready/aiready-context-analyzer/issues",
65
+ emoji: "\u{1F9E0}"
66
+ },
67
+ stats,
68
+ sections
69
+ );
70
+ }
71
+ export {
72
+ generateHTMLReport
73
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiready/context-analyzer",
3
- "version": "0.22.14",
3
+ "version": "0.22.15",
4
4
  "description": "AI context window cost analysis - detect fragmented code, deep import chains, and expensive context budgets",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -39,17 +39,17 @@
39
39
  "license": "MIT",
40
40
  "repository": {
41
41
  "type": "git",
42
- "url": "https://github.com/caopengau/aiready-context-analyzer.git"
42
+ "url": "https://github.com/getaiready/aiready-context-analyzer.git"
43
43
  },
44
- "homepage": "https://github.com/caopengau/aiready-context-analyzer",
44
+ "homepage": "https://github.com/getaiready/aiready-context-analyzer",
45
45
  "bugs": {
46
- "url": "https://github.com/caopengau/aiready-context-analyzer/issues"
46
+ "url": "https://github.com/getaiready/aiready-context-analyzer/issues"
47
47
  },
48
48
  "dependencies": {
49
49
  "commander": "^14.0.0",
50
50
  "chalk": "^5.3.0",
51
51
  "prompts": "^2.4.2",
52
- "@aiready/core": "0.24.15"
52
+ "@aiready/core": "0.24.16"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@types/node": "^24.0.0",
@@ -99,12 +99,12 @@ export function displayConsoleReport(
99
99
  console.log(chalk.cyan(divider));
100
100
  console.log(
101
101
  chalk.dim(
102
- '\n⭐ Like aiready? Star us on GitHub: https://github.com/caopengau/aiready-context-analyzer'
102
+ '\n⭐ Like aiready? Star us on GitHub: https://github.com/getaiready/aiready-context-analyzer'
103
103
  )
104
104
  );
105
105
  console.log(
106
106
  chalk.dim(
107
- '🐛 Found a bug? Report it: https://github.com/caopengau/aiready-context-analyzer/issues\n'
107
+ '🐛 Found a bug? Report it: https://github.com/getaiready/aiready-context-analyzer/issues\n'
108
108
  )
109
109
  );
110
110
  }
@@ -74,8 +74,8 @@ export function generateHTMLReport(
74
74
  {
75
75
  title: 'Context Analysis Report',
76
76
  packageName: 'context-analyzer',
77
- packageUrl: 'https://github.com/caopengau/aiready-context-analyzer',
78
- bugUrl: 'https://github.com/caopengau/aiready-context-analyzer/issues',
77
+ packageUrl: 'https://github.com/getaiready/aiready-context-analyzer',
78
+ bugUrl: 'https://github.com/getaiready/aiready-context-analyzer/issues',
79
79
  emoji: '🧠',
80
80
  },
81
81
  stats,