mcp-adr-analysis-server 2.1.22 → 2.1.28
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/README.md +63 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +370 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/tools/adr-aggregator-tools.d.ts +185 -0
- package/dist/src/tools/adr-aggregator-tools.d.ts.map +1 -0
- package/dist/src/tools/adr-aggregator-tools.js +872 -0
- package/dist/src/tools/adr-aggregator-tools.js.map +1 -0
- package/dist/src/tools/analyze-gaps-tool.d.ts +57 -0
- package/dist/src/tools/analyze-gaps-tool.d.ts.map +1 -0
- package/dist/src/tools/analyze-gaps-tool.js +727 -0
- package/dist/src/tools/analyze-gaps-tool.js.map +1 -0
- package/dist/src/tools/tool-catalog.d.ts +1 -1
- package/dist/src/tools/tool-catalog.d.ts.map +1 -1
- package/dist/src/tools/tool-catalog.js +382 -0
- package/dist/src/tools/tool-catalog.js.map +1 -1
- package/dist/src/tools/tool-dispatcher.d.ts.map +1 -1
- package/dist/src/tools/tool-dispatcher.js +4 -0
- package/dist/src/tools/tool-dispatcher.js.map +1 -1
- package/dist/src/types/adr-aggregator.d.ts +692 -0
- package/dist/src/types/adr-aggregator.d.ts.map +1 -0
- package/dist/src/types/adr-aggregator.js +8 -0
- package/dist/src/types/adr-aggregator.js.map +1 -0
- package/dist/src/types/index.d.ts +3 -2
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/memory-entities.d.ts +48 -48
- package/dist/src/utils/adr-aggregator-client.d.ts +177 -0
- package/dist/src/utils/adr-aggregator-client.d.ts.map +1 -0
- package/dist/src/utils/adr-aggregator-client.js +396 -0
- package/dist/src/utils/adr-aggregator-client.js.map +1 -0
- package/dist/src/utils/config.d.ts +3 -0
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/config.js +13 -0
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/git-remote-detector.d.ts +67 -0
- package/dist/src/utils/git-remote-detector.d.ts.map +1 -0
- package/dist/src/utils/git-remote-detector.js +194 -0
- package/dist/src/utils/git-remote-detector.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR Aggregator API Client
|
|
3
|
+
* HTTP client for bidirectional sync with https://adraggregator.com
|
|
4
|
+
*
|
|
5
|
+
* @see NEW_FEATURE.md for API documentation
|
|
6
|
+
*/
|
|
7
|
+
import { type GitRemoteInfo } from './git-remote-detector.js';
|
|
8
|
+
import type { SyncAdrRequest, SyncAdrResponse, GetContextRequest, GetContextResponse, GetStalenessReportRequest, GetStalenessReportResponse, GetTemplatesRequest, GetTemplatesResponse, GetDiagramsRequest, GetDiagramsResponse, ValidateComplianceRequest, ValidateComplianceResponse, GetKnowledgeGraphRequest, GetKnowledgeGraphResponse, ReportCodeGapsRequest, ReportCodeGapsResponse, GetCodeGapsRequest, GetCodeGapsResponse, UpdateImplementationStatusRequest, UpdateImplementationStatusResponse, GetPrioritiesRequest, GetPrioritiesResponse } from '../types/adr-aggregator.js';
|
|
9
|
+
/**
|
|
10
|
+
* Configuration for the ADR Aggregator client
|
|
11
|
+
*/
|
|
12
|
+
export interface AggregatorClientConfig {
|
|
13
|
+
/** Base URL for the ADR Aggregator API */
|
|
14
|
+
baseUrl: string;
|
|
15
|
+
/** API key for authentication */
|
|
16
|
+
apiKey?: string;
|
|
17
|
+
/** Request timeout in milliseconds */
|
|
18
|
+
timeout?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* ADR Aggregator API Client
|
|
22
|
+
*
|
|
23
|
+
* Provides methods for all ADR Aggregator API endpoints:
|
|
24
|
+
* - sync_to_aggregator (POST /mcp-sync-adr)
|
|
25
|
+
* - get_adr_context (GET /mcp-get-context)
|
|
26
|
+
* - get_staleness_report (GET /mcp-staleness-report)
|
|
27
|
+
* - get_adr_templates (GET /mcp-get-templates)
|
|
28
|
+
* - get_adr_diagrams (GET /mcp-get-diagrams) - Pro+ tier
|
|
29
|
+
* - validate_adr_compliance (POST /mcp-validate-compliance) - Pro+ tier
|
|
30
|
+
* - get_knowledge_graph (GET /mcp-get-knowledge-graph) - Team tier
|
|
31
|
+
*/
|
|
32
|
+
export declare class AdrAggregatorClient {
|
|
33
|
+
private baseUrl;
|
|
34
|
+
private apiKey;
|
|
35
|
+
private timeout;
|
|
36
|
+
constructor(config?: Partial<AggregatorClientConfig>);
|
|
37
|
+
/**
|
|
38
|
+
* Auto-detect repository name from git remote
|
|
39
|
+
*
|
|
40
|
+
* @param projectPath - Path to the project (defaults to config.projectPath)
|
|
41
|
+
* @returns Repository name in "owner/repo" format
|
|
42
|
+
* @throws McpAdrError if not a git repository
|
|
43
|
+
*/
|
|
44
|
+
getRepositoryName(projectPath?: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Get full git remote info
|
|
47
|
+
*
|
|
48
|
+
* @param projectPath - Path to the project (defaults to config.projectPath)
|
|
49
|
+
* @returns Git remote information
|
|
50
|
+
*/
|
|
51
|
+
getGitInfo(projectPath?: string): GitRemoteInfo;
|
|
52
|
+
/**
|
|
53
|
+
* Check if API key is configured
|
|
54
|
+
*
|
|
55
|
+
* @returns true if API key is set
|
|
56
|
+
*/
|
|
57
|
+
isConfigured(): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Get the current base URL
|
|
60
|
+
*/
|
|
61
|
+
getBaseUrl(): string;
|
|
62
|
+
/**
|
|
63
|
+
* Sync ADRs to ADR Aggregator platform
|
|
64
|
+
*
|
|
65
|
+
* @param request - Sync request with ADRs and options
|
|
66
|
+
* @returns Sync response with results
|
|
67
|
+
*/
|
|
68
|
+
syncAdrs(request: SyncAdrRequest): Promise<SyncAdrResponse>;
|
|
69
|
+
/**
|
|
70
|
+
* Get ADR context from aggregator
|
|
71
|
+
*
|
|
72
|
+
* @param request - Context request with filters
|
|
73
|
+
* @returns ADR context response
|
|
74
|
+
*/
|
|
75
|
+
getContext(request: GetContextRequest): Promise<GetContextResponse>;
|
|
76
|
+
/**
|
|
77
|
+
* Get staleness report
|
|
78
|
+
*
|
|
79
|
+
* @param request - Staleness report request
|
|
80
|
+
* @returns Staleness report response
|
|
81
|
+
*/
|
|
82
|
+
getStalenessReport(request: GetStalenessReportRequest): Promise<GetStalenessReportResponse>;
|
|
83
|
+
/**
|
|
84
|
+
* Get ADR templates
|
|
85
|
+
*
|
|
86
|
+
* @param request - Templates request with optional domain filter
|
|
87
|
+
* @returns Templates response
|
|
88
|
+
*/
|
|
89
|
+
getTemplates(request: GetTemplatesRequest): Promise<GetTemplatesResponse>;
|
|
90
|
+
/**
|
|
91
|
+
* Get Mermaid diagrams (Pro+ tier)
|
|
92
|
+
*
|
|
93
|
+
* @param request - Diagrams request
|
|
94
|
+
* @returns Diagrams response
|
|
95
|
+
*/
|
|
96
|
+
getDiagrams(request: GetDiagramsRequest): Promise<GetDiagramsResponse>;
|
|
97
|
+
/**
|
|
98
|
+
* Validate ADR compliance (Pro+ tier)
|
|
99
|
+
*
|
|
100
|
+
* @param request - Compliance validation request
|
|
101
|
+
* @returns Compliance validation response
|
|
102
|
+
*/
|
|
103
|
+
validateCompliance(request: ValidateComplianceRequest): Promise<ValidateComplianceResponse>;
|
|
104
|
+
/**
|
|
105
|
+
* Get knowledge graph (Team tier)
|
|
106
|
+
*
|
|
107
|
+
* @param request - Knowledge graph request
|
|
108
|
+
* @returns Knowledge graph response
|
|
109
|
+
*/
|
|
110
|
+
getKnowledgeGraph(request: GetKnowledgeGraphRequest): Promise<GetKnowledgeGraphResponse>;
|
|
111
|
+
/**
|
|
112
|
+
* Report code gaps to ADR Aggregator
|
|
113
|
+
*
|
|
114
|
+
* @param request - Code gaps report request
|
|
115
|
+
* @returns Report response with gap counts
|
|
116
|
+
*/
|
|
117
|
+
reportCodeGaps(request: ReportCodeGapsRequest): Promise<ReportCodeGapsResponse>;
|
|
118
|
+
/**
|
|
119
|
+
* Get current code gaps from ADR Aggregator
|
|
120
|
+
*
|
|
121
|
+
* @param request - Get gaps request with optional filters
|
|
122
|
+
* @returns Current gaps with status information
|
|
123
|
+
*/
|
|
124
|
+
getCodeGaps(request: GetCodeGapsRequest): Promise<GetCodeGapsResponse>;
|
|
125
|
+
/**
|
|
126
|
+
* Update implementation status of synced ADRs (Pro+ tier)
|
|
127
|
+
*
|
|
128
|
+
* @param request - Update request with status changes
|
|
129
|
+
* @returns Update response with results
|
|
130
|
+
*/
|
|
131
|
+
updateImplementationStatus(request: UpdateImplementationStatusRequest): Promise<UpdateImplementationStatusResponse>;
|
|
132
|
+
/**
|
|
133
|
+
* Get ADR priorities for roadmap/backlog planning
|
|
134
|
+
*
|
|
135
|
+
* @param request - Priorities request with optional filters
|
|
136
|
+
* @returns Prioritized ADRs with scores, dependencies, and blockers
|
|
137
|
+
*/
|
|
138
|
+
getPriorities(request: GetPrioritiesRequest): Promise<GetPrioritiesResponse>;
|
|
139
|
+
private get;
|
|
140
|
+
private post;
|
|
141
|
+
private buildHeaders;
|
|
142
|
+
/**
|
|
143
|
+
* Build headers with Bearer token authentication
|
|
144
|
+
* Used for gap analysis endpoints
|
|
145
|
+
*/
|
|
146
|
+
private buildBearerHeaders;
|
|
147
|
+
/**
|
|
148
|
+
* GET request with Bearer token authentication
|
|
149
|
+
*/
|
|
150
|
+
private getWithBearerAuth;
|
|
151
|
+
/**
|
|
152
|
+
* POST request with Bearer token authentication
|
|
153
|
+
*/
|
|
154
|
+
private postWithBearerAuth;
|
|
155
|
+
private buildQueryParams;
|
|
156
|
+
private handleResponse;
|
|
157
|
+
private handleError;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get the singleton ADR Aggregator client instance
|
|
161
|
+
*
|
|
162
|
+
* @returns Configured ADR Aggregator client
|
|
163
|
+
*/
|
|
164
|
+
export declare function getAdrAggregatorClient(): AdrAggregatorClient;
|
|
165
|
+
/**
|
|
166
|
+
* Reset the singleton client instance
|
|
167
|
+
* Useful for testing or when configuration changes
|
|
168
|
+
*/
|
|
169
|
+
export declare function resetAdrAggregatorClient(): void;
|
|
170
|
+
/**
|
|
171
|
+
* Create a new client with custom configuration
|
|
172
|
+
*
|
|
173
|
+
* @param config - Custom configuration
|
|
174
|
+
* @returns New ADR Aggregator client instance
|
|
175
|
+
*/
|
|
176
|
+
export declare function createAdrAggregatorClient(config: Partial<AggregatorClientConfig>): AdrAggregatorClient;
|
|
177
|
+
//# sourceMappingURL=adr-aggregator-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adr-aggregator-client.d.ts","sourceRoot":"","sources":["../../../src/utils/adr-aggregator-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR Aggregator API Client
|
|
3
|
+
* HTTP client for bidirectional sync with https://adraggregator.com
|
|
4
|
+
*
|
|
5
|
+
* @see NEW_FEATURE.md for API documentation
|
|
6
|
+
*/
|
|
7
|
+
import { McpAdrError } from '../types/index.js';
|
|
8
|
+
import { loadConfig } from './config.js';
|
|
9
|
+
import { detectGitRemote, isGitRepository } from './git-remote-detector.js';
|
|
10
|
+
/**
|
|
11
|
+
* ADR Aggregator API Client
|
|
12
|
+
*
|
|
13
|
+
* Provides methods for all ADR Aggregator API endpoints:
|
|
14
|
+
* - sync_to_aggregator (POST /mcp-sync-adr)
|
|
15
|
+
* - get_adr_context (GET /mcp-get-context)
|
|
16
|
+
* - get_staleness_report (GET /mcp-staleness-report)
|
|
17
|
+
* - get_adr_templates (GET /mcp-get-templates)
|
|
18
|
+
* - get_adr_diagrams (GET /mcp-get-diagrams) - Pro+ tier
|
|
19
|
+
* - validate_adr_compliance (POST /mcp-validate-compliance) - Pro+ tier
|
|
20
|
+
* - get_knowledge_graph (GET /mcp-get-knowledge-graph) - Team tier
|
|
21
|
+
*/
|
|
22
|
+
export class AdrAggregatorClient {
|
|
23
|
+
baseUrl;
|
|
24
|
+
apiKey;
|
|
25
|
+
timeout;
|
|
26
|
+
constructor(config) {
|
|
27
|
+
const serverConfig = loadConfig();
|
|
28
|
+
this.baseUrl =
|
|
29
|
+
config?.baseUrl ||
|
|
30
|
+
serverConfig.adrAggregatorUrl ||
|
|
31
|
+
'https://jvgdaquuggzbkenxnkja.supabase.co';
|
|
32
|
+
this.apiKey = config?.apiKey || serverConfig.adrAggregatorApiKey;
|
|
33
|
+
this.timeout = config?.timeout || 30000;
|
|
34
|
+
// Ensure baseUrl doesn't end with slash
|
|
35
|
+
if (this.baseUrl.endsWith('/')) {
|
|
36
|
+
this.baseUrl = this.baseUrl.slice(0, -1);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// ============================================================================
|
|
40
|
+
// Public Helper Methods
|
|
41
|
+
// ============================================================================
|
|
42
|
+
/**
|
|
43
|
+
* Auto-detect repository name from git remote
|
|
44
|
+
*
|
|
45
|
+
* @param projectPath - Path to the project (defaults to config.projectPath)
|
|
46
|
+
* @returns Repository name in "owner/repo" format
|
|
47
|
+
* @throws McpAdrError if not a git repository
|
|
48
|
+
*/
|
|
49
|
+
getRepositoryName(projectPath) {
|
|
50
|
+
const path = projectPath || loadConfig().projectPath;
|
|
51
|
+
if (!isGitRepository(path)) {
|
|
52
|
+
throw new McpAdrError('Not a git repository. Cannot detect repository name.', 'NOT_GIT_REPO');
|
|
53
|
+
}
|
|
54
|
+
const gitInfo = detectGitRemote(path);
|
|
55
|
+
return gitInfo.repositoryName;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get full git remote info
|
|
59
|
+
*
|
|
60
|
+
* @param projectPath - Path to the project (defaults to config.projectPath)
|
|
61
|
+
* @returns Git remote information
|
|
62
|
+
*/
|
|
63
|
+
getGitInfo(projectPath) {
|
|
64
|
+
const path = projectPath || loadConfig().projectPath;
|
|
65
|
+
return detectGitRemote(path);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Check if API key is configured
|
|
69
|
+
*
|
|
70
|
+
* @returns true if API key is set
|
|
71
|
+
*/
|
|
72
|
+
isConfigured() {
|
|
73
|
+
return !!this.apiKey;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get the current base URL
|
|
77
|
+
*/
|
|
78
|
+
getBaseUrl() {
|
|
79
|
+
return this.baseUrl;
|
|
80
|
+
}
|
|
81
|
+
// ============================================================================
|
|
82
|
+
// API Methods
|
|
83
|
+
// ============================================================================
|
|
84
|
+
/**
|
|
85
|
+
* Sync ADRs to ADR Aggregator platform
|
|
86
|
+
*
|
|
87
|
+
* @param request - Sync request with ADRs and options
|
|
88
|
+
* @returns Sync response with results
|
|
89
|
+
*/
|
|
90
|
+
async syncAdrs(request) {
|
|
91
|
+
return this.post('/functions/v1/mcp-sync-adr', request);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get ADR context from aggregator
|
|
95
|
+
*
|
|
96
|
+
* @param request - Context request with filters
|
|
97
|
+
* @returns ADR context response
|
|
98
|
+
*/
|
|
99
|
+
async getContext(request) {
|
|
100
|
+
const params = this.buildQueryParams(request);
|
|
101
|
+
return this.get(`/functions/v1/mcp-get-context?${params}`);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get staleness report
|
|
105
|
+
*
|
|
106
|
+
* @param request - Staleness report request
|
|
107
|
+
* @returns Staleness report response
|
|
108
|
+
*/
|
|
109
|
+
async getStalenessReport(request) {
|
|
110
|
+
const params = this.buildQueryParams(request);
|
|
111
|
+
return this.get(`/functions/v1/mcp-staleness-report?${params}`);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get ADR templates
|
|
115
|
+
*
|
|
116
|
+
* @param request - Templates request with optional domain filter
|
|
117
|
+
* @returns Templates response
|
|
118
|
+
*/
|
|
119
|
+
async getTemplates(request) {
|
|
120
|
+
const params = this.buildQueryParams(request);
|
|
121
|
+
const endpoint = params
|
|
122
|
+
? `/functions/v1/mcp-get-templates?${params}`
|
|
123
|
+
: '/functions/v1/mcp-get-templates';
|
|
124
|
+
return this.get(endpoint);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get Mermaid diagrams (Pro+ tier)
|
|
128
|
+
*
|
|
129
|
+
* @param request - Diagrams request
|
|
130
|
+
* @returns Diagrams response
|
|
131
|
+
*/
|
|
132
|
+
async getDiagrams(request) {
|
|
133
|
+
const params = this.buildQueryParams(request);
|
|
134
|
+
return this.get(`/functions/v1/mcp-get-diagrams?${params}`);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Validate ADR compliance (Pro+ tier)
|
|
138
|
+
*
|
|
139
|
+
* @param request - Compliance validation request
|
|
140
|
+
* @returns Compliance validation response
|
|
141
|
+
*/
|
|
142
|
+
async validateCompliance(request) {
|
|
143
|
+
return this.post('/functions/v1/mcp-validate-compliance', request);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Get knowledge graph (Team tier)
|
|
147
|
+
*
|
|
148
|
+
* @param request - Knowledge graph request
|
|
149
|
+
* @returns Knowledge graph response
|
|
150
|
+
*/
|
|
151
|
+
async getKnowledgeGraph(request) {
|
|
152
|
+
const params = this.buildQueryParams(request);
|
|
153
|
+
return this.get(`/functions/v1/mcp-get-knowledge-graph?${params}`);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Report code gaps to ADR Aggregator
|
|
157
|
+
*
|
|
158
|
+
* @param request - Code gaps report request
|
|
159
|
+
* @returns Report response with gap counts
|
|
160
|
+
*/
|
|
161
|
+
async reportCodeGaps(request) {
|
|
162
|
+
// Gap endpoints use Bearer token authentication
|
|
163
|
+
return this.postWithBearerAuth('/functions/v1/mcp-report-code-gaps', request);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get current code gaps from ADR Aggregator
|
|
167
|
+
*
|
|
168
|
+
* @param request - Get gaps request with optional filters
|
|
169
|
+
* @returns Current gaps with status information
|
|
170
|
+
*/
|
|
171
|
+
async getCodeGaps(request) {
|
|
172
|
+
const params = this.buildQueryParams(request);
|
|
173
|
+
// Gap endpoints use Bearer token authentication
|
|
174
|
+
return this.getWithBearerAuth(`/functions/v1/mcp-get-gaps?${params}`);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Update implementation status of synced ADRs (Pro+ tier)
|
|
178
|
+
*
|
|
179
|
+
* @param request - Update request with status changes
|
|
180
|
+
* @returns Update response with results
|
|
181
|
+
*/
|
|
182
|
+
async updateImplementationStatus(request) {
|
|
183
|
+
return this.post('/functions/v1/mcp-update-implementation-status', request);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Get ADR priorities for roadmap/backlog planning
|
|
187
|
+
*
|
|
188
|
+
* @param request - Priorities request with optional filters
|
|
189
|
+
* @returns Prioritized ADRs with scores, dependencies, and blockers
|
|
190
|
+
*/
|
|
191
|
+
async getPriorities(request) {
|
|
192
|
+
const params = this.buildQueryParams(request);
|
|
193
|
+
return this.get(`/functions/v1/mcp-get-priorities?${params}`);
|
|
194
|
+
}
|
|
195
|
+
// ============================================================================
|
|
196
|
+
// Private HTTP Methods
|
|
197
|
+
// ============================================================================
|
|
198
|
+
async get(endpoint) {
|
|
199
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
200
|
+
const headers = this.buildHeaders();
|
|
201
|
+
const controller = new AbortController();
|
|
202
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
203
|
+
try {
|
|
204
|
+
const response = await fetch(url, {
|
|
205
|
+
method: 'GET',
|
|
206
|
+
headers,
|
|
207
|
+
signal: controller.signal,
|
|
208
|
+
});
|
|
209
|
+
clearTimeout(timeoutId);
|
|
210
|
+
return this.handleResponse(response);
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
clearTimeout(timeoutId);
|
|
214
|
+
throw this.handleError(error);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
async post(endpoint, body) {
|
|
218
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
219
|
+
const headers = this.buildHeaders();
|
|
220
|
+
const controller = new AbortController();
|
|
221
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
222
|
+
try {
|
|
223
|
+
const response = await fetch(url, {
|
|
224
|
+
method: 'POST',
|
|
225
|
+
headers,
|
|
226
|
+
body: JSON.stringify(body),
|
|
227
|
+
signal: controller.signal,
|
|
228
|
+
});
|
|
229
|
+
clearTimeout(timeoutId);
|
|
230
|
+
return this.handleResponse(response);
|
|
231
|
+
}
|
|
232
|
+
catch (error) {
|
|
233
|
+
clearTimeout(timeoutId);
|
|
234
|
+
throw this.handleError(error);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
buildHeaders() {
|
|
238
|
+
const headers = {
|
|
239
|
+
'Content-Type': 'application/json',
|
|
240
|
+
Accept: 'application/json',
|
|
241
|
+
'User-Agent': 'mcp-adr-analysis-server/2.1.22',
|
|
242
|
+
};
|
|
243
|
+
if (this.apiKey) {
|
|
244
|
+
headers['x-api-key'] = this.apiKey;
|
|
245
|
+
}
|
|
246
|
+
return headers;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Build headers with Bearer token authentication
|
|
250
|
+
* Used for gap analysis endpoints
|
|
251
|
+
*/
|
|
252
|
+
buildBearerHeaders() {
|
|
253
|
+
const headers = {
|
|
254
|
+
'Content-Type': 'application/json',
|
|
255
|
+
Accept: 'application/json',
|
|
256
|
+
'User-Agent': 'mcp-adr-analysis-server/2.1.22',
|
|
257
|
+
};
|
|
258
|
+
if (this.apiKey) {
|
|
259
|
+
headers['Authorization'] = `Bearer ${this.apiKey}`;
|
|
260
|
+
}
|
|
261
|
+
return headers;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* GET request with Bearer token authentication
|
|
265
|
+
*/
|
|
266
|
+
async getWithBearerAuth(endpoint) {
|
|
267
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
268
|
+
const headers = this.buildBearerHeaders();
|
|
269
|
+
const controller = new AbortController();
|
|
270
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
271
|
+
try {
|
|
272
|
+
const response = await fetch(url, {
|
|
273
|
+
method: 'GET',
|
|
274
|
+
headers,
|
|
275
|
+
signal: controller.signal,
|
|
276
|
+
});
|
|
277
|
+
clearTimeout(timeoutId);
|
|
278
|
+
return this.handleResponse(response);
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
clearTimeout(timeoutId);
|
|
282
|
+
throw this.handleError(error);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* POST request with Bearer token authentication
|
|
287
|
+
*/
|
|
288
|
+
async postWithBearerAuth(endpoint, body) {
|
|
289
|
+
const url = `${this.baseUrl}${endpoint}`;
|
|
290
|
+
const headers = this.buildBearerHeaders();
|
|
291
|
+
const controller = new AbortController();
|
|
292
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
293
|
+
try {
|
|
294
|
+
const response = await fetch(url, {
|
|
295
|
+
method: 'POST',
|
|
296
|
+
headers,
|
|
297
|
+
body: JSON.stringify(body),
|
|
298
|
+
signal: controller.signal,
|
|
299
|
+
});
|
|
300
|
+
clearTimeout(timeoutId);
|
|
301
|
+
return this.handleResponse(response);
|
|
302
|
+
}
|
|
303
|
+
catch (error) {
|
|
304
|
+
clearTimeout(timeoutId);
|
|
305
|
+
throw this.handleError(error);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
buildQueryParams(params) {
|
|
309
|
+
const searchParams = new URLSearchParams();
|
|
310
|
+
for (const [key, value] of Object.entries(params)) {
|
|
311
|
+
if (value !== undefined && value !== null && value !== '') {
|
|
312
|
+
if (Array.isArray(value)) {
|
|
313
|
+
// Handle array parameters
|
|
314
|
+
for (const item of value) {
|
|
315
|
+
searchParams.append(key, String(item));
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
else if (typeof value === 'boolean') {
|
|
319
|
+
searchParams.append(key, value ? 'true' : 'false');
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
searchParams.append(key, String(value));
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
return searchParams.toString();
|
|
327
|
+
}
|
|
328
|
+
async handleResponse(response) {
|
|
329
|
+
const contentType = response.headers.get('content-type') || '';
|
|
330
|
+
if (!response.ok) {
|
|
331
|
+
let errorData;
|
|
332
|
+
if (contentType.includes('application/json')) {
|
|
333
|
+
try {
|
|
334
|
+
errorData = (await response.json());
|
|
335
|
+
}
|
|
336
|
+
catch {
|
|
337
|
+
// Ignore JSON parse errors for error responses
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
const errorMessage = errorData?.message || `HTTP ${response.status}: ${response.statusText}`;
|
|
341
|
+
const errorCode = errorData?.code || `HTTP_${response.status}`;
|
|
342
|
+
throw new McpAdrError(errorMessage, errorCode, {
|
|
343
|
+
status: response.status,
|
|
344
|
+
tier_required: errorData?.tier_required,
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
if (contentType.includes('application/json')) {
|
|
348
|
+
return (await response.json());
|
|
349
|
+
}
|
|
350
|
+
throw new McpAdrError('Unexpected response content type', 'INVALID_RESPONSE');
|
|
351
|
+
}
|
|
352
|
+
handleError(error) {
|
|
353
|
+
if (error instanceof McpAdrError) {
|
|
354
|
+
return error;
|
|
355
|
+
}
|
|
356
|
+
if (error instanceof Error) {
|
|
357
|
+
if (error.name === 'AbortError') {
|
|
358
|
+
return new McpAdrError('Request timed out', 'TIMEOUT_ERROR');
|
|
359
|
+
}
|
|
360
|
+
return new McpAdrError(`API request failed: ${error.message}`, 'API_REQUEST_ERROR');
|
|
361
|
+
}
|
|
362
|
+
return new McpAdrError('Unknown API error', 'UNKNOWN_ERROR');
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
// ============================================================================
|
|
366
|
+
// Singleton Instance
|
|
367
|
+
// ============================================================================
|
|
368
|
+
let clientInstance = null;
|
|
369
|
+
/**
|
|
370
|
+
* Get the singleton ADR Aggregator client instance
|
|
371
|
+
*
|
|
372
|
+
* @returns Configured ADR Aggregator client
|
|
373
|
+
*/
|
|
374
|
+
export function getAdrAggregatorClient() {
|
|
375
|
+
if (!clientInstance) {
|
|
376
|
+
clientInstance = new AdrAggregatorClient();
|
|
377
|
+
}
|
|
378
|
+
return clientInstance;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Reset the singleton client instance
|
|
382
|
+
* Useful for testing or when configuration changes
|
|
383
|
+
*/
|
|
384
|
+
export function resetAdrAggregatorClient() {
|
|
385
|
+
clientInstance = null;
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Create a new client with custom configuration
|
|
389
|
+
*
|
|
390
|
+
* @param config - Custom configuration
|
|
391
|
+
* @returns New ADR Aggregator client instance
|
|
392
|
+
*/
|
|
393
|
+
export function createAdrAggregatorClient(config) {
|
|
394
|
+
return new AdrAggregatorClient(config);
|
|
395
|
+
}
|
|
396
|
+
//# sourceMappingURL=adr-aggregator-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adr-aggregator-client.js","sourceRoot":"","sources":["../../../src/utils/adr-aggregator-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAsB,MAAM,0BAA0B,CAAC;AAuChG;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAS;IAChB,MAAM,CAAqB;IAC3B,OAAO,CAAS;IAExB,YAAY,MAAwC;QAClD,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO;YACV,MAAM,EAAE,OAAO;gBACf,YAAY,CAAC,gBAAgB;gBAC7B,0CAA0C,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,YAAY,CAAC,mBAAmB,CAAC;QACjE,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;QAExC,wCAAwC;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,wBAAwB;IACxB,+EAA+E;IAE/E;;;;;;OAMG;IACI,iBAAiB,CAAC,WAAoB;QAC3C,MAAM,IAAI,GAAG,WAAW,IAAI,UAAU,EAAE,CAAC,WAAW,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,WAAW,CAAC,sDAAsD,EAAE,cAAc,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,OAAO,CAAC,cAAc,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,WAAoB;QACpC,MAAM,IAAI,GAAG,WAAW,IAAI,UAAU,EAAE,CAAC,WAAW,CAAC;QACrD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,YAAY;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,+EAA+E;IAC/E,cAAc;IACd,+EAA+E;IAE/E;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,CAAC,OAAuB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAkC,4BAA4B,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,UAAU,CAAC,OAA0B;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAA6C,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,GAAG,CAAqB,iCAAiC,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,kBAAkB,CAC7B,OAAkC;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAA6C,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,GAAG,CAA6B,sCAAsC,MAAM,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,YAAY,CAAC,OAA4B;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAA6C,CAAC,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAM;YACrB,CAAC,CAAC,mCAAmC,MAAM,EAAE;YAC7C,CAAC,CAAC,iCAAiC,CAAC;QACtC,OAAO,IAAI,CAAC,GAAG,CAAuB,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,WAAW,CAAC,OAA2B;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAA6C,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,GAAG,CAAsB,kCAAkC,MAAM,EAAE,CAAC,CAAC;IACnF,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,kBAAkB,CAC7B,OAAkC;QAElC,OAAO,IAAI,CAAC,IAAI,CACd,uCAAuC,EACvC,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,iBAAiB,CAC5B,OAAiC;QAEjC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAA6C,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,GAAG,CAA4B,yCAAyC,MAAM,EAAE,CAAC,CAAC;IAChG,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,cAAc,CAAC,OAA8B;QACxD,gDAAgD;QAChD,OAAO,IAAI,CAAC,kBAAkB,CAC5B,oCAAoC,EACpC,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,WAAW,CAAC,OAA2B;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAA6C,CAAC,CAAC;QACpF,gDAAgD;QAChD,OAAO,IAAI,CAAC,iBAAiB,CAAsB,8BAA8B,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,0BAA0B,CACrC,OAA0C;QAE1C,OAAO,IAAI,CAAC,IAAI,CACd,gDAAgD,EAChD,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,aAAa,CAAC,OAA6B;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAA6C,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,GAAG,CAAwB,oCAAoC,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,+EAA+E;IAC/E,uBAAuB;IACvB,+EAA+E;IAEvE,KAAK,CAAC,GAAG,CAAI,QAAgB;QACnC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,KAAK;gBACb,OAAO;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAI,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAAO,QAAgB,EAAE,IAAO;QAChD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAI,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,gCAAgC;SAC/C,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACrC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,kBAAkB;QACxB,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,gCAAgC;SAC/C,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAI,QAAgB;QACjD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,KAAK;gBACb,OAAO;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAI,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,kBAAkB,CAAO,QAAgB,EAAE,IAAO;QAC9D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAI,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,MAA+B;QACtD,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,0BAA0B;oBAC1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;oBACzC,CAAC;gBACH,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,cAAc,CAAI,QAAkB;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAE/D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,SAAsC,CAAC;YAE3C,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAC;gBACzD,CAAC;gBAAC,MAAM,CAAC;oBACP,+CAA+C;gBACjD,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,SAAS,EAAE,OAAO,IAAI,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC7F,MAAM,SAAS,GAAG,SAAS,EAAE,IAAI,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YAE/D,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE,SAAS,EAAE;gBAC7C,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,aAAa,EAAE,SAAS,EAAE,aAAa;aACxC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;QACtC,CAAC;QAED,MAAM,IAAI,WAAW,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,CAAC;IAChF,CAAC;IAEO,WAAW,CAAC,KAAc;QAChC,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAChC,OAAO,IAAI,WAAW,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,IAAI,WAAW,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,IAAI,WAAW,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,IAAI,cAAc,GAA+B,IAAI,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAuC;IAEvC,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -22,6 +22,9 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
22
22
|
firecrawlApiKey: z.ZodOptional<z.ZodString>;
|
|
23
23
|
firecrawlBaseUrl: z.ZodDefault<z.ZodString>;
|
|
24
24
|
firecrawlEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
25
|
+
adrAggregatorUrl: z.ZodDefault<z.ZodString>;
|
|
26
|
+
adrAggregatorApiKey: z.ZodOptional<z.ZodString>;
|
|
27
|
+
adrAggregatorEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
25
28
|
}, z.core.$strip>;
|
|
26
29
|
export type ServerConfig = z.infer<typeof ConfigSchema>;
|
|
27
30
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;iBAgBhB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAuCzC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAGlE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc5E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY;qBAK5B,MAAM,WAAW,GAAG,EAAE;oBAGvB,MAAM,WAAW,GAAG,EAAE;oBAGtB,MAAM,WAAW,GAAG,EAAE;qBAGrB,MAAM,WAAW,GAAG,EAAE;EAI1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAuB7D"}
|
package/dist/src/utils/config.js
CHANGED
|
@@ -19,6 +19,10 @@ const ConfigSchema = z.object({
|
|
|
19
19
|
firecrawlApiKey: z.string().optional(),
|
|
20
20
|
firecrawlBaseUrl: z.string().default('http://localhost:3000'),
|
|
21
21
|
firecrawlEnabled: z.boolean().default(false),
|
|
22
|
+
// ADR Aggregator configuration
|
|
23
|
+
adrAggregatorUrl: z.string().default('https://jvgdaquuggzbkenxnkja.supabase.co'),
|
|
24
|
+
adrAggregatorApiKey: z.string().optional(),
|
|
25
|
+
adrAggregatorEnabled: z.boolean().default(false),
|
|
22
26
|
});
|
|
23
27
|
/**
|
|
24
28
|
* Load and validate configuration from environment variables
|
|
@@ -70,6 +74,10 @@ export function loadConfig() {
|
|
|
70
74
|
firecrawlApiKey: process.env['FIRECRAWL_API_KEY'],
|
|
71
75
|
firecrawlBaseUrl: process.env['FIRECRAWL_BASE_URL'] || 'http://localhost:3000',
|
|
72
76
|
firecrawlEnabled: process.env['FIRECRAWL_ENABLED'] === 'true' || !!process.env['FIRECRAWL_API_KEY'],
|
|
77
|
+
// ADR Aggregator configuration
|
|
78
|
+
adrAggregatorUrl: process.env['ADR_AGGREGATOR_URL'] || 'https://jvgdaquuggzbkenxnkja.supabase.co',
|
|
79
|
+
adrAggregatorApiKey: process.env['ADR_AGGREGATOR_API_KEY'],
|
|
80
|
+
adrAggregatorEnabled: process.env['ADR_AGGREGATOR_ENABLED'] === 'true' || !!process.env['ADR_AGGREGATOR_API_KEY'],
|
|
73
81
|
};
|
|
74
82
|
try {
|
|
75
83
|
return ConfigSchema.parse(rawConfig);
|
|
@@ -190,5 +198,10 @@ export function printConfigSummary(config) {
|
|
|
190
198
|
logger.info(` Firecrawl Base URL: ${config.firecrawlBaseUrl}`);
|
|
191
199
|
logger.info(` Firecrawl API Key: ${config.firecrawlApiKey ? '***configured***' : 'not set'}`);
|
|
192
200
|
}
|
|
201
|
+
logger.info(` ADR Aggregator Enabled: ${config.adrAggregatorEnabled}`);
|
|
202
|
+
if (config.adrAggregatorEnabled) {
|
|
203
|
+
logger.info(` ADR Aggregator URL: ${config.adrAggregatorUrl}`);
|
|
204
|
+
logger.info(` ADR Aggregator API Key: ${config.adrAggregatorApiKey ? '***configured***' : 'not set'}`);
|
|
205
|
+
}
|
|
193
206
|
}
|
|
194
207
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;IAC1D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IAC7C,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACpE,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACpD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,QAAQ;IAC7D,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa;IACzD,0BAA0B;IAC1B,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAC7D,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"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"}
|