@entro314labs/ai-changelog-generator 3.2.1 → 3.6.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.
- package/CHANGELOG.md +42 -2
- package/README.md +21 -1
- package/ai-changelog-mcp.sh +0 -0
- package/ai-changelog.sh +0 -0
- package/bin/ai-changelog-dxt.js +6 -3
- package/manifest.json +177 -0
- package/package.json +76 -81
- package/src/ai-changelog-generator.js +5 -4
- package/src/application/orchestrators/changelog.orchestrator.js +19 -203
- package/src/cli.js +16 -5
- package/src/domains/ai/ai-analysis.service.js +2 -0
- package/src/domains/analysis/analysis.engine.js +714 -37
- package/src/domains/changelog/changelog.service.js +623 -32
- package/src/domains/changelog/workspace-changelog.service.js +445 -622
- package/src/domains/git/commit-tagger.js +552 -0
- package/src/domains/git/git-manager.js +357 -0
- package/src/domains/git/git.service.js +865 -16
- package/src/infrastructure/cli/cli.controller.js +14 -9
- package/src/infrastructure/config/configuration.manager.js +25 -11
- package/src/infrastructure/interactive/interactive-workflow.service.js +8 -1
- package/src/infrastructure/mcp/mcp-server.service.js +105 -32
- package/src/infrastructure/providers/core/base-provider.js +1 -1
- package/src/infrastructure/providers/implementations/anthropic.js +16 -173
- package/src/infrastructure/providers/implementations/azure.js +16 -63
- package/src/infrastructure/providers/implementations/dummy.js +13 -16
- package/src/infrastructure/providers/implementations/mock.js +13 -26
- package/src/infrastructure/providers/implementations/ollama.js +12 -4
- package/src/infrastructure/providers/implementations/openai.js +13 -165
- package/src/infrastructure/providers/provider-management.service.js +126 -412
- package/src/infrastructure/providers/utils/base-provider-helpers.js +11 -0
- package/src/shared/utils/cli-ui.js +8 -10
- package/src/shared/utils/diff-processor.js +21 -19
- package/src/shared/utils/error-classes.js +33 -0
- package/src/shared/utils/utils.js +83 -63
- package/types/index.d.ts +61 -68
- package/src/domains/git/git-repository.analyzer.js +0 -678
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
10
10
|
### Next Release
|
|
11
11
|
- TBD
|
|
12
12
|
|
|
13
|
+
## [3.6.0] - 2025-11-27
|
|
14
|
+
|
|
15
|
+
### Feat
|
|
16
|
+
- **MCPB Support**: Added full support for Model Context Protocol Bundle (MCPB) extension format.
|
|
17
|
+
- **Packaging**: Updated manifest and packaging for seamless MCP server integration.
|
|
18
|
+
|
|
19
|
+
### Fix
|
|
20
|
+
- **Dry Run**: Fixed `dry-run` mode to correctly skip file writing while preserving output preview.
|
|
21
|
+
- **CLI**: Fixed interactive mode timeouts in non-TTY/CI environments.
|
|
22
|
+
- **MCP Server**: Fixed `ReferenceError` by using dynamic imports for `child_process` in ESM environment.
|
|
23
|
+
- **Validation**: Fixed `WorkspaceChangelogService` validation to correctly detect git repositories.
|
|
24
|
+
- **UI**: Fixed `EnhancedConsole.metrics` method shadowing in CLI UI utilities.
|
|
25
|
+
- **Tests**: Fixed integration test failures in styling and workspace services.
|
|
26
|
+
|
|
27
|
+
### Test
|
|
28
|
+
- **Coverage**: Validated full test suite with 696 passing tests.
|
|
29
|
+
- **Mocking**: Fixed mocking strategies in styling integration tests.
|
|
30
|
+
|
|
31
|
+
### Chore
|
|
32
|
+
- **Dependencies**: Updated project dependencies and type definitions.
|
|
33
|
+
- **Audit**: Verified project robustness and MCP tool integration.
|
|
34
|
+
|
|
35
|
+
## [3.3.0] - 2025-10-19
|
|
36
|
+
|
|
37
|
+
### Refactor
|
|
38
|
+
- **Architecture**: Major refactor of git management with new `GitManager` and `CommitTagger` domains.
|
|
39
|
+
- **Services**: Re-architected `AnalysisEngine`, `ChangelogService`, and `WorkspaceChangelogService` for better separation of concerns.
|
|
40
|
+
- **Config**: Modernized `biome.json` and `package.json` configurations.
|
|
41
|
+
|
|
42
|
+
### Feat
|
|
43
|
+
- **Git Analysis**: Enhanced merge commit analysis and processing.
|
|
44
|
+
- **Configuration**: Added support for `merge` commit type in configuration.
|
|
45
|
+
|
|
46
|
+
### Fix
|
|
47
|
+
- **Reliability**: Resolved intermittent test failures and improved test suite reliability.
|
|
48
|
+
- **Error Handling**: Added comprehensive error classes and improved exception handling.
|
|
49
|
+
|
|
50
|
+
### Test
|
|
51
|
+
- **New Tests**: Added `missing-functionality.test.js` covering edge cases and new architectural components.
|
|
52
|
+
|
|
13
53
|
## [3.2.1] - 2025-08-10
|
|
14
54
|
|
|
15
55
|
### feat
|
|
@@ -22,7 +62,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
22
62
|
- add professional documentation and provider setup guides
|
|
23
63
|
|
|
24
64
|
### fix
|
|
25
|
-
- fix AI provider initialization and isAvailable method calls
|
|
65
|
+
- fix AI provider initialization and isAvailable method calls
|
|
26
66
|
- fix configuration manager null safety with proper error handling
|
|
27
67
|
- fix CLI test timeouts and hanging commands
|
|
28
68
|
- fix missing boolean getters (hasAI, gitExists) in main facade
|
|
@@ -31,7 +71,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
31
71
|
- fix Node.js version consistency across all configurations
|
|
32
72
|
- fix Vitest reporter deprecation warnings
|
|
33
73
|
|
|
34
|
-
### test
|
|
74
|
+
### test
|
|
35
75
|
- add 658 comprehensive tests with 100% pass rate
|
|
36
76
|
- add missing service method implementations for test compatibility
|
|
37
77
|
- add resilient CLI end-to-end testing with proper timeouts
|
package/README.md
CHANGED
|
@@ -133,7 +133,7 @@ ai-changelog --help
|
|
|
133
133
|
# Generate changelog from recent commits
|
|
134
134
|
./ai-changelog.sh
|
|
135
135
|
|
|
136
|
-
# Interactive mode with guided setup
|
|
136
|
+
# Interactive mode with guided setup
|
|
137
137
|
./ai-changelog.sh --interactive
|
|
138
138
|
|
|
139
139
|
# Analyze working directory changes
|
|
@@ -351,9 +351,29 @@ ai-changelog health --detailed
|
|
|
351
351
|
- **[AI Provider Setup](./docs/providers.md)** - Configure OpenAI, Claude, and other providers
|
|
352
352
|
- **[Configuration Reference](./docs/configuration.md)** - All YAML and environment options
|
|
353
353
|
- **[MCP Integration](./docs/mcp-integration.md)** - Claude Desktop and MCP server setup
|
|
354
|
+
- **[Desktop Extension (MCPB)](./MCPB_BUILD.md)** - Build and package as Claude Desktop Extension
|
|
354
355
|
- **[API Reference](./docs/api-reference.md)** - All commands, options, and programmatic usage
|
|
355
356
|
- **[Demo Media](./docs/media/)** - Interactive demos, GIFs, and video walkthroughs
|
|
356
357
|
|
|
358
|
+
### Claude Desktop Extension
|
|
359
|
+
|
|
360
|
+
Install AI Changelog Generator in Claude Desktop with **one click** using the MCPB (MCP Bundle) format:
|
|
361
|
+
|
|
362
|
+
1. Download the latest `.mcpb` file from [Releases](https://github.com/entro314-labs/AI-changelog-generator/releases)
|
|
363
|
+
2. Open Claude Desktop → Settings → Extensions
|
|
364
|
+
3. Drag and drop the `.mcpb` file
|
|
365
|
+
4. Click "Install"
|
|
366
|
+
|
|
367
|
+
No configuration files, no terminal commands - just drag, drop, and start generating changelogs!
|
|
368
|
+
|
|
369
|
+
**For developers:** Learn how to build and package the extension in [MCPB_BUILD.md](./MCPB_BUILD.md)
|
|
370
|
+
|
|
371
|
+
```bash
|
|
372
|
+
# Build Desktop Extension
|
|
373
|
+
pnpm mcpb:validate # Validate manifest
|
|
374
|
+
pnpm mcpb:pack # Create .mcpb file
|
|
375
|
+
```
|
|
376
|
+
|
|
357
377
|
## Contributing
|
|
358
378
|
|
|
359
379
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
package/ai-changelog-mcp.sh
CHANGED
|
File without changes
|
package/ai-changelog.sh
CHANGED
|
File without changes
|
package/bin/ai-changelog-dxt.js
CHANGED
|
@@ -2,16 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* AI Changelog Generator - Claude Desktop Extension Entry Point
|
|
5
|
-
* Optimized for
|
|
5
|
+
* Optimized for MCPB (MCP Bundle) packaging and Claude Desktop integration
|
|
6
|
+
*
|
|
7
|
+
* Note: This file is maintained for backward compatibility.
|
|
8
|
+
* The main MCP server entry point is bin/ai-changelog-mcp.js
|
|
6
9
|
*/
|
|
7
10
|
|
|
8
11
|
import AIChangelogMCPServer from '../src/infrastructure/mcp/mcp-server.service.js'
|
|
9
12
|
import { runMCPServer, setupProcessErrorHandlers } from '../src/shared/utils/cli-entry-utils.js'
|
|
10
13
|
|
|
11
|
-
// Setup error handlers for
|
|
14
|
+
// Setup error handlers for MCPB environment
|
|
12
15
|
setupProcessErrorHandlers('AI Changelog Generator - Claude Desktop Extension')
|
|
13
16
|
|
|
14
|
-
//
|
|
17
|
+
// MCPB-specific initialization (legacy DXT compatibility)
|
|
15
18
|
async function initializeDXTServer() {
|
|
16
19
|
await runMCPServer(
|
|
17
20
|
'AI Changelog Generator - Claude Desktop Extension',
|
package/manifest.json
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifest_version": "0.3",
|
|
3
|
+
"name": "ai-changelog-generator",
|
|
4
|
+
"display_name": "AI Changelog Generator",
|
|
5
|
+
"version": "3.6.0",
|
|
6
|
+
"description": "AI-powered changelog generator with MCP server support - works with most providers, online and local models",
|
|
7
|
+
"long_description": "Generate intelligent changelogs from git commits using AI. Supports multiple providers including OpenAI, Claude, Gemini, Ollama, and LM Studio. Perfect for automating release documentation with smart commit analysis and categorization.\n\nFeatures:\n- Automatic changelog generation from git commits\n- Working directory change analysis\n- Multiple AI provider support (OpenAI, Azure, Claude, Gemini, Ollama, LM Studio)\n- Interactive and batch modes\n- Repository health analysis\n- Branch analysis and recommendations\n- Commit categorization and impact assessment",
|
|
8
|
+
"author": {
|
|
9
|
+
"name": "entro314-labs",
|
|
10
|
+
"email": "hey@entro314.com",
|
|
11
|
+
"url": "https://github.com/entro314-labs"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/entro314-labs/AI-changelog-generator.git"
|
|
16
|
+
},
|
|
17
|
+
"homepage": "https://github.com/entro314-labs/AI-changelog-generator",
|
|
18
|
+
"documentation": "https://github.com/entro314-labs/AI-changelog-generator#readme",
|
|
19
|
+
"support": "https://github.com/entro314-labs/AI-changelog-generator/issues",
|
|
20
|
+
"icon": "icon.png",
|
|
21
|
+
"server": {
|
|
22
|
+
"type": "node",
|
|
23
|
+
"entry_point": "bin/ai-changelog-mcp.js",
|
|
24
|
+
"mcp_config": {
|
|
25
|
+
"command": "node",
|
|
26
|
+
"args": ["${__dirname}/bin/ai-changelog-mcp.js"],
|
|
27
|
+
"env": {
|
|
28
|
+
"AI_PROVIDER": "${user_config.AI_PROVIDER}",
|
|
29
|
+
"OPENAI_API_KEY": "${user_config.OPENAI_API_KEY}",
|
|
30
|
+
"AZURE_OPENAI_KEY": "${user_config.AZURE_OPENAI_KEY}",
|
|
31
|
+
"AZURE_OPENAI_ENDPOINT": "${user_config.AZURE_OPENAI_ENDPOINT}",
|
|
32
|
+
"AZURE_OPENAI_DEPLOYMENT_NAME": "${user_config.AZURE_OPENAI_DEPLOYMENT_NAME}",
|
|
33
|
+
"ANTHROPIC_API_KEY": "${user_config.ANTHROPIC_API_KEY}",
|
|
34
|
+
"GOOGLE_API_KEY": "${user_config.GOOGLE_API_KEY}",
|
|
35
|
+
"HUGGINGFACE_API_KEY": "${user_config.HUGGINGFACE_API_KEY}",
|
|
36
|
+
"VERTEX_PROJECT_ID": "${user_config.VERTEX_PROJECT_ID}",
|
|
37
|
+
"OLLAMA_HOST": "${user_config.OLLAMA_HOST}",
|
|
38
|
+
"LMSTUDIO_API_BASE": "${user_config.LMSTUDIO_API_BASE}",
|
|
39
|
+
"DEFAULT_ANALYSIS_MODE": "${user_config.DEFAULT_ANALYSIS_MODE}"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"tools": [
|
|
44
|
+
{
|
|
45
|
+
"name": "generate_changelog",
|
|
46
|
+
"description": "Generate AI-powered changelog from git commits or working directory changes"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "analyze_repository",
|
|
50
|
+
"description": "Comprehensive repository analysis including health, commits, and branches"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "analyze_current_changes",
|
|
54
|
+
"description": "Analyze staged and unstaged changes in working directory with AI-powered insights"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "configure_providers",
|
|
58
|
+
"description": "Manage AI providers - list, switch, test, and configure"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"tools_generated": false,
|
|
62
|
+
"user_config": {
|
|
63
|
+
"AI_PROVIDER": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"title": "AI Provider",
|
|
66
|
+
"description": "Choose your preferred AI provider, choose from: azure, openai, google, huggingface, ollama, lmstudio",
|
|
67
|
+
"required": false,
|
|
68
|
+
"sensitive": false,
|
|
69
|
+
"default": "openai"
|
|
70
|
+
},
|
|
71
|
+
"OPENAI_API_KEY": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"title": "OpenAI API Key",
|
|
74
|
+
"description": "Your OpenAI API key for GPT models",
|
|
75
|
+
"required": false,
|
|
76
|
+
"sensitive": true
|
|
77
|
+
},
|
|
78
|
+
"AZURE_OPENAI_KEY": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"title": "Azure OpenAI API Key",
|
|
81
|
+
"description": "Your Azure OpenAI API key",
|
|
82
|
+
"required": false,
|
|
83
|
+
"sensitive": true
|
|
84
|
+
},
|
|
85
|
+
"ANTHROPIC_API_KEY": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"title": "Anthropic API Key",
|
|
88
|
+
"description": "Your Anthropic API key for Claude models",
|
|
89
|
+
"required": false,
|
|
90
|
+
"sensitive": true
|
|
91
|
+
},
|
|
92
|
+
"GOOGLE_API_KEY": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"title": "Google AI API Key",
|
|
95
|
+
"description": "Your Google AI API key for Gemini models",
|
|
96
|
+
"required": false,
|
|
97
|
+
"sensitive": true
|
|
98
|
+
},
|
|
99
|
+
"HUGGINGFACE_API_KEY": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"title": "Hugging Face API Key",
|
|
102
|
+
"description": "Your Hugging Face API key",
|
|
103
|
+
"required": false,
|
|
104
|
+
"sensitive": true
|
|
105
|
+
},
|
|
106
|
+
"DEFAULT_ANALYSIS_MODE": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"title": "Default Analysis Mode",
|
|
109
|
+
"description": "Default mode for changelog generation (standard, detailed, or enterprise)",
|
|
110
|
+
"required": false,
|
|
111
|
+
"sensitive": false,
|
|
112
|
+
"default": "standard"
|
|
113
|
+
},
|
|
114
|
+
"AZURE_OPENAI_ENDPOINT": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"title": "Azure OpenAI Endpoint",
|
|
117
|
+
"description": "Your Azure OpenAI endpoint URL (e.g., https://your-resource.openai.azure.com)",
|
|
118
|
+
"required": false,
|
|
119
|
+
"sensitive": false
|
|
120
|
+
},
|
|
121
|
+
"AZURE_OPENAI_DEPLOYMENT_NAME": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"title": "Azure Deployment Name",
|
|
124
|
+
"description": "Your Azure OpenAI deployment name (e.g., gpt-4o)",
|
|
125
|
+
"required": false,
|
|
126
|
+
"sensitive": false
|
|
127
|
+
},
|
|
128
|
+
"VERTEX_PROJECT_ID": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"title": "Google Cloud Project ID",
|
|
131
|
+
"description": "Your Google Cloud Project ID for Vertex AI",
|
|
132
|
+
"required": false,
|
|
133
|
+
"sensitive": false
|
|
134
|
+
},
|
|
135
|
+
"OLLAMA_HOST": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"title": "Ollama Host",
|
|
138
|
+
"description": "Your Ollama server URL",
|
|
139
|
+
"required": false,
|
|
140
|
+
"sensitive": false,
|
|
141
|
+
"default": "http://localhost:11434"
|
|
142
|
+
},
|
|
143
|
+
"LMSTUDIO_API_BASE": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"title": "LM Studio API Base",
|
|
146
|
+
"description": "Your LM Studio server URL",
|
|
147
|
+
"required": false,
|
|
148
|
+
"sensitive": false,
|
|
149
|
+
"default": "http://localhost:1234/v1"
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"keywords": [
|
|
153
|
+
"changelog",
|
|
154
|
+
"git",
|
|
155
|
+
"ai",
|
|
156
|
+
"automation",
|
|
157
|
+
"mcp",
|
|
158
|
+
"openai",
|
|
159
|
+
"claude",
|
|
160
|
+
"anthropic",
|
|
161
|
+
"gemini",
|
|
162
|
+
"azure",
|
|
163
|
+
"ollama",
|
|
164
|
+
"lmstudio",
|
|
165
|
+
"devops",
|
|
166
|
+
"release-notes",
|
|
167
|
+
"commit-analysis"
|
|
168
|
+
],
|
|
169
|
+
"license": "MIT",
|
|
170
|
+
"compatibility": {
|
|
171
|
+
"claude_desktop": ">=1.0.0",
|
|
172
|
+
"platforms": ["darwin", "win32", "linux"],
|
|
173
|
+
"runtimes": {
|
|
174
|
+
"node": ">=22.x"
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
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.
|
|
4
|
+
"version": "3.6.0",
|
|
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",
|
|
@@ -14,94 +14,46 @@
|
|
|
14
14
|
"bin/",
|
|
15
15
|
"src/",
|
|
16
16
|
"types/",
|
|
17
|
+
"manifest.json",
|
|
17
18
|
"ai-changelog.sh",
|
|
18
19
|
"ai-changelog-mcp.sh",
|
|
19
20
|
"README.md",
|
|
20
21
|
"LICENSE",
|
|
21
22
|
"CHANGELOG.md"
|
|
22
23
|
],
|
|
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
|
-
},
|
|
73
24
|
"dependencies": {
|
|
74
|
-
"@anthropic-ai/sdk": "^0.
|
|
75
|
-
"@aws-sdk/client-bedrock-runtime": "^3.
|
|
76
|
-
"@azure/identity": "^4.
|
|
25
|
+
"@anthropic-ai/sdk": "^0.71.0",
|
|
26
|
+
"@aws-sdk/client-bedrock-runtime": "^3.941.0",
|
|
27
|
+
"@azure/identity": "^4.13.0",
|
|
77
28
|
"@clack/prompts": "^0.11.0",
|
|
78
|
-
"@google/genai": "^1.
|
|
29
|
+
"@google/genai": "^1.30.0",
|
|
79
30
|
"@google/generative-ai": "^0.24.1",
|
|
80
|
-
"@huggingface/hub": "^2.
|
|
81
|
-
"@huggingface/inference": "^4.
|
|
82
|
-
"@lmstudio/sdk": "^1.
|
|
83
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
84
|
-
"@modelcontextprotocol/server-filesystem": "2025.
|
|
31
|
+
"@huggingface/hub": "^2.7.1",
|
|
32
|
+
"@huggingface/inference": "^4.13.4",
|
|
33
|
+
"@lmstudio/sdk": "^1.5.0",
|
|
34
|
+
"@modelcontextprotocol/sdk": "^1.23.0",
|
|
35
|
+
"@modelcontextprotocol/server-filesystem": "2025.11.25",
|
|
85
36
|
"boxen": "^8.0.1",
|
|
86
|
-
"chalk": "^5.
|
|
37
|
+
"chalk": "^5.6.2",
|
|
87
38
|
"cli-table3": "^0.6.5",
|
|
88
|
-
"dotenv": "^17.2.
|
|
39
|
+
"dotenv": "^17.2.3",
|
|
89
40
|
"figures": "^6.1.0",
|
|
90
|
-
"google-auth-library": "^10.
|
|
41
|
+
"google-auth-library": "^10.5.0",
|
|
91
42
|
"gradient-string": "^3.0.0",
|
|
92
|
-
"js-yaml": "^4.1.
|
|
93
|
-
"ollama": "^0.
|
|
94
|
-
"openai": "^
|
|
95
|
-
"ora": "^
|
|
43
|
+
"js-yaml": "^4.1.1",
|
|
44
|
+
"ollama": "^0.6.3",
|
|
45
|
+
"openai": "^6.9.1",
|
|
46
|
+
"ora": "^9.0.0",
|
|
96
47
|
"yargs": "^18.0.0"
|
|
97
48
|
},
|
|
98
49
|
"devDependencies": {
|
|
99
|
-
"@anthropic-ai/
|
|
100
|
-
"@types/node": "24.
|
|
101
|
-
"@vitest/
|
|
102
|
-
"@vitest/
|
|
50
|
+
"@anthropic-ai/mcpb": "^2.0.1",
|
|
51
|
+
"@types/node": "24.10.1",
|
|
52
|
+
"@vitest/browser": "latest",
|
|
53
|
+
"@vitest/coverage-v8": "latest",
|
|
54
|
+
"@vitest/ui": "latest",
|
|
103
55
|
"tempy": "^3.1.0",
|
|
104
|
-
"vitest": "
|
|
56
|
+
"vitest": "latest"
|
|
105
57
|
},
|
|
106
58
|
"keywords": [
|
|
107
59
|
"changelog",
|
|
@@ -143,8 +95,8 @@
|
|
|
143
95
|
"access": "public"
|
|
144
96
|
},
|
|
145
97
|
"engines": {
|
|
146
|
-
"node": ">=22.
|
|
147
|
-
"pnpm": ">=
|
|
98
|
+
"node": ">=22.21.1",
|
|
99
|
+
"pnpm": ">=10.23.0"
|
|
148
100
|
},
|
|
149
101
|
"funding": {
|
|
150
102
|
"type": "github",
|
|
@@ -156,12 +108,55 @@
|
|
|
156
108
|
}
|
|
157
109
|
},
|
|
158
110
|
"volta": {
|
|
159
|
-
"node": "22.
|
|
160
|
-
"pnpm": "
|
|
111
|
+
"node": "22.22.1",
|
|
112
|
+
"pnpm": "10.23.0"
|
|
161
113
|
},
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
|
|
165
|
-
|
|
114
|
+
"scripts": {
|
|
115
|
+
"start": "node bin/ai-changelog.js",
|
|
116
|
+
"changelog": "node bin/ai-changelog.js",
|
|
117
|
+
"changelog:detailed": "node bin/ai-changelog.js --detailed",
|
|
118
|
+
"changelog:enterprise": "node bin/ai-changelog.js --enterprise",
|
|
119
|
+
"changelog:interactive": "node bin/ai-changelog.js --interactive",
|
|
120
|
+
"changelog:analyze": "node bin/ai-changelog.js --analyze",
|
|
121
|
+
"changelog:preview": "node bin/ai-changelog.js --dry-run",
|
|
122
|
+
"changelog:no-color": "node bin/ai-changelog.js --no-color",
|
|
123
|
+
"mcp": "node bin/ai-changelog-mcp.js",
|
|
124
|
+
"mcp:start": "node bin/ai-changelog-mcp.js",
|
|
125
|
+
"demo": "node test/test-end-to-end-full.js",
|
|
126
|
+
"lint": "exec biome lint src/",
|
|
127
|
+
"lint:fix": "exec biome lint --write src/",
|
|
128
|
+
"lint:fix-unsafe": "exec biome lint --unsafe --write src/",
|
|
129
|
+
"format": "exec biome format --write src/",
|
|
130
|
+
"format:unsafe": "exec biome format --write src/",
|
|
131
|
+
"format:check": "exec biome format src/",
|
|
132
|
+
"check": "exec biome check src/",
|
|
133
|
+
"check:fix": "exec biome check --write src/",
|
|
134
|
+
"test": "vitest run",
|
|
135
|
+
"test:watch": "vitest",
|
|
136
|
+
"test:ui": "vitest --ui",
|
|
137
|
+
"test:coverage": "vitest run --coverage",
|
|
138
|
+
"test:providers": "vitest run test/providers.test.js",
|
|
139
|
+
"test:cli": "vitest run test/cli.test.js",
|
|
140
|
+
"test:core": "vitest run test/core.test.js",
|
|
141
|
+
"test:services": "vitest run test/services.test.js",
|
|
142
|
+
"test:utils": "vitest run test/utils.test.js",
|
|
143
|
+
"test:integration": "vitest run test/integration.test.js",
|
|
144
|
+
"test:mcp": "vitest run test/mcp.test.js",
|
|
145
|
+
"test:styling": "vitest run test/cli-ui.test.js test/colors.test.js test/styling-integration.test.js",
|
|
146
|
+
"test:styling-e2e": "vitest run test/cli-styling-e2e.test.js --testTimeout=60000",
|
|
147
|
+
"test:legacy": "node test/test-runner.js comprehensive",
|
|
148
|
+
"test:git": "node src/domains/git/git.service.js info",
|
|
149
|
+
"setup": "node scripts/setup-azure-openai.js",
|
|
150
|
+
"providers:test": "node test/test-providers.js",
|
|
151
|
+
"providers:validate": "node test/test-provider-switching.js",
|
|
152
|
+
"git:info": "node src/domains/git/git.service.js info",
|
|
153
|
+
"git:commits": "node src/domains/git/git.service.js commits 10",
|
|
154
|
+
"git:stats": "node src/domains/git/git.service.js stats 5",
|
|
155
|
+
"mcpb:init": "mcpb init .",
|
|
156
|
+
"mcpb:validate": "mcpb validate manifest.json",
|
|
157
|
+
"mcpb:pack": "mcpb pack . ai-changelog-generator.mcpb",
|
|
158
|
+
"mcpb:build": "pnpm mcpb:validate && pnpm mcpb:pack",
|
|
159
|
+
"mcpb:info": "mcpb info ai-changelog-generator.mcpb",
|
|
160
|
+
"postinstall": "node -e \"console.log('🎉 AI Changelog Generator installed!⚡ Quick Start: ai-changelog - Generate changelog ai-changelog --detailed - Detailed analysis ai-changelog --interactive - Interactive mode ai-changelog-mcp - Start MCP server🤖 AI Models Supported: • GPT-4.1 series (1M context, 75% cost reduction) • o3/o4 reasoning models (Azure-only) • Automatic model selection📖 Docs: https://github.com/entro314-labs/AI-changelog-generator© All trademarks belong to their respective owners.')\""
|
|
166
161
|
}
|
|
167
|
-
}
|
|
162
|
+
}
|
|
@@ -204,16 +204,17 @@ export class AIChangelogGenerator {
|
|
|
204
204
|
// Utility methods for backward compatibility
|
|
205
205
|
get hasAI() {
|
|
206
206
|
try {
|
|
207
|
-
return this.appService?.orchestrator?.aiProvider?.isAvailable()
|
|
208
|
-
} catch (
|
|
207
|
+
return this.appService?.orchestrator?.aiProvider?.isAvailable()
|
|
208
|
+
} catch (_error) {
|
|
209
209
|
return false
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
get gitExists() {
|
|
214
214
|
try {
|
|
215
|
-
|
|
216
|
-
|
|
215
|
+
const isGitRepo = this.appService?.orchestrator?.gitManager?.isGitRepo
|
|
216
|
+
return Boolean(isGitRepo)
|
|
217
|
+
} catch (_error) {
|
|
217
218
|
return false
|
|
218
219
|
}
|
|
219
220
|
}
|