@dollhousemcp/mcp-server 1.4.1 → 1.4.3

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 (46) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +90 -12
  3. package/dist/config/updateConfig.d.ts +84 -0
  4. package/dist/config/updateConfig.d.ts.map +1 -0
  5. package/dist/config/updateConfig.js +148 -0
  6. package/dist/generated/version.d.ts +9 -0
  7. package/dist/generated/version.d.ts.map +1 -0
  8. package/dist/generated/version.js +9 -0
  9. package/dist/index.d.ts +6 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +34 -6
  12. package/dist/portfolio/DefaultElementProvider.d.ts +78 -0
  13. package/dist/portfolio/DefaultElementProvider.d.ts.map +1 -0
  14. package/dist/portfolio/DefaultElementProvider.js +386 -0
  15. package/dist/portfolio/PortfolioManager.d.ts +12 -0
  16. package/dist/portfolio/PortfolioManager.d.ts.map +1 -1
  17. package/dist/portfolio/PortfolioManager.js +107 -3
  18. package/dist/portfolio/types.d.ts +6 -6
  19. package/dist/portfolio/types.d.ts.map +1 -1
  20. package/dist/portfolio/types.js +7 -7
  21. package/dist/security/commandValidator.d.ts.map +1 -1
  22. package/dist/security/commandValidator.js +5 -2
  23. package/dist/security/securityMonitor.d.ts +2 -1
  24. package/dist/security/securityMonitor.d.ts.map +1 -1
  25. package/dist/security/securityMonitor.js +1 -1
  26. package/dist/server/tools/UpdateTools.d.ts.map +1 -1
  27. package/dist/server/tools/UpdateTools.js +22 -1
  28. package/dist/server/types.d.ts +1 -0
  29. package/dist/server/types.d.ts.map +1 -1
  30. package/dist/server/types.js +1 -1
  31. package/dist/update/BackupManager.d.ts +17 -0
  32. package/dist/update/BackupManager.d.ts.map +1 -1
  33. package/dist/update/BackupManager.js +112 -3
  34. package/dist/update/UpdateManager.d.ts +19 -0
  35. package/dist/update/UpdateManager.d.ts.map +1 -1
  36. package/dist/update/UpdateManager.js +485 -15
  37. package/dist/update/VersionManager.d.ts +1 -1
  38. package/dist/update/VersionManager.d.ts.map +1 -1
  39. package/dist/update/VersionManager.js +62 -15
  40. package/dist/utils/fileOperations.d.ts +83 -0
  41. package/dist/utils/fileOperations.d.ts.map +1 -0
  42. package/dist/utils/fileOperations.js +291 -0
  43. package/dist/utils/installation.d.ts +30 -0
  44. package/dist/utils/installation.d.ts.map +1 -0
  45. package/dist/utils/installation.js +160 -0
  46. package/package.json +3 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,52 @@ All notable changes to DollhouseMCP will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.4.3] - 2025-08-04
9
+
10
+ ### 🚨 Critical Fix
11
+ - **Fixed NPM installation crash** caused by directory name mismatch
12
+ - v1.4.2 installations were completely broken on clean machines
13
+ - Server would crash silently with no error output
14
+
15
+ ### Changed
16
+ - **BREAKING**: All element directories now use plural names consistently
17
+ - Portfolio directories: `personas/`, `skills/`, `templates/`, etc.
18
+ - Data directories: `personas/`, `skills/`, `templates/`, etc.
19
+ - This aligns with semantic correctness (directories contain multiple items)
20
+ - Simplified DefaultElementProvider implementation
21
+ - Removed unnecessary mapping layer between directory names
22
+ - Code is now cleaner and more maintainable
23
+ - Improved error logging for initialization failures
24
+ - Added console.error output for Claude Desktop visibility
25
+ - Better debugging information when issues occur
26
+
27
+ ### Added
28
+ - **Automatic migration** for existing v1.4.2 installations
29
+ - Renames singular directories to plural automatically
30
+ - Preserves all existing content
31
+ - Logs migration progress for transparency
32
+ - Comprehensive troubleshooting section in README
33
+ - Clear instructions for v1.4.2 users
34
+ - Directory structure documentation
35
+ - NPM upgrade instructions
36
+
37
+ ### Technical Details
38
+ - ElementType enum values changed from singular to plural
39
+ - `'persona'` → `'personas'`
40
+ - `'skill'` → `'skills'`
41
+ - `'template'` → `'templates'`
42
+ - `'agent'` → `'agents'`
43
+ - `'memory'` → `'memories'`
44
+ - `'ensemble'` → `'ensembles'`
45
+ - Removed `elementMappings` object from DefaultElementProvider
46
+ - Portfolio directories now match data directory names exactly
47
+
48
+ ### Migration Instructions
49
+ If upgrading from v1.4.2:
50
+ 1. Update: `npm install -g @dollhousemcp/mcp-server@latest`
51
+ 2. The server will automatically migrate your directories on first run
52
+ 3. No manual intervention required
53
+
8
54
  ## [1.4.0] - 2025-08-02
9
55
 
10
56
  ### Changed
