@entro314labs/ai-changelog-generator 3.1.1 → 3.2.1

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 (51) hide show
  1. package/CHANGELOG.md +412 -875
  2. package/README.md +8 -3
  3. package/ai-changelog-mcp.sh +0 -0
  4. package/ai-changelog.sh +0 -0
  5. package/bin/ai-changelog-dxt.js +9 -9
  6. package/bin/ai-changelog-mcp.js +19 -17
  7. package/bin/ai-changelog.js +6 -6
  8. package/package.json +80 -48
  9. package/src/ai-changelog-generator.js +91 -81
  10. package/src/application/orchestrators/changelog.orchestrator.js +791 -516
  11. package/src/application/services/application.service.js +137 -128
  12. package/src/cli.js +76 -57
  13. package/src/domains/ai/ai-analysis.service.js +289 -209
  14. package/src/domains/analysis/analysis.engine.js +328 -192
  15. package/src/domains/changelog/changelog.service.js +1174 -783
  16. package/src/domains/changelog/workspace-changelog.service.js +487 -249
  17. package/src/domains/git/git-repository.analyzer.js +348 -258
  18. package/src/domains/git/git.service.js +132 -112
  19. package/src/infrastructure/cli/cli.controller.js +390 -274
  20. package/src/infrastructure/config/configuration.manager.js +220 -190
  21. package/src/infrastructure/interactive/interactive-staging.service.js +154 -135
  22. package/src/infrastructure/interactive/interactive-workflow.service.js +200 -159
  23. package/src/infrastructure/mcp/mcp-server.service.js +208 -207
  24. package/src/infrastructure/metrics/metrics.collector.js +140 -123
  25. package/src/infrastructure/providers/core/base-provider.js +87 -40
  26. package/src/infrastructure/providers/implementations/anthropic.js +101 -99
  27. package/src/infrastructure/providers/implementations/azure.js +124 -101
  28. package/src/infrastructure/providers/implementations/bedrock.js +136 -126
  29. package/src/infrastructure/providers/implementations/dummy.js +23 -23
  30. package/src/infrastructure/providers/implementations/google.js +123 -114
  31. package/src/infrastructure/providers/implementations/huggingface.js +94 -87
  32. package/src/infrastructure/providers/implementations/lmstudio.js +75 -60
  33. package/src/infrastructure/providers/implementations/mock.js +69 -73
  34. package/src/infrastructure/providers/implementations/ollama.js +89 -66
  35. package/src/infrastructure/providers/implementations/openai.js +88 -89
  36. package/src/infrastructure/providers/implementations/vertex.js +227 -197
  37. package/src/infrastructure/providers/provider-management.service.js +245 -207
  38. package/src/infrastructure/providers/provider-manager.service.js +145 -125
  39. package/src/infrastructure/providers/utils/base-provider-helpers.js +308 -302
  40. package/src/infrastructure/providers/utils/model-config.js +220 -195
  41. package/src/infrastructure/providers/utils/provider-utils.js +105 -100
  42. package/src/infrastructure/validation/commit-message-validation.service.js +259 -161
  43. package/src/shared/constants/colors.js +453 -180
  44. package/src/shared/utils/cli-demo.js +285 -0
  45. package/src/shared/utils/cli-entry-utils.js +257 -249
  46. package/src/shared/utils/cli-ui.js +447 -0
  47. package/src/shared/utils/diff-processor.js +513 -0
  48. package/src/shared/utils/error-classes.js +125 -156
  49. package/src/shared/utils/json-utils.js +93 -89
  50. package/src/shared/utils/utils.js +1117 -945
  51. package/types/index.d.ts +353 -344
package/README.md CHANGED
@@ -108,7 +108,8 @@ npm install
108
108
 
109
109
  ### Basic Usage
110
110
 
111
- #### Using installed package:
111
+ #### Using installed package
112
+
112
113
  ```bash
113
114
  # Generate changelog from recent commits
114
115
  ai-changelog
@@ -126,7 +127,8 @@ ai-changelog-mcp
126
127
  ai-changelog --help
127
128
  ```
128
129
 
