@pella-labs/pinakes 0.3.14 → 0.4.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 (65) hide show
  1. package/README.md +16 -7
  2. package/dist/cli/audit-wiki.d.ts +45 -1
  3. package/dist/cli/audit-wiki.d.ts.map +1 -1
  4. package/dist/cli/audit-wiki.js +348 -80
  5. package/dist/cli/audit-wiki.js.map +1 -1
  6. package/dist/cli/claims.d.ts +49 -0
  7. package/dist/cli/claims.d.ts.map +1 -0
  8. package/dist/cli/claims.js +169 -0
  9. package/dist/cli/claims.js.map +1 -0
  10. package/dist/cli/contradiction.d.ts +46 -28
  11. package/dist/cli/contradiction.d.ts.map +1 -1
  12. package/dist/cli/contradiction.js +182 -115
  13. package/dist/cli/contradiction.js.map +1 -1
  14. package/dist/cli/index.js +4 -2
  15. package/dist/cli/index.js.map +1 -1
  16. package/dist/cli/progress.d.ts +19 -0
  17. package/dist/cli/progress.d.ts.map +1 -0
  18. package/dist/cli/progress.js +44 -0
  19. package/dist/cli/progress.js.map +1 -0
  20. package/dist/cli/serve.js +1 -1
  21. package/dist/db/client.js +1 -1
  22. package/dist/db/migrations/0003_add_pinakes_claims.sql +13 -0
  23. package/dist/db/migrations/0004_add_confidence_score.sql +12 -0
  24. package/dist/db/migrations/meta/_journal.json +14 -0
  25. package/dist/db/schema.d.ts +161 -1
  26. package/dist/db/schema.d.ts.map +1 -1
  27. package/dist/db/schema.js +24 -1
  28. package/dist/db/schema.js.map +1 -1
  29. package/dist/gate/confidence.d.ts +82 -0
  30. package/dist/gate/confidence.d.ts.map +1 -0
  31. package/dist/gate/confidence.js +190 -0
  32. package/dist/gate/confidence.js.map +1 -0
  33. package/dist/ingest/ingester.d.ts.map +1 -1
  34. package/dist/ingest/ingester.js +4 -3
  35. package/dist/ingest/ingester.js.map +1 -1
  36. package/dist/ingest/repo-mirror.d.ts.map +1 -1
  37. package/dist/ingest/repo-mirror.js +5 -1
  38. package/dist/ingest/repo-mirror.js.map +1 -1
  39. package/dist/init/copy.d.ts.map +1 -1
  40. package/dist/init/copy.js +9 -0
  41. package/dist/init/copy.js.map +1 -1
  42. package/dist/init/scanner.js +7 -0
  43. package/dist/init/scanner.js.map +1 -1
  44. package/dist/llm/provider.d.ts.map +1 -1
  45. package/dist/llm/provider.js +19 -5
  46. package/dist/llm/provider.js.map +1 -1
  47. package/dist/mcp/tools/search.d.ts.map +1 -1
  48. package/dist/mcp/tools/search.js +2 -2
  49. package/dist/mcp/tools/search.js.map +1 -1
  50. package/dist/retrieval/fts.d.ts +1 -0
  51. package/dist/retrieval/fts.d.ts.map +1 -1
  52. package/dist/retrieval/fts.js +18 -2
  53. package/dist/retrieval/fts.js.map +1 -1
  54. package/dist/retrieval/hybrid.d.ts +1 -0
  55. package/dist/retrieval/hybrid.d.ts.map +1 -1
  56. package/dist/retrieval/hybrid.js +5 -0
  57. package/dist/retrieval/hybrid.js.map +1 -1
  58. package/dist/retrieval/vec.d.ts +1 -0
  59. package/dist/retrieval/vec.d.ts.map +1 -1
  60. package/dist/retrieval/vec.js +17 -2
  61. package/dist/retrieval/vec.js.map +1 -1
  62. package/dist/sandbox/bindings/pinakes.d.ts.map +1 -1
  63. package/dist/sandbox/bindings/pinakes.js +9 -2
  64. package/dist/sandbox/bindings/pinakes.js.map +1 -1
  65. package/package.json +30 -19
