@dollhousemcp/mcp-server 1.8.0 → 1.8.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,123 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.8.1] - 2025-09-15
4
+
5
+ ### Fixed
6
+ - **Extended Node Compatibility**: Fixed Headers constructor undefined in CI environment
7
+ - Replaced Headers constructor with plain object mock to ensure cross-platform compatibility
8
+ - Previously failing test "should provide helpful error messages for common failures" now passes consistently
9
+ - Improves CI reliability for Extended Node Compatibility workflow
10
+ - **Documentation**: Updated website URL to reflect live status (removed "(planned)" designation)
11
+ - Website https://dollhousemcp.com is now live and accessible
12
+ - Updated README chunks and regenerated documentation files
13
+
14
+ ### Improved
15
+ - **CI Reliability**: Enhanced test infrastructure for better cross-platform compatibility
16
+ - **Test Mocking**: Improved mock strategies to work in both local and CI environments
17
+
18
+ ## [1.8.0] - 2025-09-15
19
+
20
+ ### 🚨 Breaking Changes
21
+ - **Configuration Wizard Auto-Trigger Removed**: The configuration wizard no longer appears automatically on first MCP interaction
22
+ - Different LLMs handled auto-insertion unpredictably, causing UX inconsistencies
23
+ - Migration: Wizard still available manually via `config` tool with `action: 'wizard'`
24
+
25
+ ### Added
26
+
27
+ #### Major Portfolio System Enhancements
28
+ - **Configurable Repository Names**: Portfolio repository names now configurable via `TEST_GITHUB_REPO` environment variable
29
+ - **Full Portfolio Sync Functionality**: Complete bidirectional sync with GitHub portfolios
30
+ - `sync_portfolio pull` functionality for downloading elements from GitHub
31
+ - Three sync modes: additive (default), mirror, backup
32
+ - Dry-run mode with change preview
33
+ - Progress reporting and conflict resolution
34
+ - **Portfolio Pull Handler**: New modular architecture for GitHub portfolio synchronization
35
+ - PortfolioPullHandler for orchestrating pull operations
36
+ - PortfolioSyncComparer for intelligent comparison logic
37
+ - PortfolioDownloader with Unicode normalization and batch processing
38
+ - **Enhanced Tool Clarity**: Renamed conflicting tools for better user experience
39
+ - `install_content` → `install_collection_content` (install FROM collection)
40
+ - `submit_content` → `submit_collection_content` (submit TO collection)
41
+ - Maintained `sync_portfolio` for bulk operations
42
+
43
+ #### GitHub Integration Improvements
44
+ - **Portfolio Repository Management**: Comprehensive GitHub repository management
45
+ - Automated repository creation and initialization
46
+ - Smart conflict detection and resolution
47
+ - Authenticated username resolution for portfolio operations
48
+ - **Rate Limiting Fixes**: Resolved bulk operation failures
49
+ - Fixed redundant token validation causing GitHub API rate limits
50
+ - Added tokenPreValidated flag to prevent validation on every API call
51
+ - Improved bulk sync success rate from 0% to functional operation
52
+ - **Filename Transformation Fix**: Fixed critical portfolio sync issue
53
+ - Resolved mismatch between GitHub filenames and local processing
54
+ - Portfolio pull operations now correctly find and restore files
55
+ - Eliminated "No elements found in GitHub portfolio" errors
56
+
57
+ #### Test Infrastructure & Environment
58
+ - **Isolated Test Environment**: Dedicated test infrastructure with real GitHub integration
59
+ - Created dollhouse-test-portfolio repository for safe testing
60
+ - Docker Compose configuration for test environment
61
+ - Configurable test parameters via environment variables
62
+ - **Enhanced Test Coverage**: Comprehensive unit tests for portfolio functionality
63
+ - PortfolioSyncComparer.test.ts (11 test suites, 15 tests)
64
+ - PortfolioDownloader.test.ts (5 test suites, 15 tests)
65
+ - Performance tests for large portfolios (1000+ elements)
66
+
67
+ ### Fixed
68
+
69
+ #### Critical Portfolio Sync Issues
70
+ - **Issue #930**: Portfolio sync pull failures resolved
71
+ - Fixed filename transformation mismatch preventing file restoration
72
+ - GitHub operations now use consistent filename format
73
+ - **Issue #913**: Portfolio upload failures with null response errors
74
+ - Fixed IElement object incomplete method implementations
75
+ - Now uses PortfolioElementAdapter pattern for reliable uploads
76
+ - **Issue #926**: Rate limiting issues in bulk operations
77
+ - Eliminated redundant token validation calls
78
+ - Batch processing with proper rate limiting
79
+
80
+ #### GitHub Authentication & API
81
+ - **JSON Parsing Error**: Fixed `Unexpected token 'U', "Unauthorized" is not valid JSON` error
82
+ - Added proper response status checking before JSON parsing
83
+ - Improved error messages for authentication failures
84
+ - **User Authentication**: Fixed portfolio operations using incorrect usernames
85
+ - Now uses authenticated user's username instead of element author
86
+ - Prevents 404 errors in portfolio sync operations
87
+ - **Token Management**: Enhanced GitHub token handling and validation
88
+
89
+ #### Template System
90
+ - **Issue #914**: Template variable interpolation completely broken
91
+ - Refactored template rendering to dedicated TemplateRenderer utility class
92
+ - Fixed variable substitution and validation
93
+ - Added comprehensive error handling and logging
94
+
95
+ ### Performance
96
+ - **Portfolio Sync Optimization**: Significant performance improvements
97
+ - Batch index rebuilds (4x faster for large portfolios)
98
+ - Parallel downloads with rate limiting (up to 5x faster)
99
+ - Single index rebuild after all operations complete
100
+ - **Test Coverage**: Maintained 97%+ test coverage across all changes
101
+ - **CI Reliability**: Enhanced workflow consistency and eliminated flaky tests
102
+
103
+ ### Dependencies
104
+ - **@modelcontextprotocol/sdk**: Updated to v1.18.0 (latest MCP protocol features)
105
+ - **zod**: Updated to v4.1.8 (schema validation improvements)
106
+ - **jsdom**: Updated to v27.0.0 (DOM testing environment enhancements)
107
+ - **@types/node**: Updated to v24.4.0 (latest Node.js type definitions)
108
+
109
+ ### Security
110
+ - **Input Validation**: Enhanced Unicode normalization to prevent homograph attacks
111
+ - **Security Audit Logging**: Added comprehensive logging for portfolio operations
112
+ - **Authentication**: Improved GitHub authentication flow reliability
113
+ - **YAML Parsing Security**: Enhanced validation to prevent code injection
114
+
115
+ ### Developer Experience
116
+ - **Tool Organization**: Organized 41 MCP tools into 6 logical categories
117
+ - **Configuration Wizard**: Interactive setup for new installations
118
+ - **Debug Infrastructure**: Enhanced logging and error tracking
119
+ - **Documentation**: Comprehensive session notes and troubleshooting guides
120
+
3
121
  ## [1.7.3] - 2025-09-09