package/README.md CHANGED
@@ -14,7 +14,7 @@
14
14
  [![macOS Build Status](https://img.shields.io/badge/macOS-✓_Tested-000000?logo=apple&logoColor=white)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "macOS CI Build Status")
15
15
  [![Linux Build Status](https://img.shields.io/badge/Linux-✓_Tested-FCC624?logo=linux&logoColor=black)](https://github.com/DollhouseMCP/mcp-server/actions/workflows/core-build-test.yml?query=branch:main "Linux CI Build Status")
16
16
  [![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?logo=docker&logoColor=white)](https://github.com/DollhouseMCP/mcp-server/blob/main/Dockerfile)
17
- [![Test Coverage](https://img.shields.io/badge/Coverage-500%20Tests-green)](https://github.com/DollhouseMCP/mcp-server/tree/main/__tests__)
17
+ [![Test Coverage](https://img.shields.io/badge/Coverage-600%2B%20Tests-green)](https://github.com/DollhouseMCP/mcp-server/tree/main/__tests__)
18
18
  [![Auto-Update](https://img.shields.io/badge/Auto--Update-Enterprise%20Grade-purple)](https://github.com/DollhouseMCP/mcp-server)
19
19
 
20
20
  A comprehensive Model Context Protocol (MCP) server that enables dynamic AI persona management with an integrated GitHub-powered collection. DollhouseMCP allows Claude and other compatible AI assistants to activate different behavioral personas while supporting community sharing and monetization.
@@ -23,7 +23,7 @@ A comprehensive Model Context Protocol (MCP) server that enables dynamic AI pers
23
23
  **🏪 Collection**: https://github.com/DollhouseMCP/collection
24
24
  **📦 NPM Package**: https://www.npmjs.com/package/@dollhousemcp/mcp-server
25
25
  **🌍 Website**: https://dollhousemcp.com (planned)
26
- **📦 Version**: v1.3.3
26
+ **📦 Version**: v1.4.3
27
27
 
28
28
  > **⚠️ Breaking Change Notice**: Tool names have changed from "marketplace" to "collection" terminology. Old names still work but are deprecated. See [Migration Guide](docs/MIGRATION_GUIDE_COLLECTION_RENAME.md) for details.
29
29
 
@@ -33,6 +33,9 @@ A comprehensive Model Context Protocol (MCP) server that enables dynamic AI pers
33
33
  # Install globally
34
34
  npm install -g @dollhousemcp/mcp-server
35
35
 
36
+ # ⚠️ IMPORTANT: If you have v1.4.2, upgrade immediately:
37
+ # npm install -g @dollhousemcp/mcp-server@latest
38
+
36
39
  # Add to Claude Desktop config (see path below for your OS)
37
40
  # macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
38
41
  # Windows: %APPDATA%\Claude\claude_desktop_config.json
@@ -56,17 +59,18 @@ Restart Claude Desktop and you're ready to use DollhouseMCP! Try `list_personas`
56
59
 
57
60
  | Feature | Description |
58
61
  |---------|-------------|
59
- | 🎭 **30 MCP Tools** | Complete portfolio element management through chat interface |
62
+ | 🎭 **40 MCP Tools** | Complete portfolio element management through chat interface |
60
63
  | 🏪 **GitHub Collection** | Browse, search, install, and submit personas to community collection |
61
64
  | 👤 **User Identity System** | Environment-based attribution for persona creators |
62
65
  | 🆔 **Unique ID System** | Advanced ID generation: `{type}_{name}_{author}_{YYYYMMDD}-{HHMMSS}` |
63
66
  | 💬 **Chat-Based Management** | Create, edit, and validate personas through conversational interface |
64
67
  | 🔄 **Real-time Operations** | Live editing with automatic version bumping and validation |
65
68
  | 🚀 **Auto-Update System** | Enterprise-grade auto-update with backup/rollback and dependency validation |
69
+ | 📦 **NPM Installation** | Install MCP servers from npm with cross-platform support and atomic operations |
66
70
  | 🛡️ **Data Protection** | Copy-on-write for default personas, comprehensive backup system |
67
71
  | 🏠 **Local-First Architecture** | Full functionality without cloud dependency |
68
72
 
69
- ## 🎨 Portfolio Customization Elements (NEW! v1.3.3)
73
+ ## 🎨 Portfolio Customization Elements
70
74
 
71
75
  DollhouseMCP introduces a comprehensive portfolio system for customizing AI behavior. Your portfolio is your personal collection of AI customization elements that enhance and tailor your AI experience.
72
76
 
@@ -78,6 +82,8 @@ DollhouseMCP introduces a comprehensive portfolio system for customizing AI beha
78
82
  | 🛠️ **Skills** | Add specific capabilities like code review, data analysis, or creative writing | ✅ Available |
79
83
  | 📝 **Templates** | Create reusable response formats for emails, reports, documentation | ✅ Available |
80
84
  | 🤖 **Agents** | Build autonomous assistants that can pursue goals and make decisions | ✅ Available |
85
+ | 🧠 **Memory** | Persistent context storage with retention policies and search capabilities | ✅ Available |
86
+ | 🎯 **Ensemble** | Orchestrate multiple elements together as one unified entity | ✅ Available |
81
87
 
82
88
  ### Managing Your Portfolio
83
89
 
@@ -136,7 +142,7 @@ For backward compatibility, the original persona-specific tools still work:
136
142
  - `get_active_persona` → calls `get_active_elements type="personas"`
137
143
  - etc.
138
144
 
139
- ## 🔒 Enterprise-Grade Security (v1.2.4)
145
+ ## 🔒 Enterprise-Grade Security
140
146
 
141
147
  DollhouseMCP implements comprehensive security measures to protect your personas and system:
142
148
 
@@ -265,9 +271,9 @@ Add DollhouseMCP to your Claude Desktop configuration:
265
271
  **🔄 After configuration:**
266
272
  1. Save the file
267
273
  2. Restart Claude Desktop completely
268
- 3. All 30 DollhouseMCP tools will be available
274
+ 3. All 46 DollhouseMCP tools will be available
269
275
 
270
- ## 🛠️ Available Tools (30 Total)
276
+ ## 🛠️ Available Tools (46 Total)
271
277
 
272
278
  ### Portfolio Element Management (NEW!)
273
279
  - **`list_elements`** - List all elements of a specific type
@@ -719,7 +725,7 @@ DollhouseMCP/
719
725
  ├── __tests__/
720
726
  │ ├── unit/ # Unit tests for components
721
727
  │ ├── integration/ # Integration tests
722
- │ └── *.test.ts # Test files (372 tests total)
728
+ │ └── *.test.ts # Test files (600+ tests total)
723
729
  ├── src/
724
730
  │ ├── index.ts # Main MCP server (DollhouseMCPServer)
725
731
  │ ├── cache/ # API caching layer
@@ -745,7 +751,7 @@ DollhouseMCP/
745
751
  ├── scripts/ # Management and utility scripts
746
752
  ├── Dockerfile # Multi-stage Docker build
747
753
  ├── docker-compose.yml # Production and development configs
748
- ├── package.json # Project config (dollhousemcp v1.2.1)
754
+ ├── package.json # Project config (dollhousemcp v1.4.2)
749
755
  ├── tsconfig.json # TypeScript configuration
750
756
  ├── jest.config.cjs # Jest test configuration
751
757
  ├── setup.sh # Automated installation script
@@ -895,11 +901,33 @@ export DEBUG="dollhousemcp:*" # Debug logging (optional)
895
901
 
896
902
  ## 🔧 Troubleshooting
897
903
 
904
+ ### ⚠️ NPM Installation Issues (v1.4.2)
905
+
906
+ If the MCP server crashes on startup after NPM installation:
907
+ 1. Check your version: `npm list -g @dollhousemcp/mcp-server`
908
+ 2. If you have v1.4.2, upgrade immediately: `npm install -g @dollhousemcp/mcp-server@latest`
909
+ 3. Clear your portfolio and let it regenerate: `rm -rf ~/.dollhouse/portfolio`
910
+
911
+ **Note**: v1.4.2 had a critical bug that prevented proper initialization. This has been fixed in v1.4.3.
912
+
913
+ ### Directory Structure (v1.4.3+)
914
+
915
+ As of v1.4.3, all element directories use plural names:
916
+ - `~/.dollhouse/portfolio/personas/` (was `persona/` in v1.4.2)
917
+ - `~/.dollhouse/portfolio/skills/` (was `skill/` in v1.4.2)
918
+ - `~/.dollhouse/portfolio/templates/` (was `template/` in v1.4.2)
919
+ - `~/.dollhouse/portfolio/agents/` (was `agent/` in v1.4.2)
920
+ - `~/.dollhouse/portfolio/memories/` (was `memory/` in v1.4.2)
921
+ - `~/.dollhouse/portfolio/ensembles/` (was `ensemble/` in v1.4.2)
922
+
923
+ If you upgraded from v1.4.2, the server will automatically migrate your directories.
924
+
898
925
  ### Common Issues
899
926
 
900
927
  | Issue | Solution |
901
928
  |-------|----------|
902
- | **Personas not loading** | Check `personas/` directory exists and has read permissions |
929
+ | **v1.4.2 installation broken** | Upgrade to v1.4.3+ immediately |
930
+ | **Personas not loading** | Check `~/.dollhouse/portfolio/personas/` directory exists |
903
931
  | **Server won't start** | Run `npm run rebuild` to clean and rebuild |
904
932
  | **Collection not working** | Check internet connection and GitHub API access |
905
933
  | **User identity not saving** | Set `DOLLHOUSE_USER` environment variable before starting Claude |
@@ -1126,7 +1154,57 @@ This project is licensed under the **AGPL-3.0** License with Platform Stability
1126
1154
 
1127
1155
  ## 🏷️ Version History
1128
1156
 
1129
- ### v1.2.5 - July 2025 (Next Release)
1157
+ ### v1.4.2 - August 4, 2025 (Current)
1158
+ **Critical NPM Installation Fix**:
1159
+ - 🚨 **Fixed NPM installation failure** where empty portfolios caused server crashes
1160
+ - 📦 **DefaultElementProvider** automatically populates default content on first run
1161
+ - 🔍 **Smart path detection** searches multiple NPM/Git installation locations
1162
+ - 💬 **Helpful error messages** guide new users when portfolios are empty
1163
+ - 🔒 **Security hardened** with audit logging and file integrity verification
1164
+
1165
+ ### v1.4.1 - August 2, 2025
1166
+ **NPM Installation Support**:
1167
+ - 📦 **Install MCP servers from npm packages** with full cross-platform support
1168
+ - 🔄 **Atomic operations** with transaction-based rollback on failure
1169
+ - 📊 **Progress indicators** for better user experience during long operations
1170
+ - 🏗️ **Centralized configuration** respecting platform conventions (XDG on Linux)
1171
+ - 🛠️ **FileOperations utility** for consistent cross-platform behavior
1172
+
1173
+ ### v1.4.0 - August 2, 2025
1174
+ **Complete Element System**:
1175
+ - 🎭 **Ensemble elements** for orchestrating multiple elements together
1176
+ - 🧠 **Memory elements** with retention policies and search capabilities
1177
+ - 🤖 **Agent elements** with goal-oriented decision making
1178
+ - 📝 **Template elements** with secure variable substitution
1179
+ - 🛠️ **Skill elements** with parameter system and proficiency tracking
1180
+ - 🔒 **Comprehensive security** throughout all element types
1181
+
1182
+ ### v1.3.3 - August 2, 2025
1183
+ **Portfolio System & Element Types**:
1184
+ - 🎨 **Portfolio-based architecture** for managing all AI customization elements
1185
+ - 🛠️ **Generic element tools** that work with any element type
1186
+ - 📁 **Structured directory layout** under `~/.dollhouse/portfolio/`
1187
+ - 🔄 **Backward compatibility** maintained for existing personas
1188
+
1189
+ ### v1.3.2 - August 1, 2025
1190
+ **GitFlow Implementation**:
1191
+ - 🔀 **GitFlow branching model** for better release management
1192
+ - 🏷️ **Automated version tagging** on releases
1193
+ - 📦 **NPM release automation** (pending token configuration)
1194
+
1195
+ ### v1.3.1 - July 31, 2025
1196
+ **Collection System Updates**:
1197
+ - 🏪 **Improved collection browsing** with better error handling
1198
+ - 🔍 **Enhanced search functionality** for finding content
1199
+ - 📥 **Better installation process** with validation
1200
+
1201
+ ### v1.3.0 - July 30, 2025
1202
+ **Major Architecture Refactor**:
1203
+ - 🏗️ **Element interface system** providing foundation for all element types
1204
+ - 🔐 **Security-first implementation** with comprehensive protections
1205
+ - 📊 **Improved test coverage** reaching 96%+
1206
+
1207
+ ### v1.2.5 - July 2025
1130
1208
 
1131
1209
  **Collection Rename & Breaking Changes**:
1132
1210
  - 🔄 **Renamed all "marketplace" tools to "collection"**:
@@ -1140,7 +1218,7 @@ This project is licensed under the **AGPL-3.0** License with Platform Stability
1140
1218
  - ✅ **Created migration guide** for users to update their scripts
1141
1219
  - ✅ **Fixed all date references** from January to July 2025
1142
1220
 
1143
- ### v1.2.4 - July 10, 2025 (Current)
1221
+ ### v1.2.4 - July 10, 2025
1144
1222
 
1145
1223
  **Critical Fix**:
1146
1224
  - ✅ **Fixed MCP protocol compatibility** - console output no longer breaks JSON-RPC communication
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Configuration for update system
3
+ * Supports environment variables and XDG directories
4
+ */
5
+ export interface UpdateConfig {
6
+ paths: {
7
+ backupDir: string;
8
+ npmBackupDir: string;
9
+ tempDir: string;
10
+ };
11
+ limits: {
12
+ maxSearchDepth: number;
13
+ maxBackupCount: number;
14
+ maxBackupSizeMB: number;
15
+ };
16
+ timeouts: {
17
+ gitCloneMs: number;
18
+ npmInstallMs: number;
19
+ npmUpdateMs: number;
20
+ buildMs: number;
21
+ };
22
+ }
23
+ export declare class UpdateConfigManager {
24
+ private static instance;
25
+ private config;
26
+ private constructor();
27
+ /**
28
+ * Get singleton instance
29
+ */
30
+ static getInstance(): UpdateConfigManager;
31
+ /**
32
+ * Get configuration
33
+ */
34
+ getConfig(): UpdateConfig;
35
+ /**
36
+ * Load configuration from environment and defaults
37
+ */
38
+ private loadConfiguration;
39
+ /**
40
+ * Get base directory respecting XDG standards on Linux
41
+ */
42
+ private getBaseDirectory;
43
+ /**
44
+ * Parse integer environment variable with default
45
+ */
46
+ private parseIntEnv;
47
+ /**
48
+ * Get backup directory path
49
+ */
50
+ getBackupDir(): string;
51
+ /**
52
+ * Get npm backup directory path
53
+ */
54
+ getNpmBackupDir(): string;
55
+ /**
56
+ * Get temporary directory path
57
+ */
58
+ getTempDir(): string;
59
+ /**
60
+ * Get max search depth for installation detection
61
+ */
62
+ getMaxSearchDepth(): number;
63
+ /**
64
+ * Get max number of backups to keep
65
+ */
66
+ getMaxBackupCount(): number;
67
+ /**
68
+ * Get timeout for git clone operations
69
+ */
70
+ getGitCloneTimeout(): number;
71
+ /**
72
+ * Get timeout for npm install operations
73
+ */
74
+ getNpmInstallTimeout(): number;
75
+ /**
76
+ * Get timeout for npm update operations
77
+ */
78
+ getNpmUpdateTimeout(): number;
79
+ /**
80
+ * Get timeout for build operations
81
+ */
82
+ getBuildTimeout(): number;
83
+ }
84
+ //# sourceMappingURL=updateConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateConfig.d.ts","sourceRoot":"","sources":["../../src/config/updateConfig.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoC;IAC3D,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO;IAIP;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAOzC;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAenB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,eAAe,IAAI,MAAM;CAG1B"}
@@ -0,0 +1,148 @@
1
+ import * as path from 'path';
2
+ import * as os from 'os';
3
+ import { logger } from '../utils/logger.js';
4
+ export class UpdateConfigManager {
5
+ static instance = null;
6
+ config;
7
+ constructor() {
8
+ this.config = this.loadConfiguration();
9
+ }
10
+ /**
11
+ * Get singleton instance
12
+ */
13
+ static getInstance() {
14
+ if (!UpdateConfigManager.instance) {
15
+ UpdateConfigManager.instance = new UpdateConfigManager();
16
+ }
17
+ return UpdateConfigManager.instance;
18
+ }
19
+ /**
20
+ * Get configuration
21
+ */
22
+ getConfig() {
23
+ return this.config;
24
+ }
25
+ /**
26
+ * Load configuration from environment and defaults
27
+ */
28
+ loadConfiguration() {
29
+ // Determine base directory (respects XDG on Linux)
30
+ const baseDir = this.getBaseDirectory();
31
+ // Load from environment or use defaults
32
+ const config = {
33
+ paths: {
34
+ backupDir: process.env.DOLLHOUSE_BACKUP_DIR ||
35
+ path.join(baseDir, 'backups'),
36
+ npmBackupDir: process.env.DOLLHOUSE_NPM_BACKUP_DIR ||
37
+ path.join(baseDir, 'backups', 'npm'),
38
+ tempDir: process.env.DOLLHOUSE_TEMP_DIR ||
39
+ path.join(os.tmpdir(), 'dollhouse-update')
40
+ },
41
+ limits: {
42
+ maxSearchDepth: this.parseIntEnv('DOLLHOUSE_MAX_SEARCH_DEPTH', 10),
43
+ maxBackupCount: this.parseIntEnv('DOLLHOUSE_MAX_BACKUP_COUNT', 5),
44
+ maxBackupSizeMB: this.parseIntEnv('DOLLHOUSE_MAX_BACKUP_SIZE_MB', 500)
45
+ },
46
+ timeouts: {
47
+ gitCloneMs: this.parseIntEnv('DOLLHOUSE_GIT_CLONE_TIMEOUT_MS', 300000), // 5 minutes
48
+ npmInstallMs: this.parseIntEnv('DOLLHOUSE_NPM_INSTALL_TIMEOUT_MS', 300000), // 5 minutes
49
+ npmUpdateMs: this.parseIntEnv('DOLLHOUSE_NPM_UPDATE_TIMEOUT_MS', 300000), // 5 minutes
50
+ buildMs: this.parseIntEnv('DOLLHOUSE_BUILD_TIMEOUT_MS', 120000) // 2 minutes
51
+ }
52
+ };
53
+ logger.info('[UpdateConfig] Configuration loaded:', {
54
+ baseDir,
55
+ backupDir: config.paths.backupDir,
56
+ maxSearchDepth: config.limits.maxSearchDepth
57
+ });
58
+ return config;
59
+ }
60
+ /**
61
+ * Get base directory respecting XDG standards on Linux
62
+ */
63
+ getBaseDirectory() {
64
+ // Check for explicit override
65
+ if (process.env.DOLLHOUSE_BASE_DIR) {
66
+ return process.env.DOLLHOUSE_BASE_DIR;
67
+ }
68
+ // On Linux, respect XDG standards
69
+ if (process.platform === 'linux') {
70
+ const xdgDataHome = process.env.XDG_DATA_HOME;
71
+ if (xdgDataHome) {
72
+ return path.join(xdgDataHome, 'dollhouse');
73
+ }
74
+ }
75
+ // Default to home directory
76
+ return path.join(os.homedir(), '.dollhouse');
77
+ }
78
+ /**
79
+ * Parse integer environment variable with default
80
+ */
81
+ parseIntEnv(key, defaultValue) {
82
+ const value = process.env[key];
83
+ if (!value) {
84
+ return defaultValue;
85
+ }
86
+ const parsed = parseInt(value, 10);
87
+ if (isNaN(parsed)) {
88
+ logger.warn(`[UpdateConfig] Invalid integer value for ${key}: ${value}, using default: ${defaultValue}`);
89
+ return defaultValue;
90
+ }
91
+ return parsed;
92
+ }
93
+ /**
94
+ * Get backup directory path
95
+ */
96
+ getBackupDir() {
97
+ return this.config.paths.backupDir;
98
+ }
99
+ /**
100
+ * Get npm backup directory path
101
+ */
102
+ getNpmBackupDir() {
103
+ return this.config.paths.npmBackupDir;
104
+ }
105
+ /**
106
+ * Get temporary directory path
107
+ */
108
+ getTempDir() {
109
+ return this.config.paths.tempDir;
110
+ }
111
+ /**
112
+ * Get max search depth for installation detection
113
+ */
114
+ getMaxSearchDepth() {
115
+ return this.config.limits.maxSearchDepth;
116
+ }
117
+ /**
118
+ * Get max number of backups to keep
119
+ */
120
+ getMaxBackupCount() {
121
+ return this.config.limits.maxBackupCount;
122
+ }
123
+ /**
124
+ * Get timeout for git clone operations
125
+ */
126
+ getGitCloneTimeout() {
127
+ return this.config.timeouts.gitCloneMs;
128
+ }
129
+ /**
130
+ * Get timeout for npm install operations
131
+ */
132
+ getNpmInstallTimeout() {
133
+ return this.config.timeouts.npmInstallMs;
134
+ }
135
+ /**
136
+ * Get timeout for npm update operations
137
+ */
138
+ getNpmUpdateTimeout() {
139
+ return this.config.timeouts.npmUpdateMs;
140
+ }
141
+ /**
142
+ * Get timeout for build operations
143
+ */
144
+ getBuildTimeout() {
145
+ return this.config.timeouts.buildMs;
146
+ }
147
+ }
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy91cGRhdGVDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBeUI1QyxNQUFNLE9BQU8sbUJBQW1CO0lBQ3RCLE1BQU0sQ0FBQyxRQUFRLEdBQStCLElBQUksQ0FBQztJQUNuRCxNQUFNLENBQWU7SUFFN0I7UUFDRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxXQUFXO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxtQkFBbUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPLG1CQUFtQixDQUFDLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNLLGlCQUFpQjtRQUN2QixtREFBbUQ7UUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEMsd0NBQXdDO1FBQ3hDLE1BQU0sTUFBTSxHQUFpQjtZQUMzQixLQUFLLEVBQUU7Z0JBQ0wsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CO29CQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7Z0JBQ3hDLFlBQVksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QjtvQkFDcEMs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Q0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvbG9nZ2VyLmpzJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB1cGRhdGUgc3lzdGVtXG4gKiBTdXBwb3J0cyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYW5kIFhERyBkaXJlY3Rvcmllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNvbmZpZyB7XG4gIHBhdGhzOiB7XG4gICAgYmFja3VwRGlyOiBzdHJpbmc7XG4gICAgbnBtQmFja3VwRGlyOiBzdHJpbmc7XG4gICAgdGVtcERpcjogc3RyaW5nO1xuICB9O1xuICBsaW1pdHM6IHtcbiAgICBtYXhTZWFyY2hEZXB0aDogbnVtYmVyO1xuICAgIG1heEJhY2t1cENvdW50OiBudW1iZXI7XG4gICAgbWF4QmFja3VwU2l6ZU1COiBudW1iZXI7XG4gIH07XG4gIHRpbWVvdXRzOiB7XG4gICAgZ2l0Q2xvbmVNczogbnVtYmVyO1xuICAgIG5wbUluc3RhbGxNczogbnVtYmVyO1xuICAgIG5wbVVwZGF0ZU1zOiBudW1iZXI7XG4gICAgYnVpbGRNczogbnVtYmVyO1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlQ29uZmlnTWFuYWdlciB7XG4gIHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBVcGRhdGVDb25maWdNYW5hZ2VyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY29uZmlnOiBVcGRhdGVDb25maWc7XG4gIFxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5sb2FkQ29uZmlndXJhdGlvbigpO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IHNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGdldEluc3RhbmNlKCk6IFVwZGF0ZUNvbmZpZ01hbmFnZXIge1xuICAgIGlmICghVXBkYXRlQ29uZmlnTWFuYWdlci5pbnN0YW5jZSkge1xuICAgICAgVXBkYXRlQ29uZmlnTWFuYWdlci5pbnN0YW5jZSA9IG5ldyBVcGRhdGVDb25maWdNYW5hZ2VyKCk7XG4gICAgfVxuICAgIHJldHVybiBVcGRhdGVDb25maWdNYW5hZ2VyLmluc3RhbmNlO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIGdldENvbmZpZygpOiBVcGRhdGVDb25maWcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZztcbiAgfVxuICBcbiAgLyoqXG4gICAqIExvYWQgY29uZmlndXJhdGlvbiBmcm9tIGVudmlyb25tZW50IGFuZCBkZWZhdWx0c1xuICAgKi9cbiAgcHJpdmF0ZSBsb2FkQ29uZmlndXJhdGlvbigpOiBVcGRhdGVDb25maWcge1xuICAgIC8vIERldGVybWluZSBiYXNlIGRpcmVjdG9yeSAocmVzcGVjdHMgWERHIG9uIExpbnV4KVxuICAgIGNvbnN0IGJhc2VEaXIgPSB0aGlzLmdldEJhc2VEaXJlY3RvcnkoKTtcbiAgICBcbiAgICAvLyBMb2FkIGZyb20gZW52aXJvbm1lbnQgb3IgdXNlIGRlZmF1bHRzXG4gICAgY29uc3QgY29uZmlnOiBVcGRhdGVDb25maWcgPSB7XG4gICAgICBwYXRoczoge1xuICAgICAgICBiYWNrdXBEaXI6IHByb2Nlc3MuZW52LkRPTExIT1VTRV9CQUNLVVBfRElSIHx8IFxuICAgICAgICAgICAgICAgICAgIHBhdGguam9pbihiYXNlRGlyLCAnYmFja3VwcycpLFxuICAgICAgICBucG1CYWNrdXBEaXI6IHByb2Nlc3MuZW52LkRPTExIT1VTRV9OUE1fQkFDS1VQX0RJUiB8fCBcbiAgICAgICAgICAgICAgICAgICAgICBwYXRoLmpvaW4oYmFzZURpciwgJ2JhY2t1cHMnLCAnbnBtJyksXG4gICAgICAgIHRlbXBEaXI6IHByb2Nlc3MuZW52LkRPTExIT1VTRV9URU1QX0RJUiB8fCBcbiAgICAgICAgICAgICAgICAgcGF0aC5qb2luKG9zLnRtcGRpcigpLCAnZG9sbGhvdXNlLXVwZGF0ZScpXG4gICAgICB9LFxuICAgICAgbGltaXRzOiB7XG4gICAgICAgIG1heFNlYXJjaERlcHRoOiB0aGlzLnBhcnNlSW50RW52KCdET0xMSE9VU0VfTUFYX1NFQVJDSF9ERVBUSCcsIDEwKSxcbiAgICAgICAgbWF4QmFja3VwQ291bnQ6IHRoaXMucGFyc2VJbnRFbnYoJ0RPTExIT1VTRV9NQVhfQkFDS1VQX0NPVU5UJywgNSksXG4gICAgICAgIG1heEJhY2t1cFNpemVNQjogdGhpcy5wYXJzZUludEVudignRE9MTEhPVVNFX01BWF9CQUNLVVBfU0laRV9NQicsIDUwMClcbiAgICAgIH0sXG4gICAgICB0aW1lb3V0czoge1xuICAgICAgICBnaXRDbG9uZU1zOiB0aGlzLnBhcnNlSW50RW52KCdET0xMSE9VU0VfR0lUX0NMT05FX1RJTUVPVVRfTVMnLCAzMDAwMDApLCAvLyA1IG1pbnV0ZXNcbiAgICAgICAgbnBtSW5zdGFsbE1zOiB0aGlzLnBhcnNlSW50RW52KCdET0xMSE9VU0VfTlBNX0lOU1RBTExfVElNRU9VVF9NUycsIDMwMDAwMCksIC8vIDUgbWludXRlc1xuICAgICAgICBucG1VcGRhdGVNczogdGhpcy5wYXJzZUludEVudignRE9MTEhPVVNFX05QTV9VUERBVEVfVElNRU9VVF9NUycsIDMwMDAwMCksIC8vIDUgbWludXRlc1xuICAgICAgICBidWlsZE1zOiB0aGlzLnBhcnNlSW50RW52KCdET0xMSE9VU0VfQlVJTERfVElNRU9VVF9NUycsIDEyMDAwMCkgLy8gMiBtaW51dGVzXG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICBsb2dnZXIuaW5mbygnW1VwZGF0ZUNvbmZpZ10gQ29uZmlndXJhdGlvbiBsb2FkZWQ6Jywge1xuICAgICAgYmFzZURpcixcbiAgICAgIGJhY2t1cERpcjogY29uZmlnLnBhdGhzLmJhY2t1cERpcixcbiAgICAgIG1heFNlYXJjaERlcHRoOiBjb25maWcubGltaXRzLm1heFNlYXJjaERlcHRoXG4gICAgfSk7XG4gICAgXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCBiYXNlIGRpcmVjdG9yeSByZXNwZWN0aW5nIFhERyBzdGFuZGFyZHMgb24gTGludXhcbiAgICovXG4gIHByaXZhdGUgZ2V0QmFzZURpcmVjdG9yeSgpOiBzdHJpbmcge1xuICAgIC8vIENoZWNrIGZvciBleHBsaWNpdCBvdmVycmlkZVxuICAgIGlmIChwcm9jZXNzLmVudi5ET0xMSE9VU0VfQkFTRV9ESVIpIHtcbiAgICAgIHJldHVybiBwcm9jZXNzLmVudi5ET0xMSE9VU0VfQkFTRV9ESVI7XG4gICAgfVxuICAgIFxuICAgIC8vIE9uIExpbnV4LCByZXNwZWN0IFhERyBzdGFuZGFyZHNcbiAgICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ2xpbnV4Jykge1xuICAgICAgY29uc3QgeGRnRGF0YUhvbWUgPSBwcm9jZXNzLmVudi5YREdfREFUQV9IT01FO1xuICAgICAgaWYgKHhkZ0RhdGFIb21lKSB7XG4gICAgICAgIHJldHVybiBwYXRoLmpvaW4oeGRnRGF0YUhvbWUsICdkb2xsaG91c2UnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gRGVmYXVsdCB0byBob21lIGRpcmVjdG9yeVxuICAgIHJldHVybiBwYXRoLmpvaW4ob3MuaG9tZWRpcigpLCAnLmRvbGxob3VzZScpO1xuICB9XG4gIFxuICAvKipcbiAgICogUGFyc2UgaW50ZWdlciBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aXRoIGRlZmF1bHRcbiAgICovXG4gIHByaXZhdGUgcGFyc2VJbnRFbnYoa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBjb25zdCB2YWx1ZSA9IHByb2Nlc3MuZW52W2tleV07XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICBpZiAoaXNOYU4ocGFyc2VkKSkge1xuICAgICAgbG9nZ2VyLndhcm4oYFtVcGRhdGVDb25maWddIEludmFsaWQgaW50ZWdlciB2YWx1ZSBmb3IgJHtrZXl9OiAke3ZhbHVlfSwgdXNpbmcgZGVmYXVsdDogJHtkZWZhdWx0VmFsdWV9YCk7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgICBcbiAgICByZXR1cm4gcGFyc2VkO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IGJhY2t1cCBkaXJlY3RvcnkgcGF0aFxuICAgKi9cbiAgZ2V0QmFja3VwRGlyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnBhdGhzLmJhY2t1cERpcjtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCBucG0gYmFja3VwIGRpcmVjdG9yeSBwYXRoXG4gICAqL1xuICBnZXROcG1CYWNrdXBEaXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcucGF0aHMubnBtQmFja3VwRGlyO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IHRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aFxuICAgKi9cbiAgZ2V0VGVtcERpcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5wYXRocy50ZW1wRGlyO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IG1heCBzZWFyY2ggZGVwdGggZm9yIGluc3RhbGxhdGlvbiBkZXRlY3Rpb25cbiAgICovXG4gIGdldE1heFNlYXJjaERlcHRoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmxpbWl0cy5tYXhTZWFyY2hEZXB0aDtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCBtYXggbnVtYmVyIG9mIGJhY2t1cHMgdG8ga2VlcFxuICAgKi9cbiAgZ2V0TWF4QmFja3VwQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcubGltaXRzLm1heEJhY2t1cENvdW50O1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IHRpbWVvdXQgZm9yIGdpdCBjbG9uZSBvcGVyYXRpb25zXG4gICAqL1xuICBnZXRHaXRDbG9uZVRpbWVvdXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcudGltZW91dHMuZ2l0Q2xvbmVNcztcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCB0aW1lb3V0IGZvciBucG0gaW5zdGFsbCBvcGVyYXRpb25zXG4gICAqL1xuICBnZXROcG1JbnN0YWxsVGltZW91dCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy50aW1lb3V0cy5ucG1JbnN0YWxsTXM7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBHZXQgdGltZW91dCBmb3IgbnBtIHVwZGF0ZSBvcGVyYXRpb25zXG4gICAqL1xuICBnZXROcG1VcGRhdGVUaW1lb3V0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnRpbWVvdXRzLm5wbVVwZGF0ZU1zO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IHRpbWVvdXQgZm9yIGJ1aWxkIG9wZXJhdGlvbnNcbiAgICovXG4gIGdldEJ1aWxkVGltZW91dCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy50aW1lb3V0cy5idWlsZE1zO1xuICB9XG59Il19
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Auto-generated file - DO NOT EDIT
3
+ * Generated at build time by scripts/generate-version.js
4
+ */
5
+ export declare const PACKAGE_VERSION = "1.4.3";
6
+ export declare const BUILD_TIMESTAMP = "2025-08-04T21:37:13.111Z";
7
+ export declare const BUILD_TYPE: 'npm' | 'git';
8
+ export declare const PACKAGE_NAME = "@dollhousemcp/mcp-server";
9
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/generated/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAC1D,eAAO,MAAM,UAAU,EAAE,KAAK,GAAG,KAAa,CAAC;AAC/C,eAAO,MAAM,YAAY,6BAA6B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Auto-generated file - DO NOT EDIT
3
+ * Generated at build time by scripts/generate-version.js
4
+ */
5
+ export const PACKAGE_VERSION = '1.4.3';
6
+ export const BUILD_TIMESTAMP = '2025-08-04T21:37:13.111Z';
7
+ export const BUILD_TYPE = 'npm';
8
+ export const PACKAGE_NAME = '@dollhousemcp/mcp-server';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtCLEtBQUssQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF1dG8tZ2VuZXJhdGVkIGZpbGUgLSBETyBOT1QgRURJVFxuICogR2VuZXJhdGVkIGF0IGJ1aWxkIHRpbWUgYnkgc2NyaXB0cy9nZW5lcmF0ZS12ZXJzaW9uLmpzXG4gKi9cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9ICcxLjQuMyc7XG5leHBvcnQgY29uc3QgQlVJTERfVElNRVNUQU1QID0gJzIwMjUtMDgtMDRUMjE6Mzc6MTMuMTExWic7XG5leHBvcnQgY29uc3QgQlVJTERfVFlQRTogJ25wbScgfCAnZ2l0JyA9ICducG0nO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfTkFNRSA9ICdAZG9sbGhvdXNlbWNwL21jcC1zZXJ2ZXInO1xuIl19
package/dist/index.d.ts CHANGED
@@ -258,6 +258,12 @@ export declare class DollhouseMCPServer implements IToolHandler {
258
258
  text: string;
259
259
  }[];
260
260
  }>;
261
+ convertToGitInstallation(targetDir?: string, confirm?: boolean): Promise<{
262
+ content: {
263
+ type: string;
264
+ text: string;
265
+ }[];
266
+ }>;
261
267
  /**
262
268
  * Configure indicator settings
263
269
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}