@@ -1,15 +1,38 @@
1
+ /**
2
+ * Contradiction detector v2 (D41 — topic-clustered claim comparison).
3
+ *
4
+ * Two-phase pipeline:
5
+ * Phase A (claims.ts): Per-file LLM extraction of {topic, claims[]}
6
+ * Phase B (this file): Group claims by topic, compare cross-file via LLM
7
+ *
8
+ * Topic dedup uses embedding cosine similarity > threshold (default 0.85)
9
+ * to merge terminology variants like "OAuth2" / "OAuth 2.0".
10
+ */
1
11
  import { writeFileSync } from 'node:fs';
2
12
  import { join } from 'node:path';
3
13
  import { logger } from '../observability/logger.js';
4
- const RATE_LIMIT_MS = 0; // disabled during testing (was 60 * 60 * 1000)
5
- const MAX_PAIRS = 50;
6
- const SIMILARITY_THRESHOLD = 0.3;
7
- const JUDGE_SYSTEM = `You are a contradiction detector. Given two text chunks from a knowledge wiki, determine if they contain contradictory claims. Respond with ONLY valid JSON: {"contradicts": true/false, "explanation": "why", "confidence": "high"|"medium"|"low"}. Only report contradictions you are confident about.`;
14
+ const RATE_LIMIT_MS = 60 * 60 * 1000; // 1 hour
15
+ const DEFAULT_TOPIC_SIMILARITY = 0.85;
16
+ const COMPARE_SYSTEM = `You are a contradiction detector for a knowledge wiki. Given claims about a topic from different wiki files, identify any contradictions — places where two files make incompatible factual statements.
17
+
18
+ Return ONLY valid JSON:
19
+ {"contradictions":[{"claim_a":"exact claim text","source_a":"file","claim_b":"exact claim text","source_b":"file","explanation":"why these contradict","confidence":"high"|"medium"}]}
20
+
21
+ Rules:
22
+ - Only report genuine factual contradictions, not differences in emphasis or scope
23
+ - "high" confidence = clear logical incompatibility
24
+ - "medium" confidence = likely contradiction but could be context-dependent
25
+ - If no contradictions, return {"contradictions":[]}`;
26
+ // ----------------------------------------------------------------------------
27
+ // Main entry point
28
+ // ----------------------------------------------------------------------------
8
29
  /**
9
- * Run a contradiction scan. Returns immediately if rate-limited.
30
+ * Run contradiction scan using topic-clustered claim comparison (D41).
31
+ * Requires claims to be extracted first (via extractAllClaims).
10
32
  */
