@wanshi-kg/wanshi 0.1.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 (443) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +458 -0
  3. package/dist/__tests__/helpers.js +27 -0
  4. package/dist/__tests__/helpers.js.map +1 -0
  5. package/dist/cli/commands/export.command.js +99 -0
  6. package/dist/cli/commands/export.command.js.map +1 -0
  7. package/dist/cli/commands/index.js +22 -0
  8. package/dist/cli/commands/index.js.map +1 -0
  9. package/dist/cli/commands/inspectMerges.command.js +84 -0
  10. package/dist/cli/commands/inspectMerges.command.js.map +1 -0
  11. package/dist/cli/commands/metrics.command.js +196 -0
  12. package/dist/cli/commands/metrics.command.js.map +1 -0
  13. package/dist/cli/commands/process.command.js +82 -0
  14. package/dist/cli/commands/process.command.js.map +1 -0
  15. package/dist/cli/commands/watch.command.js +91 -0
  16. package/dist/cli/commands/watch.command.js.map +1 -0
  17. package/dist/cli/index.js +269 -0
  18. package/dist/cli/index.js.map +1 -0
  19. package/dist/cli/optionsToConfig.js +160 -0
  20. package/dist/cli/optionsToConfig.js.map +1 -0
  21. package/dist/config/index.js +59 -0
  22. package/dist/config/index.js.map +1 -0
  23. package/dist/config/legacyHints.js +113 -0
  24. package/dist/config/legacyHints.js.map +1 -0
  25. package/dist/config/schema.js +803 -0
  26. package/dist/config/schema.js.map +1 -0
  27. package/dist/config/ui.js +221 -0
  28. package/dist/config/ui.js.map +1 -0
  29. package/dist/core/DirectoryProcessor.js +725 -0
  30. package/dist/core/DirectoryProcessor.js.map +1 -0
  31. package/dist/core/adapters/IStructuredAdapter.js +3 -0
  32. package/dist/core/adapters/IStructuredAdapter.js.map +1 -0
  33. package/dist/core/adapters/SqliteAdapter.js +267 -0
  34. package/dist/core/adapters/SqliteAdapter.js.map +1 -0
  35. package/dist/core/adapters/StructuredAdapterRegistry.js +31 -0
  36. package/dist/core/adapters/StructuredAdapterRegistry.js.map +1 -0
  37. package/dist/core/adapters/index.js +20 -0
  38. package/dist/core/adapters/index.js.map +1 -0
  39. package/dist/core/checkpoint/CheckpointService.js +188 -0
  40. package/dist/core/checkpoint/CheckpointService.js.map +1 -0
  41. package/dist/core/checkpoint/index.js +18 -0
  42. package/dist/core/checkpoint/index.js.map +1 -0
  43. package/dist/core/corpus/CorpusAnalyzer.js +266 -0
  44. package/dist/core/corpus/CorpusAnalyzer.js.map +1 -0
  45. package/dist/core/corpus/CorpusProfileStore.js +92 -0
  46. package/dist/core/corpus/CorpusProfileStore.js.map +1 -0
  47. package/dist/core/corpus/index.js +21 -0
  48. package/dist/core/corpus/index.js.map +1 -0
  49. package/dist/core/corpus/normalizeGlossary.js +60 -0
  50. package/dist/core/corpus/normalizeGlossary.js.map +1 -0
  51. package/dist/core/corpus/relPath.js +52 -0
  52. package/dist/core/corpus/relPath.js.map +1 -0
  53. package/dist/core/corpus/termFrequency.js +86 -0
  54. package/dist/core/corpus/termFrequency.js.map +1 -0
  55. package/dist/core/cost/CostMeter.js +235 -0
  56. package/dist/core/cost/CostMeter.js.map +1 -0
  57. package/dist/core/cost/index.js +19 -0
  58. package/dist/core/cost/index.js.map +1 -0
  59. package/dist/core/cost/prices.js +38 -0
  60. package/dist/core/cost/prices.js.map +1 -0
  61. package/dist/core/cv/ObjectDetectionService.js +119 -0
  62. package/dist/core/cv/ObjectDetectionService.js.map +1 -0
  63. package/dist/core/di/ContainerFactory.js +670 -0
  64. package/dist/core/di/ContainerFactory.js.map +1 -0
  65. package/dist/core/di/DIContainer.js +103 -0
  66. package/dist/core/di/DIContainer.js.map +1 -0
  67. package/dist/core/di/index.js +19 -0
  68. package/dist/core/di/index.js.map +1 -0
  69. package/dist/core/errors/CustomErrors.js +342 -0
  70. package/dist/core/errors/CustomErrors.js.map +1 -0
  71. package/dist/core/errors/index.js +18 -0
  72. package/dist/core/errors/index.js.map +1 -0
  73. package/dist/core/export/KnowledgeGraphExportService.js +56 -0
  74. package/dist/core/export/KnowledgeGraphExportService.js.map +1 -0
  75. package/dist/core/export/index.js +19 -0
  76. package/dist/core/export/index.js.map +1 -0
  77. package/dist/core/export/strategies/GraphitiExportStrategy.js +115 -0
  78. package/dist/core/export/strategies/GraphitiExportStrategy.js.map +1 -0
  79. package/dist/core/export/strategies/GraphvizDotExportStrategy.js +331 -0
  80. package/dist/core/export/strategies/GraphvizDotExportStrategy.js.map +1 -0
  81. package/dist/core/export/strategies/IExportStrategy.js +3 -0
  82. package/dist/core/export/strategies/IExportStrategy.js.map +1 -0
  83. package/dist/core/export/strategies/JsonExportStrategy.js +19 -0
  84. package/dist/core/export/strategies/JsonExportStrategy.js.map +1 -0
  85. package/dist/core/export/strategies/JsonlExportStrategy.js +69 -0
  86. package/dist/core/export/strategies/JsonlExportStrategy.js.map +1 -0
  87. package/dist/core/export/strategies/KblamExportStrategy.js +36 -0
  88. package/dist/core/export/strategies/KblamExportStrategy.js.map +1 -0
  89. package/dist/core/export/strategies/LoraExportStrategy.js +46 -0
  90. package/dist/core/export/strategies/LoraExportStrategy.js.map +1 -0
  91. package/dist/core/export/strategies/McpExportStrategy.js +67 -0
  92. package/dist/core/export/strategies/McpExportStrategy.js.map +1 -0
  93. package/dist/core/export/strategies/index.js +25 -0
  94. package/dist/core/export/strategies/index.js.map +1 -0
  95. package/dist/core/export/strategies/kbTriples.js +60 -0
  96. package/dist/core/export/strategies/kbTriples.js.map +1 -0
  97. package/dist/core/index.js +22 -0
  98. package/dist/core/index.js.map +1 -0
  99. package/dist/core/knowledge/KnowledgeGraphBuilder.js +627 -0
  100. package/dist/core/knowledge/KnowledgeGraphBuilder.js.map +1 -0
  101. package/dist/core/knowledge/MergeRecord.js +3 -0
  102. package/dist/core/knowledge/MergeRecord.js.map +1 -0
  103. package/dist/core/knowledge/canon/Canonicalizer.js +414 -0
  104. package/dist/core/knowledge/canon/Canonicalizer.js.map +1 -0
  105. package/dist/core/knowledge/canon/index.js +18 -0
  106. package/dist/core/knowledge/canon/index.js.map +1 -0
  107. package/dist/core/knowledge/contradiction/HeuristicContradictionChecker.js +92 -0
  108. package/dist/core/knowledge/contradiction/HeuristicContradictionChecker.js.map +1 -0
  109. package/dist/core/knowledge/contradiction/LlmContradictionChecker.js +52 -0
  110. package/dist/core/knowledge/contradiction/LlmContradictionChecker.js.map +1 -0
  111. package/dist/core/knowledge/contradiction/index.js +19 -0
  112. package/dist/core/knowledge/contradiction/index.js.map +1 -0
  113. package/dist/core/knowledge/grounding/KeywordGroundingChecker.js +33 -0
  114. package/dist/core/knowledge/grounding/KeywordGroundingChecker.js.map +1 -0
  115. package/dist/core/knowledge/grounding/MiniCheckGroundingChecker.js +82 -0
  116. package/dist/core/knowledge/grounding/MiniCheckGroundingChecker.js.map +1 -0
  117. package/dist/core/knowledge/grounding/index.js +20 -0
  118. package/dist/core/knowledge/grounding/index.js.map +1 -0
  119. package/dist/core/knowledge/grounding/verbalize.js +38 -0
  120. package/dist/core/knowledge/grounding/verbalize.js.map +1 -0
  121. package/dist/core/knowledge/images/imageMetaGraph.js +136 -0
  122. package/dist/core/knowledge/images/imageMetaGraph.js.map +1 -0
  123. package/dist/core/knowledge/index.js +20 -0
  124. package/dist/core/knowledge/index.js.map +1 -0
  125. package/dist/core/knowledge/merging/KnowledgeMerger.js +624 -0
  126. package/dist/core/knowledge/merging/KnowledgeMerger.js.map +1 -0
  127. package/dist/core/knowledge/references/ReferenceResolver.js +184 -0
  128. package/dist/core/knowledge/references/ReferenceResolver.js.map +1 -0
  129. package/dist/core/knowledge/references/citations/CitationEvidenceProcessor.js +401 -0
  130. package/dist/core/knowledge/references/citations/CitationEvidenceProcessor.js.map +1 -0
  131. package/dist/core/knowledge/references/citations/CitationResolver.js +95 -0
  132. package/dist/core/knowledge/references/citations/CitationResolver.js.map +1 -0
  133. package/dist/core/knowledge/references/citations/GrobidClient.js +143 -0
  134. package/dist/core/knowledge/references/citations/GrobidClient.js.map +1 -0
  135. package/dist/core/knowledge/references/citations/TitleIdResolver.js +101 -0
  136. package/dist/core/knowledge/references/citations/TitleIdResolver.js.map +1 -0
  137. package/dist/core/knowledge/references/web/FetchCacheService.js +114 -0
  138. package/dist/core/knowledge/references/web/FetchCacheService.js.map +1 -0
  139. package/dist/core/knowledge/references/web/GatedFetcher.js +228 -0
  140. package/dist/core/knowledge/references/web/GatedFetcher.js.map +1 -0
  141. package/dist/core/knowledge/references/web/WebReferenceProcessor.js +164 -0
  142. package/dist/core/knowledge/references/web/WebReferenceProcessor.js.map +1 -0
  143. package/dist/core/knowledge/search/KnowledgeGraphSearch.js +261 -0
  144. package/dist/core/knowledge/search/KnowledgeGraphSearch.js.map +1 -0
  145. package/dist/core/knowledge/vocabulary.js +162 -0
  146. package/dist/core/knowledge/vocabulary.js.map +1 -0
  147. package/dist/core/llm/EmbeddingService.js +113 -0
  148. package/dist/core/llm/EmbeddingService.js.map +1 -0
  149. package/dist/core/llm/OllamaService.js +146 -0
  150. package/dist/core/llm/OllamaService.js.map +1 -0
  151. package/dist/core/llm/OpenAICompatibleService.js +190 -0
  152. package/dist/core/llm/OpenAICompatibleService.js.map +1 -0
  153. package/dist/core/llm/OpenAIEmbeddingService.js +129 -0
  154. package/dist/core/llm/OpenAIEmbeddingService.js.map +1 -0
  155. package/dist/core/llm/embeddingUtils.js +25 -0
  156. package/dist/core/llm/embeddingUtils.js.map +1 -0
  157. package/dist/core/llm/index.js +23 -0
  158. package/dist/core/llm/index.js.map +1 -0
  159. package/dist/core/llm/prompts/PromptManager.js +388 -0
  160. package/dist/core/llm/prompts/PromptManager.js.map +1 -0
  161. package/dist/core/llm/prompts/PromptTemplateEngine.js +257 -0
  162. package/dist/core/llm/prompts/PromptTemplateEngine.js.map +1 -0
  163. package/dist/core/llm/prompts/templates/partials/examples/EXAMPLE_STYLE_GUIDE.md +84 -0
  164. package/dist/core/llm/prompts/templates/partials/examples/article.md +187 -0
  165. package/dist/core/llm/prompts/templates/partials/examples/code.md +229 -0
  166. package/dist/core/llm/prompts/templates/partials/examples/communication.md +205 -0
  167. package/dist/core/llm/prompts/templates/partials/examples/documentation.md +262 -0
  168. package/dist/core/llm/prompts/templates/partials/examples/financial.md +157 -0
  169. package/dist/core/llm/prompts/templates/partials/examples/legal.md +153 -0
  170. package/dist/core/llm/prompts/templates/partials/examples/logs.md +127 -0
  171. package/dist/core/llm/prompts/templates/partials/examples/medical.md +218 -0
  172. package/dist/core/llm/prompts/templates/partials/examples/notes.md +201 -0
  173. package/dist/core/llm/prompts/templates/partials/examples/research.md +208 -0
  174. package/dist/core/llm/prompts/templates/partials/examples/tabular.md +178 -0
  175. package/dist/core/llm/prompts/templates/partials/examples/transcript.md +204 -0
  176. package/dist/core/llm/prompts/templates/partials/retrieved-context.hbs +18 -0
  177. package/dist/core/llm/prompts/templates/v1/system.hbs +371 -0
  178. package/dist/core/llm/prompts/templates/v1/user.hbs +20 -0
  179. package/dist/core/llm/prompts/templates/v2/system.hbs +573 -0
  180. package/dist/core/llm/prompts/templates/v2/user.hbs +20 -0
  181. package/dist/core/llm/prompts/templates/v3/system.hbs +861 -0
  182. package/dist/core/llm/prompts/templates/v3/user.hbs +16 -0
  183. package/dist/core/llm/prompts/templates/v4/system.hbs +800 -0
  184. package/dist/core/llm/prompts/templates/v4/user.hbs +40 -0
  185. package/dist/core/llm/prompts/templates/v4.5/system.hbs +71 -0
  186. package/dist/core/llm/prompts/templates/v4.5/user.hbs +46 -0
  187. package/dist/core/llm/prompts/templates/v5/glossary/system.hbs +40 -0
  188. package/dist/core/llm/prompts/templates/v5/glossary/user.hbs +11 -0
  189. package/dist/core/llm/prompts/templates/v5/system.hbs +163 -0
  190. package/dist/core/llm/prompts/templates/v5/user.hbs +55 -0
  191. package/dist/core/pipeline/GroundingTransform.js +52 -0
  192. package/dist/core/pipeline/GroundingTransform.js.map +1 -0
  193. package/dist/core/pipeline/PipelineRunner.js +51 -0
  194. package/dist/core/pipeline/PipelineRunner.js.map +1 -0
  195. package/dist/core/pipeline/RelationFilterTransform.js +72 -0
  196. package/dist/core/pipeline/RelationFilterTransform.js.map +1 -0
  197. package/dist/core/pipeline/index.js +20 -0
  198. package/dist/core/pipeline/index.js.map +1 -0
  199. package/dist/core/processor/FileProcessor.js +184 -0
  200. package/dist/core/processor/FileProcessor.js.map +1 -0
  201. package/dist/core/processor/ProcessedRegistry.js +38 -0
  202. package/dist/core/processor/ProcessedRegistry.js.map +1 -0
  203. package/dist/core/processor/ast/AstSeedService.js +0 -0
  204. package/dist/core/processor/ast/AstSeedService.js.map +1 -0
  205. package/dist/core/processor/ast/AstSymbolStore.js +110 -0
  206. package/dist/core/processor/ast/AstSymbolStore.js.map +1 -0
  207. package/dist/core/processor/ast/index.js +19 -0
  208. package/dist/core/processor/ast/index.js.map +1 -0
  209. package/dist/core/processor/chunking/TextChunker.js +98 -0
  210. package/dist/core/processor/chunking/TextChunker.js.map +1 -0
  211. package/dist/core/processor/chunking/index.js +18 -0
  212. package/dist/core/processor/chunking/index.js.map +1 -0
  213. package/dist/core/processor/classifier/CONTENT_CLASSES.js +294 -0
  214. package/dist/core/processor/classifier/CONTENT_CLASSES.js.map +1 -0
  215. package/dist/core/processor/classifier/CascadeContentClassifier.js +107 -0
  216. package/dist/core/processor/classifier/CascadeContentClassifier.js.map +1 -0
  217. package/dist/core/processor/classifier/HeuristicContentClassifier.js +113 -0
  218. package/dist/core/processor/classifier/HeuristicContentClassifier.js.map +1 -0
  219. package/dist/core/processor/classifier/IContentTypeClassifier.js +3 -0
  220. package/dist/core/processor/classifier/IContentTypeClassifier.js.map +1 -0
  221. package/dist/core/processor/classifier/LlmContentClassifier.js +107 -0
  222. package/dist/core/processor/classifier/LlmContentClassifier.js.map +1 -0
  223. package/dist/core/processor/classifier/NER_DOMAIN_EXAMPLES.js +498 -0
  224. package/dist/core/processor/classifier/NER_DOMAIN_EXAMPLES.js.map +1 -0
  225. package/dist/core/processor/classifier/index.js +21 -0
  226. package/dist/core/processor/classifier/index.js.map +1 -0
  227. package/dist/core/processor/classifier/mergeClassifications.js +32 -0
  228. package/dist/core/processor/classifier/mergeClassifications.js.map +1 -0
  229. package/dist/core/processor/index.js +20 -0
  230. package/dist/core/processor/index.js.map +1 -0
  231. package/dist/core/processor/readers/AudioReader.js +462 -0
  232. package/dist/core/processor/readers/AudioReader.js.map +1 -0
  233. package/dist/core/processor/readers/BinaryReader.js +90 -0
  234. package/dist/core/processor/readers/BinaryReader.js.map +1 -0
  235. package/dist/core/processor/readers/ChandraPdfReader.js +187 -0
  236. package/dist/core/processor/readers/ChandraPdfReader.js.map +1 -0
  237. package/dist/core/processor/readers/ChatExportReader.js +365 -0
  238. package/dist/core/processor/readers/ChatExportReader.js.map +1 -0
  239. package/dist/core/processor/readers/DoclingReader.js +445 -0
  240. package/dist/core/processor/readers/DoclingReader.js.map +1 -0
  241. package/dist/core/processor/readers/EmailReader.js +259 -0
  242. package/dist/core/processor/readers/EmailReader.js.map +1 -0
  243. package/dist/core/processor/readers/EpubReader.js +175 -0
  244. package/dist/core/processor/readers/EpubReader.js.map +1 -0
  245. package/dist/core/processor/readers/FileReader.js +90 -0
  246. package/dist/core/processor/readers/FileReader.js.map +1 -0
  247. package/dist/core/processor/readers/FileReaderFactory.js +49 -0
  248. package/dist/core/processor/readers/FileReaderFactory.js.map +1 -0
  249. package/dist/core/processor/readers/HtmlReader.js +371 -0
  250. package/dist/core/processor/readers/HtmlReader.js.map +1 -0
  251. package/dist/core/processor/readers/ImageReader.js +162 -0
  252. package/dist/core/processor/readers/ImageReader.js.map +1 -0
  253. package/dist/core/processor/readers/JsonFileReader.js +232 -0
  254. package/dist/core/processor/readers/JsonFileReader.js.map +1 -0
  255. package/dist/core/processor/readers/JupyterReader.js +178 -0
  256. package/dist/core/processor/readers/JupyterReader.js.map +1 -0
  257. package/dist/core/processor/readers/LatexReader.js +176 -0
  258. package/dist/core/processor/readers/LatexReader.js.map +1 -0
  259. package/dist/core/processor/readers/MarkdownReader.js +289 -0
  260. package/dist/core/processor/readers/MarkdownReader.js.map +1 -0
  261. package/dist/core/processor/readers/MarkerPdfReader.js +193 -0
  262. package/dist/core/processor/readers/MarkerPdfReader.js.map +1 -0
  263. package/dist/core/processor/readers/MistralOcrReader.js +198 -0
  264. package/dist/core/processor/readers/MistralOcrReader.js.map +1 -0
  265. package/dist/core/processor/readers/OfficeReader.js +174 -0
  266. package/dist/core/processor/readers/OfficeReader.js.map +1 -0
  267. package/dist/core/processor/readers/PdfReader.js +116 -0
  268. package/dist/core/processor/readers/PdfReader.js.map +1 -0
  269. package/dist/core/processor/readers/RtfReader.js +107 -0
  270. package/dist/core/processor/readers/RtfReader.js.map +1 -0
  271. package/dist/core/processor/readers/SubtitleReader.js +145 -0
  272. package/dist/core/processor/readers/SubtitleReader.js.map +1 -0
  273. package/dist/core/processor/readers/TesseractPdfReader.js +183 -0
  274. package/dist/core/processor/readers/TesseractPdfReader.js.map +1 -0
  275. package/dist/core/processor/readers/TextReader.js +129 -0
  276. package/dist/core/processor/readers/TextReader.js.map +1 -0
  277. package/dist/core/processor/readers/TranscriptReader.js +234 -0
  278. package/dist/core/processor/readers/TranscriptReader.js.map +1 -0
  279. package/dist/core/processor/readers/image/imageMetadata.js +155 -0
  280. package/dist/core/processor/readers/image/imageMetadata.js.map +1 -0
  281. package/dist/core/processor/readers/index.js +41 -0
  282. package/dist/core/processor/readers/index.js.map +1 -0
  283. package/dist/core/processor/readers/referenceExtraction.js +198 -0
  284. package/dist/core/processor/readers/referenceExtraction.js.map +1 -0
  285. package/dist/core/processor/readers/stripReferences.js +59 -0
  286. package/dist/core/processor/readers/stripReferences.js.map +1 -0
  287. package/dist/core/processor/readers/transcript/turnPacking.js +81 -0
  288. package/dist/core/processor/readers/transcript/turnPacking.js.map +1 -0
  289. package/dist/core/progress/NdjsonProgressEmitter.js +30 -0
  290. package/dist/core/progress/NdjsonProgressEmitter.js.map +1 -0
  291. package/dist/core/progress/NoopProgressEmitter.js +15 -0
  292. package/dist/core/progress/NoopProgressEmitter.js.map +1 -0
  293. package/dist/core/progress/index.js +19 -0
  294. package/dist/core/progress/index.js.map +1 -0
  295. package/dist/core/trace/TraceWriter.js +100 -0
  296. package/dist/core/trace/TraceWriter.js.map +1 -0
  297. package/dist/core/trace/events.js +13 -0
  298. package/dist/core/trace/events.js.map +1 -0
  299. package/dist/core/trace/index.js +20 -0
  300. package/dist/core/trace/index.js.map +1 -0
  301. package/dist/core/trace/lineage.js +97 -0
  302. package/dist/core/trace/lineage.js.map +1 -0
  303. package/dist/evaluation/BenchmarkRunner.js +171 -0
  304. package/dist/evaluation/BenchmarkRunner.js.map +1 -0
  305. package/dist/evaluation/classifier/ClassifierAccuracy.js +185 -0
  306. package/dist/evaluation/classifier/ClassifierAccuracy.js.map +1 -0
  307. package/dist/evaluation/classifier/labeledSamples.js +379 -0
  308. package/dist/evaluation/classifier/labeledSamples.js.map +1 -0
  309. package/dist/evaluation/compare/goldCompare.js +126 -0
  310. package/dist/evaluation/compare/goldCompare.js.map +1 -0
  311. package/dist/evaluation/crossre/compareScoring.js +30 -0
  312. package/dist/evaluation/crossre/compareScoring.js.map +1 -0
  313. package/dist/evaluation/datasets/CrossREDataset.js +170 -0
  314. package/dist/evaluation/datasets/CrossREDataset.js.map +1 -0
  315. package/dist/evaluation/datasets/IDataset.js +3 -0
  316. package/dist/evaluation/datasets/IDataset.js.map +1 -0
  317. package/dist/evaluation/datasets/RebelDataset.js +117 -0
  318. package/dist/evaluation/datasets/RebelDataset.js.map +1 -0
  319. package/dist/evaluation/datasets/RedocredDataset.js +218 -0
  320. package/dist/evaluation/datasets/RedocredDataset.js.map +1 -0
  321. package/dist/evaluation/datasets/SemEval2010Dataset.js +150 -0
  322. package/dist/evaluation/datasets/SemEval2010Dataset.js.map +1 -0
  323. package/dist/evaluation/index.js +33 -0
  324. package/dist/evaluation/index.js.map +1 -0
  325. package/dist/evaluation/matching/ExactMatcher.js +75 -0
  326. package/dist/evaluation/matching/ExactMatcher.js.map +1 -0
  327. package/dist/evaluation/matching/SemanticMatcher.js +143 -0
  328. package/dist/evaluation/matching/SemanticMatcher.js.map +1 -0
  329. package/dist/evaluation/metrics/TripleMetrics.js +64 -0
  330. package/dist/evaluation/metrics/TripleMetrics.js.map +1 -0
  331. package/dist/evaluation/mine/MineCheckpoint.js +114 -0
  332. package/dist/evaluation/mine/MineCheckpoint.js.map +1 -0
  333. package/dist/evaluation/mine/MineDataset.js +208 -0
  334. package/dist/evaluation/mine/MineDataset.js.map +1 -0
  335. package/dist/evaluation/mine/MineReporter.js +98 -0
  336. package/dist/evaluation/mine/MineReporter.js.map +1 -0
  337. package/dist/evaluation/mine/MineRunner.js +148 -0
  338. package/dist/evaluation/mine/MineRunner.js.map +1 -0
  339. package/dist/evaluation/mine/MineScorer.js +127 -0
  340. package/dist/evaluation/mine/MineScorer.js.map +1 -0
  341. package/dist/evaluation/mine/types.js +12 -0
  342. package/dist/evaluation/mine/types.js.map +1 -0
  343. package/dist/evaluation/reporters/ConsoleReporter.js +55 -0
  344. package/dist/evaluation/reporters/ConsoleReporter.js.map +1 -0
  345. package/dist/evaluation/reporters/JsonReporter.js +50 -0
  346. package/dist/evaluation/reporters/JsonReporter.js.map +1 -0
  347. package/dist/index.js +28 -0
  348. package/dist/index.js.map +1 -0
  349. package/dist/quality/CompositeScore.js +61 -0
  350. package/dist/quality/CompositeScore.js.map +1 -0
  351. package/dist/quality/ConsistencyMetrics.js +70 -0
  352. package/dist/quality/ConsistencyMetrics.js.map +1 -0
  353. package/dist/quality/FactualMetrics.js +76 -0
  354. package/dist/quality/FactualMetrics.js.map +1 -0
  355. package/dist/quality/GraphHealthMetrics.js +68 -0
  356. package/dist/quality/GraphHealthMetrics.js.map +1 -0
  357. package/dist/quality/SemanticMetrics.js +102 -0
  358. package/dist/quality/SemanticMetrics.js.map +1 -0
  359. package/dist/quality/StructuralMetrics.js +60 -0
  360. package/dist/quality/StructuralMetrics.js.map +1 -0
  361. package/dist/quality/index.js +23 -0
  362. package/dist/quality/index.js.map +1 -0
  363. package/dist/shared/index.js +20 -0
  364. package/dist/shared/index.js.map +1 -0
  365. package/dist/shared/logger/Logger.js +3 -0
  366. package/dist/shared/logger/Logger.js.map +1 -0
  367. package/dist/shared/logger/LoggerFactory.js +75 -0
  368. package/dist/shared/logger/LoggerFactory.js.map +1 -0
  369. package/dist/shared/logger/index.js +19 -0
  370. package/dist/shared/logger/index.js.map +1 -0
  371. package/dist/shared/shutdown.js +30 -0
  372. package/dist/shared/shutdown.js.map +1 -0
  373. package/dist/shared/utils/agglomerativeCluster.js +269 -0
  374. package/dist/shared/utils/agglomerativeCluster.js.map +1 -0
  375. package/dist/shared/utils/astSymbols.js +69 -0
  376. package/dist/shared/utils/astSymbols.js.map +1 -0
  377. package/dist/shared/utils/cosineSimilarity.js +18 -0
  378. package/dist/shared/utils/cosineSimilarity.js.map +1 -0
  379. package/dist/shared/utils/directoryTree.js +184 -0
  380. package/dist/shared/utils/directoryTree.js.map +1 -0
  381. package/dist/shared/utils/documentOutline.js +74 -0
  382. package/dist/shared/utils/documentOutline.js.map +1 -0
  383. package/dist/shared/utils/index.js +24 -0
  384. package/dist/shared/utils/index.js.map +1 -0
  385. package/dist/shared/utils/jaroWinklerSimilarity.js +60 -0
  386. package/dist/shared/utils/jaroWinklerSimilarity.js.map +1 -0
  387. package/dist/shared/utils/parseJsonLenient.js +27 -0
  388. package/dist/shared/utils/parseJsonLenient.js.map +1 -0
  389. package/dist/shared/utils/readConfig.js +42 -0
  390. package/dist/shared/utils/readConfig.js.map +1 -0
  391. package/dist/shared/utils/readRtf.js +216 -0
  392. package/dist/shared/utils/readRtf.js.map +1 -0
  393. package/dist/shared/utils/softmax.js +26 -0
  394. package/dist/shared/utils/softmax.js.map +1 -0
  395. package/dist/types/ContentClass.js +3 -0
  396. package/dist/types/ContentClass.js.map +1 -0
  397. package/dist/types/CorpusProfile.js +3 -0
  398. package/dist/types/CorpusProfile.js.map +1 -0
  399. package/dist/types/IContradictionChecker.js +3 -0
  400. package/dist/types/IContradictionChecker.js.map +1 -0
  401. package/dist/types/ICorpusAnalyzer.js +3 -0
  402. package/dist/types/ICorpusAnalyzer.js.map +1 -0
  403. package/dist/types/IDirectoryProcessor.js +3 -0
  404. package/dist/types/IDirectoryProcessor.js.map +1 -0
  405. package/dist/types/IEmbeddingProvider.js +3 -0
  406. package/dist/types/IEmbeddingProvider.js.map +1 -0
  407. package/dist/types/IEmbeddingService.js +6 -0
  408. package/dist/types/IEmbeddingService.js.map +1 -0
  409. package/dist/types/IFileProcessor.js +3 -0
  410. package/dist/types/IFileProcessor.js.map +1 -0
  411. package/dist/types/IGroundingChecker.js +3 -0
  412. package/dist/types/IGroundingChecker.js.map +1 -0
  413. package/dist/types/IKnowledgeGraphBuilder.js +3 -0
  414. package/dist/types/IKnowledgeGraphBuilder.js.map +1 -0
  415. package/dist/types/IKnowledgeGraphExporter.js +3 -0
  416. package/dist/types/IKnowledgeGraphExporter.js.map +1 -0
  417. package/dist/types/IKnowledgeGraphMerger.js +3 -0
  418. package/dist/types/IKnowledgeGraphMerger.js.map +1 -0
  419. package/dist/types/IKnowledgeGraphSearch.js +3 -0
  420. package/dist/types/IKnowledgeGraphSearch.js.map +1 -0
  421. package/dist/types/ILLMProvider.js +3 -0
  422. package/dist/types/ILLMProvider.js.map +1 -0
  423. package/dist/types/ILLMService.js +3 -0
  424. package/dist/types/ILLMService.js.map +1 -0
  425. package/dist/types/IObjectDetector.js +3 -0
  426. package/dist/types/IObjectDetector.js.map +1 -0
  427. package/dist/types/IProcessingService.js +3 -0
  428. package/dist/types/IProcessingService.js.map +1 -0
  429. package/dist/types/IProgressEmitter.js +3 -0
  430. package/dist/types/IProgressEmitter.js.map +1 -0
  431. package/dist/types/IPromptManager.js +3 -0
  432. package/dist/types/IPromptManager.js.map +1 -0
  433. package/dist/types/KnowledgeGraph.js +3 -0
  434. package/dist/types/KnowledgeGraph.js.map +1 -0
  435. package/dist/types/MCPKnowledgeGraph.js +3 -0
  436. package/dist/types/MCPKnowledgeGraph.js.map +1 -0
  437. package/dist/types/Observation.js +21 -0
  438. package/dist/types/Observation.js.map +1 -0
  439. package/dist/types/ProcessingOptions.js +3 -0
  440. package/dist/types/ProcessingOptions.js.map +1 -0
  441. package/dist/types/index.js +40 -0
  442. package/dist/types/index.js.map +1 -0
  443. package/package.json +122 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KnowledgeMerger.js","sourceRoot":"","sources":["../../../../src/core/knowledge/merging/KnowledgeMerger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.buildReferenceGraph = buildReferenceGraph;