129
- #### Using bash wrappers (from source):
130
+ #### Using bash wrappers (from source)
131
+
130
132
  ```bash
131
133
  # Generate changelog from recent commits
132
134
  ./ai-changelog.sh
@@ -151,6 +153,7 @@ That's it! Your AI-powered changelog is ready to generate.
151
153
  ## Demo
152
154
 
153
155
  ### Interactive Mode
156
+
154
157
  See the tool in action with our interactive mode demo:
155
158
 
156
159
  ![Interactive Demo](docs/media/demo-interactive-optimized.gif)
@@ -158,6 +161,7 @@ See the tool in action with our interactive mode demo:
158
161
  *Interactive mode with guided setup and provider selection*
159
162
 
160
163
  ### Quick Generation
164
+
161
165
  Watch how fast you can generate professional changelogs:
162
166
 
163
167
  ![Quick Demo](docs/media/demo-quick-real.gif)
@@ -165,6 +169,7 @@ Watch how fast you can generate professional changelogs:
165
169
  *Generate changelogs from recent commits in seconds*
166
170
 
167
171
  ### Video Walkthrough
172
+
168
173
  For a complete walkthrough of features and capabilities:
169
174
 
170
175
  [📺 Watch Full Demo Video](docs/media/demo-interactive.mp4)
@@ -412,4 +417,4 @@ MIT License - see the [LICENSE](LICENSE) file for details.
412
417
 
413
418
  [GitHub](https://github.com/entro314-labs) • [NPM Package](https://www.npmjs.com/package/@entro314labs/ai-changelog-generator) • [Issues](https://github.com/entro314-labs/AI-changelog-generator/issues) • [Discussions](https://github.com/entro314-labs/AI-changelog-generator/discussions)
414
419
 
415
- </div>
420
+ </div>
File without changes
package/ai-changelog.sh CHANGED
File without changes
@@ -5,11 +5,11 @@
5
5
  * Optimized for DXT packaging and Claude Desktop integration
6
6
  */
7
7
 
8
- import AIChangelogMCPServer from '../src/infrastructure/mcp/mcp-server.service.js';
9
- import { runMCPServer, setupProcessErrorHandlers } from '../src/shared/utils/cli-entry-utils.js';
8
+ import AIChangelogMCPServer from '../src/infrastructure/mcp/mcp-server.service.js'
9
+ import { runMCPServer, setupProcessErrorHandlers } from '../src/shared/utils/cli-entry-utils.js'
10
10
 
11
11
  // Setup error handlers for DXT environment
12
- setupProcessErrorHandlers('AI Changelog Generator - Claude Desktop Extension');
12
+ setupProcessErrorHandlers('AI Changelog Generator - Claude Desktop Extension')
13
13
 
14
14
  // DXT-specific initialization
15
15
  async function initializeDXTServer() {
@@ -19,17 +19,17 @@ async function initializeDXTServer() {
19
19
  AIChangelogMCPServer,
20
20
  {
21
21
  tools: ['generate_changelog', 'get_git_info', 'analyze_commits', 'list_providers'],
22
- debugMode: process.env.DEBUG === 'true'
22
+ debugMode: process.env.DEBUG === 'true',
23
23
  }
24
- );
24
+ )
25
25
  }
26
26
 
27
27
  // Start the server
28
28
  if (import.meta.url === `file://${process.argv[1]}`) {
29
29
  initializeDXTServer().catch((error) => {
30
- console.error('💥 Fatal error starting AI Changelog Generator:', error);
31
- process.exit(1);
32
- });
30
+ console.error('💥 Fatal error starting AI Changelog Generator:', error)
31
+ process.exit(1)
32
+ })
33
33
  }
34
34
 
35
- export { initializeDXTServer };
35
+ export { initializeDXTServer }
@@ -5,30 +5,32 @@
5
5
  * Model Context Protocol server for AI changelog generation
6
6
  */
7
7
 
8
- import AIChangelogMCPServer from '../src/infrastructure/mcp/mcp-server.service.js';
8
+ import AIChangelogMCPServer from '../src/infrastructure/mcp/mcp-server.service.js'
9
9
 
10
10
  // Setup error handlers
11
11
  process.on('uncaughtException', (error) => {
12
- console.error('MCP Server - Uncaught Exception:', error);
13
- process.exit(1);
14
- });
12
+ console.error('MCP Server - Uncaught Exception:', error)
13
+ process.exit(1)
14
+ })
15
15
 
16
16
  process.on('unhandledRejection', (reason, promise) => {
17
- console.error('MCP Server - Unhandled Rejection at:', promise, 'reason:', reason);
18
- process.exit(1);
19
- });
17
+ console.error('MCP Server - Unhandled Rejection at:', promise, 'reason:', reason)
18
+ process.exit(1)
19
+ })
20
20
 
