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 b4595ef974
commit 5721c05688
7006 changed files with 1367435 additions and 201 deletions

View File

@@ -0,0 +1,41 @@
function stringifyNode(node, custom) {
var type = node.type
var value = node.value
var buf
var customResult
if (custom && (customResult = custom(node)) !== undefined) {
return customResult
} else if (type === 'word' || type === 'space') {
return value
} else if (type === 'string') {
buf = node.quote || ''
return buf + value + (node.unclosed ? '' : buf)
} else if (type === 'comment') {
return '/*' + value + (node.unclosed ? '' : '*/')
} else if (type === 'div') {
return (node.before || '') + value + (node.after || '')
} else if (Array.isArray(node.nodes)) {
buf = stringify(node.nodes, custom)
if (type !== 'function') {
return buf
}
return value + '(' + (node.before || '') + buf + (node.after || '') + (node.unclosed ? '' : ')')
}
return value
}
function stringify(nodes, custom) {
var result, i
if (Array.isArray(nodes)) {
result = ''
for (i = nodes.length - 1; ~i; i -= 1) {
result = stringifyNode(nodes[i], custom) + result
}
return result
}
return stringifyNode(nodes, custom)
}
module.exports = stringify