mcp-adr-analysis-server 1.1.0 → 2.0.2

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 (118) hide show
  1. package/README.md +367 -150
  2. package/dist/src/config/ai-config.d.ts +81 -0
  3. package/dist/src/config/ai-config.d.ts.map +1 -0
  4. package/dist/src/config/ai-config.js +134 -0
  5. package/dist/src/config/ai-config.js.map +1 -0
  6. package/dist/src/index.d.ts +97 -1
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +2430 -186
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/prompts/adr-suggestion-prompts.d.ts +2 -2
  11. package/dist/src/prompts/adr-suggestion-prompts.d.ts.map +1 -1
  12. package/dist/src/prompts/adr-suggestion-prompts.js +25 -17
  13. package/dist/src/prompts/adr-suggestion-prompts.js.map +1 -1
  14. package/dist/src/prompts/analysis-prompts.js +1 -1
  15. package/dist/src/prompts/analysis-prompts.js.map +1 -1
  16. package/dist/src/resources/index.d.ts +1 -1
  17. package/dist/src/resources/index.d.ts.map +1 -1
  18. package/dist/src/resources/index.js +52 -44
  19. package/dist/src/resources/index.js.map +1 -1
  20. package/dist/src/templates/domain-knowledge-templates.d.ts +36 -0
  21. package/dist/src/templates/domain-knowledge-templates.d.ts.map +1 -0
  22. package/dist/src/templates/domain-knowledge-templates.js +376 -0
  23. package/dist/src/templates/domain-knowledge-templates.js.map +1 -0
  24. package/dist/src/tools/adr-suggestion-tool.d.ts +8 -3
  25. package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
  26. package/dist/src/tools/adr-suggestion-tool.js +561 -172
  27. package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
  28. package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
  29. package/dist/src/tools/content-masking-tool.js +168 -22
  30. package/dist/src/tools/content-masking-tool.js.map +1 -1
  31. package/dist/src/tools/deployment-analysis-tool.d.ts.map +1 -1
  32. package/dist/src/tools/deployment-analysis-tool.js +64 -27
  33. package/dist/src/tools/deployment-analysis-tool.js.map +1 -1
  34. package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
  35. package/dist/src/tools/environment-analysis-tool.js +65 -29
  36. package/dist/src/tools/environment-analysis-tool.js.map +1 -1
  37. package/dist/src/tools/research-question-tool.d.ts.map +1 -1
  38. package/dist/src/tools/research-question-tool.js +150 -49
  39. package/dist/src/tools/research-question-tool.js.map +1 -1
  40. package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
  41. package/dist/src/tools/rule-generation-tool.js +328 -143
  42. package/dist/src/tools/rule-generation-tool.js.map +1 -1
  43. package/dist/src/types/ape-framework.d.ts +566 -0
  44. package/dist/src/types/ape-framework.d.ts.map +1 -0
  45. package/dist/src/types/ape-framework.js +98 -0
  46. package/dist/src/types/ape-framework.js.map +1 -0
  47. package/dist/src/types/index.d.ts +96 -93
  48. package/dist/src/types/index.d.ts.map +1 -1
  49. package/dist/src/types/knowledge-generation.d.ts +671 -0
  50. package/dist/src/types/knowledge-generation.d.ts.map +1 -0
  51. package/dist/src/types/knowledge-generation.js +107 -0
  52. package/dist/src/types/knowledge-generation.js.map +1 -0
  53. package/dist/src/types/reflexion-framework.d.ts +652 -0
  54. package/dist/src/types/reflexion-framework.d.ts.map +1 -0
  55. package/dist/src/types/reflexion-framework.js +85 -0
  56. package/dist/src/types/reflexion-framework.js.map +1 -0
  57. package/dist/src/utils/adr-suggestions.d.ts +1 -1
  58. package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
  59. package/dist/src/utils/adr-suggestions.js +8 -50
  60. package/dist/src/utils/adr-suggestions.js.map +1 -1
  61. package/dist/src/utils/ai-executor.d.ts +125 -0
  62. package/dist/src/utils/ai-executor.d.ts.map +1 -0
  63. package/dist/src/utils/ai-executor.js +292 -0
  64. package/dist/src/utils/ai-executor.js.map +1 -0
  65. package/dist/src/utils/automatic-prompt-engineering.d.ts +72 -0
  66. package/dist/src/utils/automatic-prompt-engineering.d.ts.map +1 -0
  67. package/dist/src/utils/automatic-prompt-engineering.js +820 -0
  68. package/dist/src/utils/automatic-prompt-engineering.js.map +1 -0
  69. package/dist/src/utils/cache.d.ts +54 -22
  70. package/dist/src/utils/cache.d.ts.map +1 -1
  71. package/dist/src/utils/cache.js +1234 -143
  72. package/dist/src/utils/cache.js.map +1 -1
  73. package/dist/src/utils/config.d.ts +2 -2
  74. package/dist/src/utils/config.js +3 -3
  75. package/dist/src/utils/config.js.map +1 -1
  76. package/dist/src/utils/deployment-analysis.d.ts.map +1 -1
  77. package/dist/src/utils/deployment-analysis.js +57 -38
  78. package/dist/src/utils/deployment-analysis.js.map +1 -1
  79. package/dist/src/utils/environment-analysis.d.ts.map +1 -1
  80. package/dist/src/utils/environment-analysis.js +113 -100
  81. package/dist/src/utils/environment-analysis.js.map +1 -1
  82. package/dist/src/utils/file-system.d.ts +42 -13
  83. package/dist/src/utils/file-system.d.ts.map +1 -1
  84. package/dist/src/utils/file-system.js +795 -89
  85. package/dist/src/utils/file-system.js.map +1 -1
  86. package/dist/src/utils/index.d.ts +9 -0
  87. package/dist/src/utils/index.d.ts.map +1 -0
  88. package/dist/src/utils/index.js +13 -0
  89. package/dist/src/utils/index.js.map +1 -0
  90. package/dist/src/utils/knowledge-generation.d.ts +79 -0
  91. package/dist/src/utils/knowledge-generation.d.ts.map +1 -0
  92. package/dist/src/utils/knowledge-generation.js +646 -0
  93. package/dist/src/utils/knowledge-generation.js.map +1 -0
  94. package/dist/src/utils/output-masking.d.ts.map +1 -1
  95. package/dist/src/utils/output-masking.js +2 -1
  96. package/dist/src/utils/output-masking.js.map +1 -1
  97. package/dist/src/utils/prompt-composition.d.ts +234 -0
  98. package/dist/src/utils/prompt-composition.d.ts.map +1 -0
  99. package/dist/src/utils/prompt-composition.js +379 -0
  100. package/dist/src/utils/prompt-composition.js.map +1 -0
  101. package/dist/src/utils/prompt-execution.d.ts +88 -0
  102. package/dist/src/utils/prompt-execution.d.ts.map +1 -0
  103. package/dist/src/utils/prompt-execution.js +227 -0
  104. package/dist/src/utils/prompt-execution.js.map +1 -0
  105. package/dist/src/utils/reflexion.d.ts +92 -0
  106. package/dist/src/utils/reflexion.d.ts.map +1 -0
  107. package/dist/src/utils/reflexion.js +1100 -0
  108. package/dist/src/utils/reflexion.js.map +1 -0
  109. package/dist/src/utils/research-integration.d.ts.map +1 -1
  110. package/dist/src/utils/research-integration.js +156 -100
  111. package/dist/src/utils/research-integration.js.map +1 -1
  112. package/dist/src/utils/research-questions.d.ts.map +1 -1
  113. package/dist/src/utils/research-questions.js +85 -24
  114. package/dist/src/utils/research-questions.js.map +1 -1
  115. package/dist/src/utils/rule-generation.d.ts.map +1 -1
  116. package/dist/src/utils/rule-generation.js +92 -108
  117. package/dist/src/utils/rule-generation.js.map +1 -1
  118. package/package.json +9 -3
