@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.
Files changed (36) hide show
  1. package/CHANGELOG.md +42 -2
  2. package/README.md +21 -1
  3. package/ai-changelog-mcp.sh +0 -0
  4. package/ai-changelog.sh +0 -0
  5. package/bin/ai-changelog-dxt.js +6 -3
  6. package/manifest.json +177 -0
  7. package/package.json +76 -81
  8. package/src/ai-changelog-generator.js +5 -4
  9. package/src/application/orchestrators/changelog.orchestrator.js +19 -203
  10. package/src/cli.js +16 -5
  11. package/src/domains/ai/ai-analysis.service.js +2 -0
  12. package/src/domains/analysis/analysis.engine.js +714 -37
  13. package/src/domains/changelog/changelog.service.js +623 -32
  14. package/src/domains/changelog/workspace-changelog.service.js +445 -622
  15. package/src/domains/git/commit-tagger.js +552 -0
  16. package/src/domains/git/git-manager.js +357 -0
  17. package/src/domains/git/git.service.js +865 -16
  18. package/src/infrastructure/cli/cli.controller.js +14 -9
  19. package/src/infrastructure/config/configuration.manager.js +25 -11
  20. package/src/infrastructure/interactive/interactive-workflow.service.js +8 -1
  21. package/src/infrastructure/mcp/mcp-server.service.js +105 -32
  22. package/src/infrastructure/providers/core/base-provider.js +1 -1
  23. package/src/infrastructure/providers/implementations/anthropic.js +16 -173
  24. package/src/infrastructure/providers/implementations/azure.js +16 -63
  25. package/src/infrastructure/providers/implementations/dummy.js +13 -16
  26. package/src/infrastructure/providers/implementations/mock.js +13 -26
  27. package/src/infrastructure/providers/implementations/ollama.js +12 -4
  28. package/src/infrastructure/providers/implementations/openai.js +13 -165
  29. package/src/infrastructure/providers/provider-management.service.js +126 -412
  30. package/src/infrastructure/providers/utils/base-provider-helpers.js +11 -0
  31. package/src/shared/utils/cli-ui.js +8 -10
  32. package/src/shared/utils/diff-processor.js +21 -19
  33. package/src/shared/utils/error-classes.js +33 -0
  34. package/src/shared/utils/utils.js +83 -63
  35. package/types/index.d.ts +61 -68
  36. 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">
File without changes
package/ai-changelog.sh CHANGED
File without changes
@@ -2,16 +2,19 @@
2
2
 
3
3
  /**
4
4
  * AI Changelog Generator - Claude Desktop Extension Entry Point
5
- * Optimized for DXT packaging and Claude Desktop integration
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 DXT environment
14
+ // Setup error handlers for MCPB environment
12
15
  setupProcessErrorHandlers('AI Changelog Generator - Claude Desktop Extension')
13
16
 
14
- // DXT-specific initialization
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.2.1",
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.59.0",
75
- "@aws-sdk/client-bedrock-runtime": "^3.864.0",
76
- "@azure/identity": "^4.11.1",
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.13.0",
29
+ "@google/genai": "^1.30.0",
79
30
  "@google/generative-ai": "^0.24.1",
80
- "@huggingface/hub": "^2.4.1",
81
- "@huggingface/inference": "^4.6.1",
82
- "@lmstudio/sdk": "^1.4.0",
83
- "@modelcontextprotocol/sdk": "^1.17.2",
84
- "@modelcontextprotocol/server-filesystem": "2025.7.29",
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.5.0",
37
+ "chalk": "^5.6.2",
87
38
  "cli-table3": "^0.6.5",
88
- "dotenv": "^17.2.1",
39
+ "dotenv": "^17.2.3",
89
40
  "figures": "^6.1.0",
90
- "google-auth-library": "^10.2.1",
41
+ "google-auth-library": "^10.5.0",
91
42
  "gradient-string": "^3.0.0",
92
- "js-yaml": "^4.1.0",
93
- "ollama": "^0.5.17",
94
- "openai": "^5.12.2",
95
- "ora": "^8.2.0",
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/dxt": "^0.2.6",
100
- "@types/node": "24.2.1",
101
- "@vitest/coverage-v8": "^3.2.4",
102
- "@vitest/ui": "^3.2.4",
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": "^3.2.4"
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.0.0",
147
- "pnpm": ">=8.0.0"
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.17.1",
160
- "pnpm": "9.17.0"
111
+ "node": "22.22.1",
112
+ "pnpm": "10.23.0"
161
113
  },
162
- "pnpm": {
163
- "overrides": {
164
- "tmp@<=0.2.3": ">=0.2.4"
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() || false
208
- } catch (error) {
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
- return this.appService?.orchestrator?.gitManager?.isGitRepo || false
216
- } catch (error) {
215
+ const isGitRepo = this.appService?.orchestrator?.gitManager?.isGitRepo
216
+ return Boolean(isGitRepo)
217
+ } catch (_error) {
217
218
  return false
218
219
  }
219
220
  }