feat: robust metric extraction with confidence score and proof snippets

- fixed Year-Prefix Bug in MetricParser
- added metric_confidence and metric_proof_text to database
- added Entity-Check and Annual-Priority to LLM prompt
- improved UI: added confidence traffic light and mouse-over proof tooltip
- restored missing API endpoints (create, bulk, wiki-override)
This commit is contained in:
2026-01-23 21:16:07 +00:00
parent c5652fc9b5
commit e43e129771
7006 changed files with 1367435 additions and 201 deletions

View File

@@ -0,0 +1,9 @@
export type Callback = (
directory: string,
files: string[],
) => string | false | void;
export default function (
directory: string,
callback: Callback,
): string | void;

View File

@@ -0,0 +1,13 @@
declare namespace escalade {
export type Callback = (
directory: string,
files: string[],
) => string | false | void;
}
declare function escalade(
directory: string,
callback: escalade.Callback,
): string | void;
export = escalade;

View File

@@ -0,0 +1,18 @@
const { dirname, resolve } = require('path');
const { readdirSync, statSync } = require('fs');
module.exports = function (start, callback) {
let dir = resolve('.', start);
let tmp, stats = statSync(dir);
if (!stats.isDirectory()) {
dir = dirname(dir);
}
while (true) {
tmp = callback(dir, readdirSync(dir));
if (tmp) return resolve(dir, tmp);
dir = dirname(tmp = dir);
if (tmp === dir) break;
}
}

View File

@@ -0,0 +1,18 @@
import { dirname, resolve } from 'path';
import { readdirSync, statSync } from 'fs';
export default function (start, callback) {
let dir = resolve('.', start);
let tmp, stats = statSync(dir);
if (!stats.isDirectory()) {
dir = dirname(dir);
}
while (true) {
tmp = callback(dir, readdirSync(dir));
if (tmp) return resolve(dir, tmp);
dir = dirname(tmp = dir);
if (tmp === dir) break;
}
}