@@ -0,0 +1,81 @@
1
+ /**
2
+ * AI Configuration for OpenRouter.ai Integration
3
+ *
4
+ * This module handles configuration for AI execution capabilities,
5
+ * allowing the MCP server to execute prompts internally and return
6
+ * actual results instead of prompts.
7
+ */
8
+ export interface AIConfig {
9
+ /** OpenRouter API key for authentication */
10
+ apiKey: string;
11
+ /** Base URL for OpenRouter API */
12
+ baseURL: string;
13
+ /** Default AI model to use for prompt execution */
14
+ defaultModel: string;
15
+ /** Execution mode: 'full' executes prompts, 'prompt-only' returns prompts */
16
+ executionMode: 'full' | 'prompt-only';
17
+ /** Site URL for OpenRouter rankings (optional) */
18
+ siteUrl?: string;
19
+ /** Site name for OpenRouter rankings (optional) */
20
+ siteName?: string;
21
+ /** Request timeout in milliseconds */
22
+ timeout: number;
23
+ /** Maximum retries for failed requests */
24
+ maxRetries: number;
25
+ /** Temperature for AI responses (0-1) */
26
+ temperature: number;
27
+ /** Maximum tokens for AI responses */
28
+ maxTokens: number;
29
+ /** Enable response caching */
30
+ cacheEnabled: boolean;
31
+ /** Cache TTL in seconds */
32
+ cacheTTL: number;
33
+ }
34
+ export interface ModelConfig {
35
+ /** Model identifier for OpenRouter */
36
+ id: string;
37
+ /** Human-readable model name */
38
+ name: string;
39
+ /** Model provider (openai, anthropic, etc.) */
40
+ provider: string;
41
+ /** Cost per 1K tokens (input) */
42
+ inputCost: number;
43
+ /** Cost per 1K tokens (output) */
44
+ outputCost: number;
45
+ /** Maximum context length */
46
+ contextLength: number;
47
+ /** Recommended use cases */
48
+ useCases: string[];
49
+ }
50
+ /**
51
+ * Available AI models for different use cases
52
+ */
53
+ export declare const AVAILABLE_MODELS: Record<string, ModelConfig>;
54
+ /**
55
+ * Default AI configuration
56
+ */
57
+ export declare const DEFAULT_AI_CONFIG: Omit<AIConfig, 'siteUrl' | 'siteName'> & {
58
+ siteUrl: string;
59
+ siteName: string;
60
+ };
61
+ /**
62
+ * Load AI configuration from environment variables
63
+ */
64
+ export declare function loadAIConfig(): AIConfig;
65
+ /**
66
+ * Validate AI configuration
67
+ */
68
+ export declare function validateAIConfig(config: AIConfig): void;
69
+ /**
70
+ * Get model configuration by ID
71
+ */
72
+ export declare function getModelConfig(modelId: string): ModelConfig | undefined;
73
+ /**
74
+ * Check if AI execution is enabled
75
+ */
76
+ export declare function isAIExecutionEnabled(config: AIConfig): boolean;
77
+ /**
78
+ * Get recommended model for a specific use case
79
+ */
80
+ export declare function getRecommendedModel(useCase: string, costSensitive?: boolean): string;
81
+ //# sourceMappingURL=ai-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-config.d.ts","sourceRoot":"","sources":["../../../src/config/ai-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,QAAQ;IACvB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,aAAa,EAAE,MAAM,GAAG,aAAa,CAAC;IACtC,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAqCxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,UAAU,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAa3G,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,IAAI,QAAQ,CAiBvC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAoBvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAGvE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,GAAE,OAAe,GAAG,MAAM,CAiB3F"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * AI Configuration for OpenRouter.ai Integration
3
+ *
4
+ * This module handles configuration for AI execution capabilities,
5
+ * allowing the MCP server to execute prompts internally and return
6
+ * actual results instead of prompts.
7
+ */
8
+ /**
9
+ * Available AI models for different use cases
10
+ */
11
+ export const AVAILABLE_MODELS = {
12
+ 'claude-3-sonnet': {
13
+ id: 'anthropic/claude-3-sonnet',
14
+ name: 'Claude 3 Sonnet',
15
+ provider: 'anthropic',
16
+ inputCost: 3.0,
17
+ outputCost: 15.0,
18
+ contextLength: 200000,
19
+ useCases: ['analysis', 'reasoning', 'code-generation']
20
+ },
21
+ 'claude-3-haiku': {
22
+ id: 'anthropic/claude-3-haiku',
23
+ name: 'Claude 3 Haiku',
24
+ provider: 'anthropic',
25
+ inputCost: 0.25,
26
+ outputCost: 1.25,
27
+ contextLength: 200000,
28
+ useCases: ['quick-analysis', 'simple-tasks']
29
+ },
30
+ 'gpt-4o': {
31
+ id: 'openai/gpt-4o',
32
+ name: 'GPT-4 Omni',
33
+ provider: 'openai',
34
+ inputCost: 5.0,
35
+ outputCost: 15.0,
36
+ contextLength: 128000,
37
+ useCases: ['analysis', 'reasoning', 'creative-tasks']
38
+ },
39
+ 'gpt-4o-mini': {
40
+ id: 'openai/gpt-4o-mini',
41
+ name: 'GPT-4 Omni Mini',
42
+ provider: 'openai',
43
+ inputCost: 0.15,
44
+ outputCost: 0.6,
45
+ contextLength: 128000,
46
+ useCases: ['quick-analysis', 'simple-tasks', 'cost-effective']
47
+ }
48
+ };
49
+ /**
50
+ * Default AI configuration
51
+ */
52
+ export const DEFAULT_AI_CONFIG = {
53
+ apiKey: '',
54
+ baseURL: 'https://openrouter.ai/api/v1',
55
+ defaultModel: 'anthropic/claude-3-sonnet',
56
+ executionMode: 'full',
57
+ siteUrl: 'https://github.com/tosin2013/mcp-adr-analysis-server',
58
+ siteName: 'MCP ADR Analysis Server',
59
+ timeout: 60000, // 60 seconds
60
+ maxRetries: 3,
61
+ temperature: 0.1, // Lower for more consistent results
62
+ maxTokens: 4000,
63
+ cacheEnabled: true,
64
+ cacheTTL: 3600 // 1 hour
65
+ };
66
+ /**
67
+ * Load AI configuration from environment variables
68
+ */
69
+ export function loadAIConfig() {
70
+ const config = {
71
+ apiKey: process.env['OPENROUTER_API_KEY'] || '',
72
+ baseURL: 'https://openrouter.ai/api/v1',
73
+ defaultModel: process.env['AI_MODEL'] || DEFAULT_AI_CONFIG.defaultModel,
74
+ executionMode: process.env['EXECUTION_MODE'] || DEFAULT_AI_CONFIG.executionMode,
75
+ siteUrl: process.env['SITE_URL'] || DEFAULT_AI_CONFIG.siteUrl,
76
+ siteName: process.env['SITE_NAME'] || DEFAULT_AI_CONFIG.siteName,
77
+ timeout: parseInt(process.env['AI_TIMEOUT'] || '') || DEFAULT_AI_CONFIG.timeout,
78
+ maxRetries: parseInt(process.env['AI_MAX_RETRIES'] || '') || DEFAULT_AI_CONFIG.maxRetries,
79
+ temperature: parseFloat(process.env['AI_TEMPERATURE'] || '') || DEFAULT_AI_CONFIG.temperature,
80
+ maxTokens: parseInt(process.env['AI_MAX_TOKENS'] || '') || DEFAULT_AI_CONFIG.maxTokens,
81
+ cacheEnabled: process.env['AI_CACHE_ENABLED'] !== 'false',
82
+ cacheTTL: parseInt(process.env['AI_CACHE_TTL'] || '') || DEFAULT_AI_CONFIG.cacheTTL
83
+ };
84
+ return config;
85
+ }
86
+ /**
87
+ * Validate AI configuration
88
+ */
89
+ export function validateAIConfig(config) {
90
+ if (config.executionMode === 'full' && !config.apiKey) {
91
+ throw new Error('OPENROUTER_API_KEY is required when execution mode is "full"');
92
+ }
93
+ if (!AVAILABLE_MODELS[config.defaultModel.replace('anthropic/', '').replace('openai/', '')]) {
94
+ console.warn(`Unknown model: ${config.defaultModel}. Using default.`);
95
+ }
96
+ if (config.temperature < 0 || config.temperature > 1) {
97
+ throw new Error('Temperature must be between 0 and 1');
98
+ }
99
+ if (config.maxTokens < 100 || config.maxTokens > 8000) {
100
+ throw new Error('Max tokens must be between 100 and 8000');
101
+ }
102
+ if (config.timeout < 1000 || config.timeout > 300000) {
103
+ throw new Error('Timeout must be between 1000ms and 300000ms');
104
+ }
105
+ }
106
+ /**
107
+ * Get model configuration by ID
108
+ */
109
+ export function getModelConfig(modelId) {
110
+ const normalizedId = modelId.replace('anthropic/', '').replace('openai/', '');
111
+ return AVAILABLE_MODELS[normalizedId];
112
+ }
113
+ /**
114
+ * Check if AI execution is enabled
115
+ */
116
+ export function isAIExecutionEnabled(config) {
117
+ return config.executionMode === 'full' && !!config.apiKey;
118
+ }
119
+ /**
120
+ * Get recommended model for a specific use case
121
+ */
122
+ export function getRecommendedModel(useCase, costSensitive = false) {
123
+ const models = Object.values(AVAILABLE_MODELS);
124
+ const suitableModels = models.filter(model => model.useCases.includes(useCase) || model.useCases.includes('analysis'));
125
+ if (suitableModels.length === 0) {
126
+ return DEFAULT_AI_CONFIG.defaultModel;
127
+ }
128
+ if (costSensitive) {
129
+ // Sort by cost (input + output cost)
130
+ suitableModels.sort((a, b) => (a.inputCost + a.outputCost) - (b.inputCost + b.outputCost));
131
+ }
132
+ return suitableModels[0].id;
133
+ }
134
+ //# sourceMappingURL=ai-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-config.js","sourceRoot":"","sources":["../../../src/config/ai-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8CH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgC;IAC3D,iBAAiB,EAAE;QACjB,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC;KACvD;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,WAAW;QACrB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,cAAc,CAAC;KAC7C;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC;KACtD;IACD,aAAa,EAAE;QACb,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,MAAM;QACrB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,CAAC;KAC/D;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAmF;IAC/G,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,8BAA8B;IACvC,YAAY,EAAE,2BAA2B;IACzC,aAAa,EAAE,MAAM;IACrB,OAAO,EAAE,sDAAsD;IAC/D,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,KAAK,EAAE,aAAa;IAC7B,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,GAAG,EAAE,oCAAoC;IACtD,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,IAAI,CAAC,SAAS;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAa;QACvB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAC/C,OAAO,EAAE,8BAA8B;QACvC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,YAAY;QACvE,aAAa,EAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAA4B,IAAI,iBAAiB,CAAC,aAAa;QAC3G,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,OAAO;QAC7D,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,iBAAiB,CAAC,QAAQ;QAChE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,iBAAiB,CAAC,OAAO;QAC/E,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,iBAAiB,CAAC,UAAU;QACzF,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,iBAAiB,CAAC,WAAW;QAC7F,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,IAAI,iBAAiB,CAAC,SAAS;QACtF,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,OAAO;QACzD,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,iBAAiB,CAAC,QAAQ;KACpF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAgB;IAC/C,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,YAAY,kBAAkB,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,IAAI,MAAM,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9E,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAgB;IACnD,OAAO,MAAM,CAAC,aAAa,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,gBAAyB,KAAK;IACjF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE/C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3C,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CACxE,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,iBAAiB,CAAC,YAAY,CAAC;IACxC,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,qCAAqC;QACrC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,OAAO,cAAc,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;AAC/B,CAAC"}
@@ -6,5 +6,101 @@
6
6
  * This server provides Tools, Resources, and Prompts for analyzing
