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.
Files changed (43) hide show
  1. package/bin/cli.js +3 -1
  2. package/dist/analysis/claimMatcher.d.ts +8 -0
  3. package/dist/analysis/claimMatcher.js +165 -5
  4. package/dist/analysis/claimMatcher.js.map +1 -1
  5. package/dist/analysis/contextAnalyzer.d.ts +1 -0
  6. package/dist/analysis/contextAnalyzer.js +29 -13
  7. package/dist/analysis/contextAnalyzer.js.map +1 -1
  8. package/dist/analysis/contradictionEngine.js +9 -1
  9. package/dist/analysis/contradictionEngine.js.map +1 -1
  10. package/dist/analysis/explanationBuilder.js +9 -2
  11. package/dist/analysis/explanationBuilder.js.map +1 -1
  12. package/dist/analysis/valueComparator.d.ts +6 -1
  13. package/dist/analysis/valueComparator.js +88 -14
  14. package/dist/analysis/valueComparator.js.map +1 -1
  15. package/dist/config/env.d.ts +5 -0
  16. package/dist/config/env.js +23 -2
  17. package/dist/config/env.js.map +1 -1
  18. package/dist/connectors/base/connectorUtils.d.ts +5 -0
  19. package/dist/connectors/base/connectorUtils.js +65 -0
  20. package/dist/connectors/base/connectorUtils.js.map +1 -1
  21. package/dist/connectors/document/documentConnector.d.ts +2 -0
  22. package/dist/connectors/document/documentConnector.js +266 -100
  23. package/dist/connectors/document/documentConnector.js.map +1 -1
  24. package/dist/connectors/syncService.d.ts +1 -0
  25. package/dist/connectors/syncService.js +14 -1
  26. package/dist/connectors/syncService.js.map +1 -1
  27. package/dist/connectors/website/websiteConnector.js +104 -38
  28. package/dist/connectors/website/websiteConnector.js.map +1 -1
  29. package/dist/discovery/candidateGenerator.d.ts +5 -0
  30. package/dist/discovery/candidateGenerator.js +131 -51
  31. package/dist/discovery/candidateGenerator.js.map +1 -1
  32. package/dist/discovery/discoveryService.d.ts +21 -0
  33. package/dist/discovery/discoveryService.js +78 -2
  34. package/dist/discovery/discoveryService.js.map +1 -1
  35. package/dist/discovery/similarityIndex.d.ts +1 -0
  36. package/dist/discovery/similarityIndex.js +38 -4
  37. package/dist/discovery/similarityIndex.js.map +1 -1
  38. package/dist/intelligence/semanticMatcher.d.ts +1 -1
  39. package/dist/intelligence/semanticMatcher.js +10 -3
  40. package/dist/intelligence/semanticMatcher.js.map +1 -1
  41. package/dist/server.js +65 -2
  42. package/dist/server.js.map +1 -1
  43. 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: path.join(projectRoot, 'data', 'contradiction.db'),
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.8;
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 subjectSimilarity = calculateCompositeSimilarity(claimA.subject, claimB.subject);
101
- const predicateSimilarity = calculateCompositeSimilarity(claimA.predicate, claimB.predicate);
102
- const subjectMatches = subjectSimilarity >= this.subjectThreshold;
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":"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"}
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
- String(claimA.metadata.evidence || '')
66
- .toLowerCase()
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
- String(claimB.metadata.evidence || '')
70
- .toLowerCase()
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 || 'unknown').toLowerCase();
96
- const envB = (claimB.environment || 'unknown').toLowerCase();
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: `Environments '${envA}' and '${envB}' are distinct operational tiers.`,
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
- // If scope differs, but both describe global repo requirement, evaluate cautiously
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
- scopeB === 'repository') {
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":"AAWA,MAAM,UAAU,oBAAoB,CAAC,GAAmB;IACtD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC;IAC/E,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,aAAa,CAAC;IAC1E,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7E,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,eAAe,CAAC;IAC7E,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,YAAY,CAAC;IAClE,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,MAAM,OAAO,eAAe;IACnB,OAAO,CAAC,MAAa,EAAE,MAAa;QACzC,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,kDAAkD;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACtC,MAAM,eAAe,GACnB,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;YACrB,IAAI,KAAK,IAAI;YACb,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAE7F,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;YAC5B,OAAO;gBACL,YAAY,EAAE;oBACZ,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,IAAI;oBAChB,WAAW,EAAE,4DAA4D,MAAM,CAAC,iBAAiB,kGAAkG;oBACnM,uBAAuB,EAAE,KAAK;oBAC9B,cAAc,EAAE;wBACd,gBAAgB,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;wBAC3D,UAAU,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;wBACzC,SAAS,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;wBAClD,aAAa,EAAE,IAAI;wBACnB,kBAAkB,EAAE,IAAI;qBACzB;iBACF;gBACD,mBAAmB,EAAE,IAAI;gBACzB,kBAAkB,EAAE,GAAG;gBACvB,MAAM,EAAE,kDAAkD;gBAC1D,oBAAoB,EAAE,EAAE;aACzB,CAAC;QACJ,CAAC;QAED,8CAA8C;QAC9C,MAAM,kBAAkB,GACtB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,UAAU,KAAK,YAAY;YAClC,MAAM,CAAC,UAAU,KAAK,YAAY;YAClC,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC;YAChF,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;QAEnF,IAAI,kBAAkB,EAAE,CAAC;YACvB,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,MAAM,eAAe,GACnB,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACpF,OAAO;gBACL,YAAY,EAAE;oBACZ,IAAI,EAAE,YAAY;oBAClB,UAAU,EAAE,GAAG;oBACf,WAAW,EAAE,GAAG,eAAe,4IAA4I;oBAC3K,uBAAuB,EAAE,KAAK;oBAC9B,cAAc,EAAE;wBACd,gBAAgB,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;wBAC3D,UAAU,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;wBACzC,SAAS,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;wBAClD,aAAa,EAAE,KAAK;wBACpB,kBAAkB,EAAE,KAAK;qBAC1B;iBACF;gBACD,mBAAmB,EAAE,KAAK;gBAC1B,kBAAkB,EAAE,GAAG;gBACvB,MAAM,EAAE,2DAA2D;gBACnE,oBAAoB,EAAE,WAAW;aAClC,CAAC;QACJ,CAAC;QAED,2CAA2C;QAC3C,MAAM,SAAS,GACb,MAAM,CAAC,UAAU,KAAK,SAAS;YAC/B,MAAM,CAAC,UAAU,KAAK,SAAS;YAC/B,CAAC,MAAM,CAAC,QAAQ;gBACd,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI;oBACjC,mGAAmG,CAAC,IAAI,CACtG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CACvC,CAAC,CAAC;YACP,CAAC,MAAM,CAAC,QAAQ;gBACd,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI;oBACjC,mGAAmG,CAAC,IAAI,CACtG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CACvC,CAAC,CAAC,CAAC;QAEV,IAAI,SAAS,EAAE,CAAC;YACd,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC/B,OAAO;gBACL,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,IAAI;oBAChB,WAAW,EACT,mJAAmJ;oBACrJ,uBAAuB,EAAE,KAAK;oBAC9B,cAAc,EAAE;wBACd,gBAAgB,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;wBAC3D,UAAU,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;wBACzC,SAAS,EAAE,KAAK;wBAChB,aAAa,EAAE,IAAI;wBACnB,kBAAkB,EAAE,KAAK;qBAC1B;iBACF;gBACD,mBAAmB,EAAE,KAAK;gBAC1B,kBAAkB,EAAE,GAAG;gBACvB,MAAM,EAAE,kEAAkE;gBAC1E,oBAAoB,EAAE,WAAW;aAClC,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEtD,MAAM,aAAa,GACjB,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,CAAC,CAAC;YAC5E,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,CAAC,CAAC;YAC5E,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY,CAAC;YAC7C,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY,CAAC;YAC7C,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY,CAAC;YAC7C,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY,CAAC,CAAC;QAEhD,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChC,OAAO;gBACL,YAAY,EAAE;oBACZ,IAAI,EAAE,uBAAuB;oBAC7B,UAAU,EAAE,GAAG;oBACf,WAAW,EAAE,2DAA2D,IAAI,SAAS,IAAI,6EAA6E;oBACtK,uBAAuB,EAAE,KAAK;oBAC9B,cAAc,EAAE;wBACd,gBAAgB,EAAE,KAAK;wBACvB,UAAU,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;wBACzC,SAAS,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;wBAClD,aAAa,EAAE,IAAI;wBACnB,kBAAkB,EAAE,KAAK;qBAC1B;iBACF;gBACD,mBAAmB,EAAE,KAAK;gBAC1B,kBAAkB,EAAE,GAAG;gBACvB,MAAM,EAAE,gBAAgB,IAAI,kCAAkC,IAAI,IAAI;gBACtE,oBAAoB,EAAE,WAAW;aAClC,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAEzD,6DAA6D;QAC7D,IACE,MAAM,KAAK,SAAS;YACpB,MAAM,KAAK,SAAS;YACpB,MAAM,KAAK,MAAM;YACjB,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,YAAY,CAAC;gBAChD,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,EACpD,CAAC;YACD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO;gBACL,YAAY,EAAE;oBACZ,IAAI,EAAE,iBAAiB;oBACvB,UAAU,EAAE,GAAG;oBACf,WAAW,EAAE,oDAAoD,MAAM,OAAO,MAAM,IAAI;oBACxF,uBAAuB,EAAE,KAAK;oBAC9B,cAAc,EAAE;wBACd,gBAAgB,EAAE,IAAI,KAAK,IAAI;wBAC/B,UAAU,EAAE,KAAK;wBACjB,SAAS,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;wBAClD,aAAa,EAAE,IAAI;wBACnB,kBAAkB,EAAE,KAAK;qBAC1B;iBACF;gBACD,mBAAmB,EAAE,KAAK;gBAC1B,kBAAkB,EAAE,GAAG;gBACvB,MAAM,EAAE,WAAW,MAAM,UAAU,MAAM,yCAAyC;gBAClF,oBAAoB,EAAE,WAAW;aAClC,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,MAAM,QAAQ,GACZ,IAAI,KAAK,IAAI;YACb,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,eAAe;YACxB,IAAI,KAAK,eAAe,CAAC;QAC3B,MAAM,UAAU,GAAG,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,CAAC;QACrF,MAAM,SAAS,GACb,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;YACvC,MAAM,CAAC,UAAU,KAAK,SAAS;YAC/B,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC;QAElC,OAAO;YACL,YAAY,EAAE;gBACZ,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,GAAG;gBACf,WAAW,EACT,kFAAkF;gBACpF,uBAAuB,EAAE,IAAI;gBAC7B,cAAc,EAAE;oBACd,gBAAgB,EAAE,QAAQ;oBAC1B,UAAU;oBACV,SAAS;oBACT,aAAa,EAAE,IAAI;oBACnB,kBAAkB,EAAE,KAAK;iBAC1B;aACF;YACD,mBAAmB,EAAE,IAAI;YACzB,kBAAkB,EAAE,IAAI;YACxB,MAAM,EAAE,8CAA8C;YACtD,oBAAoB,EAAE,EAAE;SACzB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -123,7 +123,15 @@ export class ContradictionEngine {
123
123
  };
124
124
  }