11
33
  export async function contradictionScan(opts) {
12
- const { bundle, scope, llmProvider, wikiRoot } = opts;
34
+ const { bundle, scope, llmProvider, wikiRoot, progress } = opts;
35
+ const threshold = opts.topicSimilarity ?? DEFAULT_TOPIC_SIMILARITY;
13
36
  // Rate limit check
14
37
  const lastScan = bundle.writer
15
38
  .prepare(`SELECT value FROM pinakes_meta WHERE key = ?`)
@@ -17,157 +40,201 @@ export async function contradictionScan(opts) {
17
40
  if (lastScan) {
18
41
  const lastTs = parseInt(lastScan.value, 10);
19
42
  if (Date.now() - lastTs < RATE_LIMIT_MS) {
20
- return { scanned_pairs: 0, contradictions: [], rate_limited: true };
43
+ return { scanned_pairs: 0, topics_scanned: 0, claims_extracted: 0, contradictions: [], rate_limited: true };
21
44
  }
22
45
  }
23
- if (!llmProvider.available()) {
24
- throw new Error('No LLM provider available for contradiction detection. ' +
25
- 'Set PINAKES_OLLAMA_URL, ANTHROPIC_API_KEY, or OPENAI_API_KEY, ' +
26
- 'or install the claude/codex CLI.');
46
+ // Get all claims grouped by topic
47
+ const allClaims = bundle.writer
48
+ .prepare(`SELECT topic, claim, source_uri FROM pinakes_claims WHERE scope = ? ORDER BY topic`)
49
+ .all(scope);
50
+ if (allClaims.length === 0) {
51
+ return { scanned_pairs: 0, topics_scanned: 0, claims_extracted: 0, contradictions: [], rate_limited: false };
52
+ }
53
+ // Group claims by topic
54
+ let topicGroups = groupByTopic(allClaims);
55
+ // Topic dedup via embeddings (merge "OAuth2" and "OAuth 2.0")
56
+ if (opts.embedder) {
57
+ topicGroups = await deduplicateTopics(topicGroups, opts.embedder, threshold);
27
58
  }
28
- // Find candidate pairs via vector similarity
29
- const pairs = findCandidatePairs(bundle, scope);
59
+ // Filter to topics with claims from 2+ files (cross-file contradictions only)
60
+ const crossFileTopics = topicGroups.filter((g) => {
61
+ const uniqueFiles = new Set(g.claims.map((c) => c.source_uri));
62
+ return uniqueFiles.size >= 2;
63
+ });
30
64
  const contradictions = [];
31
65
  let scanned = 0;
32
- for (const pair of pairs) {
66
+ progress?.startPhase('Phase 1/3: Comparing claims across topics', crossFileTopics.length);
67
+ for (const group of crossFileTopics) {
68
+ const uniqueFiles = new Set(group.claims.map((c) => c.source_uri));
33
69
  try {
70
+ const prompt = formatComparisonPrompt(group);
34
71
  const response = await llmProvider.complete({
35
- system: JUDGE_SYSTEM,
36
- prompt: `Chunk A (from ${pair.a.source_uri}):\n${pair.a.text}\n\nChunk B (from ${pair.b.source_uri}):\n${pair.b.text}`,
37
- maxTokens: 200,
72
+ system: COMPARE_SYSTEM,
73
+ prompt,
74
+ maxTokens: 500,
38
75
  });
39
- const judgment = parseJudgment(response);
40
- if (judgment && judgment.contradicts && (judgment.confidence === 'high' || judgment.confidence === 'medium')) {
76
+ const parsed = parseContradictionResponse(response);
77
+ for (const c of parsed) {
41
78
  contradictions.push({
42
- chunkA: pair.a,
43
- chunkB: pair.b,
44
- explanation: judgment.explanation,
45
- confidence: judgment.confidence,
79
+ topic: group.topic,
80
+ claimA: { claim: c.claim_a, source_uri: c.source_a },
81
+ claimB: { claim: c.claim_b, source_uri: c.source_b },
82
+ explanation: c.explanation,
83
+ confidence: c.confidence,
46
84
  });
47
85
  }
48
86
  scanned++;
87
+ progress?.tick(group.topic, `${group.claims.length} claims from ${uniqueFiles.size} files — ${parsed.length > 0 ? `${parsed.length} CONTRADICTION(S)` : 'clean'}`);
49
88
  }
50
89
  catch (err) {
51
- logger.warn({ err, pairA: pair.a.id, pairB: pair.b.id }, 'contradiction check failed for pair');
90
+ logger.warn({ err, topic: group.topic }, 'contradiction comparison failed for topic');
91
+ progress?.tick(group.topic, `failed: ${err instanceof Error ? err.message.slice(0, 60) : err}`);
52
92
  }
53
93
  }
94
+ progress?.endPhase(`${contradictions.length} contradictions found across ${scanned} topics`);
54
95
  // Update rate limit timestamp
55
96
  bundle.writer
56
97
  .prepare(`INSERT OR REPLACE INTO pinakes_meta (key, value) VALUES ('last_contradiction_scan', ?)`)
57
98
  .run(String(Date.now()));
58
- // Write contradictions.md if any found
99
+ // Write report if contradictions found
59
100
  if (contradictions.length > 0) {
60
- writeContradictionReport(wikiRoot, contradictions, bundle, scope);
101
+ writeContradictionReport(wikiRoot, contradictions);
61
102
  }
62
- return { scanned_pairs: scanned, contradictions, rate_limited: false };
103
+ return {
104
+ scanned_pairs: scanned,
105
+ topics_scanned: crossFileTopics.length,
106
+ claims_extracted: allClaims.length,
107
+ contradictions,
108
+ rate_limited: false,
109
+ };
110
+ }
111
+ function groupByTopic(claims) {
112
+ const map = new Map();
113
+ for (const c of claims) {
114
+ const key = c.topic.toLowerCase();
115
+ let group = map.get(key);
116
+ if (!group) {
117
+ group = { topic: c.topic, claims: [] };
118
+ map.set(key, group);
119
+ }
120
+ group.claims.push({ claim: c.claim, source_uri: c.source_uri });
121
+ }
122
+ return [...map.values()];
63
123
  }
64
124
  /**
65
- * Find candidate pairs for contradiction checking.
66
- * Uses vector similarity to find chunks that are semantically similar
67
- * (which is a prerequisite for them to potentially contradict).
125
+ * Merge topic groups whose topic strings are semantically similar
126
+ * (cosine similarity > threshold). Handles "OAuth2" / "OAuth 2.0" merging.
68
127
  */
69
- function findCandidatePairs(bundle, scope) {
70
- // Get all chunks with their vec embeddings
71
- const chunks = bundle.writer
72
- .prepare(`SELECT c.id, n.source_uri, c.text, c.rowid
73
- FROM pinakes_chunks c
74
- JOIN pinakes_nodes n ON c.node_id = n.id
75
- WHERE n.scope = ?
76
- ORDER BY c.rowid`)
77
- .all(scope);
78
- if (chunks.length < 2)
79
- return [];
80
- // For each chunk, find the top 5 most similar via vec
81
- const pairs = new Set();
82
- const result = [];
83
- for (const chunk of chunks) {
84
- if (result.length >= MAX_PAIRS)
85
- break;
86
- const similar = bundle.writer
87
- .prepare(`SELECT rowid, distance
88
- FROM pinakes_chunks_vec
89
- WHERE embedding MATCH (SELECT embedding FROM pinakes_chunks_vec WHERE rowid = ?)
90
- AND k = ?
91
- ORDER BY distance`)
92
- .all(chunk.rowid, 6); // 6 because first result is self
93
- for (const sim of similar) {
94
- if (sim.rowid === chunk.rowid)
95
- continue;
96
- if (sim.distance > SIMILARITY_THRESHOLD)
97
- continue;
98
- // Deduplicate symmetric pairs
99
- const pairKey = [chunk.rowid, sim.rowid].sort().join(':');
100
- if (pairs.has(pairKey))
101
- continue;
102
- pairs.add(pairKey);
103
- const other = chunks.find((c) => c.rowid === sim.rowid);
104
- if (!other)
105
- continue;
106
- // Skip same-source pairs (they're likely just adjacent sections)
107
- if (chunk.source_uri === other.source_uri)
108
- continue;
109
- result.push({
110
- a: { id: chunk.id, source_uri: chunk.source_uri, text: chunk.text },
111
- b: { id: other.id, source_uri: other.source_uri, text: other.text },
112
- });
113
- if (result.length >= MAX_PAIRS)
114
- break;
128
+ export async function deduplicateTopics(groups, embedder, threshold) {
129
+ if (groups.length <= 1)
130
+ return groups;
131
+ // Embed all topic strings
132
+ const embeddings = [];
133
+ for (const g of groups) {
134
+ embeddings.push(await embedder.embed(g.topic));
135
+ }
136
+ // Union-find for merging
137
+ const parent = groups.map((_, i) => i);
138
+ function find(i) {
139
+ while (parent[i] !== i) {
140
+ parent[i] = parent[parent[i]];
141
+ i = parent[i];
142
+ }
143
+ return i;
144
+ }
145
+ function union(a, b) {
146
+ parent[find(b)] = find(a);
147
+ }
148
+ // Compare all pairs
149
+ for (let i = 0; i < groups.length; i++) {
150
+ for (let j = i + 1; j < groups.length; j++) {
151
+ const sim = cosineSimilarity(embeddings[i], embeddings[j]);
152
+ if (sim > threshold) {
153
+ union(i, j);
154
+ }
115
155
  }
116
156
  }
117
- return result;
157
+ // Merge groups
158
+ const merged = new Map();
159
+ for (let i = 0; i < groups.length; i++) {
160
+ const root = find(i);
161
+ let target = merged.get(root);
162
+ if (!target) {
163
+ target = { topic: groups[root].topic, claims: [] };
164
+ merged.set(root, target);
165
+ }
166
+ target.claims.push(...groups[i].claims);
167
+ }
168
+ return [...merged.values()];
169
+ }
170
+ function cosineSimilarity(a, b) {
171
+ let dot = 0, normA = 0, normB = 0;
172
+ for (let i = 0; i < a.length; i++) {
173
+ dot += a[i] * b[i];
174
+ normA += a[i] * a[i];
175
+ normB += b[i] * b[i];
176
+ }
177
+ const denom = Math.sqrt(normA) * Math.sqrt(normB);
178
+ return denom === 0 ? 0 : dot / denom;
118
179
  }
119
- function parseJudgment(response) {
180
+ // ----------------------------------------------------------------------------
181
+ // LLM prompt + response parsing
182
+ // ----------------------------------------------------------------------------
183
+ function formatComparisonPrompt(group) {
184
+ const lines = [`Topic: "${group.topic}"\n\nClaims from different files:\n`];
185
+ for (const c of group.claims) {
186
+ lines.push(`- [${c.source_uri}]: "${c.claim}"`);
187
+ }
188
+ return lines.join('\n');
189
+ }
190
+ export function parseContradictionResponse(response) {
120
191
  try {
121
- const match = response.match(/\{[\s\S]*\}/);
122
- if (!match)
123
- return null;
124
- const parsed = JSON.parse(match[0]);
125
- if (typeof parsed.contradicts !== 'boolean')
126
- return null;
127
- return {
128
- contradicts: parsed.contradicts,
129
- explanation: parsed.explanation ?? '',
130
- confidence: parsed.confidence ?? 'low',
131
- };
192
+ const fenceMatch = response.match(/```(?:json)?\s*\n?([\s\S]*?)\n?```/);
193
+ const jsonStr = fenceMatch ? fenceMatch[1] : response;
194
+ const objMatch = jsonStr.match(/\{[\s\S]*\}/);
195
+ if (!objMatch)
196
+ return [];
197
+ const parsed = JSON.parse(objMatch[0]);
198
+ if (!Array.isArray(parsed.contradictions))
199
+ return [];
200
+ return parsed.contradictions.filter((c) => typeof c.claim_a === 'string' &&
201
+ typeof c.claim_b === 'string' &&
202
+ typeof c.explanation === 'string' &&
203
+ (c.confidence === 'high' || c.confidence === 'medium'));
132
204
  }
133
205
  catch {
134
- return null;
206
+ return [];
135
207
  }
136
208
  }
137
- function writeContradictionReport(wikiRoot, contradictions, bundle, scope) {
138
- // writeFileSync and join imported at top level
209
+ // ----------------------------------------------------------------------------
210
+ // Report output
211
+ // ----------------------------------------------------------------------------
212
+ function writeContradictionReport(wikiRoot, contradictions) {
139
213
  const lines = [
140
214
  '# Detected Contradictions',
141
215
  '',
142
216
  `*Last scanned: ${new Date().toISOString()}*`,
143
217
  '',
144
218
  ];
219
+ // Group by topic
220
+ const byTopic = new Map();
145
221
  for (const c of contradictions) {
146
- lines.push(`## ${c.chunkA.source_uri} vs ${c.chunkB.source_uri}`);
147
- lines.push('');
148
- lines.push(`- **Chunk A** (${c.chunkA.source_uri}): "${truncate(c.chunkA.text, 200)}"`);
149
- lines.push(`- **Chunk B** (${c.chunkB.source_uri}): "${truncate(c.chunkB.text, 200)}"`);
150
- lines.push(`- **Explanation**: ${c.explanation}`);
151
- lines.push(`- **Confidence**: ${c.confidence}`);
222
+ const list = byTopic.get(c.topic) ?? [];
223
+ list.push(c);
224
+ byTopic.set(c.topic, list);
225
+ }
226
+ for (const [topic, items] of byTopic) {
227
+ lines.push(`## ${topic}`);
152
228
  lines.push('');
229
+ for (const c of items) {
230
+ lines.push(`- **${c.claimA.source_uri}**: "${c.claimA.claim}"`);
231
+ lines.push(`- **${c.claimB.source_uri}**: "${c.claimB.claim}"`);
232
+ lines.push(`- **Explanation**: ${c.explanation} (${c.confidence} confidence)`);
233
+ lines.push('');
234
+ }
153
235
  }
154
236
  writeFileSync(join(wikiRoot, 'contradictions.md'), lines.join('\n'), 'utf8');
155
- // Log the scan
156
- try {
157
- bundle.writer
158
- .prepare(`INSERT INTO pinakes_log (ts, scope, kind, source_uri, payload)
159
- VALUES (?, ?, 'contradiction:scan', NULL, ?)`)
160
- .run(Date.now(), scope, JSON.stringify({ contradictions_found: contradictions.length }));
161
- }
162
- catch {
163
- // Non-fatal
164
- }
165
- }
166
- function truncate(s, maxLen) {
167
- if (s.length <= maxLen)
168
- return s;
169
- return s.slice(0, maxLen) + '...';
170
237
  }
171
- // Export for testing
172
- export { findCandidatePairs as _findCandidatePairs, parseJudgment as _parseJudgment };
238
+ // Export internals for testing
239
+ export { groupByTopic as _groupByTopic, cosineSimilarity as _cosineSimilarity };
173
240
  //# sourceMappingURL=contradiction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contradiction.js","sourceRoot":"","sources":["../../src/cli/contradiction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AA6BpD,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,+CAA+C;AACxE,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,MAAM,YAAY,GAAG,0SAA0S,CAAC;AAEhU;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAA2B;IAE3B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEtD,mBAAmB;IACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM;SAC3B,OAAO,CACN,8CAA8C,CAC/C;SACA,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAElC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,aAAa,EAAE,CAAC;YACxC,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,yDAAyD;YACvD,gEAAgE;YAChE,kCAAkC,CACrC,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAEhD,MAAM,cAAc,GAAoB,EAAE,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC;gBAC1C,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,iBAAiB,IAAI,CAAC,CAAC,CAAC,UAAU,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,qBAAqB,IAAI,CAAC,CAAC,CAAC,UAAU,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;gBACtH,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,UAAU,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC7G,cAAc,CAAC,IAAI,CAAC;oBAClB,MAAM,EAAE,IAAI,CAAC,CAAC;oBACd,MAAM,EAAE,IAAI,CAAC,CAAC;oBACd,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;iBAChC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,qCAAqC,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,CAAC,MAAM;SACV,OAAO,CACN,wFAAwF,CACzF;SACA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAE3B,uCAAuC;IACvC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,wBAAwB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACzE,CAAC;AAiBD;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,MAAgB,EAAE,KAAa;IACzD,2CAA2C;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;SACzB,OAAO,CACN;;;;wBAIkB,CACnB;SACA,GAAG,CAAC,KAAK,CAAC,CAAC;IAEd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjC,sDAAsD;IACtD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,MAAM,GAAoB,EAAE,CAAC;IAEnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS;YAAE,MAAM;QAEtC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;aAC1B,OAAO,CACN;;;;2BAImB,CACpB;aACA,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,iCAAiC;QAEzD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;gBAAE,SAAS;YACxC,IAAI,GAAG,CAAC,QAAQ,GAAG,oBAAoB;gBAAE,SAAS;YAElD,8BAA8B;YAC9B,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1D,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,SAAS;YACjC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEnB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,iEAAiE;YACjE,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;gBAAE,SAAS;YAEpD,MAAM,CAAC,IAAI,CAAC;gBACV,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;gBACnE,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;aACpE,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS;gBAAE,MAAM;QACxC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CACpB,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAIjC,CAAC;QACF,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACzD,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;SACvC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,QAAgB,EAChB,cAA+B,EAC/B,MAAgB,EAChB,KAAa;IAEb,+CAA+C;IAE/C,MAAM,KAAK,GAAG;QACZ,2BAA2B;QAC3B,EAAE;QACF,kBAAkB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG;QAC7C,EAAE;KACH,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC,CAAC,MAAM,CAAC,UAAU,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAC5E,CAAC;QACF,KAAK,CAAC,IAAI,CACR,kBAAkB,CAAC,CAAC,MAAM,CAAC,UAAU,OAAO,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAC5E,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAE7E,eAAe;IACf,IAAI,CAAC;QACH,MAAM,CAAC,MAAM;aACV,OAAO,CACN;sDAC8C,CAC/C;aACA,GAAG,CACF,IAAI,CAAC,GAAG,EAAE,EACV,KAAK,EACL,IAAI,CAAC,SAAS,CAAC,EAAE,oBAAoB,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAChE,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,MAAc;IACzC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;AACpC,CAAC;AAED,qBAAqB;AACrB,OAAO,EAAE,kBAAkB,IAAI,mBAAmB,EAAE,aAAa,IAAI,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"contradiction.js","sourceRoot":"","sources":["../../src/cli/contradiction.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -49,7 +49,9 @@ function getRequiredString(flags, key) {
49
49
  return v;
50
50
  }
51
51
  async function main() {
52
- const argv = process.argv.slice(2);
52
+ const rawArgv = process.argv.slice(2);
53
+ // Skip leading '--' from pnpm's argument separator (pnpm run pinakes -- serve)
54
+ const argv = rawArgv[0] === '--' ? rawArgv.slice(1) : rawArgv;
53
55
  const subcommand = argv[0];
54
56
  const { flags } = parseFlags(argv.slice(1));
55
57
  switch (subcommand) {
@@ -106,7 +108,7 @@ async function main() {
106
108
  });
107
109
  // eslint-disable-next-line no-console
108
110
  console.log(`\nAudit complete: ${result.contradictions.contradictions.length} contradictions, ` +
109
- `${result.gaps_found} gaps, ${result.stub_pages_created.length} stub pages created.`);
111
+ `${result.gaps_found} gaps, ${result.topology_gaps} topology gaps.`);
110
112
  break;
111
113
  }
112
114
  case 'clean-wiki': {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Progress reporter for long-running CLI operations (D44).
3
+ *
4
+ * Writes phase headers and per-item progress to stderr so it doesn't
5
+ * interfere with structured stdout output or piping.
6
+ */
7
+ export interface ProgressReporter {
8
+ startPhase(name: string, total: number): void;
9
+ tick(label: string, detail?: string): void;
10
+ endPhase(summary: string): void;
11
+ }
12
+ /**
13
+ * Create a progress reporter that writes to stderr.
14
+ * Pass `quiet: true` to suppress all output (for tests or non-TTY).
15
+ */
16
+ export declare function createProgressReporter(opts?: {
17
+ quiet?: boolean;
18
+ }): ProgressReporter;
19
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/cli/progress.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,gBAAgB,CAkCnF"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Progress reporter for long-running CLI operations (D44).
3
+ *
4
+ * Writes phase headers and per-item progress to stderr so it doesn't
5
+ * interfere with structured stdout output or piping.
6
+ */
7
+ /**
8
+ * Create a progress reporter that writes to stderr.
9
+ * Pass `quiet: true` to suppress all output (for tests or non-TTY).
10
+ */
11
+ export function createProgressReporter(opts) {
12
+ const quiet = opts?.quiet ?? false;
13
+ let phaseStart = 0;
14
+ let current = 0;
15
+ let total = 0;
16
+ return {
17
+ startPhase(name, count) {
18
+ total = count;
19
+ current = 0;
20
+ phaseStart = Date.now();
21
+ if (!quiet) {
22
+ process.stderr.write(`${name} (${count} items)...\n`);
23
+ }
24
+ },
25
+ tick(label, detail) {
26
+ current++;
27
+ if (!quiet) {
28
+ const elapsed = ((Date.now() - phaseStart) / 1000).toFixed(1);
29
+ const parts = [` [${current}/${total}] ${label}`];
30
+ if (detail)
31
+ parts.push(` — ${detail}`);
32
+ parts.push(` (${elapsed}s)`);
33
+ process.stderr.write(parts.join('') + '\n');
34
+ }
35
+ },
36
+ endPhase(summary) {
37
+ if (!quiet) {
38
+ const elapsed = ((Date.now() - phaseStart) / 1000).toFixed(1);
39
+ process.stderr.write(` ${summary} (${elapsed}s total)\n\n`);
40
+ }
41
+ },
42
+ };
43
+ }
44
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/cli/progress.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAA0B;IAC/D,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC;IACnC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO;QACL,UAAU,CAAC,IAAY,EAAE,KAAa;YACpC,KAAK,GAAG,KAAK,CAAC;YACd,OAAO,GAAG,CAAC,CAAC;YACZ,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,KAAK,cAAc,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,KAAa,EAAE,MAAe;YACjC,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC9D,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;gBACnD,IAAI,MAAM;oBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC;gBAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,OAAe;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,OAAO,KAAK,OAAO,cAAc,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/cli/serve.js CHANGED
@@ -138,7 +138,7 @@ export async function buildServer(options) {
138
138
  'Only fall back to Grep/Read/Glob after checking the knowledge base, or when you need ' +
139
139
  'to find exact symbols, read specific source files, or make code changes. ' +
140
140
  `Use \`${executeToolName}\` for advanced operations: graph traversal, gap detection, writing new knowledge.`;
141
- const mcp = new McpServer({ name: serverName, version: '0.3.14' }, { capabilities: { tools: {} }, instructions });
141
+ const mcp = new McpServer({ name: serverName, version: '0.3.15' }, { capabilities: { tools: {} }, instructions });
142
142
  mcp.registerTool(searchToolName, searchToolConfig, instrumentHandler(searchToolName, makeSearchHandler({
143
143
  repository, embedder, bundle: projectBundle,
144
144
  personalBundle: personalBundle ?? undefined,
package/dist/db/client.js CHANGED
@@ -121,7 +121,7 @@ export function openDb(path, options = {}) {
121
121
  if (runMigrations) {
122
122
  writer
123
123
  .prepare('INSERT OR IGNORE INTO pinakes_meta (key, value) VALUES (?, ?)')
124
- .run('schema_version', '2');
124
+ .run('schema_version', '3');
125
125
  }
126
126
  logger.info({ path: absPath, sqliteVersion: versionRow.v }, 'opened SQLite db');
127
127
  return { path: absPath, writer, readers, drizzleWriter };
@@ -0,0 +1,13 @@
1
+ CREATE TABLE `pinakes_claims` (
2
+ `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
3
+ `scope` text NOT NULL,
4
+ `source_uri` text NOT NULL,
5
+ `chunk_id` text REFERENCES `pinakes_chunks`(`id`) ON DELETE SET NULL,
6
+ `topic` text NOT NULL,
7
+ `claim` text NOT NULL,
8
+ `extracted_at` integer NOT NULL
9
+ );
10
+ --> statement-breakpoint
11
+ CREATE INDEX `idx_claims_topic` ON `pinakes_claims` (`scope`,`topic`);
12
+ --> statement-breakpoint
13
+ CREATE INDEX `idx_claims_source` ON `pinakes_claims` (`scope`,`source_uri`);
@@ -0,0 +1,12 @@
1
+ -- Phase 11.1: Add numeric confidence_score with time decay support (D50)
2
+ -- The TEXT confidence column is PRESERVED for backward compatibility.
3
+
4
+ ALTER TABLE `pinakes_nodes` ADD `confidence_score` real NOT NULL DEFAULT 0.7;--> statement-breakpoint
5
+
6
+ -- Backfill from existing TEXT confidence column
7
+ UPDATE `pinakes_nodes` SET `confidence_score` = CASE `confidence`
8
+ WHEN 'extracted' THEN 0.7
9
+ WHEN 'inferred' THEN 0.5
10
+ WHEN 'ambiguous' THEN 0.3
11
+ ELSE 0.7
12
+ END;
@@ -22,6 +22,20 @@
22
22
  "when": 1776192000000,
23
23
  "tag": "0002_rename_kg_to_pinakes",
24
24
  "breakpoints": true
25
+ },
26
+ {
27
+ "idx": 3,
28
+ "version": "6",
29
+ "when": 1776134400000,
30
+ "tag": "0003_add_pinakes_claims",
31
+ "breakpoints": true
32
+ },
33
+ {
34
+ "idx": 4,
35
+ "version": "6",
36
+ "when": 1776220800000,
37
+ "tag": "0004_add_confidence_score",
38
+ "breakpoints": true
25
39
  }
26
40
  ]
27
41
  }