37
+ exports.resolveInternalTarget = resolveInternalTarget;
38
+ exports.citationNodeName = citationNodeName;
39
+ exports.citationObservations = citationObservations;
40
+ const path = __importStar(require("path"));
41
+ const referenceExtraction_1 = require("../../processor/readers/referenceExtraction");
42
+ const relPath_1 = require("../../corpus/relPath");
43
+ /**
44
+ * Corpus-level reference resolver (Phase 0, network-free). Turns a file's raw
45
+ * `metadata.references` (links + citations extracted by the readers) into a
46
+ * deterministic `KnowledgeGraph` of `document` nodes and `links_to` / `cites`
47
+ * edges, mirroring the AST-seed pattern: emitted per file and merged with the
48
+ * LLM's per-chunk graphs (the merger dedups document nodes by name across files,
49
+ * so an edge's endpoints unify even when the target file emits its own node).
50
+ *
51
+ * Document nodes are keyed by corpus-relative posix path (`toRelPathId`) — stable
52
+ * and identical across a link's source and target. This intentionally does NOT
53
+ * reuse `KnowledgeGraphBuilder.documentIdentityGraph`'s *title*-named node (a
54
+ * path key is required for correct internal-link resolution); consolidating the
55
+ * two `document` nodes is a deliberate follow-up, not this phase.
56
+ *
57
+ * Network classes — external web links and citation span-fetch — are later
58
+ * phases; here every `cites` edge (and any unresolved internal link) is a bare
59
+ * edge with `resolved: false`. The target node carries only what the reference
60
+ * itself states (ids/title), never fabricated content.
61
+ */
62
+ const DOC = "document";
63
+ function buildReferenceGraph(processedFile, corpusRelPaths, inputRoot, opts) {
64
+ var _a, _b, _c;
65
+ const refs = (_a = processedFile.metadata) === null || _a === void 0 ? void 0 : _a.references;
66
+ if (!refs)
67
+ return null;
68
+ const fileRel = (0, relPath_1.toRelPathId)(inputRoot, processedFile.path);
69
+ const createdAt = new Date().toISOString();
70
+ const entities = new Map();
71
+ const relations = [];
72
+ const seenEdge = new Set();
73
+ const ensureDoc = (name, filePath, observations = []) => {
74
+ const existing = entities.get(name);
75
+ if (existing) {
76
+ if (observations.length)
77
+ existing.observations.push(...observations);
78
+ if (filePath && !existing.files.includes(filePath))
79
+ existing.files.push(filePath);
80
+ return;
81
+ }
82
+ entities.set(name, { name, entityType: DOC, files: filePath ? [filePath] : [], observations });
83
+ };
84
+ const addEdge = (to, type, resolved) => {
85
+ if (!to || to === fileRel)
86
+ return; // skip empties + self-loops
87
+ const key = `${to}:${type}`;
88
+ if (seenEdge.has(key))
89
+ return;
90
+ seenEdge.add(key);
91
+ relations.push({ from: fileRel, to, relationType: [type], source: fileRel, resolved });
92
+ };
93
+ // Source file node — guarantees the `from` endpoint always exists.
94
+ ensureDoc(fileRel, processedFile.path);
95
+ if (opts.internalLinks && ((_b = refs.links) === null || _b === void 0 ? void 0 : _b.length)) {
96
+ for (const link of refs.links) {
97
+ if ((0, referenceExtraction_1.isExternalTarget)(link.target))
98
+ continue; // external web is Phase 1
99
+ const resolved = resolveInternalTarget(link, fileRel, corpusRelPaths);
100
+ const target = resolved !== null && resolved !== void 0 ? resolved : link.target;
101
+ ensureDoc(target, resolved ? path.resolve(inputRoot, resolved) : undefined);
102
+ addEdge(target, "links_to", !!resolved);
103
+ }
104
+ }
105
+ if (opts.citations && ((_c = refs.citations) === null || _c === void 0 ? void 0 : _c.length)) {
106
+ for (const c of refs.citations) {
107
+ const name = citationNodeName(c);
108
+ ensureDoc(name, undefined, citationObservations(c, fileRel, createdAt));
109
+ addEdge(name, "cites", false); // resolution/fetch is a later phase
110
+ }
111
+ }
112
+ if (!relations.length)
113
+ return null;
114
+ return { entities: Array.from(entities.values()), relations };
115
+ }
116
+ /**
117
+ * Resolve an internal link target to a corpus-relative path, or null if absent.
118
+ * Exported so reference-driven ingestion (the follow worklist) resolves link
119
+ * targets with the exact same normalization used to emit `links_to` edges.
120
+ */
121
+ function resolveInternalTarget(link, fileRel, corpus) {
122
+ var _a;
123
+ if (link.kind === "wikilink")
124
+ return resolveWikilink(link.target, corpus);
125
+ const stripped = link.target.split("#")[0].split("?")[0].trim();
126
+ if (!stripped)
127
+ return null;
128
+ const base = stripped.startsWith("/")
129
+ ? stripped.slice(1)
130
+ : path.posix.join(path.posix.dirname(fileRel), stripped);
131
+ const norm = path.posix.normalize(base);
132
+ const candidates = [norm];
133
+ if (!path.posix.extname(norm)) {
134
+ candidates.push(`${norm}.md`, path.posix.join(norm, "index.md"));
135
+ }
136
+ return (_a = candidates.find((c) => corpus.has(c))) !== null && _a !== void 0 ? _a : null;
137
+ }
138
+ /** Match a `[[wikilink]]` note name against corpus file basenames. */
139
+ function resolveWikilink(target, corpus) {
140
+ const slug = target.trim().toLowerCase();
141
+ const wants = new Set([
142
+ slug,
143
+ slug.replace(/\s+/g, "-"),
144
+ slug.replace(/\s+/g, "_"),
145
+ slug.replace(/\s+/g, ""),
146
+ ]);
147
+ for (const rel of corpus) {
148
+ const baseNoExt = rel.toLowerCase().split("/").pop().replace(/\.[^.]+$/, "");
149
+ if (wants.has(baseNoExt))
150
+ return rel;
151
+ }
152
+ return null;
153
+ }
154
+ /** Stable node name for a cited work: prefer a hard id, then title, then text.
155
+ * Exported so the Phase-2 citation-fetch processor names its resolved cited-work
156
+ * nodes IDENTICALLY — the fetched content then merges onto the same `document`
157
+ * node the `cites` edge already points at. */
158
+ function citationNodeName(c) {
159
+ if (c.arxivId)
160
+ return `arXiv:${c.arxivId}`;
161
+ if (c.doi)
162
+ return `doi:${c.doi}`;
163
+ if (c.pmid)
164
+ return `PMID:${c.pmid}`;
165
+ if (c.title)
166
+ return c.title;
167
+ return c.raw.slice(0, 120);
168
+ }
169
+ /** The reference's own stated metadata as observations (not fabricated content).
170
+ * Exported for the Phase-2 citation-fetch processor (same node, same stated obs). */
171
+ function citationObservations(c, source, createdAt) {
172
+ const obs = [];
173
+ const push = (text) => obs.push({ text, source, createdAt });
174
+ if (c.title)
175
+ push(`Title: ${c.title}`);
176
+ if (c.arxivId)
177
+ push(`arXiv:${c.arxivId}`);
178
+ if (c.doi)
179
+ push(`DOI: ${c.doi}`);
180
+ if (c.pmid)
181
+ push(`PMID: ${c.pmid}`);
182
+ return obs;
183
+ }
184
+ //# sourceMappingURL=ReferenceResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceResolver.js","sourceRoot":"","sources":["../../../../src/core/knowledge/references/ReferenceResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,401 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.CitationEvidenceProcessor = void 0;
46
+ exports.dropReferenceChunks = dropReferenceChunks;
47
+ exports.splitPassages = splitPassages;
48
+ const fs = __importStar(require("fs"));
49
+ const utils_1 = require("../../../../shared/utils");
50
+ const ReferenceResolver_1 = require("../ReferenceResolver");
51
+ const FAITH = "Citation faithfulness";
52
+ /** A references/bibliography section heading on its own line. Mirrors the
53
+ * `REF_HEADING` used by `stripReferences.splitPagesAtReferences`. */
54
+ const REF_HEADING_LINE = /^\s*(?:#{0,6}\s*)?(?:[\divxlc]+\.?\s+)?(references|bibliography|works cited)\s*:?\s*$/i;
55
+ /**
56
+ * Drop the cited work's bibliography so span-select ranks its BODY, not its
57
+ * reference entries. A citing claim is supported by prose, never by a reference
58
+ * line — yet ref chunks are dense with years/venues/names and out-compete body
59
+ * chunks on the embedding match (the live-probe failure: every span landed on the
60
+ * cited work's reference list → uniformly `unsupported`).
61
+ *
62
+ * Two passes, mirroring `splitPagesAtReferences`: (1) cut the TRAILING reference
63
+ * section at a `References`/`Bibliography` heading in the latter 60% — robust to
64
+ * any entry format (numbered, author-year, GitHub-URL, …) since everything after
65
+ * the heading goes; (2) a density fallback for ref chunks with no clean heading.
66
+ * Falls back to all chunks if a pass would leave nothing. Pure — exported for tests.
67
+ */
68
+ function dropReferenceChunks(chunks) {
69
+ // (1) trailing-section cut at a references heading past 60% of the document.
70
+ const total = chunks.reduce((n, c) => n + c.length, 0);
71
+ let acc = 0;
72
+ for (let i = 0; i < chunks.length; i++) {
73
+ const start = acc;
74
+ acc += chunks[i].length;
75
+ if (start < total * 0.6)
76
+ continue; // a body mention of "references" isn't the section
77
+ const lines = chunks[i].split("\n");
78
+ const h = lines.findIndex((l) => REF_HEADING_LINE.test(l.trim()));
79
+ if (h >= 0) {
80
+ const head = lines.slice(0, h).join("\n").trim();
81
+ const kept = chunks.slice(0, i);
82
+ if (head)
83
+ kept.push(head);
84
+ return kept.length ? kept : chunks;
85
+ }
86
+ }
87
+ // (2) density fallback — ref-dense chunks with no detectable heading line.
88
+ const isRefDense = (t) => {
89
+ const per1k = (re, w = 1) => ((t.match(re) || []).length * w) / Math.max(t.length / 1000, 1);
90
+ const density = per1k(/\b(?:19|20)\d{2}\b/g) +
91
+ per1k(/\bet al\.?/gi, 2) +
92
+ per1k(/In Proceedings|Conference on|Journal of|Transactions on|Advances in Neural|arXiv:\s*\d|doi\.org|URL\s+https?:|github\.com|pp\.\s*\d+/gi, 2);
93
+ return density >= 8;
94
+ };
95
+ const body = chunks.filter((c) => !isRefDense(c));
96
+ return body.length ? body : chunks;
97
+ }
98
+ /**
99
+ * Split a coarse chunk (PdfReader emits one chunk per PAGE) into focused ~`target`-char
100
+ * passages so span-select — and the MiniCheck evidence — is a paragraph, not a whole
101
+ * page (the live-probe lesson: a page-level span buried the relevant sentence under a
102
+ * results table → `unsupported`). Greedy sentence packing, with a hard split for
103
+ * pdf2json runs that lack spaces/sentence breaks. Pure — exported for tests.
104
+ */
105
+ function splitPassages(text, target = 700) {
106
+ const clean = text.replace(/\s+/g, " ").trim();
107
+ if (clean.length <= target)
108
+ return clean ? [clean] : [];
109
+ const out = [];
110
+ let cur = "";
111
+ for (const s of clean.split(/(?<=[.!?])\s+/)) {
112
+ if (cur && cur.length + s.length + 1 > target) {
113
+ out.push(cur);
114
+ cur = s;
115
+ }
116
+ else {
117
+ cur = cur ? `${cur} ${s}` : s;
118
+ }
119
+ while (cur.length > target * 1.8) {
120
+ out.push(cur.slice(0, target)); // runaway (no sentence breaks) — hard window
121
+ cur = cur.slice(target);
122
+ }
123
+ }
124
+ if (cur.trim())
125
+ out.push(cur);
126
+ return out;
127
+ }
128
+ /**
129
+ * Phase 2 — the citation span-fetch apex. For a citing document's citations:
130
+ * resolve the cited work's id → OA full text (`CitationResolver`), fetch it
131
+ * (PDF-capable `GatedFetcher`), fold the cited work's content onto the SAME
132
+ * `document` node the `cites` edge already names, select the span the citing
133
+ * claim relies on, and label the edge supported/unsupported/uncertain (MiniCheck).
134
+ *
135
+ * The Phase-2 analog of `WebReferenceProcessor`: every cited work is fetched at
136
+ * most once (`FetchCacheService`); a gated/unresolved citation emits a bare
137
+ * `resolved:false` edge to its stated-metadata node — never fabricated content.
138
+ * This processor OWNS `cites` edges when citation-fetch is on (the Phase-0
139
+ * resolver stands down), so there's exactly one `cites` edge per (doc, work).
140
+ */
141
+ class CitationEvidenceProcessor {
142
+ constructor(fetcher, cache, resolver, extract, embeddings, logger, deps = {}) {
143
+ var _a, _b, _c;
144
+ this.fetcher = fetcher;
145
+ this.cache = cache;
146
+ this.resolver = resolver;
147
+ this.extract = extract;
148
+ this.embeddings = embeddings;
149
+ this.logger = logger;
150
+ this.grobid = (_a = deps.grobid) !== null && _a !== void 0 ? _a : null;
151
+ this.faithfulness = (_b = deps.faithfulness) !== null && _b !== void 0 ? _b : null;
152
+ this.band = (_c = deps.uncertainBand) !== null && _c !== void 0 ? _c : [0.34, 0.67];
153
+ }
154
+ process(citingRel, citingFilePath, regexCitations) {
155
+ return __awaiter(this, void 0, void 0, function* () {
156
+ const contexts = yield this.buildContexts(citingFilePath, regexCitations);
157
+ if (contexts.length === 0)
158
+ return null;
159
+ const entities = new Map();
160
+ const relations = [];
161
+ const seen = new Set();
162
+ const ensureDoc = (name, observations = []) => {
163
+ const e = entities.get(name);
164
+ if (e) {
165
+ if (observations.length)
166
+ e.observations.push(...observations);
167
+ return;
168
+ }
169
+ entities.set(name, { name, entityType: "document", files: [], observations });
170
+ };
171
+ ensureDoc(citingRel); // the `from` endpoint always exists
172
+ for (const ctx of contexts) {
173
+ const name = (0, ReferenceResolver_1.citationNodeName)(Object.assign({ raw: ctx.raw }, ctx.ids));
174
+ if (name === citingRel || seen.has(name))
175
+ continue;
176
+ seen.add(name);
177
+ const contribution = yield this.resolveOne(citingRel, name, ctx);
178
+ for (const e of contribution.entities)
179
+ ensureDoc(e.name, e.observations);
180
+ relations.push(...contribution.relations);
181
+ }
182
+ return relations.length || entities.size > 1
183
+ ? { entities: Array.from(entities.values()), relations }
184
+ : null;
185
+ });
186
+ }
187
+ /** Resolve → fetch → fold → span-select → label for one cited work (cached). */
188
+ resolveOne(citingRel, nodeName, ctx) {
189
+ return __awaiter(this, void 0, void 0, function* () {
190
+ const createdAt = new Date().toISOString();
191
+ const statedObs = (0, ReferenceResolver_1.citationObservations)(Object.assign({ raw: ctx.raw }, ctx.ids), citingRel, createdAt);
192
+ const target = yield this.resolver.resolve(ctx.ids);
193
+ if (!target) {
194
+ // Unresolvable (no id / closed / no title-resolver): bare cites edge.
195
+ return this.unresolved(citingRel, nodeName, statedObs);
196
+ }
197
+ // Never refetch: a cached resolved fetch reuses the cited work's content; the
198
+ // edge is re-emitted for THIS citing doc (faithfulness only carried when the
199
+ // cached edge was this same doc — the claim, hence the verdict, is per-doc).
200
+ const cached = this.cache.get(target.url);
201
+ if (cached === null || cached === void 0 ? void 0 : cached.graph) {
202
+ return this.fromCache(citingRel, nodeName, ctx, target.url, statedObs, cached.graph);
203
+ }
204
+ const r = yield this.fetcher.fetch(target.url, "");
205
+ let graph;
206
+ if (r.resolved && r.tempPath) {
207
+ let chunks = [];
208
+ let graphs = [];
209
+ try {
210
+ ({ chunks, graphs } = yield this.extract(r.tempPath, target.url));
211
+ }
212
+ catch (err) {
213
+ this.logger.warn(`Cited-work extraction failed for ${target.url}: ${err}`);
214
+ }
215
+ finally {
216
+ fs.promises.unlink(r.tempPath).catch(() => undefined);
217
+ }
218
+ const span = yield this.selectSpan(ctx.citingClaim, chunks);
219
+ const verdict = yield this.judge(ctx, span);
220
+ const faithNote = !verdict && ctx.citingClaim && ctx.soleReferent === false
221
+ ? "co-cited with other works — faithfulness not assessed"
222
+ : undefined;
223
+ graph = this.contribution(citingRel, nodeName, target.url, statedObs, graphs, span, verdict, faithNote, createdAt);
224
+ }
225
+ else {
226
+ this.logger.info(`Citation not resolved (${r.reason}): ${target.url}`);
227
+ graph = this.contribution(citingRel, nodeName, target.url, statedObs, [], null, null, undefined, createdAt, false);
228
+ }
229
+ yield this.cache.append({
230
+ url: target.url,
231
+ resolved: !!r.resolved,
232
+ reason: r.reason,
233
+ status: r.status,
234
+ contentType: r.contentType,
235
+ fetchedAt: createdAt,
236
+ graph,
237
+ });
238
+ return graph;
239
+ });
240
+ }
241
+ /** Assemble the cited-work node (stated metadata + fetched content) + the
242
+ * `cites` edge, stamped with the faithfulness verdict when present. */
243
+ contribution(citingRel, nodeName, url, statedObs, contentGraphs, span, verdict, faithNote, createdAt, resolved = true) {
244
+ const entities = [];
245
+ const obs = [...statedObs];
246
+ if (resolved)
247
+ obs.push({ text: `Fetched OA full text from ${url}`, source: url, createdAt });
248
+ if (verdict) {
249
+ obs.push({ text: `${FAITH}: ${verdict.label} (${verdict.score.toFixed(2)})`, source: url, createdAt });
250
+ }
251
+ else if (faithNote) {
252
+ obs.push({ text: `${FAITH}: ${faithNote}`, source: url, createdAt });
253
+ }
254
+ entities.push({ name: nodeName, entityType: "document", files: [], observations: obs });
255
+ // Fold the cited work's own extracted KG, re-stamping provenance to the URL.
256
+ for (const g of contentGraphs) {
257
+ for (const e of g.entities) {
258
+ entities.push(Object.assign(Object.assign({}, e), { observations: e.observations.map((o) => (Object.assign(Object.assign({}, o), { source: url }))) }));
259
+ }
260
+ }
261
+ const relations = contentGraphs.flatMap((g) => g.relations);
262
+ const edge = { from: citingRel, to: nodeName, relationType: ["cites"], source: citingRel, resolved };
263
+ if (verdict && span) {
264
+ edge.faithfulness = verdict.label;
265
+ edge.faithfulnessScore = verdict.score;
266
+ edge.supportingSpan = span.span.slice(0, 1000);
267
+ }
268
+ relations.push(edge);
269
+ return { entities, relations };
270
+ }
271
+ unresolved(citingRel, nodeName, statedObs) {
272
+ return {
273
+ entities: [{ name: nodeName, entityType: "document", files: [], observations: statedObs }],
274
+ relations: [{ from: citingRel, to: nodeName, relationType: ["cites"], source: citingRel, resolved: false }],
275
+ };
276
+ }
277
+ /** Reuse a cached fetch's content, re-emitting the edge for the current doc. */
278
+ fromCache(citingRel, nodeName, ctx, url, statedObs, cachedGraph) {
279
+ var _a;
280
+ const entities = [
281
+ { name: nodeName, entityType: "document", files: [], observations: statedObs },
282
+ ];
283
+ for (const e of cachedGraph.entities) {
284
+ if (e.name === nodeName) {
285
+ // carry the fetched content observations onto our stated-metadata node
286
+ entities[0].observations.push(...e.observations.filter((o) => o.source === url));
287
+ }
288
+ else {
289
+ entities.push(e);
290
+ }
291
+ }
292
+ const cachedEdge = cachedGraph.relations.find((r) => r.to === nodeName && r.relationType.includes("cites"));
293
+ const resolved = (_a = cachedEdge === null || cachedEdge === void 0 ? void 0 : cachedEdge.resolved) !== null && _a !== void 0 ? _a : true;
294
+ const edge = { from: citingRel, to: nodeName, relationType: ["cites"], source: citingRel, resolved };
295
+ // Faithfulness is claim-specific: only carry it when the cache came from THIS doc.
296
+ if ((cachedEdge === null || cachedEdge === void 0 ? void 0 : cachedEdge.faithfulness) && cachedEdge.source === citingRel) {
297
+ edge.faithfulness = cachedEdge.faithfulness;
298
+ edge.faithfulnessScore = cachedEdge.faithfulnessScore;
299
+ edge.supportingSpan = cachedEdge.supportingSpan;
300
+ }
301
+ return { entities, relations: [edge] };
302
+ }
303
+ /** Merge GROBID's marker-linked contexts (claims) with the regex id-bearing set. */
304
+ buildContexts(filePath, regex) {
305
+ return __awaiter(this, void 0, void 0, function* () {
306
+ if (this.grobid) {
307
+ try {
308
+ const g = yield this.grobid.process(filePath);
309
+ if (g.length)
310
+ return g;
311
+ this.logger.info("GROBID returned no citation contexts; falling back to regex citations");
312
+ }
313
+ catch (err) {
314
+ this.logger.warn(`GROBID unavailable (${err}); falling back to regex citations`);
315
+ }
316
+ }
317
+ return regex.map((c) => ({
318
+ ids: { arxivId: c.arxivId, doi: c.doi, pmid: c.pmid, title: c.title },
319
+ raw: c.raw,
320
+ }));
321
+ });
322
+ }
323
+ /** Select the span the citing claim relies on: exact substring → embedding
324
+ * cosine → fuzzy fallback. Returns the best chunk (+ score), not the whole doc. */
325
+ selectSpan(claim, allChunks) {
326
+ return __awaiter(this, void 0, void 0, function* () {
327
+ if (!claim || allChunks.length === 0)
328
+ return null;
329
+ // Body-only candidates (drop the cited work's bibliography), sub-split into
330
+ // focused passages — a citing claim is grounded in a paragraph, not a page.
331
+ const chunks = dropReferenceChunks(allChunks).flatMap((c) => splitPassages(c));
332
+ if (chunks.length === 0)
333
+ return null;
334
+ const norm = (s) => s.toLowerCase().replace(/\s+/g, " ").trim();
335
+ const nc = norm(claim);
336
+ if (nc.length >= 40) {
337
+ const needle = nc.slice(0, 80);
338
+ const hit = chunks.find((ch) => norm(ch).includes(needle));
339
+ if (hit)
340
+ return { span: hit, score: 1 };
341
+ }
342
+ try {
343
+ const [cv, ...cvs] = yield this.embeddings.embedBatch([claim, ...chunks]);
344
+ let best = -1;
345
+ let bi = 0;
346
+ cvs.forEach((v, i) => {
347
+ const s = (0, utils_1.cosineSimilarity)(cv, v);
348
+ if (s > best) {
349
+ best = s;
350
+ bi = i;
351
+ }
352
+ });
353
+ return { span: chunks[bi], score: best };
354
+ }
355
+ catch (err) {
356
+ this.logger.warn(`Span embedding failed (${err}); using fuzzy overlap`);
357
+ let best = -1;
358
+ let bi = 0;
359
+ chunks.forEach((ch, i) => {
360
+ const s = (0, utils_1.jaroWinklerSimilarity)(nc.slice(0, 200), norm(ch).slice(0, 200));
361
+ if (s > best) {
362
+ best = s;
363
+ bi = i;
364
+ }
365
+ });
366
+ return best > 0 ? { span: chunks[bi], score: best } : null;
367
+ }
368
+ });
369
+ }
370
+ /** Run MiniCheck on (claim, span) and map the score to a 3-way label — but only
371
+ * for a SINGLE-referent citing sentence. A multi-cite sentence makes a collective
372
+ * claim not attributable to this one work, so we abstain (no label) rather than
373
+ * emit a meaningless verdict (the live-probe lesson: every multi-cite claim
374
+ * mis-scored `unsupported`). */
375
+ judge(ctx, span) {
376
+ return __awaiter(this, void 0, void 0, function* () {
377
+ if (!this.faithfulness || !ctx.citingClaim || !span)
378
+ return null;
379
+ if (ctx.soleReferent === false)
380
+ return null; // co-cited — not attributable
381
+ try {
382
+ const v = yield this.faithfulness.check(ctx.citingClaim, span.span);
383
+ return { label: this.label(v.score), score: v.score };
384
+ }
385
+ catch (err) {
386
+ this.logger.warn(`Faithfulness check failed: ${err}`);
387
+ return null;
388
+ }
389
+ });
390
+ }
391
+ label(score) {
392
+ const [lo, hi] = this.band;
393
+ if (score >= hi)
394
+ return "supported";
395
+ if (score <= lo)
396
+ return "unsupported";
397
+ return "uncertain";
398
+ }
399
+ }
400
+ exports.CitationEvidenceProcessor = CitationEvidenceProcessor;
401
+ //# sourceMappingURL=CitationEvidenceProcessor.js.map