mcp-adr-analysis-server 2.7.48 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/tools/adr-validation-tool.d.ts +1 -1
- package/dist/src/tools/adr-validation-tool.d.ts.map +1 -1
- package/dist/src/tools/adr-validation-tool.js +13 -67
- package/dist/src/tools/adr-validation-tool.js.map +1 -1
- package/dist/src/utils/adr-discovery.d.ts.map +1 -1
- package/dist/src/utils/adr-discovery.js +17 -87
- package/dist/src/utils/adr-discovery.js.map +1 -1
- package/dist/src/utils/adr-format.d.ts +71 -0
- package/dist/src/utils/adr-format.d.ts.map +1 -0
- package/dist/src/utils/adr-format.js +232 -0
- package/dist/src/utils/adr-format.js.map +1 -0
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Validates existing ADRs against actual infrastructure state using:
|
|
5
5
|
* - Research Orchestrator (live environment data)
|
|
6
|
-
* -
|
|
6
|
+
* - Deterministic rule-based analysis over the research evidence (ADR-021 Option B)
|
|
7
7
|
* - Knowledge Graph (ADR relationships)
|
|
8
8
|
*/
|
|
9
9
|
export interface ADRValidationResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-validation-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/adr-validation-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"adr-validation-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/adr-validation-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,kBAAkB,GAAG,UAAU,CAAC;QAC5E,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjD,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,OAAO,CAAC,GAAG,CAAC,CAWf;AA+ED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC,GAAG,CAAC,CAsFf"}
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Validates existing ADRs against actual infrastructure state using:
|
|
5
5
|
* - Research Orchestrator (live environment data)
|
|
6
|
-
* -
|
|
6
|
+
* - Deterministic rule-based analysis over the research evidence (ADR-021 Option B)
|
|
7
7
|
* - Knowledge Graph (ADR relationships)
|
|
8
8
|
*/
|
|
9
9
|
import { McpAdrError } from '../types/index.js';
|
|
10
10
|
import { answerResearchQuestion } from '../utils/research-orchestrator.js';
|
|
11
|
-
import { getAIExecutor } from '../utils/ai-executor.js';
|
|
12
11
|
import * as fs from 'fs/promises';
|
|
13
12
|
import * as path from 'path';
|
|
14
13
|
/**
|
|
@@ -100,75 +99,26 @@ async function computeAdrValidation(args) {
|
|
|
100
99
|
// Step 2: Extract ADR metadata
|
|
101
100
|
const adrTitle = extractAdrTitle(adrContent);
|
|
102
101
|
const adrDecision = extractAdrDecision(adrContent);
|
|
103
|
-
const adrContext = extractAdrContext(adrContent);
|
|
104
102
|
// Step 3: Research current infrastructure state
|
|
105
103
|
const researchQuestion = `Based on the ADR titled "${adrTitle}", verify if the following is still true: ${adrDecision}. Check project files, environment state, and existing implementations.`;
|
|
106
104
|
const research = await answerResearchQuestion(researchQuestion, projectPath, adrDirectory);
|
|
107
|
-
// Step 4:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
Context: ${adrContext}
|
|
118
|
-
|
|
119
|
-
**Current Infrastructure Research:**
|
|
120
|
-
${research.answer}
|
|
121
|
-
|
|
122
|
-
**Research Confidence:** ${(research.confidence * 100).toFixed(1)}%
|
|
123
|
-
**Sources Consulted:** ${research.sources.map(s => s.type).join(', ')}
|
|
124
|
-
**Files Analyzed:** ${research.metadata.filesAnalyzed}
|
|
125
|
-
|
|
126
|
-
**Your Task:**
|
|
127
|
-
Analyze if the ADR decision is still valid and being followed in the current infrastructure.
|
|
128
|
-
|
|
129
|
-
Return JSON with:
|
|
130
|
-
{
|
|
131
|
-
"isValid": boolean,
|
|
132
|
-
"confidence": number (0-1),
|
|
133
|
-
"findings": [
|
|
134
|
-
{
|
|
135
|
-
"type": "compliance" | "drift" | "outdated" | "missing_evidence" | "conflict",
|
|
136
|
-
"severity": "critical" | "high" | "medium" | "low",
|
|
137
|
-
"description": "Clear description of the finding",
|
|
138
|
-
"evidence": "Specific evidence from research data"
|
|
139
|
-
}
|
|
140
|
-
],
|
|
141
|
-
"recommendations": ["Actionable recommendations"]
|
|
142
|
-
}`, null, {
|
|
143
|
-
temperature: 0.2,
|
|
144
|
-
maxTokens: 2000,
|
|
145
|
-
systemPrompt: 'You are a meticulous architecture validator. Base your analysis ONLY on the research evidence provided. Do not hallucinate or assume information not present in the research data.',
|
|
146
|
-
});
|
|
147
|
-
validationResult = {
|
|
148
|
-
adrPath: fullAdrPath,
|
|
149
|
-
adrTitle,
|
|
150
|
-
isValid: aiAnalysis.data.isValid,
|
|
151
|
-
confidence: aiAnalysis.data.confidence,
|
|
152
|
-
findings: aiAnalysis.data.findings,
|
|
153
|
-
recommendations: aiAnalysis.data.recommendations,
|
|
154
|
-
researchData: {
|
|
155
|
-
sources: research.sources.map(s => s.type),
|
|
156
|
-
confidence: research.confidence,
|
|
157
|
-
needsWebSearch: research.needsWebSearch,
|
|
158
|
-
},
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
// Fallback: Rule-based validation
|
|
163
|
-
validationResult = performRuleBasedValidation(fullAdrPath, adrTitle, adrDecision, research);
|
|
164
|
-
}
|
|
105
|
+
// Step 4: Validate alignment deterministically (ADR-021 Option B, Batch 1).
|
|
106
|
+
//
|
|
107
|
+
// The OpenRouter-backed AI branch that used to run here (getAIExecutor ->
|
|
108
|
+
// executeStructuredPrompt) was removed. Validation now runs entirely on
|
|
109
|
+
// rule-based analysis of the research evidence -- no external API call. This
|
|
110
|
+
// matches ADR-014/ADR-021: the tool returns a deterministic verdict the host
|
|
111
|
+
// LLM can rely on and, if it wants a richer reading, it has the full research
|
|
112
|
+
// data (research.answer, sources, findings) in the response to reason over
|
|
113
|
+
// itself. (#1629)
|
|
114
|
+
const validationResult = performRuleBasedValidation(fullAdrPath, adrTitle, adrDecision, research);
|
|
165
115
|
// The "related ADRs" step is gone. It called
|
|
166
116
|
// KnowledgeGraphManager.getRelationships, which is @deprecated and returns []
|
|
167
117
|
// unconditionally, and rendered the empty result as a section of the report.
|
|
168
118
|
// A heading that is always empty because its source is a stub is worse than
|
|
169
119
|
// no heading. `queryKnowledgeGraph` is the documented replacement if this is
|
|
170
120
|
// ever wanted back. (#1539)
|
|
171
|
-
return { result: validationResult, research, aiAvailable:
|
|
121
|
+
return { result: validationResult, research, aiAvailable: false };
|
|
172
122
|
}
|
|
173
123
|
catch (error) {
|
|
174
124
|
throw new McpAdrError(`ADR validation failed: ${error instanceof Error ? error.message : String(error)}`, 'VALIDATION_ERROR');
|
|
@@ -256,10 +206,6 @@ function extractAdrDecision(content) {
|
|
|
256
206
|
const decisionText = decisionMatch?.[1]?.trim();
|
|
257
207
|
return decisionText ? decisionText.substring(0, 500) : 'No decision section found';
|
|
258
208
|
}
|
|
259
|
-
function extractAdrContext(content) {
|
|
260
|
-
const contextMatch = content.match(/##\s+Context\s*\n\n([\s\S]+?)(?=\n##|$)/i);
|
|
261
|
-
return contextMatch?.[1]?.trim().substring(0, 500) ?? 'No context section found';
|
|
262
|
-
}
|
|
263
209
|
function performRuleBasedValidation(adrPath, adrTitle, adrDecision, research) {
|
|
264
210
|
const findings = [];
|
|
265
211
|
// An ADR whose Decision section is absent or empty records no decision. Before
|
|
@@ -322,7 +268,7 @@ function formatValidationResponse(result, research, aiEnabled) {
|
|
|
322
268
|
- **Confidence**: ${(result.confidence * 100).toFixed(1)}%
|
|
323
269
|
|
|
324
270
|
## Validation Method
|
|
325
|
-
- **
|
|
271
|
+
- **Analysis**: ${aiEnabled ? '✅ AI-powered' : '✅ Deterministic (rule-based over research evidence)'}
|
|
326
272
|
- **Research-Driven**: ✅ Enabled
|
|
327
273
|
- **Environment Check**: ${research.sources.some((s) => s.type === 'environment') ? '✅ Completed' : '❌ Skipped'}
|
|
328
274
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-validation-tool.js","sourceRoot":"","sources":["../../../src/tools/adr-validation-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,
|
|
1
|
+
{"version":3,"file":"adr-validation-tool.js","sourceRoot":"","sources":["../../../src/tools/adr-validation-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-discovery.d.ts","sourceRoot":"","sources":["../../../src/utils/adr-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"adr-discovery.d.ts","sourceRoot":"","sources":["../../../src/utils/adr-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMjG;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,EAAE;QACT,+BAA+B;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,yCAAyC;QACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,8BAA8B;QAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gCAAgC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kCAAkC;IAClC,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,4BAA4B;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8CAA8C;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kCAAkC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,4CAA4C;IAC5C,OAAO,EAAE;QACP,8BAA8B;QAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,gCAAgC;QAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,uDAAuD;QACvD,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,iDAAiD;QACjD,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,mDAAmD;IACnD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAgL7B"}
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* Utilities for discovering and analyzing existing ADRs in the project
|
|
5
5
|
*/
|
|
6
6
|
import { McpAdrError } from '../types/index.js';
|
|
7
|
+
// Field extraction lives in adr-format.ts (the home for ADR-format concerns); discovery
|
|
8
|
+
// consumes it. This direction — discovery -> format — keeps adr-format.ts a wired-in
|
|
9
|
+
// dependency and avoids a cycle (adr-format imports nothing from discovery).
|
|
10
|
+
import { extractAdrFields } from './adr-format.js';
|
|
7
11
|
/**
|
|
8
12
|
* Discover ADRs in a directory using file system operations
|
|
9
13
|
*
|
|
@@ -200,101 +204,27 @@ function isLikelyAdr(content, filename) {
|
|
|
200
204
|
* Parse ADR metadata from content
|
|
201
205
|
*/
|
|
202
206
|
function parseAdrMetadata(content, filename, fullPath) {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
const titleMatch = content.match(/^#\s+(.+)$/m);
|
|
206
|
-
if (titleMatch && titleMatch[1]) {
|
|
207
|
-
title = titleMatch[1].trim();
|
|
208
|
-
}
|
|
209
|
-
// Extract status
|
|
210
|
-
let status = 'unknown';
|
|
211
|
-
const statusMatch = content.match(/(?:##?\s*status|status:)\s*(.+?)(?:\n|$)/i);
|
|
212
|
-
if (statusMatch && statusMatch[1]) {
|
|
213
|
-
status = statusMatch[1].trim().toLowerCase();
|
|
214
|
-
}
|
|
215
|
-
// Extract date
|
|
216
|
-
let date;
|
|
217
|
-
const dateMatch = content.match(/(?:##?\s*date|date:)\s*(.+?)(?:\n|$)/i);
|
|
218
|
-
if (dateMatch && dateMatch[1]) {
|
|
219
|
-
date = dateMatch[1].trim();
|
|
220
|
-
}
|
|
221
|
-
// Extract ADR number from filename or content
|
|
222
|
-
let number;
|
|
223
|
-
const numberMatch = filename.match(/(?:adr[-_]?)?(\d+)/i) || content.match(/adr[-_]?(\d+)/i);
|
|
224
|
-
if (numberMatch && numberMatch[1]) {
|
|
225
|
-
number = numberMatch[1];
|
|
226
|
-
}
|
|
227
|
-
// Extract context
|
|
228
|
-
let context;
|
|
229
|
-
const contextMatch = content.match(/##?\s*context\s*\n([\s\S]*?)(?=\n##|\n#|$)/i);
|
|
230
|
-
if (contextMatch && contextMatch[1]) {
|
|
231
|
-
context = contextMatch[1].trim();
|
|
232
|
-
}
|
|
233
|
-
// Extract decision
|
|
234
|
-
let decision;
|
|
235
|
-
const decisionMatch = content.match(/##?\s*decision\s*\n([\s\S]*?)(?=\n##|\n#|$)/i);
|
|
236
|
-
if (decisionMatch && decisionMatch[1]) {
|
|
237
|
-
decision = decisionMatch[1].trim();
|
|
238
|
-
}
|
|
239
|
-
// Extract consequences
|
|
240
|
-
let consequences;
|
|
241
|
-
const consequencesMatch = content.match(/##?\s*consequences\s*\n([\s\S]*?)(?=\n##|\n#|$)/i);
|
|
242
|
-
if (consequencesMatch && consequencesMatch[1]) {
|
|
243
|
-
consequences = consequencesMatch[1].trim();
|
|
244
|
-
}
|
|
245
|
-
// Extract category/tags (if any).
|
|
246
|
-
//
|
|
247
|
-
// Three forms occur in the wild, and the idiomatic MADR one used to be the only one
|
|
248
|
-
// that did NOT work -- a YAML block list returned ["- architecture"], capturing the
|
|
249
|
-
// dash and dropping every entry after the first. ADR-022 adopted MADR, whose template
|
|
250
|
-
// uses block lists, so that was the form this needed most.
|
|
251
|
-
//
|
|
252
|
-
// tags: tags: a, b tags: [a, b]
|
|
253
|
-
// - a
|
|
254
|
-
// - b
|
|
255
|
-
//
|
|
256
|
-
// Scoped to the leading `---` front-matter block when one is present, so a `tags:`
|
|
257
|
-
// mention in prose cannot be picked up -- the same discipline scripts/check-adr-drift.sh
|
|
258
|
-
// and repo-governor's adapters/adr both use after that exact false positive.
|
|
259
|
-
const tags = [];
|
|
260
|
-
const fmMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
|
|
261
|
-
const tagScope = fmMatch?.[1] ?? content;
|
|
262
|
-
const blockMatch = tagScope.match(/^[ \t]*(?:tags?|categories?):[ \t]*\r?\n((?:[ \t]*-[ \t]*\S.*\r?\n?)+)/im);
|
|
263
|
-
if (blockMatch?.[1]) {
|
|
264
|
-
tags.push(...blockMatch[1]
|
|
265
|
-
.split(/\r?\n/)
|
|
266
|
-
.map(line => line.replace(/^[ \t]*-[ \t]*/, '').trim())
|
|
267
|
-
.filter(Boolean));
|
|
268
|
-
}
|
|
269
|
-
else {
|
|
270
|
-
const inlineMatch = tagScope.match(/^[ \t]*(?:tags?|categories?):[ \t]*(.+?)[ \t]*\r?$/im);
|
|
271
|
-
if (inlineMatch?.[1]) {
|
|
272
|
-
tags.push(...inlineMatch[1]
|
|
273
|
-
.replace(/^\[|\]$/g, '') // tolerate the bracket form, which used to keep its brackets
|
|
274
|
-
.split(',')
|
|
275
|
-
.map(tag => tag.trim().replace(/^['"]|['"]$/g, ''))
|
|
276
|
-
.filter(Boolean));
|
|
277
|
-
}
|
|
278
|
-
}
|
|
207
|
+
const fields = extractAdrFields(content, filename);
|
|
208
|
+
const tags = fields.tags;
|
|
279
209
|
const metadata = { tags };
|
|
280
|
-
if (number)
|
|
281
|
-
metadata.number = number;
|
|
210
|
+
if (fields.number)
|
|
211
|
+
metadata.number = fields.number;
|
|
282
212
|
if (tags[0])
|
|
283
213
|
metadata.category = tags[0];
|
|
284
214
|
const result = {
|
|
285
215
|
filename,
|
|
286
|
-
title,
|
|
287
|
-
status,
|
|
288
|
-
date,
|
|
216
|
+
title: fields.title ?? filename.replace(/\.md$/, ''),
|
|
217
|
+
status: fields.status,
|
|
218
|
+
date: fields.date,
|
|
289
219
|
path: fullPath,
|
|
290
220
|
metadata,
|
|
291
221
|
};
|
|
292
|
-
if (context)
|
|
293
|
-
result.context = context;
|
|
294
|
-
if (decision)
|
|
295
|
-
result.decision = decision;
|
|
296
|
-
if (consequences)
|
|
297
|
-
result.consequences = consequences;
|
|
222
|
+
if (fields.context)
|
|
223
|
+
result.context = fields.context;
|
|
224
|
+
if (fields.decision)
|
|
225
|
+
result.decision = fields.decision;
|
|
226
|
+
if (fields.consequences)
|
|
227
|
+
result.consequences = fields.consequences;
|
|
298
228
|
return result;
|
|
299
229
|
}
|
|
300
230
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adr-discovery.js","sourceRoot":"","sources":["../../../src/utils/adr-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAmFhD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,YAAoB,EACpB,WAAmB,EACnB,UAA+B,EAAE;IAEjC,MAAM,EACJ,cAAc,GAAG,KAAK,EACtB,eAAe,GAAG,IAAI,EAAE,uCAAuC;IAC/D,eAAe,GAAG,EAAE,EACpB,eAAe,GAAG,KAAK,EACvB,gBAAgB,EAChB,iBAAiB,GAAG,IAAI,GACzB,GAAG,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QAElC,oEAAoE;QACpE,4BAA4B;QAC5B,oEAAoE;QACpE,kDAAkD;QAClD,sCAAsC;QACtC,IAAI,WAAmB,CAAC;QACxB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,sDAAsD;QACtD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,4FAA4F;QAC5F,wFAAwF;QACxF,IAAI,CAAC,SAAS,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEjD,gEAAgE;YAChE,8EAA8E;YAC9E,MAAM,eAAe,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtE,IAAI,eAAe,IAAI,eAAe,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,oDAAoD;gBACpD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3D,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBACxD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACxC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS,GAAG,KAAK,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC7C,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACrD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxC,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,GAAG,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,SAAS,EAAE,YAAY;gBACvB,SAAS,EAAE,CAAC;gBACZ,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;gBACzC,eAAe,EAAE;oBACf,kBAAkB,YAAY,oDAAoD;oBAClF,oBAAoB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE;oBACvH,2DAA2D;oBAC3D,4DAA4D;iBAC7D;aACF,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,OAAO;aAC1B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC7D,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE5B,qDAAqD;QACrD,MAAM,cAAc,GAAoB,EAAE,CAAC;QAE3C,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAElD,IAAI,CAAC;gBACH,gDAAgD;gBAChD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAErD,kCAAkC;gBAClC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAE7C,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACnF,IAAI,cAAc,EAAE,CAAC;wBACnB,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;oBACxB,CAAC;oBAED,gCAAgC;oBAChC,IAAI,eAAe,EAAE,CAAC;wBACpB,IAAI,CAAC;4BACH,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;4BAC7E,GAAG,CAAC,QAAQ,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;wBAChF,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,6CAA6C,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;4BAC9E,iCAAiC;wBACnC,CAAC;oBACH,CAAC;oBAED,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,OAAO,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAEnD,2BAA2B;QAC3B,MAAM,eAAe,GAAG,uBAAuB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAE9E,qCAAqC;QACrC,IAAI,WAAqC,CAAC;QAC1C,IAAI,eAAe,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,GACpD,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;gBAC5C,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;gBAEzE,+CAA+C;gBAC/C,IAAI,eAAe,CAAC;gBACpB,IAAI,iBAAiB,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC3C,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;oBACxE,eAAe,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;oBACzE,eAAe;wBACb,kBAAkB,CAAC,gBAAgB,IAAI,QAAQ,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACrF,CAAC;gBAED,wBAAwB;gBACxB,WAAW,GAAG,MAAM,mBAAmB,CAAC,cAAc,EAAE,eAAgB,EAAE;oBACxE,mBAAmB,EAAE,IAAI;oBACzB,WAAW;iBACZ,CAAC,CAAC;gBAEH,uCAAuC;gBACtC,OAAe,CAAC,oBAAoB,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC;gBACxE,OAAe,CAAC,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC;YACvE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;gBAClE,gCAAgC;YAClC,CAAC;QACH,CAAC;QAED,OAAO;YACL,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,cAAc,CAAC,MAAM;YAChC,IAAI,EAAE,cAAc;YACpB,OAAO;YACP,eAAe;YACf,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CACnB,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACpF,iBAAiB,CAClB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,OAAe,EAAE,QAAgB;IACpD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAE7C,0BAA0B;IAC1B,MAAM,gBAAgB,GAAG;QACvB,eAAe,EAAE,4BAA4B;QAC7C,WAAW,EAAE,cAAc;QAC3B,6BAA6B,EAAE,yBAAyB;QACxD,sBAAsB,EAAE,kBAAkB;KAC3C,CAAC;IAEF,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAErF,yBAAyB;IACzB,MAAM,eAAe,GAAG;QACtB,eAAe;QACf,YAAY;QACZ,aAAa;QACb,cAAc;QACd,kBAAkB;QAClB,gCAAgC;QAChC,kBAAkB;QAClB,cAAc;KACf,CAAC;IAEF,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAElF,gEAAgE;IAChE,OAAO,cAAc,IAAI,aAAa,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAe,EAAE,QAAgB,EAAE,QAAgB;IAC3E,0CAA0C;IAC1C,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChD,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,iBAAiB;IACjB,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/E,IAAI,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/C,CAAC;IAED,eAAe;IACf,IAAI,IAAwB,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACzE,IAAI,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,8CAA8C;IAC9C,IAAI,MAA0B,CAAC;IAC/B,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC7F,IAAI,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,kBAAkB;IAClB,IAAI,OAA2B,CAAC;IAChC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAClF,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,CAAC;IAED,mBAAmB;IACnB,IAAI,QAA4B,CAAC;IACjC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpF,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,uBAAuB;IACvB,IAAI,YAAgC,CAAC;IACrC,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC5F,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,kCAAkC;IAClC,EAAE;IACF,oFAAoF;IACpF,oFAAoF;IACpF,sFAAsF;IACtF,2DAA2D;IAC3D,EAAE;IACF,uDAAuD;IACvD,UAAU;IACV,UAAU;IACV,EAAE;IACF,mFAAmF;IACnF,yFAAyF;IACzF,6EAA6E;IAC7E,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAEzC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAC/B,0EAA0E,CAC3E,CAAC;IACF,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CACP,GAAG,UAAU,CAAC,CAAC,CAAC;aACb,KAAK,CAAC,OAAO,CAAC;aACd,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aACtD,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC3F,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CACP,GAAG,WAAW,CAAC,CAAC,CAAC;iBACd,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,6DAA6D;iBACrF,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;iBAClD,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAA8B,EAAE,IAAI,EAAE,CAAC;IACrD,IAAI,MAAM;QAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IACrC,IAAI,IAAI,CAAC,CAAC,CAAC;QAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAkB;QAC5B,QAAQ;QACR,KAAK;QACL,MAAM;QACN,IAAI;QACJ,IAAI,EAAE,QAAQ;QACd,QAAQ;KACT,CAAC;IAEF,IAAI,OAAO;QAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,IAAI,QAAQ;QAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzC,IAAI,YAAY;QAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IAErD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAqB;IAC/C,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,MAAM,UAAU,GAA2B,EAAE,CAAC;IAE9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,kBAAkB;QAClB,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEvD,oBAAoB;QACpB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,IAAI,eAAe,CAAC;QAC3D,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,IAAqB,EAAE,YAAoB;IAC1E,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,eAAe,CAAC,IAAI,CAClB,oBAAoB,YAAY,EAAE,EAClC,4EAA4E,EAC5E,mFAAmF,CACpF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,YAAY,YAAY,EAAE,CAAC,CAAC;QAErE,gCAAgC;QAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,eAAe,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAC9E,CAAC;QAED,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI;aACjB,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC;aAChC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aACzB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;oBAChE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,eAAe,CAAC,IAAI,CAAC,wCAAwC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,eAAe,CAAC,IAAI,CAClB,6EAA6E,EAC7E,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"adr-discovery.js","sourceRoot":"","sources":["../../../src/utils/adr-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR format reader and Nygard -> MADR converter (issue #1466).
|
|
3
|
+
*
|
|
4
|
+
* Pure functions, no I/O and no side effects — modelled on `src/utils/rule-format.ts`.
|
|
5
|
+
* Two capabilities:
|
|
6
|
+
*
|
|
7
|
+
* - `detectAdrFormat(content)` classifies an ADR document as `'nygard'`, `'madr'`,
|
|
8
|
+
* or `'custom'`.
|
|
9
|
+
* - `convertNygardToMadr(content)` rewrites a Nygard-style ADR into the ADR-022
|
|
10
|
+
* canonical MADR shape the real corpus uses (see docs/adrs/adr-025 and adr-026 as
|
|
11
|
+
* golden references), with `js-yaml` front matter.
|
|
12
|
+
*
|
|
13
|
+
* Field-level parsing (title/status/date/context/decision/consequences/tags) is reused
|
|
14
|
+
* from `adr-discovery.ts` via the shared `extractAdrFields` helper rather than keeping a
|
|
15
|
+
* third private copy of those regexes.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* The three ADR document shapes this module distinguishes.
|
|
19
|
+
*
|
|
20
|
+
* Exported for future reuse by the inline `templateFormat` unions elsewhere in the
|
|
21
|
+
* codebase (adr-suggestion-tool.ts, mcp-tool-schemas.ts, types/tool-arguments.ts,
|
|
22
|
+
* adr-suggestion-prompts.ts). Those sites are intentionally NOT rewired here — see #1466
|
|
23
|
+
* scope and #1647.
|
|
24
|
+
*/
|
|
25
|
+
export type AdrFormat = 'nygard' | 'madr' | 'custom';
|
|
26
|
+
/**
|
|
27
|
+
* The fields a reader recovers from an ADR document, format-agnostic
|
|
28
|
+
* (title, status, date, number, the Context/Decision/Consequences sections, and
|
|
29
|
+
* front-matter tags). This is the single home for the field-extraction regexes:
|
|
30
|
+
* `adr-discovery.ts`'s `parseAdrMetadata` and this module's reader/converter both
|
|
31
|
+
* read through `extractAdrFields` rather than each keeping a private copy.
|
|
32
|
+
*/
|
|
33
|
+
export interface ExtractedAdrFields {
|
|
34
|
+
title?: string;
|
|
35
|
+
status: string;
|
|
36
|
+
date?: string;
|
|
37
|
+
number?: string;
|
|
38
|
+
context?: string;
|
|
39
|
+
decision?: string;
|
|
40
|
+
consequences?: string;
|
|
41
|
+
tags: string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Extract ADR fields from raw markdown content.
|
|
45
|
+
*
|
|
46
|
+
* `filename` is optional: when supplied it seeds the title fallback and the ADR-number
|
|
47
|
+
* lookup (callers that only have content, such as the format converter, omit it).
|
|
48
|
+
*/
|
|
49
|
+
export declare function extractAdrFields(content: string, filename?: string): ExtractedAdrFields;
|
|
50
|
+
/**
|
|
51
|
+
* Detect the format of an ADR document.
|
|
52
|
+
*
|
|
53
|
+
* - `'madr'` — leading YAML front matter with `status:`/`date:` AND MADR headings
|
|
54
|
+
* (`## Context and Problem Statement`, and/or `## Considered Options`/
|
|
55
|
+
* `## Decision Drivers`).
|
|
56
|
+
* - `'nygard'` — the Nygard heading set (`## Status`, `## Context`, `## Decision`,
|
|
57
|
+
* `## Consequences`) with a status value on the following line.
|
|
58
|
+
* - `'custom'` — anything else.
|
|
59
|
+
*/
|
|
60
|
+
export declare function detectAdrFormat(content: string): AdrFormat;
|
|
61
|
+
/**
|
|
62
|
+
* Convert a Nygard-style ADR into the ADR-022 canonical MADR shape.
|
|
63
|
+
*
|
|
64
|
+
* Idempotent: content already detected as `'madr'` is returned unchanged.
|
|
65
|
+
*
|
|
66
|
+
* `'custom'` content is converted best-effort — whatever Nygard-shaped sections can be
|
|
67
|
+
* recovered are carried across, and any section with nothing to carry becomes an empty
|
|
68
|
+
* placeholder heading. The result is always valid MADR (front matter + MADR headings).
|
|
69
|
+
*/
|
|
70
|
+
export declare function convertNygardToMadr(content: string): string;
|
|
71
|
+
//# sourceMappingURL=adr-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adr-format.d.ts","sourceRoot":"","sources":["../../../src/utils/adr-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,kBAAkB,CAoGnF;AAqBD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAmB1D;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA+C3D"}
|