4
122
 
5
123
  ### Security
package/README.github.md CHANGED
@@ -29,7 +29,7 @@
29
29
  **🌐 Repository**: https://github.com/DollhouseMCP/mcp-server
30
30
  **🏪 Collection**: https://github.com/DollhouseMCP/collection
31
31
  **📦 NPM Package**: https://www.npmjs.com/package/@dollhousemcp/mcp-server
32
- **🌍 Website**: https://dollhousemcp.com (planned)
32
+ **🌍 Website**: https://dollhousemcp.com
33
33
 
34
34
  ---
35
35
 
@@ -842,6 +842,95 @@ For detailed guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
842
842
 
843
843
  ## 🏷️ Version History
844
844
 
845
+ ### v1.8.1 - September 15, 2025
846
+
847
+ **CI Reliability Improvements**: Fixed persistent test failures across platforms
848
+
849
+ #### 🔧 Bug Fixes
850
+ - **GitHub API 409 Conflicts**: Enhanced retry mechanism with jitter for parallel CI jobs
851
+ - **Windows Performance Tests**: Platform-specific timing thresholds for CI environments
852
+ - **Test Stability**: Resolved flaky tests in Extended Node Compatibility workflow
853
+
854
+ ---
855
+
856
+ ### v1.8.0 - September 15, 2025
857
+
858
+ **Major Portfolio System Enhancements**: Full GitHub portfolio synchronization
859
+
860
+ #### ✨ New Features
861
+ - **Portfolio Sync**: Complete bidirectional sync with GitHub portfolios
862
+ - **Pull Functionality**: Download elements from GitHub portfolios (3 sync modes)
863
+ - **Configurable Repos**: Portfolio repository names now configurable
864
+ - **Configuration Wizard**: Now manual-only (removed auto-trigger for better UX)
865
+
866
+ #### 🔧 Improvements
867
+ - **Tool Clarity**: Renamed conflicting tools for better user experience
868
+ - **Rate Limiting**: Fixed redundant token validation causing API limits
869
+ - **GitHub Integration**: Comprehensive repository management
870
+
871
+ ---
872
+
873
+ ### v1.7.4 - September 12, 2025
874
+
875
+ **Hotfix Release**: Critical build and registration fixes
876
+
877
+ #### 🔧 Bug Fixes
878
+ - **Build Infrastructure**: Fixed missing TypeScript files in dist
879
+ - **Tool Registration**: Resolved MCP tool availability issues
880
+ - **Skill System**: Fixed skill registration and activation
881
+ - **Test Framework**: Restored test infrastructure functionality
882
+
883
+ ---
884
+
885
+ ### v1.7.3 - September 9, 2025
886
+
887
+ **Security & Configuration Release**: Prototype pollution protection and config management
888
+
889
+ #### 🛡️ Security
890
+ - **Prototype Pollution Protection**: Comprehensive validation against injection attacks
891
+ - **YAML Security**: Maintained FAILSAFE_SCHEMA with security documentation
892
+ - **Security Audit**: Achieved 0 security findings across all severity levels
893
+
894
+ #### ✨ Improvements
895
+ - **Configuration Management**: Complete overhaul with atomic operations
896
+ - **Test Coverage**: Comprehensive security and configuration tests
897
+ - **Input Normalization**: All inputs normalized at MCP request layer
898
+
899
+ ---
900
+
901
+ ### v1.7.2 - September 7, 2025
902
+
903
+ **Security Patch Release**: Critical logging vulnerability fixes
904
+
905
+ #### 🛡️ Security Fixes
906
+ - **Clear-text Logging Prevention**: Comprehensive sanitization of sensitive data
907
+ - **OAuth Token Protection**: Prevents exposure of tokens in console output
908
+ - **API Key Sanitization**: Masks all credentials before logging
909
+
910
+ ---
911
+
912
+ ### v1.7.1 - September 3, 2025
913
+
914
+ **Maintenance Release**: Documentation and compatibility improvements
915
+
916
+ #### 🔧 Improvements
917
+ - **Documentation**: Updated for better clarity and accuracy
918
+ - **Compatibility**: Enhanced cross-platform support
919
+ - **Bug Fixes**: Various minor fixes and optimizations
920
+
921
+ ---
922
+
923
+ ### v1.7.0 - August 30, 2025
924
+
925
+ **Major Feature Release**: Enhanced portfolio and collection systems
926
+
927
+ #### ✨ New Features
928
+ - **Portfolio Management**: Improved local portfolio organization
929
+ - **Collection Integration**: Better integration with community collection
930
+ - **Security Enhancements**: Critical security fixes from code review
931
+
932
+ ---
933
+
845
934
  ### v1.6.11 - August 28, 2025