125
125
  // 4. Value comparison
126
- const resolvedValueType = claimA.valueType === claimB.valueType ? claimA.valueType : undefined;
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":"AAGA,OAAO,EAAE,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAyB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAyB,MAAM,sBAAsB,CAAC;AAwB9E,MAAM,OAAO,mBAAmB;IACvB,WAAW,CAChB,MAAa,EACb,MAAa,EACb,OAAuB,EACvB,OAAuB;QAEvB,+BAA+B;QAC/B,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,UAAU,GAAqB;gBACnC,OAAO,EAAE,IAAI;gBACb,iBAAiB,EAAE,GAAG;gBACtB,mBAAmB,EAAE,GAAG;gBACxB,kBAAkB,EAAE,MAAM,CAAC,OAAO;gBAClC,kBAAkB,EAAE,MAAM,CAAC,OAAO;gBAClC,oBAAoB,EAAE,MAAM,CAAC,SAAS;gBACtC,oBAAoB,EAAE,MAAM,CAAC,SAAS;gBACtC,MAAM,EAAE,4BAA4B;aACrC,CAAC;YACF,MAAM,SAAS,GAA0B;gBACvC,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,MAAM,CAAC,KAAK;gBACzB,WAAW,EAAE,MAAM,CAAC,KAAK;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,kBAAkB,EAAE,GAAG;aACxB,CAAC;YACF,MAAM,YAAY,GAAsB;gBACtC,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,mCAAmC;gBAChD,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE;oBACd,gBAAgB,EAAE,IAAI;oBACtB,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,IAAI;oBACf,aAAa,EAAE,IAAI;oBACnB,kBAAkB,EAAE,KAAK;iBAC1B;aACF,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,qBAAqB;gBACrC,YAAY;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,mCAAmC;gBAChD,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK,EAAE,UAAU;oBACjB,UAAU,EAAE,SAAS;iBACtB;aACF,CAAC;QACJ,CAAC;QAED,iEAAiE;QACjE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAC9B,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,EACxD,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CACzD,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3F,MAAM,YAAY,GAAsB;gBACtC,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,oDAAoD,KAAK,CAAC,MAAM,IAAI;gBACjF,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE;oBACd,gBAAgB,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;oBAC3D,UAAU,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;oBACzC,SAAS,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;oBAClD,aAAa,EAAE,IAAI;oBACnB,kBAAkB,EAAE,KAAK;iBAC1B;aACF,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,qBAAqB;gBACrC,YAAY;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;oBAC1D,KAAK;oBACL,UAAU,EAAE,YAAY;oBACxB,MAAM;oBACN,MAAM;oBACN,mBAAmB,EAAE,YAAY;iBAClC,CAAC;gBACF,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,UAAU,EAAE,YAAY;iBACzB;aACF,CAAC;QACJ,CAAC;QAED,uDAAuD;QACvD,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE9D,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC;YACxD,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3F,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,qBAAqB;gBACrC,YAAY,EAAE,aAAa,CAAC,YAAY;gBACxC,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,UAAU;gBACjD,WAAW,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;oBAC1D,KAAK;oBACL,UAAU,EAAE,YAAY;oBACxB,MAAM;oBACN,MAAM;oBACN,mBAAmB,EAAE,aAAa,CAAC,YAAY;iBAChD,CAAC;gBACF,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,UAAU,EAAE,YAAY;oBACxB,OAAO,EAAE,aAAa;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAE1F,+CAA+C;QAC/C,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,YAAY,GAAsB;gBACtC,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,qDAAqD,UAAU,CAAC,WAAW,KAAK;gBAC7F,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC,cAAc;aAC1D,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,qBAAqB;gBACrC,YAAY;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;oBAC1D,KAAK;oBACL,UAAU;oBACV,MAAM;oBACN,MAAM;oBACN,mBAAmB,EAAE,YAAY;iBAClC,CAAC;gBACF,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,UAAU;oBACV,OAAO,EAAE,aAAa;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,iFAAiF;QACjF,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAsB;gBACtC,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,WAAW,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAK,qBAAqB,UAAU,CAAC,cAAc,IAAI,YAAY,IAAI;gBAC5H,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC,cAAc;aAC1D,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,qBAAqB;gBACrC,YAAY;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;oBAC1D,KAAK;oBACL,UAAU;oBACV,MAAM;oBACN,MAAM;oBACN,mBAAmB,EAAE,YAAY;iBAClC,CAAC;gBACF,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,UAAU;oBACV,OAAO,EAAE,aAAa;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAsB;gBACtC,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,uDAAuD,MAAM,CAAC,SAAS,IAAI;gBACxF,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC,cAAc;aAC1D,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,WAAW;gBAC3B,YAAY;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;oBAC1D,KAAK;oBACL,UAAU;oBACV,MAAM;oBACN,MAAM;oBACN,mBAAmB,EAAE,YAAY;iBAClC,CAAC;gBACF,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,UAAU;oBACV,OAAO,EAAE,aAAa;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,MAAM,cAAc,GAAG,uBAAuB,CAAC,QAAQ,CAAC;YACtD,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,UAAU;SACX,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CAAC;YAClD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,eAAe,EAAE,UAAU,CAAC,UAAU;YACtC,uBAAuB,EAAE,UAAU,CAAC,kBAAkB;YACtD,gBAAgB,EAAE,MAAM,CAAC,UAAU;YACnC,gBAAgB,EAAE,MAAM,CAAC,UAAU;YACnC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;YAChD,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;YAChD,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,kBAAkB,GAAG,GAAG;SAC3E,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC;YAC3C,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,KAAK;YACL,UAAU;YACV,cAAc;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,aAAa,CAAC,YAAY;gBACxC,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;gBACpD,oBAAoB,EAAE,aAAa,CAAC,oBAAoB;aACzD;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GAAsB;YACtC,IAAI,EAAE,mBAAmB;YACzB,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,WAAW;YACX,uBAAuB,EAAE,IAAI;YAC7B,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC,cAAc;SAC1D,CAAC;QAEF,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,yBAAyB;YACzC,YAAY;YACZ,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;YACnD,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,WAAW;YACX,QAAQ,EAAE;gBACR,MAAM;gBACN,MAAM;gBACN,KAAK;gBACL,UAAU;gBACV,OAAO,EAAE,aAAa;gBACtB,mBAAmB,EAAE,gBAAgB,CAAC,SAAS;aAChD;SACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"contradictionEngine.js","sourceRoot":"","sources":["../../src/analysis/contradictionEngine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAyB,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAyB,MAAM,sBAAsB,CAAC;AAwB9E,MAAM,OAAO,mBAAmB;IACvB,WAAW,CAChB,MAAa,EACb,MAAa,EACb,OAAuB,EACvB,OAAuB;QAEvB,+BAA+B;QAC/B,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,UAAU,GAAqB;gBACnC,OAAO,EAAE,IAAI;gBACb,iBAAiB,EAAE,GAAG;gBACtB,mBAAmB,EAAE,GAAG;gBACxB,kBAAkB,EAAE,MAAM,CAAC,OAAO;gBAClC,kBAAkB,EAAE,MAAM,CAAC,OAAO;gBAClC,oBAAoB,EAAE,MAAM,CAAC,SAAS;gBACtC,oBAAoB,EAAE,MAAM,CAAC,SAAS;gBACtC,MAAM,EAAE,4BAA4B;aACrC,CAAC;YACF,MAAM,SAAS,GAA0B;gBACvC,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,MAAM,CAAC,KAAK;gBACzB,WAAW,EAAE,MAAM,CAAC,KAAK;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,kBAAkB,EAAE,GAAG;aACxB,CAAC;YACF,MAAM,YAAY,GAAsB;gBACtC,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,mCAAmC;gBAChD,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE;oBACd,gBAAgB,EAAE,IAAI;oBACtB,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,IAAI;oBACf,aAAa,EAAE,IAAI;oBACnB,kBAAkB,EAAE,KAAK;iBAC1B;aACF,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,qBAAqB;gBACrC,YAAY;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,mCAAmC;gBAChD,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK,EAAE,UAAU;oBACjB,UAAU,EAAE,SAAS;iBACtB;aACF,CAAC;QACJ,CAAC;QAED,iEAAiE;QACjE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAC9B,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,EACxD,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CACzD,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3F,MAAM,YAAY,GAAsB;gBACtC,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,oDAAoD,KAAK,CAAC,MAAM,IAAI;gBACjF,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE;oBACd,gBAAgB,EAAE,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW;oBAC3D,UAAU,EAAE,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK;oBACzC,SAAS,EAAE,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU;oBAClD,aAAa,EAAE,IAAI;oBACnB,kBAAkB,EAAE,KAAK;iBAC1B;aACF,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,qBAAqB;gBACrC,YAAY;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;oBAC1D,KAAK;oBACL,UAAU,EAAE,YAAY;oBACxB,MAAM;oBACN,MAAM;oBACN,mBAAmB,EAAE,YAAY;iBAClC,CAAC;gBACF,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,UAAU,EAAE,YAAY;iBACzB;aACF,CAAC;QACJ,CAAC;QAED,uDAAuD;QACvD,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE9D,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,uBAAuB,EAAE,CAAC;YACxD,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3F,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,qBAAqB;gBACrC,YAAY,EAAE,aAAa,CAAC,YAAY;gBACxC,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,aAAa,CAAC,YAAY,CAAC,UAAU;gBACjD,WAAW,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;oBAC1D,KAAK;oBACL,UAAU,EAAE,YAAY;oBACxB,MAAM;oBACN,MAAM;oBACN,mBAAmB,EAAE,aAAa,CAAC,YAAY;iBAChD,CAAC;gBACF,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,UAAU,EAAE,YAAY;oBACxB,OAAO,EAAE,aAAa;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,MAAM,iBAAiB,GACrB,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;YACnC,CAAC,CAAC,MAAM,CAAC,SAAS;YAClB,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;gBAC3E,CAAC,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;oBAC3E,CAAC,CAAC,MAAM,CAAC,SAAS;oBAClB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;wBAC5E,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,SAAS,CAAC;QACtB,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;QAE1F,+CAA+C;QAC/C,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,YAAY,GAAsB;gBACtC,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,qDAAqD,UAAU,CAAC,WAAW,KAAK;gBAC7F,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC,cAAc;aAC1D,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,qBAAqB;gBACrC,YAAY;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;oBAC1D,KAAK;oBACL,UAAU;oBACV,MAAM;oBACN,MAAM;oBACN,mBAAmB,EAAE,YAAY;iBAClC,CAAC;gBACF,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,UAAU;oBACV,OAAO,EAAE,aAAa;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,iFAAiF;QACjF,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAsB;gBACtC,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,WAAW,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAK,qBAAqB,UAAU,CAAC,cAAc,IAAI,YAAY,IAAI;gBAC5H,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC,cAAc;aAC1D,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,qBAAqB;gBACrC,YAAY;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;oBAC1D,KAAK;oBACL,UAAU;oBACV,MAAM;oBACN,MAAM;oBACN,mBAAmB,EAAE,YAAY;iBAClC,CAAC;gBACF,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,UAAU;oBACV,OAAO,EAAE,aAAa;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAsB;gBACtC,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,uDAAuD,MAAM,CAAC,SAAS,IAAI;gBACxF,uBAAuB,EAAE,KAAK;gBAC9B,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC,cAAc;aAC1D,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,WAAW;gBAC3B,YAAY;gBACZ,iBAAiB,EAAE,SAAS;gBAC5B,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,GAAG;gBACf,WAAW,EAAE,kBAAkB,CAAC,2BAA2B,CAAC;oBAC1D,KAAK;oBACL,UAAU;oBACV,MAAM;oBACN,MAAM;oBACN,mBAAmB,EAAE,YAAY;iBAClC,CAAC;gBACF,QAAQ,EAAE;oBACR,MAAM;oBACN,MAAM;oBACN,KAAK;oBACL,UAAU;oBACV,OAAO,EAAE,aAAa;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,MAAM,cAAc,GAAG,uBAAuB,CAAC,QAAQ,CAAC;YACtD,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,UAAU;SACX,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CAAC;YAClD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,eAAe,EAAE,UAAU,CAAC,UAAU;YACtC,uBAAuB,EAAE,UAAU,CAAC,kBAAkB;YACtD,gBAAgB,EAAE,MAAM,CAAC,UAAU;YACnC,gBAAgB,EAAE,MAAM,CAAC,UAAU;YACnC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;YAChD,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;YAChD,WAAW,EAAE,CAAC,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,kBAAkB,GAAG,GAAG;SAC3E,CAAC,CAAC;QAEH,4BAA4B;QAC5B,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC;YAC3C,MAAM;YACN,MAAM;YACN,OAAO;YACP,OAAO;YACP,KAAK;YACL,UAAU;YACV,cAAc;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,aAAa,CAAC,YAAY;gBACxC,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;gBACpD,oBAAoB,EAAE,aAAa,CAAC,oBAAoB;aACzD;SACF,CAAC,CAAC;QAEH,MAAM,YAAY,GAAsB;YACtC,IAAI,EAAE,mBAAmB;YACzB,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,WAAW;YACX,uBAAuB,EAAE,IAAI;YAC7B,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC,cAAc;SAC1D,CAAC;QAEF,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,yBAAyB;YACzC,YAAY;YACZ,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;YACnD,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,WAAW;YACX,QAAQ,EAAE;gBACR,MAAM;gBACN,MAAM;gBACN,KAAK;gBACL,UAAU;gBACV,OAAO,EAAE,aAAa;gBACtB,mBAAmB,EAAE,gBAAgB,CAAC,SAAS;aAChD;SACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC"}
@@ -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 claimAStatement = `${sourceAName} reports '${claimA.value}' (observed on ${claimA.observedAt.toISOString().split('T')[0]}).`;
15
- const claimBStatement = `${sourceBName} reports '${claimB.value}' (observed on ${claimB.observedAt.toISOString().split('T')[0]}).`;
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":"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"}
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;