21
21
  // Start the MCP server with new architecture
22
22
  if (import.meta.url === `file://${process.argv[1]}`) {
23
- try {
24
- console.error('🚀 Starting AI Changelog Generator MCP Server )...');
25
- const server = new AIChangelogMCPServer();
26
- server.run();
27
- } catch (error) {
28
- console.error('❌ Failed to start MCP Server:', error.message);
29
- if (process.env.DEBUG) {
30
- console.error(error.stack);
23
+ (async () => {
24
+ try {
25
+ console.error('🚀 Starting AI Changelog Generator MCP Server )...')
26
+ const server = new AIChangelogMCPServer()
27
+ await server.run()
28
+ } catch (error) {
29
+ console.error('❌ Failed to start MCP Server:', error.message)
30
+ if (process.env.DEBUG) {
31
+ console.error(error.stack)
32
+ }
33
+ process.exit(1)
31
34
  }
32
- process.exit(1);
33
- }
35
+ })().catch(() => process.exit(1))
34
36
  }
@@ -5,14 +5,14 @@
5
5
  * Main command-line interface (Updated for refactored architecture)
6
6
  */
7
7
 
8
- import { CLIController } from '../src/infrastructure/cli/cli.controller.js';
8
+ import { CLIController } from '../src/infrastructure/cli/cli.controller.js'
9
9
 
10
10
  // Run the CLI with new refactored architecture using proper CLI controller
11
- const cliController = new CLIController();
11
+ const cliController = new CLIController()
12
12
  cliController.runCLI().catch((error) => {
13
- console.error('❌ CLI Error:', error.message);
13
+ console.error('❌ CLI Error:', error.message)
14
14
  if (process.env.DEBUG) {
15
- console.error(error.stack);
15
+ console.error(error.stack)
16
16
  }
17
- process.exit(1);
18
- });
17
+ process.exit(1)
18
+ })
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@entro314labs/ai-changelog-generator",
3
3
  "displayName": "AI Changelog Generator",
4
- "version": "3.1.1",
4
+ "version": "3.2.1",
5
5
  "type": "module",
6
6
  "description": "AI-powered changelog generator with MCP server support - works with most providers, online and local models",
7
7
  "main": "src/ai-changelog-generator.js",
@@ -20,29 +20,88 @@
20
20
  "LICENSE",
21
21
  "CHANGELOG.md"
22
22
  ],