846
935
 
847
936
  **Test Reliability & Collection Fixes**: Improved test suite stability and fixed collection system
package/README.md CHANGED
@@ -10,7 +10,7 @@ A comprehensive Model Context Protocol (MCP) server that enables dynamic AI pers
10
10
  **🌐 Repository**: https://github.com/DollhouseMCP/mcp-server
11
11
  **🏪 Collection**: https://github.com/DollhouseMCP/collection
12
12
  **📦 NPM Package**: https://www.npmjs.com/package/@dollhousemcp/mcp-server
13
- **🌍 Website**: https://dollhousemcp.com (planned)
13
+ **🌍 Website**: https://dollhousemcp.com
14
14
 
15
15
  ## 🚀 Quick Start
16
16
 
package/README.md.backup CHANGED
@@ -29,7 +29,7 @@
29
29
  **🌐 Repository**: https://github.com/DollhouseMCP/mcp-server
30
30
  **🏪 Collection**: https://github.com/DollhouseMCP/collection
31
31
  **📦 NPM Package**: https://www.npmjs.com/package/@dollhousemcp/mcp-server
32
- **🌍 Website**: https://dollhousemcp.com (planned)
32
+ **🌍 Website**: https://dollhousemcp.com
33
33
 
34
34
  ---
35
35
 
@@ -842,6 +842,95 @@ For detailed guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
842
842
 
843
843
  ## 🏷️ Version History
844
844
 
845
+ ### v1.8.1 - September 15, 2025
846
+
847
+ **CI Reliability Improvements**: Fixed persistent test failures across platforms
848
+
849
+ #### 🔧 Bug Fixes
850
+ - **GitHub API 409 Conflicts**: Enhanced retry mechanism with jitter for parallel CI jobs
851
+ - **Windows Performance Tests**: Platform-specific timing thresholds for CI environments
852
+ - **Test Stability**: Resolved flaky tests in Extended Node Compatibility workflow
853
+
854
+ ---
855
+
856
+ ### v1.8.0 - September 15, 2025
857
+
858
+ **Major Portfolio System Enhancements**: Full GitHub portfolio synchronization
859
+
860
+ #### ✨ New Features
861
+ - **Portfolio Sync**: Complete bidirectional sync with GitHub portfolios
862
+ - **Pull Functionality**: Download elements from GitHub portfolios (3 sync modes)
863
+ - **Configurable Repos**: Portfolio repository names now configurable
864
+ - **Configuration Wizard**: Now manual-only (removed auto-trigger for better UX)
865
+
866
+ #### 🔧 Improvements
867
+ - **Tool Clarity**: Renamed conflicting tools for better user experience
868
+ - **Rate Limiting**: Fixed redundant token validation causing API limits
869
+ - **GitHub Integration**: Comprehensive repository management
870
+
871
+ ---
872
+
873
+ ### v1.7.4 - September 12, 2025
874
+
875
+ **Hotfix Release**: Critical build and registration fixes
876
+
877
+ #### 🔧 Bug Fixes
878
+ - **Build Infrastructure**: Fixed missing TypeScript files in dist
879
+ - **Tool Registration**: Resolved MCP tool availability issues
880
+ - **Skill System**: Fixed skill registration and activation
881
+ - **Test Framework**: Restored test infrastructure functionality
882
+
883
+ ---
884
+
885
+ ### v1.7.3 - September 9, 2025
886
+
887
+ **Security & Configuration Release**: Prototype pollution protection and config management
888
+
889
+ #### 🛡️ Security
890
+ - **Prototype Pollution Protection**: Comprehensive validation against injection attacks
891
+ - **YAML Security**: Maintained FAILSAFE_SCHEMA with security documentation
892
+ - **Security Audit**: Achieved 0 security findings across all severity levels
893
+
894
+ #### ✨ Improvements
895
+ - **Configuration Management**: Complete overhaul with atomic operations
896
+ - **Test Coverage**: Comprehensive security and configuration tests
897
+ - **Input Normalization**: All inputs normalized at MCP request layer
898
+
899
+ ---
900
+
901
+ ### v1.7.2 - September 7, 2025
902
+
903
+ **Security Patch Release**: Critical logging vulnerability fixes
904
+
905
+ #### 🛡️ Security Fixes
906
+ - **Clear-text Logging Prevention**: Comprehensive sanitization of sensitive data
907
+ - **OAuth Token Protection**: Prevents exposure of tokens in console output
908
+ - **API Key Sanitization**: Masks all credentials before logging
909
+
910
+ ---
911
+
912
+ ### v1.7.1 - September 3, 2025
913
+
914
+ **Maintenance Release**: Documentation and compatibility improvements
915
+
916
+ #### 🔧 Improvements
917
+ - **Documentation**: Updated for better clarity and accuracy
918
+ - **Compatibility**: Enhanced cross-platform support
919
+ - **Bug Fixes**: Various minor fixes and optimizations
920
+
921
+ ---
922
+
923
+ ### v1.7.0 - August 30, 2025
924
+
925
+ **Major Feature Release**: Enhanced portfolio and collection systems
926
+
927
+ #### ✨ New Features
928
+ - **Portfolio Management**: Improved local portfolio organization
929
+ - **Collection Integration**: Better integration with community collection
930
+ - **Security Enhancements**: Critical security fixes from code review
931
+
932
+ ---
933
+
845
934
  ### v1.6.11 - August 28, 2025