7
7
  * Architectural Decision Records and project architecture.
8
8
  */
9
- export {};
9
+ /**
10
+ * Main server class
11
+ */
12
+ export declare class McpAdrAnalysisServer {
13
+ private server;
14
+ private maskingConfig;
15
+ private config;
16
+ private logger;
17
+ constructor();
18
+ /**
19
+ * Validate configuration and project setup
20
+ */
21
+ private validateConfiguration;
22
+ /**
23
+ * Public health check method for testing
24
+ */
25
+ healthCheck(): Promise<void>;
26
+ /**
27
+ * Setup MCP protocol handlers
28
+ */
29
+ private setupHandlers;
30
+ /**
31
+ * Tool implementations
32
+ */
33
+ private checkAIExecutionStatus;
34
+ private getWorkflowGuidance;
35
+ private getDevelopmentGuidance;
36
+ private analyzeProjectEcosystem;
37
+ private getArchitecturalContext;
38
+ private generateAdrsFromPrd;
39
+ private generateAdrTodo;
40
+ private compareAdrProgress;
41
+ /**
42
+ * Content masking tool implementations
43
+ */
44
+ private analyzeContentSecurity;
45
+ private generateContentMasking;
46
+ private configureCustomPatterns;
47
+ private applyBasicContentMasking;
48
+ private validateContentMasking;
49
+ private manageCache;
50
+ private configureOutputMasking;
51
+ /**
52
+ * Helper method to get domains based on PRD type
53
+ */
54
+ private getPrdTypeDomains;
55
+ /**
56
+ * Helper method to get domains for ecosystem analysis based on technology focus
57
+ */
58
+ private getEcosystemAnalysisDomains;
59
+ /**
60
+ * Helper method to create base ADR generation prompt
61
+ */
62
+ private createBaseAdrPrompt;
63
+ /**
64
+ * ADR suggestion tool implementations
65
+ */
66
+ private suggestAdrs;
67
+ private generateAdrFromDecision;
68
+ private discoverExistingAdrs;
69
+ /**
70
+ * Research integration tool implementations
71
+ */
72
+ private incorporateResearch;
73
+ private createResearchTemplate;
74
+ private requestActionConfirmation;
75
+ /**
76
+ * Rule generation and validation tool implementations
77
+ */
78
+ private generateRules;
79
+ private validateRules;
80
+ private createRuleSet;
81
+ /**
82
+ * Environment analysis tool implementation
83
+ */
84
+ private analyzeEnvironment;
85
+ /**
86
+ * Research question generation tool implementation
87
+ */
88
+ private generateResearchQuestions;
89
+ /**
90
+ * Deployment analysis tool implementation
91
+ */
92
+ private analyzeDeploymentProgress;
93
+ /**
94
+ * Apply content masking to MCP response
95
+ */
96
+ private applyOutputMasking;
97
+ /**
98
+ * Read MCP resource with prompt-driven caching
99
+ */
100
+ private readResource;
101
+ /**
102
+ * Start the server
103
+ */
104
+ start(): Promise<void>;
105
+ }
10
106
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AA0BH;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAkC;;IAwBhD;;OAEG;YACW,qBAAqB;IAUnC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC;;OAEG;IACH,OAAO,CAAC,aAAa;IAqwCrB;;OAEG;YACW,sBAAsB;YAgGtB,mBAAmB;YAqMnB,sBAAsB;YAoPtB,uBAAuB;YAqUvB,uBAAuB;YA0PvB,mBAAmB;YA6RnB,eAAe;YAkUf,kBAAkB;IAwZhC;;OAEG;YACW,sBAAsB;YAKtB,sBAAsB;YAKtB,uBAAuB;YAKvB,wBAAwB;YAKxB,sBAAsB;YAKtB,WAAW;YAkJX,sBAAsB;IAuHpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAyDnC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyF3B;;OAEG;YACW,WAAW;YAKX,uBAAuB;YAKvB,oBAAoB;IAKlC;;OAEG;YACW,mBAAmB;YAKnB,sBAAsB;YAKtB,yBAAyB;IAKvC;;OAEG;YACW,aAAa;YAKb,aAAa;YAKb,aAAa;IAK3B;;OAEG;YACW,kBAAkB;IAKhC;;OAEG;YACW,yBAAyB;IAKvC;;OAEG;YACW,yBAAyB;IAKvC;;OAEG;YACW,kBAAkB;IAWhC;;OAEG;YACW,YAAY;IAmF1B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa7B"}