23
+ "scripts": {
24
+ "start": "node bin/ai-changelog.js",
25
+ "changelog": "node bin/ai-changelog.js",
26
+ "changelog:detailed": "node bin/ai-changelog.js --detailed",
27
+ "changelog:enterprise": "node bin/ai-changelog.js --enterprise",
28
+ "changelog:interactive": "node bin/ai-changelog.js --interactive",
29
+ "changelog:analyze": "node bin/ai-changelog.js --analyze",
30
+ "changelog:preview": "node bin/ai-changelog.js --dry-run",
31
+ "changelog:no-color": "node bin/ai-changelog.js --no-color",
32
+ "mcp": "node bin/ai-changelog-mcp.js",
33
+ "mcp:start": "node bin/ai-changelog-mcp.js",
34
+ "demo": "node test/test-end-to-end-full.js",
35
+ "lint": "exec biome lint src/",
36
+ "lint:fix": "exec biome lint --write src/",
37
+ "lint:fix-unsafe": "exec biome lint --unsafe --write src/",
38
+ "format": "exec biome format --write src/",
39
+ "format:unsafe": "exec biome format --write src/",
40
+ "format:check": "exec biome format src/",
41
+ "check": "exec biome check src/",
42
+ "check:fix": "exec biome check --write src/",
43
+ "test": "vitest run",
44
+ "test:watch": "vitest",
45
+ "test:ui": "vitest --ui",
46
+ "test:coverage": "vitest run --coverage",
47
+ "test:providers": "vitest run test/providers.test.js",
48
+ "test:cli": "vitest run test/cli.test.js",
49
+ "test:core": "vitest run test/core.test.js",
50
+ "test:services": "vitest run test/services.test.js",
51
+ "test:utils": "vitest run test/utils.test.js",
52
+ "test:integration": "vitest run test/integration.test.js",
53
+ "test:mcp": "vitest run test/mcp.test.js",
54
+ "test:styling": "vitest run test/cli-ui.test.js test/colors.test.js test/styling-integration.test.js",
55
+ "test:styling-e2e": "vitest run test/cli-styling-e2e.test.js --testTimeout=60000",
56
+ "test:legacy": "node test/test-runner.js comprehensive",
57
+ "test:git": "node src/domains/git/git.service.js info",
58
+ "setup": "node scripts/setup-azure-openai.js",
59
+ "config:create": "node src/infrastructure/config/configuration.manager.js create-sample",
60
+ "config:validate": "node src/infrastructure/config/configuration.manager.js validate",
61
+ "config:test-models": "node src/infrastructure/config/configuration.manager.js model-test",
62
+ "providers:test": "node test/test-providers.js",
63
+ "providers:validate": "node test/test-provider-switching.js",
64
+ "git:info": "node src/domains/git/git.service.js info",
65
+ "git:commits": "node src/domains/git/git.service.js commits 10",
66
+ "git:stats": "node src/domains/git/git.service.js stats 5",
67
+ "dxt:init": "npx @anthropic-ai/dxt init",
68
+ "dxt:pack": "npm run dxt:prepack && npx @anthropic-ai/dxt pack",
69
+ "dxt:prepack": "node -e \"const fs=require('fs'),path=require('path'); const src='node_modules/@modelcontextprotocol/sdk/dist', dest='node_modules/@modelcontextprotocol/sdk/dist'; if(fs.existsSync(src)) console.log('MCP SDK dist exists'); else console.error('MCP SDK dist missing');\"",
70
+ "dxt:validate": "npx @anthropic-ai/dxt validate",
71
+ "postinstall": "node -e \"console.log('\\n🎉 AI Changelog Generator installed!\\n\\n⚡ Quick Start:\\n ai-changelog - Generate changelog\\n ai-changelog --detailed - Detailed analysis\\n ai-changelog --interactive - Interactive mode\\n ai-changelog-mcp - Start MCP server\\n\\n🤖 AI Models Supported:\\n • GPT-4.1 series (1M context, 75% cost reduction)\\n • o3/o4 reasoning models (Azure-only)\\n • Automatic model selection\\n\\n📖 Docs: https://github.com/entro314-labs/AI-changelog-generator\\n\\n© All trademarks belong to their respective owners.\\n')\""
72
+ },
23
73
  "dependencies": {
24
- "@anthropic-ai/sdk": "^0.58.0",
25
- "@aws-sdk/client-bedrock-runtime": "^3.861.0",
74
+ "@anthropic-ai/sdk": "^0.59.0",
75
+ "@aws-sdk/client-bedrock-runtime": "^3.864.0",
26
76
  "@azure/identity": "^4.11.1",
27
77
  "@clack/prompts": "^0.11.0",
28
- "@google/genai": "^1.12.0",
78
+ "@google/genai": "^1.13.0",
29
79
  "@google/generative-ai": "^0.24.1",
30
- "@huggingface/hub": "^2.4.0",
80
+ "@huggingface/hub": "^2.4.1",
31
81
  "@huggingface/inference": "^4.6.1",
32
82
  "@lmstudio/sdk": "^1.4.0",
33
- "@modelcontextprotocol/sdk": "^1.17.1",
83
+ "@modelcontextprotocol/sdk": "^1.17.2",
34
84
  "@modelcontextprotocol/server-filesystem": "2025.7.29",
85
+ "boxen": "^8.0.1",
35
86
  "chalk": "^5.5.0",
87
+ "cli-table3": "^0.6.5",
36
88
  "dotenv": "^17.2.1",
89
+ "figures": "^6.1.0",
37
90
  "google-auth-library": "^10.2.1",
91
+ "gradient-string": "^3.0.0",
38
92
  "js-yaml": "^4.1.0",
39
- "ollama": "^0.5.16",
40
- "openai": "^5.12.0",
93
+ "ollama": "^0.5.17",
94
+ "openai": "^5.12.2",
95
+ "ora": "^8.2.0",
41
96
  "yargs": "^18.0.0"
42
97
  },
43
98
  "devDependencies": {
44
99
  "@anthropic-ai/dxt": "^0.2.6",
45
- "@types/node": "22.17.1"
100
+ "@types/node": "24.2.1",
101
+ "@vitest/coverage-v8": "^3.2.4",
102
+ "@vitest/ui": "^3.2.4",
103
+ "tempy": "^3.1.0",
104
+ "vitest": "^3.2.4"
46
105
  },
