contradiction-mcp 0.1.0 → 0.2.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/bin/cli.js +3 -1
- package/dist/analysis/claimMatcher.d.ts +8 -0
- package/dist/analysis/claimMatcher.js +165 -5
- package/dist/analysis/claimMatcher.js.map +1 -1
- package/dist/analysis/contextAnalyzer.d.ts +1 -0
- package/dist/analysis/contextAnalyzer.js +29 -13
- package/dist/analysis/contextAnalyzer.js.map +1 -1
- package/dist/analysis/contradictionEngine.js +9 -1
- package/dist/analysis/contradictionEngine.js.map +1 -1
- package/dist/analysis/explanationBuilder.js +9 -2
- package/dist/analysis/explanationBuilder.js.map +1 -1
- package/dist/analysis/valueComparator.d.ts +6 -1
- package/dist/analysis/valueComparator.js +88 -14
- package/dist/analysis/valueComparator.js.map +1 -1
- package/dist/config/env.d.ts +5 -0
- package/dist/config/env.js +23 -2
- package/dist/config/env.js.map +1 -1
- package/dist/connectors/base/connectorUtils.d.ts +5 -0
- package/dist/connectors/base/connectorUtils.js +65 -0
- package/dist/connectors/base/connectorUtils.js.map +1 -1
- package/dist/connectors/document/documentConnector.d.ts +2 -0
- package/dist/connectors/document/documentConnector.js +266 -100
- package/dist/connectors/document/documentConnector.js.map +1 -1
- package/dist/connectors/syncService.d.ts +1 -0
- package/dist/connectors/syncService.js +14 -1
- package/dist/connectors/syncService.js.map +1 -1
- package/dist/connectors/website/websiteConnector.js +104 -38
- package/dist/connectors/website/websiteConnector.js.map +1 -1
- package/dist/discovery/candidateGenerator.d.ts +5 -0
- package/dist/discovery/candidateGenerator.js +131 -51
- package/dist/discovery/candidateGenerator.js.map +1 -1
- package/dist/discovery/discoveryService.d.ts +21 -0
- package/dist/discovery/discoveryService.js +78 -2
- package/dist/discovery/discoveryService.js.map +1 -1
- package/dist/discovery/similarityIndex.d.ts +1 -0
- package/dist/discovery/similarityIndex.js +38 -4
- package/dist/discovery/similarityIndex.js.map +1 -1
- package/dist/intelligence/semanticMatcher.d.ts +1 -1
- package/dist/intelligence/semanticMatcher.js +10 -3
- package/dist/intelligence/semanticMatcher.js.map +1 -1
- package/dist/server.js +65 -2
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -51,6 +51,7 @@ Examples:
|
|
|
51
51
|
|
|
52
52
|
const nodeExecutable = process.execPath;
|
|
53
53
|
const isGlobalNpx = !fs.existsSync(serverDist);
|
|
54
|
+
const stableDbPath = path.join(home, '.contradiction-mcp', 'contradiction.db');
|
|
54
55
|
|
|
55
56
|
// If installed via npm global or npx, use npx contradiction-mcp as command, else point to local dist/index.js
|
|
56
57
|
const serverConfig = isGlobalNpx
|
|
@@ -59,6 +60,7 @@ Examples:
|
|
|
59
60
|
args: ['-y', 'contradiction-mcp'],
|
|
60
61
|
env: {
|
|
61
62
|
NODE_ENV: 'production',
|
|
63
|
+
DATABASE_PATH: stableDbPath,
|
|
62
64
|
MCP_TRANSPORT: 'stdio',
|
|
63
65
|
},
|
|
64
66
|
}
|
|
@@ -67,7 +69,7 @@ Examples:
|
|
|
67
69
|
args: [serverDist],
|
|
68
70
|
env: {
|
|
69
71
|
NODE_ENV: 'production',
|
|
70
|
-
DATABASE_PATH:
|
|
72
|
+
DATABASE_PATH: stableDbPath,
|
|
71
73
|
MCP_TRANSPORT: 'stdio',
|
|
72
74
|
LOG_LEVEL: 'error',
|
|
73
75
|
},
|
|
@@ -11,6 +11,7 @@ export interface ClaimMatchResult {
|
|
|
11
11
|
export interface ClaimMatcherOptions {
|
|
12
12
|
subjectThreshold?: number;
|
|
13
13
|
predicateThreshold?: number;
|
|
14
|
+
enableSemanticMatching?: boolean;
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
16
17
|
* Normalizes text for deterministic entity/property matching:
|
|
@@ -33,9 +34,16 @@ export declare function calculateLevenshteinSimilarity(s1: string, s2: string):
|
|
|
33
34
|
* Combined similarity score leveraging token overlap and string distance.
|
|
34
35
|
*/
|
|
35
36
|
export declare function calculateCompositeSimilarity(strA: string, strB: string): number;
|
|
37
|
+
export declare function arePredicateSynonyms(predA: string, predB: string): boolean;
|
|
38
|
+
export declare function getCanonicalPredicate(predicate: string): string;
|
|
39
|
+
export declare const SYSTEM_LEVEL_PREDICATES: Set<string>;
|
|
40
|
+
export declare function isSystemLevelPredicate(pred: string): boolean;
|
|
41
|
+
export declare function isGenericOrDocumentSubject(subject: string): boolean;
|
|
36
42
|
export declare class ClaimMatcher {
|
|
37
43
|
private readonly subjectThreshold;
|
|
38
44
|
private readonly predicateThreshold;
|
|
45
|
+
private readonly semanticMatcher;
|
|
46
|
+
private readonly entityResolver;
|
|
39
47
|
constructor(options?: ClaimMatcherOptions);
|
|
40
48
|
match(claimA: {
|
|
41
49
|
subject: string;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { SemanticMatcher } from '../intelligence/semanticMatcher.js';
|
|
2
|
+
import { EntityResolver } from '../intelligence/entityResolver.js';
|
|
1
3
|
/**
|
|
2
4
|
* Normalizes text for deterministic entity/property matching:
|
|
3
5
|
* - Lowercase & trim
|
|
@@ -85,21 +87,179 @@ export function calculateCompositeSimilarity(strA, strB) {
|
|
|
85
87
|
}
|
|
86
88
|
return Math.max(tokenSim, editSim);
|
|
87
89
|
}
|
|
90
|
+
const PREDICATE_SYNONYM_GROUPS = [
|
|
91
|
+
new Set(['port', 'listen_port', 'server_port', 'http_port', 'service_port']),
|
|
92
|
+
new Set(['max_users', 'concurrent_users', 'max_connections', 'user_limit', 'capacity']),
|
|
93
|
+
new Set([
|
|
94
|
+
'jwt_ttl',
|
|
95
|
+
'token_expiry',
|
|
96
|
+
'token_ttl',
|
|
97
|
+
'token_expiration',
|
|
98
|
+
'session_timeout',
|
|
99
|
+
'timeout',
|
|
100
|
+
'timeout_ms',
|
|
101
|
+
]),
|
|
102
|
+
new Set(['db_engine', 'database_type', 'database_engine', 'db_type', 'database', 'db_backend']),
|
|
103
|
+
new Set(['node_version', 'node', 'nodejs_version', 'node_ver']),
|
|
104
|
+
new Set(['python_version', 'python', 'python_ver']),
|
|
105
|
+
new Set(['memory', 'ram', 'min_ram', 'minimum_ram', 'min_memory', 'memory_limit']),
|
|
106
|
+
new Set(['cpu', 'cores', 'min_cpu', 'cpu_cores']),
|
|
107
|
+
];
|
|
108
|
+
export function arePredicateSynonyms(predA, predB) {
|
|
109
|
+
const a = predA.toLowerCase().replace(/[^a-z0-9_]/g, '_');
|
|
110
|
+
const b = predB.toLowerCase().replace(/[^a-z0-9_]/g, '_');
|
|
111
|
+
if (a === b)
|
|
112
|
+
return true;
|
|
113
|
+
for (const group of PREDICATE_SYNONYM_GROUPS) {
|
|
114
|
+
if (group.has(a) && group.has(b))
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
export function getCanonicalPredicate(predicate) {
|
|
120
|
+
const norm = predicate.toLowerCase().replace(/[^a-z0-9_]/g, '_');
|
|
121
|
+
for (const group of PREDICATE_SYNONYM_GROUPS) {
|
|
122
|
+
if (group.has(norm)) {
|
|
123
|
+
return Array.from(group).sort()[0];
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return norm;
|
|
127
|
+
}
|
|
128
|
+
export const SYSTEM_LEVEL_PREDICATES = new Set([
|
|
129
|
+
'port',
|
|
130
|
+
'listen_port',
|
|
131
|
+
'server_port',
|
|
132
|
+
'http_port',
|
|
133
|
+
'service_port',
|
|
134
|
+
'node_version',
|
|
135
|
+
'node',
|
|
136
|
+
'nodejs_version',
|
|
137
|
+
'node_ver',
|
|
138
|
+
'python_version',
|
|
139
|
+
'python',
|
|
140
|
+
'python_ver',
|
|
141
|
+
'memory',
|
|
142
|
+
'ram',
|
|
143
|
+
'min_ram',
|
|
144
|
+
'minimum_ram',
|
|
145
|
+
'min_memory',
|
|
146
|
+
'memory_limit',
|
|
147
|
+
'cpu',
|
|
148
|
+
'cores',
|
|
149
|
+
'min_cpu',
|
|
150
|
+
'cpu_cores',
|
|
151
|
+
'db_engine',
|
|
152
|
+
'database_type',
|
|
153
|
+
'database_engine',
|
|
154
|
+
'db_type',
|
|
155
|
+
'database',
|
|
156
|
+
'db_backend',
|
|
157
|
+
'jwt_ttl',
|
|
158
|
+
'token_expiry',
|
|
159
|
+
'session_timeout',
|
|
160
|
+
'timeout',
|
|
161
|
+
'timeout_ms',
|
|
162
|
+
'max_connections',
|
|
163
|
+
'max_users',
|
|
164
|
+
'concurrent_users',
|
|
165
|
+
'tls_enabled',
|
|
166
|
+
'ssl_enabled',
|
|
167
|
+
'cluster_region',
|
|
168
|
+
'environment',
|
|
169
|
+
'version',
|
|
170
|
+
'license',
|
|
171
|
+
]);
|
|
172
|
+
export function isSystemLevelPredicate(pred) {
|
|
173
|
+
const norm = pred.toLowerCase().replace(/[^a-z0-9_]/g, '_');
|
|
174
|
+
return SYSTEM_LEVEL_PREDICATES.has(norm);
|
|
175
|
+
}
|
|
176
|
+
export function isGenericOrDocumentSubject(subject) {
|
|
177
|
+
if (!subject)
|
|
178
|
+
return true;
|
|
179
|
+
const s = subject.toLowerCase().trim();
|
|
180
|
+
const genericWords = new Set([
|
|
181
|
+
'default',
|
|
182
|
+
'system',
|
|
183
|
+
'app',
|
|
184
|
+
'application',
|
|
185
|
+
'service',
|
|
186
|
+
'workspace',
|
|
187
|
+
'spec',
|
|
188
|
+
'unknown',
|
|
189
|
+
'website',
|
|
190
|
+
'global',
|
|
191
|
+
'infrastructure',
|
|
192
|
+
]);
|
|
193
|
+
if (genericWords.has(s))
|
|
194
|
+
return true;
|
|
195
|
+
if (/\.(md|txt|json|yaml|yml|docx|csv|pdf|ts|js|html|eml)$/i.test(s))
|
|
196
|
+
return true;
|
|
197
|
+
if (/^(file|doc|email|cto)[a-z0-9_]*$/i.test(s))
|
|
198
|
+
return true;
|
|
199
|
+
if (/^[a-z0-9_-]+[_.](spec|specification|manifest|architecture|blueprint|directive|guide|config|configuration|readme|deployment)$/i.test(s)) {
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
if (/^(spec|specification|manifest|architecture|blueprint|directive|guide|config|configuration|readme|deployment)$/i.test(s)) {
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
88
207
|
export class ClaimMatcher {
|
|
89
208
|
subjectThreshold;
|
|
90
209
|
predicateThreshold;
|
|
210
|
+
semanticMatcher;
|
|
211
|
+
entityResolver;
|
|
91
212
|
constructor(options) {
|
|
92
213
|
this.subjectThreshold = options?.subjectThreshold ?? 0.75;
|
|
93
|
-
this.predicateThreshold = options?.predicateThreshold ?? 0.
|
|
214
|
+
this.predicateThreshold = options?.predicateThreshold ?? 0.65;
|
|
215
|
+
this.semanticMatcher = new SemanticMatcher({
|
|
216
|
+
threshold: this.predicateThreshold,
|
|
217
|
+
});
|
|
218
|
+
this.entityResolver = new EntityResolver();
|
|
94
219
|
}
|
|
95
220
|
match(claimA, claimB) {
|
|
96
221
|
const normSubA = normalizeText(claimA.subject);
|
|
97
222
|
const normSubB = normalizeText(claimB.subject);
|
|
98
223
|
const normPredA = normalizeText(claimA.predicate);
|
|
99
224
|
const normPredB = normalizeText(claimB.predicate);
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
225
|
+
const entityMatch = this.entityResolver.resolveEntityMatch(claimA.subject, claimB.subject);
|
|
226
|
+
let subjectSimilarity = calculateCompositeSimilarity(claimA.subject, claimB.subject);
|
|
227
|
+
if (entityMatch.isMatch) {
|
|
228
|
+
subjectSimilarity = Math.max(subjectSimilarity, entityMatch.confidence);
|
|
229
|
+
}
|
|
230
|
+
const leafA = normPredA.split('_').pop() || normPredA;
|
|
231
|
+
const leafB = normPredB.split('_').pop() || normPredB;
|
|
232
|
+
const isSynonym = arePredicateSynonyms(claimA.predicate, claimB.predicate) ||
|
|
233
|
+
arePredicateSynonyms(leafA, leafB);
|
|
234
|
+
let predicateSimilarity = calculateCompositeSimilarity(claimA.predicate, claimB.predicate);
|
|
235
|
+
// Guard against accidental prefix matching (e.g. deployment_server_database vs deployment_server_port)
|
|
236
|
+
if (!isSynonym && leafA !== leafB && (normPredA.includes('_') || normPredB.includes('_'))) {
|
|
237
|
+
predicateSimilarity = 0;
|
|
238
|
+
}
|
|
239
|
+
let matchDetail = '';
|
|
240
|
+
if (isSynonym) {
|
|
241
|
+
predicateSimilarity = Math.max(predicateSimilarity, 0.95);
|
|
242
|
+
matchDetail = ' (matched via predicate synonym dictionary)';
|
|
243
|
+
}
|
|
244
|
+
else if (predicateSimilarity < this.predicateThreshold && this.semanticMatcher.isEnabled()) {
|
|
245
|
+
const semRes = this.semanticMatcher.match(normPredA, normPredB);
|
|
246
|
+
if (semRes.matched) {
|
|
247
|
+
predicateSimilarity = Math.max(predicateSimilarity, semRes.confidence);
|
|
248
|
+
matchDetail = ` (matched via semantic matcher, score: ${semRes.confidence.toFixed(2)})`;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
const isSysPred = isSystemLevelPredicate(claimA.predicate) ||
|
|
252
|
+
isSystemLevelPredicate(claimB.predicate) ||
|
|
253
|
+
isSystemLevelPredicate(leafA) ||
|
|
254
|
+
isSystemLevelPredicate(leafB);
|
|
255
|
+
const isGenericSubjectA = isGenericOrDocumentSubject(claimA.subject);
|
|
256
|
+
const isGenericSubjectB = isGenericOrDocumentSubject(claimB.subject);
|
|
257
|
+
let subjectMatches = subjectSimilarity >= this.subjectThreshold;
|
|
258
|
+
if (!subjectMatches && isSysPred && (isGenericSubjectA || isGenericSubjectB)) {
|
|
259
|
+
subjectMatches = true;
|
|
260
|
+
subjectSimilarity = Math.max(subjectSimilarity, 0.85);
|
|
261
|
+
matchDetail += ' (cross-document system specification)';
|
|
262
|
+
}
|
|
103
263
|
const predicateMatches = predicateSimilarity >= this.predicateThreshold;
|
|
104
264
|
const matches = subjectMatches && predicateMatches;
|
|
105
265
|
let reason;
|
|
@@ -113,7 +273,7 @@ export class ClaimMatcher {
|
|
|
113
273
|
reason = `Predicates '${normPredA}' and '${normPredB}' do not match (similarity: ${predicateSimilarity.toFixed(2)})`;
|
|
114
274
|
}
|
|
115
275
|
else {
|
|
116
|
-
reason = `Matches same conceptual fact on subject '${normSubA}' and predicate '${normPredA}'`;
|
|
276
|
+
reason = `Matches same conceptual fact on subject '${normSubA}' and predicate '${normPredA}'${matchDetail}`;
|
|
117
277
|
}
|
|
118
278
|
return {
|
|
119
279
|
matches,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claimMatcher.js","sourceRoot":"","sources":["../../src/analysis/claimMatcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claimMatcher.js","sourceRoot":"","sources":["../../src/analysis/claimMatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export interface ContextAnalysisResult {
|
|
|
7
7
|
reason: string;
|
|
8
8
|
divergenceDimensions: string[];
|
|
9
9
|
}
|
|
10
|
+
export declare function normalizeEnvironment(env?: string | null): string;
|
|
10
11
|
export declare class ContextAnalyzer {
|
|
11
12
|
analyze(claimA: Claim, claimB: Claim): ContextAnalysisResult;
|
|
12
13
|
}
|
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
export function normalizeEnvironment(env) {
|
|
2
|
+
if (!env)
|
|
3
|
+
return 'unknown';
|
|
4
|
+
const clean = env.toLowerCase().trim();
|
|
5
|
+
if (['prod', 'production', 'live', 'prd'].includes(clean))
|
|
6
|
+
return 'production';
|
|
7
|
+
if (['dev', 'development', 'local'].includes(clean))
|
|
8
|
+
return 'development';
|
|
9
|
+
if (['stage', 'staging', 'stg'].includes(clean))
|
|
10
|
+
return 'staging';
|
|
11
|
+
if (['test', 'testing', 'qa', 'uat', 'ci'].includes(clean))
|
|
12
|
+
return 'testing';
|
|
13
|
+
if (['doc', 'docs', 'documentation'].includes(clean))
|
|
14
|
+
return 'documentation';
|
|
15
|
+
if (['deploy', 'deployment'].includes(clean))
|
|
16
|
+
return 'deployment';
|
|
17
|
+
return clean || 'unknown';
|
|
18
|
+
}
|
|
1
19
|
export class ContextAnalyzer {
|
|
2
20
|
analyze(claimA, claimB) {
|
|
3
21
|
const divergences = [];
|
|
@@ -62,13 +80,11 @@ export class ContextAnalyzer {
|
|
|
62
80
|
const isExample = claimA.sourceRole === 'example' ||
|
|
63
81
|
claimB.sourceRole === 'example' ||
|
|
64
82
|
(claimA.metadata &&
|
|
65
|
-
|
|
66
|
-
.
|
|
67
|
-
.includes('example')) ||
|
|
83
|
+
(claimA.metadata.isExample === true ||
|
|
84
|
+
/\b(?:for\s+example|as\s+an\s+example|e\.g\.|sample|tutorial|quickstart)\b|^\s*[-*#]*\s*example\b/i.test(String(claimA.metadata.evidence || '')))) ||
|
|
68
85
|
(claimB.metadata &&
|
|
69
|
-
|
|
70
|
-
.
|
|
71
|
-
.includes('example'));
|
|
86
|
+
(claimB.metadata.isExample === true ||
|
|
87
|
+
/\b(?:for\s+example|as\s+an\s+example|e\.g\.|sample|tutorial|quickstart)\b|^\s*[-*#]*\s*example\b/i.test(String(claimB.metadata.evidence || ''))));
|
|
72
88
|
if (isExample) {
|
|
73
89
|
divergences.push('sourceRole');
|
|
74
90
|
return {
|
|
@@ -92,8 +108,8 @@ export class ContextAnalyzer {
|
|
|
92
108
|
};
|
|
93
109
|
}
|
|
94
110
|
// 4. Check Environment Divergence (e.g. dev vs prod, staging vs prod)
|
|
95
|
-
const envA = (claimA.environment
|
|
96
|
-
const envB = (claimB.environment
|
|
111
|
+
const envA = normalizeEnvironment(claimA.environment);
|
|
112
|
+
const envB = normalizeEnvironment(claimB.environment);
|
|
97
113
|
const isEnvDisjoint = (envA === 'development' && (envB === 'production' || envB === 'deployment')) ||
|
|
98
114
|
(envB === 'development' && (envA === 'production' || envA === 'deployment')) ||
|
|
99
115
|
(envA === 'staging' && envB === 'production') ||
|
|
@@ -106,7 +122,7 @@ export class ContextAnalyzer {
|
|
|
106
122
|
relationship: {
|
|
107
123
|
type: 'DIFFERENT_ENVIRONMENT',
|
|
108
124
|
confidence: 0.9,
|
|
109
|
-
explanation: `Claims apply to distinct non-overlapping environments (${envA} vs ${envB}). Distinct environments legitimately maintain different parameter values.`,
|
|
125
|
+
explanation: `Claims apply to distinct non-overlapping environments ('${envA}' vs '${envB}'). Distinct environments legitimately maintain different parameter values.`,
|
|
110
126
|
isContradictionEligible: false,
|
|
111
127
|
contextFactors: {
|
|
112
128
|
environmentMatch: false,
|
|
@@ -118,19 +134,19 @@ export class ContextAnalyzer {
|
|
|
118
134
|
},
|
|
119
135
|
isContextCompatible: false,
|
|
120
136
|
compatibilityScore: 0.2,
|
|
121
|
-
reason: `
|
|
137
|
+
reason: `Environment '${envA}' is explicitly separate from '${envB}'.`,
|
|
122
138
|
divergenceDimensions: divergences,
|
|
123
139
|
};
|
|
124
140
|
}
|
|
125
141
|
// 5. Check Scope Divergence
|
|
126
142
|
const scopeA = (claimA.scope || 'unknown').toLowerCase();
|
|
127
143
|
const scopeB = (claimB.scope || 'unknown').toLowerCase();
|
|
128
|
-
//
|
|
144
|
+
// Isolated service vs repository scopes legitimately diverge
|
|
129
145
|
if (scopeA !== 'unknown' &&
|
|
130
146
|
scopeB !== 'unknown' &&
|
|
131
147
|
scopeA !== scopeB &&
|
|
132
|
-
scopeA === 'service' &&
|
|
133
|
-
|
|
148
|
+
((scopeA === 'service' && scopeB === 'repository') ||
|
|
149
|
+
(scopeA === 'repository' && scopeB === 'service'))) {
|
|
134
150
|
divergences.push('scope');
|
|
135
151
|
return {
|
|
136
152
|
relationship: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextAnalyzer.js","sourceRoot":"","sources":["../../src/analysis/contextAnalyzer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"contextAnalyzer.js","sourceRoot":"","sources":["../../src/analysis/contextAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -123,7 +123,15 @@ export class ContradictionEngine {
|
|
|
123
123
|
};
|
|
124
124
|
}
|
|
125
125
|
// 4. Value comparison
|
|
126
|
-
const resolvedValueType = claimA.valueType === claimB.valueType
|
|
126
|
+
const resolvedValueType = claimA.valueType === claimB.valueType
|
|
127
|
+
? claimA.valueType
|
|
128
|
+
: claimA.valueType && !['configuration', 'string'].includes(claimA.valueType)
|
|
129
|
+
? claimA.valueType
|
|
130
|
+
: claimB.valueType && !['configuration', 'string'].includes(claimB.valueType)
|
|
131
|
+
? claimB.valueType
|
|
132
|
+
: claimA.predicate.includes('version') || claimB.predicate.includes('version')
|
|
133
|
+
? 'version'
|
|
134
|
+
: undefined;
|
|
127
135
|
const comparison = valueComparator.compare(claimA.value, claimB.value, resolvedValueType);
|
|
128
136
|
// If values are equivalent after normalization
|
|
129
137
|
if (comparison.equal) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contradictionEngine.js","sourceRoot":"","sources":["../../src/analysis/contradictionEngine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"contradictionEngine.js","sourceRoot":"","sources":["../../src/analysis/contradictionEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,15 @@ export class ExplanationBuilder {
|
|
|
11
11
|
contextStatement = ` Operational context: ${claimA.environment} vs ${claimB.environment}.`;
|
|
12
12
|
}
|
|
13
13
|
// 3. What each source claims
|
|
14
|
-
const
|
|
15
|
-
const
|
|
14
|
+
const isIntraDocument = claimA.sourceId === claimB.sourceId;
|
|
15
|
+
const lineA = Array.isArray(claimA.metadata?.lineRange) ? claimA.metadata.lineRange[0] : null;
|
|
16
|
+
const lineB = Array.isArray(claimB.metadata?.lineRange) ? claimB.metadata.lineRange[0] : null;
|
|
17
|
+
const claimAStatement = isIntraDocument
|
|
18
|
+
? `${sourceAName}${lineA ? ` (line ${lineA})` : ''} reports '${claimA.value}'.`
|
|
19
|
+
: `${sourceAName} reports '${claimA.value}' (observed on ${claimA.observedAt.toISOString().split('T')[0]}).`;
|
|
20
|
+
const claimBStatement = isIntraDocument
|
|
21
|
+
? `Within the same file/source${lineB ? ` (line ${lineB})` : ''}, conflictingly asserted as '${claimB.value}'.`
|
|
22
|
+
: `${sourceBName} reports '${claimB.value}' (observed on ${claimB.observedAt.toISOString().split('T')[0]}).`;
|
|
16
23
|
// 4. Why the values conflict
|
|
17
24
|
let conflictDetail = '';
|
|
18
25
|
if (comparison.normalizedA !== claimA.value || comparison.normalizedB !== claimB.value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explanationBuilder.js","sourceRoot":"","sources":["../../src/analysis/explanationBuilder.ts"],"names":[],"mappings":"AAqBA,MAAM,OAAO,kBAAkB;IACtB,KAAK,CAAC,OAA2B;QACtC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QAExF,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,QAAQ,GAAG,CAAC;QAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,QAAQ,GAAG,CAAC;QAE3E,yBAAyB;QACzB,MAAM,aAAa,GAAG,4BAA4B,MAAM,CAAC,SAAS,SAAS,MAAM,CAAC,OAAO,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC;QAEhH,oBAAoB;QACpB,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACjF,gBAAgB,GAAG,yBAAyB,MAAM,CAAC,WAAW,OAAO,MAAM,CAAC,WAAW,GAAG,CAAC;QAC7F,CAAC;QAED,6BAA6B;QAC7B,MAAM,eAAe,GAAG,GAAG,WAAW,aAAa,MAAM,CAAC,KAAK,kBAAkB,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"explanationBuilder.js","sourceRoot":"","sources":["../../src/analysis/explanationBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ export declare class ValueComparator {
|
|
|
20
20
|
} | null;
|
|
21
21
|
private compareVersions;
|
|
22
22
|
private isLikelyDate;
|
|
23
|
-
normalizeDate(val: string): string | null;
|
|
23
|
+
normalizeDate(val: string, preferredFormat?: 'MM/DD' | 'DD/MM'): string | null;
|
|
24
24
|
private compareDates;
|
|
25
25
|
private isLikelyPrice;
|
|
26
26
|
normalizePrice(val: string): {
|
|
@@ -29,6 +29,11 @@ export declare class ValueComparator {
|
|
|
29
29
|
} | null;
|
|
30
30
|
private comparePrices;
|
|
31
31
|
private isLikelyNumber;
|
|
32
|
+
normalizeQuantity(val: string): {
|
|
33
|
+
amount: number;
|
|
34
|
+
unit?: string;
|
|
35
|
+
display: string;
|
|
36
|
+
} | null;
|
|
32
37
|
private compareNumbers;
|
|
33
38
|
private compareStatuses;
|
|
34
39
|
private normalizeBoolean;
|