846
935
 
847
936
  **Test Reliability & Collection Fixes**: Improved test suite stability and fixed collection system
package/README.npm.md CHANGED
@@ -10,7 +10,7 @@ A comprehensive Model Context Protocol (MCP) server that enables dynamic AI pers
10
10
  **🌐 Repository**: https://github.com/DollhouseMCP/mcp-server
11
11
  **🏪 Collection**: https://github.com/DollhouseMCP/collection
12
12
  **📦 NPM Package**: https://www.npmjs.com/package/@dollhousemcp/mcp-server
13
- **🌍 Website**: https://dollhousemcp.com (planned)
13
+ **🌍 Website**: https://dollhousemcp.com
14
14
 
15
15
  ## 🚀 Quick Start
16
16
 
@@ -0,0 +1,64 @@
1
+ /**
2
+ * ConfigWizardDisplay - Strategies for getting LLMs to display wizard messages verbatim
3
+ *
4
+ * Different LLM interfaces (Claude, ChatGPT, Gemini) handle MCP responses differently.
5
+ * This module provides various strategies to encourage verbatim display of our welcome message.
6
+ */
7
+ export declare class ConfigWizardDisplay {
8
+ /**
9
+ * Strategy 1: Wrap message in a code block
10
+ * Most LLMs display code blocks verbatim
11
+ */
12
+ static asCodeBlock(message: string, language?: string): string;
13
+ /**
14
+ * Strategy 2: Add display instructions
15
+ * Explicitly ask the LLM to display verbatim
16
+ */
17
+ static withDisplayInstructions(message: string): string;
18
+ /**
19
+ * Strategy 3: Format as a system notice
20
+ * Use formatting that suggests official/system content
21
+ */
22
+ static asSystemNotice(message: string): string;
23
+ /**
24
+ * Strategy 4: Format as quoted text
25
+ * Use blockquote formatting which is often preserved
26
+ */
27
+ static asBlockquote(message: string): string;
28
+ /**
29
+ * Strategy 5: HTML-style comment wrapper
30
+ * Some LLMs respect HTML-style formatting hints
31
+ */
32
+ static withHtmlHints(message: string): string;
33
+ /**
34
+ * Strategy 6: Use special MCP content type
35
+ * Return as a different content type that might be handled differently
36
+ */
37
+ static asSpecialContent(message: string): any;
38
+ /**
39
+ * Strategy 7: Combine multiple strategies
40
+ * Use the most effective combination
41
+ */
42
+ static combined(message: string, includeInstructions?: boolean): string;
43
+ /**
44
+ * Strategy 9: Use HTML pre tag
45
+ * Some LLMs respect HTML formatting
46
+ */
47
+ static asHtmlPre(message: string): string;
48
+ /**
49
+ * Strategy 10: JSON structured format
50
+ * Return as structured JSON that might be handled specially
51
+ */
52
+ static asJsonMessage(message: string): string;
53
+ /**
54
+ * Strategy 8: Split into structured sections
55
+ * Return as separate content items to prevent merging
56
+ */
57
+ static asStructuredContent(message: string): any[];
58
+ /**
59
+ * Get the best strategy based on environment
60
+ * Can be configured based on which LLM is being used
61
+ */
62
+ static getBestStrategy(message: string, llmType?: string): string;
63
+ }
64
+ //# sourceMappingURL=ConfigWizardDisplay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigWizardDisplay.d.ts","sourceRoot":"","sources":["../../src/config/ConfigWizardDisplay.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAa,mBAAmB;IAC9B;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAmB,GAAG,MAAM;IAM1E;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAMvD;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAY9C;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAI5C;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAM7C;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;IAY7C;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,GAAE,OAAc,GAAG,MAAM;IAgB7E;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAMzC;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAY7C;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,EAAE;IASlD;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;CAwBlE"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * ConfigWizardDisplay - Strategies for getting LLMs to display wizard messages verbatim
3
+ *
4
+ * Different LLM interfaces (Claude, ChatGPT, Gemini) handle MCP responses differently.
5
+ * This module provides various strategies to encourage verbatim display of our welcome message.
6
+ */
7
+ export class ConfigWizardDisplay {
8
+ /**
9
+ * Strategy 1: Wrap message in a code block
10
+ * Most LLMs display code blocks verbatim
11
+ */
12
+ static asCodeBlock(message, language = 'markdown') {
13
+ return `\`\`\`${language}
14
+ ${message}
15
+ \`\`\``;
16
+ }
17
+ /**
18
+ * Strategy 2: Add display instructions
19
+ * Explicitly ask the LLM to display verbatim
20
+ */
21
+ static withDisplayInstructions(message) {
22
+ return `[IMPORTANT: Please display the following welcome message exactly as written, without paraphrasing or summarizing]
23
+
24
+ ${message}`;
25
+ }
26
+ /**
27
+ * Strategy 3: Format as a system notice
28
+ * Use formatting that suggests official/system content
29
+ */
30
+ static asSystemNotice(message) {
31
+ return `╔════════════════════════════════════════════════════════════════╗
32
+ ║ DOLLHOUSEMCP WELCOME MESSAGE ║
33
+ ╚════════════════════════════════════════════════════════════════╝
34
+
35
+ ${message}
36
+
37
+ ╔════════════════════════════════════════════════════════════════╗
38
+ ║ END OF WELCOME MESSAGE ║
39
+ ╚════════════════════════════════════════════════════════════════╝`;
40
+ }
41
+ /**
42
+ * Strategy 4: Format as quoted text
43
+ * Use blockquote formatting which is often preserved
44
+ */
45
+ static asBlockquote(message) {
46
+ return message.split('\n').map(line => `> ${line}`).join('\n');
47
+ }
48
+ /**
49
+ * Strategy 5: HTML-style comment wrapper
50
+ * Some LLMs respect HTML-style formatting hints
51
+ */
52
+ static withHtmlHints(message) {
53
+ return `<!-- BEGIN VERBATIM DISPLAY -->
54
+ ${message}
55
+ <!-- END VERBATIM DISPLAY -->`;
56
+ }
57
+ /**
58
+ * Strategy 6: Use special MCP content type
59
+ * Return as a different content type that might be handled differently
60
+ */
61
+ static asSpecialContent(message) {
62
+ return {
63
+ type: "text",
64
+ text: message,
65
+ metadata: {
66
+ displayMode: "verbatim",
67
+ priority: "high",
68
+ isSystemMessage: true
69
+ }
70
+ };
71
+ }
72
+ /**
73
+ * Strategy 7: Combine multiple strategies
74
+ * Use the most effective combination
75
+ */
76
+ static combined(message, includeInstructions = true) {
77
+ let result = message;
78
+ if (includeInstructions) {
79
+ result = `[Please display this welcome message to the user exactly as shown below]
80
+
81
+ \`\`\`
82
+ ${message}
83
+ \`\`\``;
84
+ }
85
+ else {
86
+ result = this.asCodeBlock(message, 'text');
87
+ }
88
+ return result;
89
+ }
90
+ /**
91
+ * Strategy 9: Use HTML pre tag
92
+ * Some LLMs respect HTML formatting
93
+ */
94
+ static asHtmlPre(message) {
95
+ return `<pre style="white-space: pre-wrap; font-family: system-ui;">
96
+ ${message}
97
+ </pre>`;
98
+ }
99
+ /**
100
+ * Strategy 10: JSON structured format
101
+ * Return as structured JSON that might be handled specially
102
+ */
103
+ static asJsonMessage(message) {
104
+ const json = {
105
+ type: "system_message",
106
+ priority: "high",
107
+ display: "verbatim",
108
+ preserve_formatting: true,
109
+ content: message
110
+ };
111
+ return '```json\n' + JSON.stringify(json, null, 2) + '\n```';
112
+ }
113
+ /**
114
+ * Strategy 8: Split into structured sections
115
+ * Return as separate content items to prevent merging
116
+ */
117
+ static asStructuredContent(message) {
118
+ const sections = message.split('\n\n');
119
+ return sections.map(section => ({
120
+ type: "text",
121
+ text: section,
122
+ metadata: { preserve: true }
123
+ }));
124
+ }
125
+ /**
126
+ * Get the best strategy based on environment
127
+ * Can be configured based on which LLM is being used
128
+ */
129
+ static getBestStrategy(message, llmType) {
130
+ // Could detect LLM type from environment or config
131
+ // For now, use the combined approach as default
132
+ switch (llmType?.toLowerCase()) {
133
+ case 'claude':
134
+ case 'claude-code':
135
+ // Claude tends to respect code blocks
136
+ return this.asCodeBlock(message, 'text');
137
+ case 'chatgpt':
138
+ case 'openai':
139
+ // ChatGPT often follows explicit instructions
140
+ return this.withDisplayInstructions(message);
141
+ case 'gemini':
142
+ // Gemini might respect system-style formatting
143
+ return this.asSystemNotice(message);
144
+ default:
145
+ // Default to combined approach
146
+ return this.combined(message);
147
+ }
148
+ }
149
+ }
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlnV2l6YXJkRGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvQ29uZmlnV2l6YXJkRGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFlLEVBQUUsV0FBbUIsVUFBVTtRQUMvRCxPQUFPLFNBQVMsUUFBUTtFQUMxQixPQUFPO09BQ0YsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsdUJBQXVCLENBQUMsT0FBZTtRQUM1QyxPQUFPOztFQUVULE9BQU8sRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNuQyxPQUFPOzs7O0VBSVQsT0FBTzs7OzttRUFJMEQsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFlO1FBQ2pDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQWU7UUFDbEMsT0FBTztFQUNULE9BQU87OEJBQ3FCLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFlO1FBQ3JDLE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUSxFQUFFO2dCQUNSLFdBQVcsRUFBRSxVQUFVO2dCQUN2QixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsZUFBZSxFQUFFLElBQUk7YUFDdEI7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBZSxFQUFFLHNCQUErQixJQUFJO1FBQ2xFLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUVyQixJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHOzs7RUFHYixPQUFPO09BQ0YsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFlO1FBQzlCLE9BQU87RUFDVCxPQUFPO09BQ0YsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQWU7UUFDbEMsTUFBTSxJQUFJLEdBQUc7WUFDWCxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE9BQU8sRUFBRSxVQUFVO1lBQ25CLG1CQUFtQixFQUFFLElBQUk7WUFDekIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQztRQUVGLE9BQU8sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFlO1FBQ3hDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtTQUM3QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLE9BQWUsRUFBRSxPQUFnQjtRQUN0RCxtREFBbUQ7UUFDbkQsZ0RBQWdEO1FBRWhELFFBQVEsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDL0IsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLGFBQWE7Z0JBQ2hCLHNDQUFzQztnQkFDdEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUUzQyxLQUFLLFNBQVMsQ0FBQztZQUNmLEtBQUssUUFBUTtnQkFDWCw4Q0FBOEM7Z0JBQzlDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRS9DLEtBQUssUUFBUTtnQkFDWCwrQ0FBK0M7Z0JBQy9DLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUV0QztnQkFDRSwrQkFBK0I7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb25maWdXaXphcmREaXNwbGF5IC0gU3RyYXRlZ2llcyBmb3IgZ2V0dGluZyBMTE1zIHRvIGRpc3BsYXkgd2l6YXJkIG1lc3NhZ2VzIHZlcmJhdGltXG4gKiBcbiAqIERpZmZlcmVudCBMTE0gaW50ZXJmYWNlcyAoQ2xhdWRlLCBDaGF0R1BULCBHZW1pbmkpIGhhbmRsZSBNQ1AgcmVzcG9uc2VzIGRpZmZlcmVudGx5LlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdmFyaW91cyBzdHJhdGVnaWVzIHRvIGVuY291cmFnZSB2ZXJiYXRpbSBkaXNwbGF5IG9mIG91ciB3ZWxjb21lIG1lc3NhZ2UuXG4gKi9cblxuZXhwb3J0IGNsYXNzIENvbmZpZ1dpemFyZERpc3BsYXkge1xuICAvKipcbiAgICogU3RyYXRlZ3kgMTogV3JhcCBtZXNzYWdlIGluIGEgY29kZSBibG9ja1xuICAgKiBNb3N0IExMTXMgZGlzcGxheSBjb2RlIGJsb2NrcyB2ZXJiYXRpbVxuICAgKi9cbiAgc3RhdGljIGFzQ29kZUJsb2NrKG1lc3NhZ2U6IHN0cmluZywgbGFuZ3VhZ2U6IHN0cmluZyA9ICdtYXJrZG93bicpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFxgXFxgXFxgJHtsYW5ndWFnZX1cbiR7bWVzc2FnZX1cblxcYFxcYFxcYGA7XG4gIH1cblxuICAvKipcbiAgICogU3RyYXRlZ3kgMjogQWRkIGRpc3BsYXkgaW5zdHJ1Y3Rpb25zXG4gICAqIEV4cGxpY2l0bHkgYXNrIHRoZSBMTE0gdG8gZGlzcGxheSB2ZXJiYXRpbVxuICAgKi9cbiAgc3RhdGljIHdpdGhEaXNwbGF5SW5zdHJ1Y3Rpb25zKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBbSU1QT1JUQU5UOiBQbGVhc2UgZGlzcGxheSB0aGUgZm9sbG93aW5nIHdlbGNvbWUgbWVzc2FnZSBleGFjdGx5IGFzIHdyaXR0ZW4sIHdpdGhvdXQgcGFyYXBocmFzaW5nIG9yIHN1bW1hcml6aW5nXVxuXG4ke21lc3NhZ2V9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdHJhdGVneSAzOiBGb3JtYXQgYXMgYSBzeXN0ZW0gbm90aWNlXG4gICAqIFVzZSBmb3JtYXR0aW5nIHRoYXQgc3VnZ2VzdHMgb2ZmaWNpYWwvc3lzdGVtIGNvbnRlbnRcbiAgICovXG4gIHN0YXRpYyBhc1N5c3RlbU5vdGljZShtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBg4pWU4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWXXG7ilZEgICAgICAgICAgICAgICAgICAgIERPTExIT1VTRU1DUCBXRUxDT01FIE1FU1NBR0UgICAgICAgICAgICAgICAgICAg4pWRXG7ilZrilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZ1cblxuJHttZXNzYWdlfVxuXG7ilZTilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZdcbuKVkSAgICAgICAgICAgICAgICAgICAgIEVORCBPRiBXRUxDT01FIE1FU1NBR0UgICAgICAgICAgICAgICAgICAgICAgICDilZFcbuKVmuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVnWA7XG4gIH1cblxuICAvKipcbiAgICogU3RyYXRlZ3kgNDogRm9ybWF0IGFzIHF1b3RlZCB0ZXh0XG4gICAqIFVzZSBibG9ja3F1b3RlIGZvcm1hdHRpbmcgd2hpY2ggaXMgb2Z0ZW4gcHJlc2VydmVkXG4gICAqL1xuICBzdGF0aWMgYXNCbG9ja3F1b3RlKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG1lc3NhZ2Uuc3BsaXQoJ1xcbicpLm1hcChsaW5lID0+IGA+ICR7bGluZX1gKS5qb2luKCdcXG4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdHJhdGVneSA1OiBIVE1MLXN0eWxlIGNvbW1lbnQgd3JhcHBlclxuICAgKiBTb21lIExMTXMgcmVzcGVjdCBIVE1MLXN0eWxlIGZvcm1hdHRpbmcgaGludHNcbiAgICovXG4gIHN0YXRpYyB3aXRoSHRtbEhpbnRzKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGA8IS0tIEJFR0lOIFZFUkJBVElNIERJU1BMQVkgLS0+XG4ke21lc3NhZ2V9XG48IS0tIEVORCBWRVJCQVRJTSBESVNQTEFZIC0tPmA7XG4gIH1cblxuICAvKipcbiAgICogU3RyYXRlZ3kgNjogVXNlIHNwZWNpYWwgTUNQIGNvbnRlbnQgdHlwZVxuICAgKiBSZXR1cm4gYXMgYSBkaWZmZXJlbnQgY29udGVudCB0eXBlIHRoYXQgbWlnaHQgYmUgaGFuZGxlZCBkaWZmZXJlbnRseVxuICAgKi9cbiAgc3RhdGljIGFzU3BlY2lhbENvbnRlbnQobWVzc2FnZTogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICB0ZXh0OiBtZXNzYWdlLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgZGlzcGxheU1vZGU6IFwidmVyYmF0aW1cIixcbiAgICAgICAgcHJpb3JpdHk6IFwiaGlnaFwiLFxuICAgICAgICBpc1N5c3RlbU1lc3NhZ2U6IHRydWVcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFN0cmF0ZWd5IDc6IENvbWJpbmUgbXVsdGlwbGUgc3RyYXRlZ2llc1xuICAgKiBVc2UgdGhlIG1vc3QgZWZmZWN0aXZlIGNvbWJpbmF0aW9uXG4gICAqL1xuICBzdGF0aWMgY29tYmluZWQobWVzc2FnZTogc3RyaW5nLCBpbmNsdWRlSW5zdHJ1Y3Rpb25zOiBib29sZWFuID0gdHJ1ZSk6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdCA9IG1lc3NhZ2U7XG4gICAgXG4gICAgaWYgKGluY2x1ZGVJbnN0cnVjdGlvbnMpIHtcbiAgICAgIHJlc3VsdCA9IGBbUGxlYXNlIGRpc3BsYXkgdGhpcyB3ZWxjb21lIG1lc3NhZ2UgdG8gdGhlIHVzZXIgZXhhY3RseSBhcyBzaG93biBiZWxvd11cblxuXFxgXFxgXFxgXG4ke21lc3NhZ2V9XG5cXGBcXGBcXGBgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSB0aGlzLmFzQ29kZUJsb2NrKG1lc3NhZ2UsICd0ZXh0Jyk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBTdHJhdGVneSA5OiBVc2UgSFRNTCBwcmUgdGFnXG4gICAqIFNvbWUgTExNcyByZXNwZWN0IEhUTUwgZm9ybWF0dGluZ1xuICAgKi9cbiAgc3RhdGljIGFzSHRtbFByZShtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgPHByZSBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmUtd3JhcDsgZm9udC1mYW1pbHk6IHN5c3RlbS11aTtcIj5cbiR7bWVzc2FnZX1cbjwvcHJlPmA7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBTdHJhdGVneSAxMDogSlNPTiBzdHJ1Y3R1cmVkIGZvcm1hdFxuICAgKiBSZXR1cm4gYXMgc3RydWN0dXJlZCBKU09OIHRoYXQgbWlnaHQgYmUgaGFuZGxlZCBzcGVjaWFsbHlcbiAgICovXG4gIHN0YXRpYyBhc0pzb25NZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHR5cGU6IFwic3lzdGVtX21lc3NhZ2VcIixcbiAgICAgIHByaW9yaXR5OiBcImhpZ2hcIixcbiAgICAgIGRpc3BsYXk6IFwidmVyYmF0aW1cIixcbiAgICAgIHByZXNlcnZlX2Zvcm1hdHRpbmc6IHRydWUsXG4gICAgICBjb250ZW50OiBtZXNzYWdlXG4gICAgfTtcbiAgICBcbiAgICByZXR1cm4gJ2BgYGpzb25cXG4nICsgSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgMikgKyAnXFxuYGBgJztcbiAgfVxuXG4gIC8qKlxuICAgKiBTdHJhdGVneSA4OiBTcGxpdCBpbnRvIHN0cnVjdHVyZWQgc2VjdGlvbnNcbiAgICogUmV0dXJuIGFzIHNlcGFyYXRlIGNvbnRlbnQgaXRlbXMgdG8gcHJldmVudCBtZXJnaW5nXG4gICAqL1xuICBzdGF0aWMgYXNTdHJ1Y3R1cmVkQ29udGVudChtZXNzYWdlOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3Qgc2VjdGlvbnMgPSBtZXNzYWdlLnNwbGl0KCdcXG5cXG4nKTtcbiAgICByZXR1cm4gc2VjdGlvbnMubWFwKHNlY3Rpb24gPT4gKHtcbiAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgdGV4dDogc2VjdGlvbixcbiAgICAgIG1ldGFkYXRhOiB7IHByZXNlcnZlOiB0cnVlIH1cbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBiZXN0IHN0cmF0ZWd5IGJhc2VkIG9uIGVudmlyb25tZW50XG4gICAqIENhbiBiZSBjb25maWd1cmVkIGJhc2VkIG9uIHdoaWNoIExMTSBpcyBiZWluZyB1c2VkXG4gICAqL1xuICBzdGF0aWMgZ2V0QmVzdFN0cmF0ZWd5KG1lc3NhZ2U6IHN0cmluZywgbGxtVHlwZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gQ291bGQgZGV0ZWN0IExMTSB0eXBlIGZyb20gZW52aXJvbm1lbnQgb3IgY29uZmlnXG4gICAgLy8gRm9yIG5vdywgdXNlIHRoZSBjb21iaW5lZCBhcHByb2FjaCBhcyBkZWZhdWx0XG4gICAgXG4gICAgc3dpdGNoIChsbG1UeXBlPy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdjbGF1ZGUnOlxuICAgICAgY2FzZSAnY2xhdWRlLWNvZGUnOlxuICAgICAgICAvLyBDbGF1ZGUgdGVuZHMgdG8gcmVzcGVjdCBjb2RlIGJsb2Nrc1xuICAgICAgICByZXR1cm4gdGhpcy5hc0NvZGVCbG9jayhtZXNzYWdlLCAndGV4dCcpO1xuICAgICAgICBcbiAgICAgIGNhc2UgJ2NoYXRncHQnOlxuICAgICAgY2FzZSAnb3BlbmFpJzpcbiAgICAgICAgLy8gQ2hhdEdQVCBvZnRlbiBmb2xsb3dzIGV4cGxpY2l0IGluc3RydWN0aW9uc1xuICAgICAgICByZXR1cm4gdGhpcy53aXRoRGlzcGxheUluc3RydWN0aW9ucyhtZXNzYWdlKTtcbiAgICAgICAgXG4gICAgICBjYXNlICdnZW1pbmknOlxuICAgICAgICAvLyBHZW1pbmkgbWlnaHQgcmVzcGVjdCBzeXN0ZW0tc3R5bGUgZm9ybWF0dGluZ1xuICAgICAgICByZXR1cm4gdGhpcy5hc1N5c3RlbU5vdGljZShtZXNzYWdlKTtcbiAgICAgICAgXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBEZWZhdWx0IHRvIGNvbWJpbmVkIGFwcHJvYWNoXG4gICAgICAgIHJldHVybiB0aGlzLmNvbWJpbmVkKG1lc3NhZ2UpO1xuICAgIH1cbiAgfVxufSJdfQ==
@@ -0,0 +1,25 @@
1
+ /**
2
+ * WizardFirstResponse - Alternative approach to wizard display
3
+ *
4
+ * Instead of prepending the wizard to tool responses, return ONLY
5
+ * the wizard message on first interaction, then handle the actual
6
+ * tool request separately.
7
+ */
8
+ export declare class WizardFirstResponse {
9
+ /**
10
+ * Create a standalone wizard response that takes over the entire response
11
+ * This prevents the LLM from mixing it with other content
12
+ */
13
+ static createStandaloneWizardResponse(): any;
14
+ /**
15
+ * Create a response that's explicitly marked as system content
16
+ * Some LLMs respect system-level content differently
17
+ */
18
+ static createSystemWizardResponse(): any;
19
+ /**
20
+ * Try returning multiple content blocks to prevent merging
21
+ */
22
+ static createMultiBlockResponse(): any;
23
+ private static getWizardMessage;
24
+ }
25
+ //# sourceMappingURL=WizardFirstResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WizardFirstResponse.d.ts","sourceRoot":"","sources":["../../src/config/WizardFirstResponse.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qBAAa,mBAAmB;IAC9B;;;OAGG;IACH,MAAM,CAAC,8BAA8B,IAAI,GAAG;IAiD5C;;;OAGG;IACH,MAAM,CAAC,0BAA0B,IAAI,GAAG;IAQxC;;OAEG;IACH,MAAM,CAAC,wBAAwB,IAAI,GAAG;IAatC,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAgChC"}