@pella-labs/pinakes 0.4.4 → 0.5.1

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/dist/cli/audit-wiki.d.ts +1 -0
  2. package/dist/cli/audit-wiki.d.ts.map +1 -1
  3. package/dist/cli/audit-wiki.js +49 -25
  4. package/dist/cli/audit-wiki.js.map +1 -1
  5. package/dist/cli/claims.d.ts +46 -2
  6. package/dist/cli/claims.d.ts.map +1 -1
  7. package/dist/cli/claims.js +202 -14
  8. package/dist/cli/claims.js.map +1 -1
  9. package/dist/cli/contradiction.js +1 -1
  10. package/dist/cli/contradiction.js.map +1 -1
  11. package/dist/cli/crystallize-scheduler.d.ts +24 -0
  12. package/dist/cli/crystallize-scheduler.d.ts.map +1 -0
  13. package/dist/cli/crystallize-scheduler.js +164 -0
  14. package/dist/cli/crystallize-scheduler.js.map +1 -0
  15. package/dist/cli/crystallize.d.ts +57 -0
  16. package/dist/cli/crystallize.d.ts.map +1 -0
  17. package/dist/cli/crystallize.js +329 -0
  18. package/dist/cli/crystallize.js.map +1 -0
  19. package/dist/cli/index.js +29 -1
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/cli/serve.d.ts.map +1 -1
  22. package/dist/cli/serve.js +10 -2
  23. package/dist/cli/serve.js.map +1 -1
  24. package/dist/db/client.d.ts.map +1 -1
  25. package/dist/db/client.js +61 -2
  26. package/dist/db/client.js.map +1 -1
  27. package/dist/db/migrations/0005_claim_supersession.sql +6 -0
  28. package/dist/db/migrations/meta/_journal.json +7 -0
  29. package/dist/db/schema.d.ts +51 -0
  30. package/dist/db/schema.d.ts.map +1 -1
  31. package/dist/db/schema.js +7 -0
  32. package/dist/db/schema.js.map +1 -1
  33. package/dist/ingest/ingester.js +1 -1
  34. package/dist/ingest/ingester.js.map +1 -1
  35. package/dist/ingest/parse/markdown.d.ts +2 -2
  36. package/dist/ingest/parse/markdown.d.ts.map +1 -1
  37. package/dist/ingest/parse/markdown.js +2 -0
  38. package/dist/ingest/parse/markdown.js.map +1 -1
  39. package/dist/paths.d.ts +9 -0
  40. package/dist/paths.d.ts.map +1 -1
  41. package/dist/paths.js +38 -1
  42. package/dist/paths.js.map +1 -1
  43. package/package.json +1 -1
@@ -15,6 +15,7 @@ export interface WikiAuditResult {
15
15
  gaps_found: number;
16
16
  topology_gaps: number;
17
17
  stubs_generated: number;
18
+ superseded_claims: number;
18
19
  audit_report_path: string;
19
20
  }
20
21
  export declare function auditWikiCommand(opts: WikiAuditOptions): Promise<WikiAuditResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"audit-wiki.d.ts","sourceRoot":"","sources":["../../src/cli/audit-wiki.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQzE,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAgBvD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,mBAAmB,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAkGvF;AAkBD,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC5D,OAAO,CAAC,MAAM,EAAE,CAAC,CAgCnB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAYjE;AAMD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,MAAM,GACZ,WAAW,EAAE,CA0Bf;AAMD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EAAE,GACb,UAAU,EAAE,CA4Bd;AAeD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,UAAU,EAAE,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,GACnD,OAAO,CAAC,MAAM,CAAC,CAoDjB;AAmBD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,MAAM,GACZ,aAAa,CAoBf;AA6GD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAgChD"}