47
106
  "keywords": [
48
107
  "changelog",
@@ -78,12 +137,15 @@
78
137
  "bugs": {
79
138
  "url": "https://github.com/entro314-labs/AI-changelog-generator/issues"
80
139
  },
81
- "homepage": "https://github.com/entro314-labs/AI-changelog-generatorp#readme",
140
+ "homepage": "https://github.com/entro314-labs/AI-changelog-generator#readme",
82
141
  "license": "MIT",
83
142
  "publishConfig": {
84
143
  "access": "public"
85
144
  },
86
- "engines": {},
145
+ "engines": {
146
+ "node": ">=22.0.0",
147
+ "pnpm": ">=8.0.0"
148
+ },
87
149
  "funding": {
88
150
  "type": "github",
89
151
  "url": "https://github.com/sponsors/entro314-labs"
@@ -94,42 +156,12 @@
94
156
  }
95
157
  },
96
158
  "volta": {
97
- "node": "22.15.30",
98
- "npm": "11.4.1"
159
+ "node": "22.17.1",
160
+ "pnpm": "9.17.0"
99
161
  },
100
- "scripts": {
101
- "start": "node bin/ai-changelog.js",
102
- "changelog": "node bin/ai-changelog.js",
103
- "changelog:detailed": "node bin/ai-changelog.js --detailed",
104
- "changelog:enterprise": "node bin/ai-changelog.js --enterprise",
105
- "changelog:interactive": "node bin/ai-changelog.js --interactive",
106
- "changelog:analyze": "node bin/ai-changelog.js --analyze",
107
- "changelog:preview": "node bin/ai-changelog.js --dry-run",
108
- "changelog:no-color": "node bin/ai-changelog.js --no-color",
109
- "mcp": "node bin/ai-changelog-mcp.js",
110
- "mcp:start": "node bin/ai-changelog-mcp.js",
111
- "demo": "node test/test-end-to-end-full.js",
112
- "test": "node test/test-runner.js comprehensive",
113
- "test:comprehensive": "node test/test-runner.js comprehensive",
114
- "test:providers": "node test/test-runner.js providers",
115
- "test:mcp": "node test/test-runner.js mcp",
116
- "test:errors": "node test/test-runner.js errors",
117
- "test:switching": "node test/test-runner.js switching",
118
- "test:individual": "node test/test-mcp-tools.js",
119
- "test:git": "node src/domains/git/git.service.js info",
120
- "setup": "node scripts/setup-azure-openai.js",
121
- "config:create": "node src/infrastructure/config/configuration.manager.js create-sample",
122
- "config:validate": "node src/infrastructure/config/configuration.manager.js validate",
123
- "config:test-models": "node src/infrastructure/config/configuration.manager.js model-test",
124
- "providers:test": "node test/test-providers.js",
125
- "providers:validate": "node test/test-provider-switching.js",
126
- "git:info": "node src/domains/git/git.service.js info",
127
- "git:commits": "node src/domains/git/git.service.js commits 10",
128
- "git:stats": "node src/domains/git/git.service.js stats 5",
129
- "dxt:init": "npx @anthropic-ai/dxt init",
130
- "dxt:pack": "npm run dxt:prepack && npx @anthropic-ai/dxt pack",
131
- "dxt:prepack": "node -e \"const fs=require('fs'),path=require('path'); const src='node_modules/@modelcontextprotocol/sdk/dist', dest='node_modules/@modelcontextprotocol/sdk/dist'; if(fs.existsSync(src)) console.log('MCP SDK dist exists'); else console.error('MCP SDK dist missing');\"",
132
- "dxt:validate": "npx @anthropic-ai/dxt validate",
133
- "postinstall": "node -e \"console.log('\\n🎉 AI Changelog Generator installed!\\n\\n⚡ Quick Start:\\n ai-changelog - Generate changelog\\n ai-changelog --detailed - Detailed analysis\\n ai-changelog --interactive - Interactive mode\\n ai-changelog-mcp - Start MCP server\\n\\n🤖 AI Models Supported:\\n • GPT-4.1 series (1M context, 75% cost reduction)\\n • o3/o4 reasoning models (Azure-only)\\n • Automatic model selection\\n\\n📖 Docs: https://github.com/entro314-labs/AI-changelog-generator\\n\\n© All trademarks belong to their respective owners.\\n')\""
162
+ "pnpm": {
163
+ "overrides": {
164
+ "tmp@<=0.2.3": ">=0.2.4"
165
+ }
134
166
  }
135
- }
167
+ }