1
+ {"version":3,"file":"audit-wiki.d.ts","sourceRoot":"","sources":["../../src/cli/audit-wiki.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AASzE,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAgBvD,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,mBAAmB,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgHvF;AAkBD,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE;IAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC5D,OAAO,CAAC,MAAM,EAAE,CAAC,CAgCnB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAYjE;AAMD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,MAAM,GACZ,WAAW,EAAE,CA0Bf;AAMD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EAAE,GACb,UAAU,EAAE,CA4Bd;AAeD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,UAAU,EAAE,EACtB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,GACnD,OAAO,CAAC,MAAM,CAAC,CAkDjB;AAMD,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,MAAM,GACZ,aAAa,CAoBf;AAqID;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAgChD"}
@@ -1,9 +1,10 @@
1
- import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { join, resolve } from 'node:path';
1
+ import { mkdirSync, writeFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
3
  import { closeDb, openDb } from '../db/client.js';
4
4
  import { queryGaps } from '../gaps/detector.js';
5
5
  import { createLlmProvider } from '../llm/provider.js';
6
6
  import { resolveAbs, projectWikiPath as defaultProjectWikiPath, projectDbPath as defaultProjectDbPath, personalWikiPath as defaultPersonalWikiPath, personalDbPath as defaultPersonalDbPath, } from '../paths.js';
7
+ import { queryRecentlySuperseded } from './claims.js';
7
8
  import { contradictionScan } from './contradiction.js';
8
9
  import { createProgressReporter } from './progress.js';
9
10
  /**
@@ -80,10 +81,20 @@ export async function auditWikiCommand(opts) {
80
81
  if (opts.generateStubs && filteredGaps.length > 0 && llmProvider.available()) {
81
82
  stubsGenerated = await generateSynthesisStubs(filteredGaps, gapContexts, wikiPath, llmProvider, progress);
82
83
  }
83
- // 5. Generate audit report (D46 restructured: contradictions, gaps, health)
84
+ // 5. Query recently superseded claims for "Claim Evolution" section (Phase 11.2)
85
+ const lastAuditTs = bundle.writer
86
+ .prepare(`SELECT value FROM pinakes_meta WHERE key = ?`)
87
+ .get('last_audit_ts');
88
+ const sinceTs = lastAuditTs ? parseInt(lastAuditTs.value, 10) : undefined;
89
+ const supersededClaims = queryRecentlySuperseded(bundle.writer, scope, sinceTs);
90
+ // 6. Generate audit report (D46 restructured: contradictions, gaps, health, claim evolution)
84
91
  const healthMetrics = getHealthMetrics(bundle.writer, scope);
85
92
  const reportPath = join(wikiPath, '_audit-report.md');
86
- writeAuditReport(reportPath, contradictions, filteredGaps, topoGaps, gapContexts, healthMetrics, stubsGenerated);
93
+ writeAuditReport(reportPath, contradictions, filteredGaps, topoGaps, gapContexts, healthMetrics, stubsGenerated, supersededClaims);
94
+ // Stamp audit timestamp for next run's "since" filter
95
+ bundle.writer
96
+ .prepare(`INSERT OR REPLACE INTO pinakes_meta (key, value) VALUES ('last_audit_ts', ?)`)
97
+ .run(String(Date.now()));
87
98
  // eslint-disable-next-line no-console
88
99
  console.log(`\nAudit report written to: ${reportPath}`);
89
100
  return {
@@ -91,6 +102,7 @@ export async function auditWikiCommand(opts) {
91
102
  gaps_found: filteredGaps.length,
92
103
  topology_gaps: topoGaps.length,
93
104
  stubs_generated: stubsGenerated,
105
+ superseded_claims: supersededClaims.length,
94
106
  audit_report_path: reportPath,
95
107
  };
96
108
  }
@@ -217,13 +229,10 @@ Rules:
217
229
  - Keep it under 500 words
218
230
  - Output only the markdown content`;
219
231
  export async function generateSynthesisStubs(gaps, contexts, wikiRoot, llmProvider, progress) {
220
- const draftsDir = resolve(wikiRoot, '_audit-drafts');
221
- mkdirSync(draftsDir, { recursive: true });
222
- // Ensure _audit-drafts is gitignored
223
- ensureGitignored(wikiRoot, '_audit-drafts/');
232
+ mkdirSync(wikiRoot, { recursive: true });
224
233
  const MAX_STUBS = 20;
225
234
  const toGenerate = gaps.slice(0, MAX_STUBS);
226
- progress?.startPhase('Phase 3/3: Generating synthesis drafts', toGenerate.length);
235
+ progress?.startPhase('Phase 3/3: Generating synthesis pages', toGenerate.length);
227
236
  let generated = 0;
228
237
  for (const gap of toGenerate) {
229
238
  const ctx = contexts.find((c) => c.topic === gap.topic);
@@ -239,7 +248,7 @@ export async function generateSynthesisStubs(gaps, contexts, wikiRoot, llmProvid
239
248
  progress?.tick(gap.topic, 'skipped (invalid slug)');
240
249
  continue;
241
250
  }
242
- const filePath = join(draftsDir, `${slug}.md`);
251
+ const filePath = join(wikiRoot, `${slug}.md`);
243
252
  try {
244
253
  const excerpts = ctx.mentions
245
254
  .map((m) => `From ${m.source_uri}:\n${m.excerpt}`)
@@ -249,28 +258,19 @@ export async function generateSynthesisStubs(gaps, contexts, wikiRoot, llmProvid
249
258
  prompt: `Write a wiki page about "${gap.topic}" based on these excerpts:\n\n${excerpts}`,
250
259
  maxTokens: 1000,
251
260
  });
252
- writeFileSync(filePath, content, 'utf-8');
261
+ // Add inferred confidence frontmatter — stubs are synthesized, not crystallized
262
+ const frontmatter = '---\nconfidence: inferred\nsource: audit-wiki\n---\n\n';
263
+ writeFileSync(filePath, frontmatter + content, 'utf-8');
253
264
  generated++;
254
- progress?.tick(gap.topic, 'draft created');
265
+ progress?.tick(gap.topic, 'page created');
255
266
  }
256
267
  catch (err) {
257
268
  progress?.tick(gap.topic, `failed: ${err instanceof Error ? err.message.slice(0, 60) : err}`);
258
269
  }
259
270
  }
260
- progress?.endPhase(`${generated} drafts written to _audit-drafts/`);
271
+ progress?.endPhase(`${generated} pages written to wiki`);
261
272
  return generated;
262
273
  }
263
- function ensureGitignored(wikiRoot, entry) {
264
- // Look for .gitignore in the .pinakes parent directory
265
- const pinakesDir = resolve(wikiRoot, '..');
266
- const gitignorePath = join(pinakesDir, '.gitignore');
267
- if (!existsSync(gitignorePath))
268
- return;
269
- const content = readFileSync(gitignorePath, 'utf-8');
270
- if (content.includes(entry))
271
- return;
272
- appendFileSync(gitignorePath, `\n${entry}\n`, 'utf-8');
273
- }
274
274
  export function getHealthMetrics(reader, scope) {
275
275
  const fileCount = reader.prepare(`SELECT COUNT(DISTINCT source_uri) as c FROM pinakes_nodes WHERE scope = ?`).get(scope)?.c ?? 0;
276
276
  const chunkCount = reader.prepare(`SELECT COUNT(*) as c FROM pinakes_chunks ch
@@ -283,7 +283,7 @@ export function getHealthMetrics(reader, scope) {
283
283
  // ---------------------------------------------------------------------------
284
284
  // Audit report (D46 restructured)
285
285
  // ---------------------------------------------------------------------------
286
- function writeAuditReport(reportPath, contradictions, filteredGaps, topoGaps, gapContexts, health, stubsGenerated = 0) {
286
+ function writeAuditReport(reportPath, contradictions, filteredGaps, topoGaps, gapContexts, health, stubsGenerated = 0, supersededClaims = []) {
287
287
  const lines = [
288
288
  '# Wiki Audit Report',
289
289
  '',
@@ -355,6 +355,30 @@ function writeAuditReport(reportPath, contradictions, filteredGaps, topoGaps, ga
355
355
  lines.push(`| Chunks | ${health.chunk_count} |`);
356
356
  lines.push(`| Edges | ${health.edge_count} |`);
357
357
  lines.push('');
358
+ // Section 4: Claim Evolution (Phase 11.2)
359
+ lines.push('## Claim Evolution');
360
+ lines.push('');
361
+ if (supersededClaims.length === 0) {
362
+ lines.push('*No claims superseded since last audit*');
363
+ }
364
+ else {
365
+ lines.push(`**${supersededClaims.length} claims evolved** since last audit`);
366
+ lines.push('');
367
+ for (const sc of supersededClaims.slice(0, 20)) {
368
+ const date = new Date(sc.superseded_at).toISOString().split('T')[0];
369
+ if (sc.new_claim) {
370
+ lines.push(`- **${sc.topic}** (${sc.source_uri}, ${date})`);
371
+ lines.push(` - Previously (v${sc.old_version}): "${truncate(sc.old_claim, 120)}"`);
372
+ lines.push(` - Now (v${sc.new_version}): "${truncate(sc.new_claim, 120)}"`);
373
+ }
374
+ else {
375
+ lines.push(`- **${sc.topic}** (${sc.source_uri}, ${date}) -- *retired*`);
376
+ lines.push(` - Was (v${sc.old_version}): "${truncate(sc.old_claim, 120)}"`);
377
+ }
378
+ lines.push('');
379
+ }
380
+ }
381
+ lines.push('');
358
382
  // Generated drafts section
359
383
  if (stubsGenerated > 0) {
360
384
  lines.push('## Generated Drafts');
@@ -1 +1 @@
1
- {"version":3,"file":"audit-wiki.js","sourceRoot":"","sources":["../../src/cli/audit-wiki.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-wiki.js","sourceRoot":"","sources":["../../src/cli/audit-wiki.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
1
  /**
2
- * Topic-claim extraction for the audit-wiki v2 contradiction pipeline (D41).
2
+ * Topic-claim extraction with supersession tracking (D41, D51).
3
3
  *
4
4
  * Phase A of the two-phase pipeline:
5
5
  * 1. For each wiki file, send content to LLM → extract {topic, claims[]} pairs
6
6
  * 2. Persist claims to `pinakes_claims` table
7
7
  * 3. Skip unchanged files (incremental via source_sha comparison)
8
+ *
9
+ * Phase 11.2 adds:
10
+ * - Soft-delete supersession instead of hard-delete
11
+ * - Version chains per (scope, source_uri, topic)
12
+ * - Version chain pruning (max 5 by default)
13
+ * - Confidence adjustments on supersession events
8
14
  */
9
15
  import type { Database as BetterSqliteDatabase } from 'better-sqlite3';
10
16
  import type { LlmProvider } from '../llm/provider.js';
@@ -22,6 +28,28 @@ export interface ClaimExtractionResult {
22
28
  files_skipped: number;
23
29
  claims_extracted: number;
24
30
  }
31
+ export interface ClaimVersion {
32
+ id: number;
33
+ scope: string;
34
+ source_uri: string;
35
+ topic: string;
36
+ claim: string;
37
+ version: number;
38
+ extracted_at: number;
39
+ superseded_by: number | null;
40
+ superseded_at: number | null;
41
+ }
42
+ export interface SupersededClaim {
43
+ id: number;
44
+ source_uri: string;
45
+ topic: string;
46
+ old_claim: string;
47
+ new_claim: string | null;
48
+ old_version: number;
49
+ new_version: number | null;
50
+ superseded_at: number;
51
+ superseded_by: number | null;
52
+ }
25
53
  /**
26
54
  * Extract topics and claims from a single file's content via LLM.
27
55
  */
@@ -33,10 +61,17 @@ export declare function parseExtractionResponse(response: string): TopicClaims[]
33
61
  /**
34
62
  * Extract claims from all wiki files in a scope, persisting to DB.
35
63
  * Skips files whose source_sha hasn't changed since last extraction.
64
+ *
65
+ * Phase 11.2: uses soft-delete supersession instead of hard-delete.
36
66
  */
37
67
  export declare function extractAllClaims(writer: BetterSqliteDatabase, scope: string, llmProvider: LlmProvider, onTick?: (sourceUri: string, detail: string) => void): Promise<ClaimExtractionResult>;
38
68
  /**
39
- * Query all persisted claims for a scope, optionally filtered by topic.
69
+ * Prune version chains that exceed MAX_CLAIM_VERSIONS per (scope, source_uri, topic).
70
+ * Keeps the newest MAX_CLAIM_VERSIONS claims, hard-deletes the rest.
71
+ */
72
+ export declare function pruneVersionChains(writer: BetterSqliteDatabase, scope: string, sourceUri: string): void;
73
+ /**
74
+ * Query all active (non-superseded) claims for a scope, optionally filtered by topic.
40
75
  */
41
76
  export declare function queryClaims(reader: BetterSqliteDatabase, scope: string, topic?: string): Array<{
42
77
  id: number;
@@ -45,5 +80,14 @@ export declare function queryClaims(reader: BetterSqliteDatabase, scope: string,
45
80
  claim: string;
46
81
  extracted_at: number;
47
82
  }>;
83
+ /**
84
+ * Return the full version chain for a topic within a scope, ordered by version descending.
85
+ */
86
+ export declare function queryClaimHistory(reader: BetterSqliteDatabase, scope: string, topic: string): ClaimVersion[];
87
+ /**
88
+ * Return claims superseded after a given timestamp.
89
+ * If `since` is omitted, returns all superseded claims.
90
+ */
91
+ export declare function queryRecentlySuperseded(reader: BetterSqliteDatabase, scope: string, since?: number): SupersededClaim[];
48
92
  export {};
49
93
  //# sourceMappingURL=claims.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../src/cli/claims.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOtD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAuBD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,cAAc,EAAE,CAAC,CAwB3B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,IAAI,CAwB9E;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACnD,OAAO,CAAC,qBAAqB,CAAC,CAsFhC;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB/F"}
1
+ {"version":3,"file":"claims.d.ts","sourceRoot":"","sources":["../../src/cli/claims.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,33 @@
1
1
  /**
2
- * Topic-claim extraction for the audit-wiki v2 contradiction pipeline (D41).
2
+ * Topic-claim extraction with supersession tracking (D41, D51).
3
3
  *
4
4
  * Phase A of the two-phase pipeline:
5
5
  * 1. For each wiki file, send content to LLM → extract {topic, claims[]} pairs
6
6
  * 2. Persist claims to `pinakes_claims` table
7
7
  * 3. Skip unchanged files (incremental via source_sha comparison)
8
+ *
9
+ * Phase 11.2 adds:
10
+ * - Soft-delete supersession instead of hard-delete
11
+ * - Version chains per (scope, source_uri, topic)
12
+ * - Version chain pruning (max 5 by default)
13
+ * - Confidence adjustments on supersession events
8
14
  */
15
+ import { SUPERSESSION_PENALTY, SUPERSESSION_BOOST } from '../gate/confidence.js';
9
16
  import { logger } from '../observability/logger.js';
10
17
  // ----------------------------------------------------------------------------
18
+ // Constants
19
+ // ----------------------------------------------------------------------------
20
+ /** Maximum claim versions to keep per (scope, source_uri, topic). */
21
+ const MAX_CLAIM_VERSIONS = (() => {
22
+ const env = process.env.PINAKES_MAX_CLAIM_VERSIONS;
23
+ if (env) {
24
+ const parsed = parseInt(env, 10);
25
+ if (!Number.isNaN(parsed) && parsed > 0)
26
+ return parsed;
27
+ }
28
+ return 5;
29
+ })();
30
+ // ----------------------------------------------------------------------------
11
31
  // Extraction prompt
12
32
  // ----------------------------------------------------------------------------
13
33
  const EXTRACTION_SYSTEM = `You are a claim extractor for a knowledge wiki. Given the content of a wiki page, identify the key topics discussed and extract factual claims made about each topic.
@@ -75,12 +95,11 @@ export function parseExtractionResponse(response) {
75
95
  return null;
76
96
  }
77
97
  }
78
- // ----------------------------------------------------------------------------
79
- // Persistence + incremental extraction
80
- // ----------------------------------------------------------------------------
81
98
  /**
82
99
  * Extract claims from all wiki files in a scope, persisting to DB.
83
100
  * Skips files whose source_sha hasn't changed since last extraction.
101
+ *
102
+ * Phase 11.2: uses soft-delete supersession instead of hard-delete.
84
103
  */
85
104
  export async function extractAllClaims(writer, scope, llmProvider, onTick) {
86
105
  // Get all wiki files with their content and hashes
@@ -116,18 +135,79 @@ export async function extractAllClaims(writer, scope, llmProvider, onTick) {
116
135
  }
117
136
  try {
118
137
  const claims = await extractClaimsFromFile(content, file.source_uri, llmProvider);
119
- // Delete old claims for this file and insert new ones
120
138
  const now = Date.now();
121
139
  writer.exec('BEGIN');
122
140
  try {
123
- writer
124
- .prepare(`DELETE FROM pinakes_claims WHERE scope = ? AND source_uri = ?`)
125
- .run(scope, file.source_uri);
126
- const insertStmt = writer.prepare(`INSERT INTO pinakes_claims (scope, source_uri, topic, claim, extracted_at)
127
- VALUES (?, ?, ?, ?, ?)`);
141
+ // Step 1: Load old active claims for this file
142
+ const oldClaims = writer
143
+ .prepare(`SELECT id, topic, claim, version FROM pinakes_claims
144
+ WHERE scope = ? AND source_uri = ? AND superseded_at IS NULL`)
145
+ .all(scope, file.source_uri);
146
+ // Step 2: Group old claims by topic (lowercased)
147
+ const oldByTopic = new Map();
148
+ for (const oc of oldClaims) {
149
+ const key = oc.topic.toLowerCase();
150
+ let list = oldByTopic.get(key);
151
+ if (!list) {
152
+ list = [];
153
+ oldByTopic.set(key, list);
154
+ }
155
+ list.push(oc);
156
+ }
157
+ // Step 3: Insert new claims with version=1, collect IDs
158
+ const insertStmt = writer.prepare(`INSERT INTO pinakes_claims (scope, source_uri, topic, claim, extracted_at, version)
159
+ VALUES (?, ?, ?, ?, ?, ?)`);
160
+ // Group new claims by topic for matching
161
+ const newByTopic = new Map();
128
162
  for (const claim of claims) {
129
- insertStmt.run(scope, file.source_uri, claim.topic, claim.claim, now);
163
+ const key = claim.topic.toLowerCase();
164
+ // Check if there's a matching old claim to get version from
165
+ const oldGroup = oldByTopic.get(key);
166
+ let version = 1;
167
+ if (oldGroup && oldGroup.length > 0) {
168
+ // Take the first available old claim's version + 1
169
+ version = oldGroup[0].version + 1;
170
+ }
171
+ const info = insertStmt.run(scope, file.source_uri, claim.topic, claim.claim, now, version);
172
+ const newId = Number(info.lastInsertRowid);
173
+ let list = newByTopic.get(key);
174
+ if (!list) {
175
+ list = [];
176
+ newByTopic.set(key, list);
177
+ }
178
+ list.push({ claim, id: newId });
130
179
  }
180
+ // Step 4: Match old→new by topic and supersede
181
+ const supersedStmt = writer.prepare(`UPDATE pinakes_claims SET superseded_by = ?, superseded_at = ? WHERE id = ?`);
182
+ const affectedSourceUris = new Set();
183
+ for (const [topicKey, oldGroup] of oldByTopic) {
184
+ const newGroup = newByTopic.get(topicKey);
185
+ if (newGroup && newGroup.length > 0) {
186
+ // Match old claims 1:1 with new claims (FIFO)
187
+ const matchCount = Math.min(oldGroup.length, newGroup.length);
188
+ for (let i = 0; i < matchCount; i++) {
189
+ supersedStmt.run(newGroup[i].id, now, oldGroup[i].id);
190
+ }
191
+ // Any remaining old claims without a new match are retired
192
+ for (let i = matchCount; i < oldGroup.length; i++) {
193
+ supersedStmt.run(null, now, oldGroup[i].id);
194
+ }
195
+ affectedSourceUris.add(file.source_uri);
196
+ }
197
+ else {
198
+ // Topic removed entirely — retire all old claims
199
+ for (const oc of oldGroup) {
200
+ supersedStmt.run(null, now, oc.id);
201
+ }
202
+ affectedSourceUris.add(file.source_uri);
203
+ }
204
+ }
205
+ // Step 5: Apply confidence adjustments if any supersession happened
206
+ if (affectedSourceUris.size > 0) {
207
+ applySupersessionConfidence(writer, scope, file.source_uri);
208
+ }
209
+ // Step 6: Version chain pruning
210
+ pruneVersionChains(writer, scope, file.source_uri);
131
211
  // Record the sha so we can skip this file next time
132
212
  writer
133
213
  .prepare(`INSERT OR REPLACE INTO pinakes_meta (key, value) VALUES (?, ?)`)
@@ -149,21 +229,129 @@ export async function extractAllClaims(writer, scope, llmProvider, onTick) {
149
229
  }
150
230
  return result;
151
231
  }
232
+ // ----------------------------------------------------------------------------
233
+ // Supersession helpers
234
+ // ----------------------------------------------------------------------------
235
+ /**
236
+ * Apply confidence penalty to nodes in a file that had claims superseded.
237
+ * The penalty is small (-0.05) since supersession means the info evolved,
238
+ * not necessarily that it was wrong. A boost is applied for the new claims.
239
+ */
240
+ function applySupersessionConfidence(writer, scope, sourceUri) {
241
+ // Penalty on nodes with superseded claims (stale info)
242
+ writer
243
+ .prepare(`UPDATE pinakes_nodes SET confidence_score = MAX(0.1, confidence_score - ?)
244
+ WHERE scope = ? AND source_uri = ?`)
245
+ .run(SUPERSESSION_PENALTY, scope, sourceUri);
246
+ // Boost on the same nodes (they now have fresh claims too)
247
+ writer
248
+ .prepare(`UPDATE pinakes_nodes SET confidence_score = MIN(1.0, confidence_score + ?)
249
+ WHERE scope = ? AND source_uri = ?`)
250
+ .run(SUPERSESSION_BOOST, scope, sourceUri);
251
+ }
252
+ /**
253
+ * Prune version chains that exceed MAX_CLAIM_VERSIONS per (scope, source_uri, topic).
254
+ * Keeps the newest MAX_CLAIM_VERSIONS claims, hard-deletes the rest.
255
+ */
256
+ export function pruneVersionChains(writer, scope, sourceUri) {
257
+ // Find topics with too many versions
258
+ const groups = writer
259
+ .prepare(`SELECT topic, COUNT(*) as cnt FROM pinakes_claims
260
+ WHERE scope = ? AND source_uri = ?
261
+ GROUP BY LOWER(topic)
262
+ HAVING cnt > ?`)
263
+ .all(scope, sourceUri, MAX_CLAIM_VERSIONS);
264
+ for (const group of groups) {
265
+ // Get oldest claims beyond the limit (ordered by version ASC, skip newest MAX_CLAIM_VERSIONS)
266
+ const toDelete = writer
267
+ .prepare(`SELECT id FROM pinakes_claims
268
+ WHERE scope = ? AND source_uri = ? AND LOWER(topic) = LOWER(?)
269
+ ORDER BY version DESC, id DESC
270
+ LIMIT -1 OFFSET ?`)
271
+ .all(scope, sourceUri, group.topic, MAX_CLAIM_VERSIONS);
272
+ if (toDelete.length > 0) {
273
+ const ids = toDelete.map((r) => r.id);
274
+ const placeholders = ids.map(() => '?').join(',');
275
+ // Clear any superseded_by pointers referencing claims about to be deleted
276
+ writer.prepare(`UPDATE pinakes_claims SET superseded_by = NULL WHERE superseded_by IN (${placeholders})`).run(...ids);
277
+ // Delete the oldest versions
278
+ writer.prepare(`DELETE FROM pinakes_claims WHERE id IN (${placeholders})`).run(...ids);
279
+ }
280
+ }
281
+ }
282
+ // ----------------------------------------------------------------------------
283
+ // Query helpers
284
+ // ----------------------------------------------------------------------------
152
285
  /**
153
- * Query all persisted claims for a scope, optionally filtered by topic.
286
+ * Query all active (non-superseded) claims for a scope, optionally filtered by topic.
154
287
  */
155
288
  export function queryClaims(reader, scope, topic) {
156
289
  if (topic) {
157
290
  return reader
158
291
  .prepare(`SELECT id, source_uri, topic, claim, extracted_at
159
- FROM pinakes_claims WHERE scope = ? AND topic = ?
292
+ FROM pinakes_claims WHERE scope = ? AND topic = ? AND superseded_at IS NULL
160
293
  ORDER BY source_uri`)
161
294
  .all(scope, topic);
162
295
  }
163
296
  return reader
164
297
  .prepare(`SELECT id, source_uri, topic, claim, extracted_at
165
- FROM pinakes_claims WHERE scope = ?
298
+ FROM pinakes_claims WHERE scope = ? AND superseded_at IS NULL
166
299
  ORDER BY topic, source_uri`)
167
300
  .all(scope);
168
301
  }
302
+ /**
303
+ * Return the full version chain for a topic within a scope, ordered by version descending.
304
+ */
305
+ export function queryClaimHistory(reader, scope, topic) {
306
+ return reader
307
+ .prepare(`SELECT id, scope, source_uri, topic, claim, version, extracted_at, superseded_by, superseded_at
308
+ FROM pinakes_claims
309
+ WHERE scope = ? AND LOWER(topic) = LOWER(?)
310
+ ORDER BY version DESC`)
311
+ .all(scope, topic);
312
+ }
313
+ /**
314
+ * Return claims superseded after a given timestamp.
315
+ * If `since` is omitted, returns all superseded claims.
316
+ */
317
+ export function queryRecentlySuperseded(reader, scope, since) {
318
+ const rows = since != null
319
+ ? reader
320
+ .prepare(`SELECT id, source_uri, topic, claim, version, superseded_at, superseded_by
321
+ FROM pinakes_claims
322
+ WHERE scope = ? AND superseded_at IS NOT NULL AND superseded_at > ?
323
+ ORDER BY superseded_at DESC`)
324
+ .all(scope, since)
325
+ : reader
326
+ .prepare(`SELECT id, source_uri, topic, claim, version, superseded_at, superseded_by
327
+ FROM pinakes_claims
328
+ WHERE scope = ? AND superseded_at IS NOT NULL
329
+ ORDER BY superseded_at DESC`)
330
+ .all(scope);
331
+ return rows.map((row) => resolveSupersededClaim(reader, row));
332
+ }
333
+ function resolveSupersededClaim(reader, row) {
334
+ let newClaim = null;
335
+ let newVersion = null;
336
+ if (row.superseded_by != null) {
337
+ const successor = reader
338
+ .prepare(`SELECT claim, version FROM pinakes_claims WHERE id = ?`)
339
+ .get(row.superseded_by);
340
+ if (successor) {
341
+ newClaim = successor.claim;
342
+ newVersion = successor.version;
343
+ }
344
+ }
345
+ return {
346
+ id: row.id,
347
+ source_uri: row.source_uri,
348
+ topic: row.topic,
349
+ old_claim: row.claim,
350
+ new_claim: newClaim,
351
+ old_version: row.version,
352
+ new_version: newVersion,
353
+ superseded_at: row.superseded_at,
354
+ superseded_by: row.superseded_by,
355
+ };
356
+ }
169
357
  //# sourceMappingURL=claims.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claims.js","sourceRoot":"","sources":["../../src/cli/claims.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAuBpD,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,iBAAiB,GAAG;;;;;;;;;;;oCAWU,CAAC;AAErC,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAe,EACf,SAAiB,EACjB,WAAwB;IAExB,MAAM,MAAM,GAAG,0DAA0D,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;IAExG,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC;QAC1C,MAAM,EAAE,iBAAiB;QACzB,MAAM;QACN,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;gBACpC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;gBACnB,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,IAAI,CAAC;QACH,6CAA6C;QAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEvD,uBAAuB;QACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAA+B,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAE/C,qBAAqB;QACrB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CACzB,CAAC,CAAC,EAAoB,EAAE,CACtB,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;YAC3B,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAClB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YACvB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAC/C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,uCAAuC;AACvC,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAA4B,EAC5B,KAAa,EACb,WAAwB,EACxB,MAAoD;IAEpD,mDAAmD;IACnD,MAAM,KAAK,GAAG,MAAM;SACjB,OAAO,CACN,sFAAsF,CACvF;SACA,GAAG,CAAC,KAAK,CAAC,CAAC;IAEd,MAAM,MAAM,GAA0B;QACpC,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,CAAC;KACpB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,6DAA6D;QAC7D,MAAM,aAAa,GAAG,MAAM;aACzB,OAAO,CACN,8CAA8C,CAC/C;aACA,GAAG,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAEjD,IAAI,aAAa,EAAE,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QAED,8CAA8C;QAC9C,MAAM,MAAM,GAAG,MAAM;aAClB,OAAO,CACN;;;gCAGwB,CACzB;aACA,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACpB,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;YAC7C,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAElF,sDAAsD;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM;qBACH,OAAO,CAAC,+DAA+D,CAAC;qBACxE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAE/B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAC/B;kCACwB,CACzB,CAAC;gBACF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACxE,CAAC;gBAED,oDAAoD;gBACpD,MAAM;qBACH,OAAO,CACN,gEAAgE,CACjE;qBACA,GAAG,CAAC,cAAc,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAElE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACxB,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,MAAM,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC;YACzC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,gBAAgB,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;QAC/G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,kCAAkC,CAAC,CAAC;YACtF,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,MAA4B,EAC5B,KAAa,EACb,KAAc;IAEd,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,MAAM;aACV,OAAO,CACN;;6BAEqB,CACtB;aACA,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,MAAM;SACV,OAAO,CACN;;kCAE4B,CAC7B;SACA,GAAG,CAAC,KAAK,CAAC,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"claims.js","sourceRoot":"","sources":["../../src/cli/claims.ts"],"names":[],"mappings":"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"}