wiki-graph-core 0.3.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 (576) hide show
  1. package/LICENSE +201 -0
  2. package/data/editor/clue_reviewer.jinja +410 -0
  3. package/data/editor/clue_reviewer_generator.jinja +428 -0
  4. package/data/editor/revision_feedback.jinja +5 -0
  5. package/data/editor/text_compressor.jinja +127 -0
  6. package/data/guaranteed/response_intent_classifier.jinja +8 -0
  7. package/data/help/commands/archive/next.jinja +29 -0
  8. package/data/help/commands/gc.jinja +38 -0
  9. package/data/help/commands/legacy/migrate.jinja +20 -0
  10. package/data/help/commands/legacy.jinja +19 -0
  11. package/data/help/commands/maintenance/chapter/add.jinja +41 -0
  12. package/data/help/commands/maintenance/chapter/list.jinja +33 -0
  13. package/data/help/commands/maintenance/chapter/move.jinja +36 -0
  14. package/data/help/commands/maintenance/chapter/remove.jinja +26 -0
  15. package/data/help/commands/maintenance/chapter/reset.jinja +29 -0
  16. package/data/help/commands/maintenance/chapter/set-source.jinja +34 -0
  17. package/data/help/commands/maintenance/chapter/set-summary.jinja +31 -0
  18. package/data/help/commands/maintenance/chapter/set-title.jinja +29 -0
  19. package/data/help/commands/maintenance/chapter/tree.jinja +58 -0
  20. package/data/help/commands/maintenance/chapter.jinja +59 -0
  21. package/data/help/commands/maintenance/cover.jinja +28 -0
  22. package/data/help/commands/maintenance/meta.jinja +55 -0
  23. package/data/help/commands/predicate.jinja +460 -0
  24. package/data/help/commands/root.jinja +83 -0
  25. package/data/help/commands/transform.jinja +34 -0
  26. package/data/help/commands/uri.jinja +274 -0
  27. package/data/help/topics/config.jinja +88 -0
  28. package/data/help/topics/format.jinja +72 -0
  29. package/data/help/topics/readiness.jinja +99 -0
  30. package/data/help/topics/recipe.jinja +151 -0
  31. package/data/help/topics/runtime.jinja +62 -0
  32. package/data/help/topics/uri.jinja +178 -0
  33. package/data/output/epub/cover.xhtml.jinja +13 -0
  34. package/data/output/epub/nav.xhtml.jinja +12 -0
  35. package/data/output/epub/package.opf.xml.jinja +39 -0
  36. package/data/output/epub/section.xhtml.jinja +12 -0
  37. package/data/topologization/book_coherence_extraction.jinja +223 -0
  38. package/data/topologization/chunk_extraction.jinja +233 -0
  39. package/data/topologization/evidence_choice.jinja +38 -0
  40. package/data/topologization/translate_chunks.jinja +138 -0
  41. package/data/topologization/user_focused_extraction.jinja +378 -0
  42. package/dist/archive/query/archive-view.d.ts +26 -0
  43. package/dist/archive/query/archive-view.js +4540 -0
  44. package/dist/archive/query/archive-view.js.map +1 -0
  45. package/dist/archive/query/continuation-cursor.d.ts +61 -0
  46. package/dist/archive/query/continuation-cursor.js +363 -0
  47. package/dist/archive/query/continuation-cursor.js.map +1 -0
  48. package/dist/archive/query/index.d.ts +29 -0
  49. package/dist/archive/query/index.js +63 -0
  50. package/dist/archive/query/index.js.map +1 -0
  51. package/dist/archive/query/lexical-search.d.ts +22 -0
  52. package/dist/archive/query/lexical-search.js +137 -0
  53. package/dist/archive/query/lexical-search.js.map +1 -0
  54. package/dist/archive/query/search-cache.d.ts +192 -0
  55. package/dist/archive/query/search-cache.js +1248 -0
  56. package/dist/archive/query/search-cache.js.map +1 -0
  57. package/dist/archive/search-index/index.d.ts +26 -0
  58. package/dist/archive/search-index/index.js +29 -0
  59. package/dist/archive/search-index/index.js.map +1 -0
  60. package/dist/archive/search-index/search-index.d.ts +26 -0
  61. package/dist/archive/search-index/search-index.js +555 -0
  62. package/dist/archive/search-index/search-index.js.map +1 -0
  63. package/dist/archive/search-index/search-tokenizer.d.ts +16 -0
  64. package/dist/archive/search-index/search-tokenizer.js +225 -0
  65. package/dist/archive/search-index/search-tokenizer.js.map +1 -0
  66. package/dist/common/cli-command.d.ts +4 -0
  67. package/dist/common/cli-command.js +7 -0
  68. package/dist/common/cli-command.js.map +1 -0
  69. package/dist/common/data-dir.d.ts +3 -0
  70. package/dist/common/data-dir.js +48 -0
  71. package/dist/common/data-dir.js.map +1 -0
  72. package/dist/common/language.d.ts +55 -0
  73. package/dist/common/language.js +208 -0
  74. package/dist/common/language.js.map +1 -0
  75. package/dist/common/llm-scope.d.ts +19 -0
  76. package/dist/common/llm-scope.js +31 -0
  77. package/dist/common/llm-scope.js.map +1 -0
  78. package/dist/common/logging.d.ts +22 -0
  79. package/dist/common/logging.js +141 -0
  80. package/dist/common/logging.js.map +1 -0
  81. package/dist/common/template.d.ts +8 -0
  82. package/dist/common/template.js +54 -0
  83. package/dist/common/template.js.map +1 -0
  84. package/dist/common/tinyld-language.d.ts +6 -0
  85. package/dist/common/tinyld-language.js +34 -0
  86. package/dist/common/tinyld-language.js.map +1 -0
  87. package/dist/common/wiki-graph-dir.d.ts +10 -0
  88. package/dist/common/wiki-graph-dir.js +41 -0
  89. package/dist/common/wiki-graph-dir.js.map +1 -0
  90. package/dist/common/wiki-graph-temp.d.ts +6 -0
  91. package/dist/common/wiki-graph-temp.js +21 -0
  92. package/dist/common/wiki-graph-temp.js.map +1 -0
  93. package/dist/common/wiki-graph-uri.d.ts +28 -0
  94. package/dist/common/wiki-graph-uri.js +171 -0
  95. package/dist/common/wiki-graph-uri.js.map +1 -0
  96. package/dist/context/index.d.ts +1 -0
  97. package/dist/context/index.js +13 -0
  98. package/dist/context/index.js.map +1 -0
  99. package/dist/context/task-context.d.ts +41 -0
  100. package/dist/context/task-context.js +111 -0
  101. package/dist/context/task-context.js.map +1 -0
  102. package/dist/document/database.d.ts +30 -0
  103. package/dist/document/database.js +273 -0
  104. package/dist/document/database.js.map +1 -0
  105. package/dist/document/document.d.ts +153 -0
  106. package/dist/document/document.js +615 -0
  107. package/dist/document/document.js.map +1 -0
  108. package/dist/document/fragments.d.ts +63 -0
  109. package/dist/document/fragments.js +371 -0
  110. package/dist/document/fragments.js.map +1 -0
  111. package/dist/document/index.d.ts +13 -0
  112. package/dist/document/index.js +62 -0
  113. package/dist/document/index.js.map +1 -0
  114. package/dist/document/schema.d.ts +8 -0
  115. package/dist/document/schema.js +472 -0
  116. package/dist/document/schema.js.map +1 -0
  117. package/dist/document/shared-state-database.d.ts +9 -0
  118. package/dist/document/shared-state-database.js +193 -0
  119. package/dist/document/shared-state-database.js.map +1 -0
  120. package/dist/document/stores.d.ts +203 -0
  121. package/dist/document/stores.js +1678 -0
  122. package/dist/document/stores.js.map +1 -0
  123. package/dist/document/text-streams.d.ts +86 -0
  124. package/dist/document/text-streams.js +515 -0
  125. package/dist/document/text-streams.js.map +1 -0
  126. package/dist/document/types.d.ts +148 -0
  127. package/dist/document/types.js +69 -0
  128. package/dist/document/types.js.map +1 -0
  129. package/dist/editor/clue.d.ts +27 -0
  130. package/dist/editor/clue.js +158 -0
  131. package/dist/editor/clue.js.map +1 -0
  132. package/dist/editor/compressor.d.ts +18 -0
  133. package/dist/editor/compressor.js +68 -0
  134. package/dist/editor/compressor.js.map +1 -0
  135. package/dist/editor/editor.d.ts +39 -0
  136. package/dist/editor/editor.js +253 -0
  137. package/dist/editor/editor.js.map +1 -0
  138. package/dist/editor/feedback.d.ts +16 -0
  139. package/dist/editor/feedback.js +104 -0
  140. package/dist/editor/feedback.js.map +1 -0
  141. package/dist/editor/index.d.ts +17 -0
  142. package/dist/editor/index.js +5 -0
  143. package/dist/editor/index.js.map +1 -0
  144. package/dist/editor/language-review.d.ts +14 -0
  145. package/dist/editor/language-review.js +35 -0
  146. package/dist/editor/language-review.js.map +1 -0
  147. package/dist/editor/log.d.ts +37 -0
  148. package/dist/editor/log.js +202 -0
  149. package/dist/editor/log.js.map +1 -0
  150. package/dist/editor/markup.d.ts +20 -0
  151. package/dist/editor/markup.js +294 -0
  152. package/dist/editor/markup.js.map +1 -0
  153. package/dist/editor/prompt-templates.d.ts +6 -0
  154. package/dist/editor/prompt-templates.js +11 -0
  155. package/dist/editor/prompt-templates.js.map +1 -0
  156. package/dist/editor/response.d.ts +5 -0
  157. package/dist/editor/response.js +31 -0
  158. package/dist/editor/response.js.map +1 -0
  159. package/dist/editor/review.d.ts +34 -0
  160. package/dist/editor/review.js +189 -0
  161. package/dist/editor/review.js.map +1 -0
  162. package/dist/editor/types.d.ts +31 -0
  163. package/dist/editor/types.js +21 -0
  164. package/dist/editor/types.js.map +1 -0
  165. package/dist/evidence-selection/anchor-resolver.d.ts +43 -0
  166. package/dist/evidence-selection/anchor-resolver.js +783 -0
  167. package/dist/evidence-selection/anchor-resolver.js.map +1 -0
  168. package/dist/evidence-selection/anchor-types.d.ts +27 -0
  169. package/dist/evidence-selection/anchor-types.js +1 -0
  170. package/dist/evidence-selection/anchor-types.js.map +1 -0
  171. package/dist/evidence-selection/index.d.ts +8 -0
  172. package/dist/evidence-selection/index.js +32 -0
  173. package/dist/evidence-selection/index.js.map +1 -0
  174. package/dist/evidence-selection/prompt.d.ts +18 -0
  175. package/dist/evidence-selection/prompt.js +54 -0
  176. package/dist/evidence-selection/prompt.js.map +1 -0
  177. package/dist/evidence-selection/quote-score.d.ts +29 -0
  178. package/dist/evidence-selection/quote-score.js +331 -0
  179. package/dist/evidence-selection/quote-score.js.map +1 -0
  180. package/dist/evidence-selection/selection-resolver.d.ts +19 -0
  181. package/dist/evidence-selection/selection-resolver.js +303 -0
  182. package/dist/evidence-selection/selection-resolver.js.map +1 -0
  183. package/dist/evidence-selection/text.d.ts +4 -0
  184. package/dist/evidence-selection/text.js +66 -0
  185. package/dist/evidence-selection/text.js.map +1 -0
  186. package/dist/evidence-selection/types.d.ts +36 -0
  187. package/dist/evidence-selection/types.js +1 -0
  188. package/dist/evidence-selection/types.js.map +1 -0
  189. package/dist/facade/app.d.ts +75 -0
  190. package/dist/facade/app.js +141 -0
  191. package/dist/facade/app.js.map +1 -0
  192. package/dist/facade/build-queue.d.ts +181 -0
  193. package/dist/facade/build-queue.js +1442 -0
  194. package/dist/facade/build-queue.js.map +1 -0
  195. package/dist/facade/chapter-build.d.ts +60 -0
  196. package/dist/facade/chapter-build.js +1020 -0
  197. package/dist/facade/chapter-build.js.map +1 -0
  198. package/dist/facade/chapter.d.ts +168 -0
  199. package/dist/facade/chapter.js +944 -0
  200. package/dist/facade/chapter.js.map +1 -0
  201. package/dist/facade/digest.d.ts +55 -0
  202. package/dist/facade/digest.js +168 -0
  203. package/dist/facade/digest.js.map +1 -0
  204. package/dist/facade/graph.d.ts +60 -0
  205. package/dist/facade/graph.js +203 -0
  206. package/dist/facade/graph.js.map +1 -0
  207. package/dist/facade/import.d.ts +49 -0
  208. package/dist/facade/import.js +262 -0
  209. package/dist/facade/import.js.map +1 -0
  210. package/dist/facade/index.d.ts +39 -0
  211. package/dist/facade/index.js +171 -0
  212. package/dist/facade/index.js.map +1 -0
  213. package/dist/facade/knowledge-graph-build.d.ts +75 -0
  214. package/dist/facade/knowledge-graph-build.js +897 -0
  215. package/dist/facade/knowledge-graph-build.js.map +1 -0
  216. package/dist/facade/llm-sampling.d.ts +11 -0
  217. package/dist/facade/llm-sampling.js +58 -0
  218. package/dist/facade/llm-sampling.js.map +1 -0
  219. package/dist/facade/types.d.ts +8 -0
  220. package/dist/facade/types.js +1 -0
  221. package/dist/facade/types.js.map +1 -0
  222. package/dist/facade/wiki-graph-archive.d.ts +41 -0
  223. package/dist/facade/wiki-graph-archive.js +130 -0
  224. package/dist/facade/wiki-graph-archive.js.map +1 -0
  225. package/dist/gc/files.d.ts +15 -0
  226. package/dist/gc/files.js +141 -0
  227. package/dist/gc/files.js.map +1 -0
  228. package/dist/gc/index.d.ts +2 -0
  229. package/dist/gc/index.js +5 -0
  230. package/dist/gc/index.js.map +1 -0
  231. package/dist/gc/lock.d.ts +3 -0
  232. package/dist/gc/lock.js +137 -0
  233. package/dist/gc/lock.js.map +1 -0
  234. package/dist/gc/runner.d.ts +9 -0
  235. package/dist/gc/runner.js +129 -0
  236. package/dist/gc/runner.js.map +1 -0
  237. package/dist/gc/tmp-gc.d.ts +5 -0
  238. package/dist/gc/tmp-gc.js +57 -0
  239. package/dist/gc/tmp-gc.js.map +1 -0
  240. package/dist/gc/types.d.ts +24 -0
  241. package/dist/gc/types.js +1 -0
  242. package/dist/gc/types.js.map +1 -0
  243. package/dist/gc.cjs +10041 -0
  244. package/dist/gc.cjs.map +1 -0
  245. package/dist/gc.d.cts +10 -0
  246. package/dist/gc.d.ts +2 -0
  247. package/dist/gc.js +5 -0
  248. package/dist/gc.js.map +1 -0
  249. package/dist/guaranteed/classifier.d.ts +10 -0
  250. package/dist/guaranteed/classifier.js +88 -0
  251. package/dist/guaranteed/classifier.js.map +1 -0
  252. package/dist/guaranteed/errors.d.ts +38 -0
  253. package/dist/guaranteed/errors.js +73 -0
  254. package/dist/guaranteed/errors.js.map +1 -0
  255. package/dist/guaranteed/index.d.ts +7 -0
  256. package/dist/guaranteed/index.js +21 -0
  257. package/dist/guaranteed/index.js.map +1 -0
  258. package/dist/guaranteed/request.d.ts +8 -0
  259. package/dist/guaranteed/request.js +206 -0
  260. package/dist/guaranteed/request.js.map +1 -0
  261. package/dist/guaranteed/response.d.ts +12 -0
  262. package/dist/guaranteed/response.js +98 -0
  263. package/dist/guaranteed/response.js.map +1 -0
  264. package/dist/guaranteed/types.d.ts +20 -0
  265. package/dist/guaranteed/types.js +1 -0
  266. package/dist/guaranteed/types.js.map +1 -0
  267. package/dist/index-B8NNnQ8P.d.ts +424 -0
  268. package/dist/index.cjs +34774 -0
  269. package/dist/index.cjs.map +1 -0
  270. package/dist/index.d.cts +2462 -0
  271. package/dist/index.d.ts +79 -0
  272. package/dist/index.js +168 -0
  273. package/dist/index.js.map +1 -0
  274. package/dist/legacy-sdpub/upgrade.d.ts +7 -0
  275. package/dist/legacy-sdpub/upgrade.js +795 -0
  276. package/dist/legacy-sdpub/upgrade.js.map +1 -0
  277. package/dist/llm/cache.d.ts +13 -0
  278. package/dist/llm/cache.js +35 -0
  279. package/dist/llm/cache.js.map +1 -0
  280. package/dist/llm/client.d.ts +26 -0
  281. package/dist/llm/client.js +572 -0
  282. package/dist/llm/client.js.map +1 -0
  283. package/dist/llm/context.d.ts +22 -0
  284. package/dist/llm/context.js +78 -0
  285. package/dist/llm/context.js.map +1 -0
  286. package/dist/llm/errors.d.ts +7 -0
  287. package/dist/llm/errors.js +12 -0
  288. package/dist/llm/errors.js.map +1 -0
  289. package/dist/llm/index.d.ts +7 -0
  290. package/dist/llm/index.js +17 -0
  291. package/dist/llm/index.js.map +1 -0
  292. package/dist/llm/request-log.d.ts +9 -0
  293. package/dist/llm/request-log.js +35 -0
  294. package/dist/llm/request-log.js.map +1 -0
  295. package/dist/llm/sampling.d.ts +11 -0
  296. package/dist/llm/sampling.js +67 -0
  297. package/dist/llm/sampling.js.map +1 -0
  298. package/dist/llm/types.d.ts +50 -0
  299. package/dist/llm/types.js +1 -0
  300. package/dist/llm/types.js.map +1 -0
  301. package/dist/output/epub/archive.d.ts +9 -0
  302. package/dist/output/epub/archive.js +81 -0
  303. package/dist/output/epub/archive.js.map +1 -0
  304. package/dist/output/epub/book.d.ts +15 -0
  305. package/dist/output/epub/book.js +76 -0
  306. package/dist/output/epub/book.js.map +1 -0
  307. package/dist/output/epub/content.d.ts +9 -0
  308. package/dist/output/epub/content.js +35 -0
  309. package/dist/output/epub/content.js.map +1 -0
  310. package/dist/output/epub/index.d.ts +20 -0
  311. package/dist/output/epub/index.js +14 -0
  312. package/dist/output/epub/index.js.map +1 -0
  313. package/dist/output/epub/model.d.ts +24 -0
  314. package/dist/output/epub/model.js +1 -0
  315. package/dist/output/epub/model.js.map +1 -0
  316. package/dist/output/epub/navigation.d.ts +10 -0
  317. package/dist/output/epub/navigation.js +39 -0
  318. package/dist/output/epub/navigation.js.map +1 -0
  319. package/dist/output/epub/package.d.ts +17 -0
  320. package/dist/output/epub/package.js +29 -0
  321. package/dist/output/epub/package.js.map +1 -0
  322. package/dist/output/epub/shared.d.ts +4 -0
  323. package/dist/output/epub/shared.js +12 -0
  324. package/dist/output/epub/shared.js.map +1 -0
  325. package/dist/output/epub/templates.d.ts +35 -0
  326. package/dist/output/epub/templates.js +26 -0
  327. package/dist/output/epub/templates.js.map +1 -0
  328. package/dist/output/index.d.ts +14 -0
  329. package/dist/output/index.js +11 -0
  330. package/dist/output/index.js.map +1 -0
  331. package/dist/output/plain-text.d.ts +18 -0
  332. package/dist/output/plain-text.js +56 -0
  333. package/dist/output/plain-text.js.map +1 -0
  334. package/dist/progress/index.d.ts +3 -0
  335. package/dist/progress/index.js +14 -0
  336. package/dist/progress/index.js.map +1 -0
  337. package/dist/progress/reporter.d.ts +10 -0
  338. package/dist/progress/reporter.js +79 -0
  339. package/dist/progress/reporter.js.map +1 -0
  340. package/dist/progress/tracker.d.ts +37 -0
  341. package/dist/progress/tracker.js +119 -0
  342. package/dist/progress/tracker.js.map +1 -0
  343. package/dist/progress/types.d.ts +28 -0
  344. package/dist/progress/types.js +1 -0
  345. package/dist/progress/types.js.map +1 -0
  346. package/dist/reader/attention/attention.d.ts +39 -0
  347. package/dist/reader/attention/attention.js +123 -0
  348. package/dist/reader/attention/attention.js.map +1 -0
  349. package/dist/reader/attention/index.d.ts +9 -0
  350. package/dist/reader/attention/index.js +5 -0
  351. package/dist/reader/attention/index.js.map +1 -0
  352. package/dist/reader/attention/wave-reflection.d.ts +21 -0
  353. package/dist/reader/attention/wave-reflection.js +153 -0
  354. package/dist/reader/attention/wave-reflection.js.map +1 -0
  355. package/dist/reader/attention/working-memory.d.ts +28 -0
  356. package/dist/reader/attention/working-memory.js +62 -0
  357. package/dist/reader/attention/working-memory.js.map +1 -0
  358. package/dist/reader/chunk-batch/extract.d.ts +13 -0
  359. package/dist/reader/chunk-batch/extract.js +14 -0
  360. package/dist/reader/chunk-batch/extract.js.map +1 -0
  361. package/dist/reader/chunk-batch/extractor.d.ts +17 -0
  362. package/dist/reader/chunk-batch/extractor.js +337 -0
  363. package/dist/reader/chunk-batch/extractor.js.map +1 -0
  364. package/dist/reader/chunk-batch/fragment-projection.d.ts +34 -0
  365. package/dist/reader/chunk-batch/fragment-projection.js +94 -0
  366. package/dist/reader/chunk-batch/fragment-projection.js.map +1 -0
  367. package/dist/reader/chunk-batch/index.d.ts +12 -0
  368. package/dist/reader/chunk-batch/index.js +13 -0
  369. package/dist/reader/chunk-batch/index.js.map +1 -0
  370. package/dist/reader/chunk-batch/language.d.ts +9 -0
  371. package/dist/reader/chunk-batch/language.js +23 -0
  372. package/dist/reader/chunk-batch/language.js.map +1 -0
  373. package/dist/reader/chunk-batch/parser.d.ts +94 -0
  374. package/dist/reader/chunk-batch/parser.js +640 -0
  375. package/dist/reader/chunk-batch/parser.js.map +1 -0
  376. package/dist/reader/chunk-batch/prompt-templates.d.ts +6 -0
  377. package/dist/reader/chunk-batch/prompt-templates.js +11 -0
  378. package/dist/reader/chunk-batch/prompt-templates.js.map +1 -0
  379. package/dist/reader/chunk-batch/types.d.ts +85 -0
  380. package/dist/reader/chunk-batch/types.js +1 -0
  381. package/dist/reader/chunk-batch/types.js.map +1 -0
  382. package/dist/reader/index.d.ts +13 -0
  383. package/dist/reader/index.js +7 -0
  384. package/dist/reader/index.js.map +1 -0
  385. package/dist/reader/reader.d.ts +37 -0
  386. package/dist/reader/reader.js +82 -0
  387. package/dist/reader/reader.js.map +1 -0
  388. package/dist/reader/segment/index.d.ts +2 -0
  389. package/dist/reader/segment/index.js +5 -0
  390. package/dist/reader/segment/index.js.map +1 -0
  391. package/dist/reader/segment/intl-segmenter.d.ts +5 -0
  392. package/dist/reader/segment/intl-segmenter.js +102 -0
  393. package/dist/reader/segment/intl-segmenter.js.map +1 -0
  394. package/dist/reader/segment/segment.d.ts +5 -0
  395. package/dist/reader/segment/segment.js +9 -0
  396. package/dist/reader/segment/segment.js.map +1 -0
  397. package/dist/reader/segment/types.d.ts +14 -0
  398. package/dist/reader/segment/types.js +1 -0
  399. package/dist/reader/segment/types.js.map +1 -0
  400. package/dist/reader/types.d.ts +29 -0
  401. package/dist/reader/types.js +1 -0
  402. package/dist/reader/types.js.map +1 -0
  403. package/dist/serial.d.ts +89 -0
  404. package/dist/serial.js +476 -0
  405. package/dist/serial.js.map +1 -0
  406. package/dist/source/adapter.d.ts +15 -0
  407. package/dist/source/adapter.js +1 -0
  408. package/dist/source/adapter.js.map +1 -0
  409. package/dist/source/epub/archive.d.ts +27 -0
  410. package/dist/source/epub/archive.js +189 -0
  411. package/dist/source/epub/archive.js.map +1 -0
  412. package/dist/source/epub/content.d.ts +22 -0
  413. package/dist/source/epub/content.js +183 -0
  414. package/dist/source/epub/content.js.map +1 -0
  415. package/dist/source/epub/document.d.ts +55 -0
  416. package/dist/source/epub/document.js +179 -0
  417. package/dist/source/epub/document.js.map +1 -0
  418. package/dist/source/epub/index.d.ts +10 -0
  419. package/dist/source/epub/index.js +6 -0
  420. package/dist/source/epub/index.js.map +1 -0
  421. package/dist/source/epub/navigation.d.ts +16 -0
  422. package/dist/source/epub/navigation.js +215 -0
  423. package/dist/source/epub/navigation.js.map +1 -0
  424. package/dist/source/epub/package.d.ts +33 -0
  425. package/dist/source/epub/package.js +237 -0
  426. package/dist/source/epub/package.js.map +1 -0
  427. package/dist/source/epub/xml.d.ts +16 -0
  428. package/dist/source/epub/xml.js +111 -0
  429. package/dist/source/epub/xml.js.map +1 -0
  430. package/dist/source/index.d.ts +12 -0
  431. package/dist/source/index.js +32 -0
  432. package/dist/source/index.js.map +1 -0
  433. package/dist/source/meta.d.ts +30 -0
  434. package/dist/source/meta.js +22 -0
  435. package/dist/source/meta.js.map +1 -0
  436. package/dist/source/plain-text.d.ts +16 -0
  437. package/dist/source/plain-text.js +86 -0
  438. package/dist/source/plain-text.js.map +1 -0
  439. package/dist/source/toc.d.ts +16 -0
  440. package/dist/source/toc.js +17 -0
  441. package/dist/source/toc.js.map +1 -0
  442. package/dist/source/types.d.ts +16 -0
  443. package/dist/source/types.js +1 -0
  444. package/dist/source/types.js.map +1 -0
  445. package/dist/topology/grouping.d.ts +15 -0
  446. package/dist/topology/grouping.js +18 -0
  447. package/dist/topology/grouping.js.map +1 -0
  448. package/dist/topology/index.d.ts +21 -0
  449. package/dist/topology/index.js +5 -0
  450. package/dist/topology/index.js.map +1 -0
  451. package/dist/topology/resource-segmentation.d.ts +13 -0
  452. package/dist/topology/resource-segmentation.js +111 -0
  453. package/dist/topology/resource-segmentation.js.map +1 -0
  454. package/dist/topology/segment-incision.d.ts +18 -0
  455. package/dist/topology/segment-incision.js +197 -0
  456. package/dist/topology/segment-incision.js.map +1 -0
  457. package/dist/topology/snake-detector.d.ts +13 -0
  458. package/dist/topology/snake-detector.js +520 -0
  459. package/dist/topology/snake-detector.js.map +1 -0
  460. package/dist/topology/snake-graph-builder.d.ts +14 -0
  461. package/dist/topology/snake-graph-builder.js +76 -0
  462. package/dist/topology/snake-graph-builder.js.map +1 -0
  463. package/dist/topology/topology.d.ts +29 -0
  464. package/dist/topology/topology.js +348 -0
  465. package/dist/topology/topology.js.map +1 -0
  466. package/dist/topology/weights.d.ts +10 -0
  467. package/dist/topology/weights.js +84 -0
  468. package/dist/topology/weights.js.map +1 -0
  469. package/dist/types-FVIqiLC9.d.cts +24 -0
  470. package/dist/utils/async-semaphore.d.ts +7 -0
  471. package/dist/utils/async-semaphore.js +40 -0
  472. package/dist/utils/async-semaphore.js.map +1 -0
  473. package/dist/utils/enum.d.ts +5 -0
  474. package/dist/utils/enum.js +18 -0
  475. package/dist/utils/enum.js.map +1 -0
  476. package/dist/utils/hash.d.ts +3 -0
  477. package/dist/utils/hash.js +132 -0
  478. package/dist/utils/hash.js.map +1 -0
  479. package/dist/utils/node-error.d.ts +4 -0
  480. package/dist/utils/node-error.js +59 -0
  481. package/dist/utils/node-error.js.map +1 -0
  482. package/dist/wikg/archive-uri.d.ts +1 -0
  483. package/dist/wikg/archive-uri.js +37 -0
  484. package/dist/wikg/archive-uri.js.map +1 -0
  485. package/dist/wikg/archive.d.ts +28 -0
  486. package/dist/wikg/archive.js +496 -0
  487. package/dist/wikg/archive.js.map +1 -0
  488. package/dist/wikg/index.d.ts +31 -0
  489. package/dist/wikg/index.js +60 -0
  490. package/dist/wikg/index.js.map +1 -0
  491. package/dist/wikg/wikg-coordinator.d.ts +45 -0
  492. package/dist/wikg/wikg-coordinator.js +1687 -0
  493. package/dist/wikg/wikg-coordinator.js.map +1 -0
  494. package/dist/wikg/wiki-graph-archive-file.d.ts +42 -0
  495. package/dist/wikg/wiki-graph-archive-file.js +78 -0
  496. package/dist/wikg/wiki-graph-archive-file.js.map +1 -0
  497. package/dist/wikilink/index.d.ts +10 -0
  498. package/dist/wikilink/index.js +7 -0
  499. package/dist/wikilink/index.js.map +1 -0
  500. package/dist/wikilink/relation-discovery.d.ts +31 -0
  501. package/dist/wikilink/relation-discovery.js +477 -0
  502. package/dist/wikilink/relation-discovery.js.map +1 -0
  503. package/dist/wikilink/types.d.ts +23 -0
  504. package/dist/wikilink/types.js +1 -0
  505. package/dist/wikilink/types.js.map +1 -0
  506. package/dist/wikilink/window.d.ts +7 -0
  507. package/dist/wikilink/window.js +53 -0
  508. package/dist/wikilink/window.js.map +1 -0
  509. package/dist/wikimatch/enrichment.d.ts +10 -0
  510. package/dist/wikimatch/enrichment.js +55 -0
  511. package/dist/wikimatch/enrichment.js.map +1 -0
  512. package/dist/wikimatch/index.d.ts +16 -0
  513. package/dist/wikimatch/index.js +66 -0
  514. package/dist/wikimatch/index.js.map +1 -0
  515. package/dist/wikimatch/option-narrowing.d.ts +17 -0
  516. package/dist/wikimatch/option-narrowing.js +208 -0
  517. package/dist/wikimatch/option-narrowing.js.map +1 -0
  518. package/dist/wikimatch/options.d.ts +14 -0
  519. package/dist/wikimatch/options.js +155 -0
  520. package/dist/wikimatch/options.js.map +1 -0
  521. package/dist/wikimatch/policy-judge.d.ts +17 -0
  522. package/dist/wikimatch/policy-judge.js +430 -0
  523. package/dist/wikimatch/policy-judge.js.map +1 -0
  524. package/dist/wikimatch/range-suppression.d.ts +9 -0
  525. package/dist/wikimatch/range-suppression.js +27 -0
  526. package/dist/wikimatch/range-suppression.js.map +1 -0
  527. package/dist/wikimatch/surface-screening.d.ts +16 -0
  528. package/dist/wikimatch/surface-screening.js +168 -0
  529. package/dist/wikimatch/surface-screening.js.map +1 -0
  530. package/dist/wikimatch/surface-window.d.ts +6 -0
  531. package/dist/wikimatch/surface-window.js +44 -0
  532. package/dist/wikimatch/surface-window.js.map +1 -0
  533. package/dist/wikimatch/types.d.ts +151 -0
  534. package/dist/wikimatch/types.js +1 -0
  535. package/dist/wikimatch/types.js.map +1 -0
  536. package/dist/wikimatch/wikispine.d.ts +43 -0
  537. package/dist/wikimatch/wikispine.js +399 -0
  538. package/dist/wikimatch/wikispine.js.map +1 -0
  539. package/dist/wikimatch/window.d.ts +6 -0
  540. package/dist/wikimatch/window.js +83 -0
  541. package/dist/wikimatch/window.js.map +1 -0
  542. package/dist/wikimatch/words.d.ts +16 -0
  543. package/dist/wikimatch/words.js +66 -0
  544. package/dist/wikimatch/words.js.map +1 -0
  545. package/dist/wikipage/cache.d.ts +18 -0
  546. package/dist/wikipage/cache.js +404 -0
  547. package/dist/wikipage/cache.js.map +1 -0
  548. package/dist/wikipage/fetch-log.d.ts +17 -0
  549. package/dist/wikipage/fetch-log.js +143 -0
  550. package/dist/wikipage/fetch-log.js.map +1 -0
  551. package/dist/wikipage/index.d.ts +14 -0
  552. package/dist/wikipage/index.js +17 -0
  553. package/dist/wikipage/index.js.map +1 -0
  554. package/dist/wikipage/normalizer.d.ts +14 -0
  555. package/dist/wikipage/normalizer.js +147 -0
  556. package/dist/wikipage/normalizer.js.map +1 -0
  557. package/dist/wikipage/rate-limiter.d.ts +13 -0
  558. package/dist/wikipage/rate-limiter.js +84 -0
  559. package/dist/wikipage/rate-limiter.js.map +1 -0
  560. package/dist/wikipage/resolver.d.ts +26 -0
  561. package/dist/wikipage/resolver.js +325 -0
  562. package/dist/wikipage/resolver.js.map +1 -0
  563. package/dist/wikipage/types.d.ts +96 -0
  564. package/dist/wikipage/types.js +1 -0
  565. package/dist/wikipage/types.js.map +1 -0
  566. package/dist/wikipage/wikimedia-client.d.ts +48 -0
  567. package/dist/wikipage/wikimedia-client.js +397 -0
  568. package/dist/wikipage/wikimedia-client.js.map +1 -0
  569. package/dist/worker-BgQ0Xl8T.d.cts +181 -0
  570. package/dist/worker.cjs +5259 -0
  571. package/dist/worker.cjs.map +1 -0
  572. package/dist/worker.d.cts +2 -0
  573. package/dist/worker.d.ts +2 -0
  574. package/dist/worker.js +5 -0
  575. package/dist/worker.js.map +1 -0
  576. package/package.json +78 -0
@@ -0,0 +1,197 @@
1
+ async function computeNormalizedSegmentIncisions(input) {
2
+ const segmentWordsCounts = await loadSegmentWordsCounts(input.fragments);
3
+ return normalizeIncisions(
4
+ computeSegmentIncisions({
5
+ chunks: input.chunks,
6
+ edges: input.edges,
7
+ segmentWordsCounts
8
+ })
9
+ );
10
+ }
11
+ async function loadSegmentWordsCounts(fragments) {
12
+ const wordsCounts = createNumberRecord();
13
+ const startSentenceIndexes = await fragments.listFragmentIds();
14
+ for (const startSentenceIndex of startSentenceIndexes) {
15
+ const segment = await fragments.getFragment(startSentenceIndex);
16
+ wordsCounts[String(startSentenceIndex)] = segment.sentences.reduce(
17
+ (total, sentence) => total + sentence.wordsCount,
18
+ 0
19
+ );
20
+ }
21
+ return wordsCounts;
22
+ }
23
+ function computeSegmentIncisions(input) {
24
+ const startSentenceIndexes = Object.keys(input.segmentWordsCounts).map(Number).sort(compareNumber);
25
+ const chunkIdsBySegmentStartIndex = createNumberListRecord();
26
+ const chunkWeightsById = createNumberRecord();
27
+ const edgesByChunkId = createReadingEdgeListRecord();
28
+ for (const chunk of input.chunks) {
29
+ const startSentenceIndex = findContainingSegmentStartIndex(
30
+ startSentenceIndexes,
31
+ chunk.sentenceId[1]
32
+ );
33
+ if (startSentenceIndex === void 0) {
34
+ continue;
35
+ }
36
+ const segmentKey = String(startSentenceIndex);
37
+ chunkWeightsById[String(chunk.id)] = chunk.weight;
38
+ if (chunkIdsBySegmentStartIndex[segmentKey] === void 0) {
39
+ chunkIdsBySegmentStartIndex[segmentKey] = [];
40
+ }
41
+ chunkIdsBySegmentStartIndex[segmentKey]?.push(chunk.id);
42
+ }
43
+ for (const edge of input.edges) {
44
+ const fromKey = String(edge.fromId);
45
+ const toKey = String(edge.toId);
46
+ if (edgesByChunkId[fromKey] === void 0) {
47
+ edgesByChunkId[fromKey] = [];
48
+ }
49
+ if (edgesByChunkId[toKey] === void 0) {
50
+ edgesByChunkId[toKey] = [];
51
+ }
52
+ edgesByChunkId[fromKey]?.push(edge);
53
+ edgesByChunkId[toKey]?.push(edge);
54
+ }
55
+ const chunksById = createChunkRecord();
56
+ for (const chunk of input.chunks) {
57
+ chunksById[String(chunk.id)] = chunk;
58
+ }
59
+ return startSentenceIndexes.filter(
60
+ (startSentenceIndex) => chunkIdsBySegmentStartIndex[String(startSentenceIndex)] !== void 0
61
+ ).map((startSentenceIndex) => {
62
+ const chunkIds = chunkIdsBySegmentStartIndex[String(startSentenceIndex)] ?? [];
63
+ let endIncision = 0;
64
+ let startIncision = 0;
65
+ for (const chunkId of chunkIds) {
66
+ const chunkWeight = chunkWeightsById[String(chunkId)] ?? 0;
67
+ const chunkEdges = edgesByChunkId[String(chunkId)] ?? [];
68
+ const externalEdges = chunkEdges.map((edge) => ({
69
+ otherChunkId: edge.fromId === chunkId ? edge.toId : edge.fromId,
70
+ weight: edge.weight
71
+ })).map((edge) => {
72
+ const otherChunk = chunksById[String(edge.otherChunkId)];
73
+ if (otherChunk === void 0) {
74
+ return void 0;
75
+ }
76
+ return {
77
+ otherSegmentStartIndex: findContainingSegmentStartIndex(
78
+ startSentenceIndexes,
79
+ otherChunk.sentenceId[1]
80
+ ),
81
+ weight: edge.weight
82
+ };
83
+ }).filter(
84
+ (edge) => edge !== void 0 && edge.otherSegmentStartIndex !== void 0 && edge.otherSegmentStartIndex !== startSentenceIndex
85
+ );
86
+ if (externalEdges.length === 0) {
87
+ continue;
88
+ }
89
+ const totalExternalWeight = externalEdges.reduce(
90
+ (total, edge) => total + edge.weight,
91
+ 0
92
+ );
93
+ if (totalExternalWeight === 0) {
94
+ continue;
95
+ }
96
+ for (const edge of externalEdges) {
97
+ const halfWeight = chunkWeight / totalExternalWeight * edge.weight;
98
+ if (edge.otherSegmentStartIndex < startSentenceIndex) {
99
+ startIncision += halfWeight;
100
+ continue;
101
+ }
102
+ endIncision += halfWeight;
103
+ }
104
+ }
105
+ return {
106
+ endIncision,
107
+ startSentenceIndex,
108
+ startIncision,
109
+ wordsCount: input.segmentWordsCounts[String(startSentenceIndex)] ?? 0
110
+ };
111
+ });
112
+ }
113
+ function findContainingSegmentStartIndex(startSentenceIndexes, sentenceIndex) {
114
+ let containingSegmentStartIndex;
115
+ for (const startSentenceIndex of startSentenceIndexes) {
116
+ if (startSentenceIndex > sentenceIndex) {
117
+ break;
118
+ }
119
+ containingSegmentStartIndex = startSentenceIndex;
120
+ }
121
+ return containingSegmentStartIndex;
122
+ }
123
+ function normalizeIncisions(segmentInfos) {
124
+ const allIncisions = segmentInfos.flatMap((segmentInfo) => [
125
+ segmentInfo.startIncision,
126
+ segmentInfo.endIncision
127
+ ]).filter((incision) => incision > 0).sort(compareNumber);
128
+ if (allIncisions.length === 0) {
129
+ return [...segmentInfos];
130
+ }
131
+ const thresholdIndex = Math.min(
132
+ Math.floor(allIncisions.length * 0.98),
133
+ allIncisions.length - 1
134
+ );
135
+ const threshold = allIncisions[thresholdIndex] ?? 0;
136
+ const normalValues = allIncisions.filter((incision) => incision < threshold);
137
+ if (normalValues.length === 0) {
138
+ return segmentInfos.map((segmentInfo) => ({
139
+ ...segmentInfo,
140
+ endIncision: segmentInfo.endIncision > 0 ? 10 : 0,
141
+ startIncision: segmentInfo.startIncision > 0 ? 10 : 0
142
+ }));
143
+ }
144
+ const minValue = Math.min(...normalValues);
145
+ const maxValue = Math.max(...normalValues);
146
+ const minLog = minValue > 0 ? Math.log(minValue) : 0;
147
+ const maxLog = maxValue > 0 ? Math.log(maxValue) : 0;
148
+ const logRange = maxLog - minLog === 0 ? 1 : maxLog - minLog;
149
+ return segmentInfos.map((segmentInfo) => ({
150
+ ...segmentInfo,
151
+ endIncision: normalizeIncision(segmentInfo.endIncision, {
152
+ logRange,
153
+ minLog,
154
+ threshold
155
+ }),
156
+ startIncision: normalizeIncision(segmentInfo.startIncision, {
157
+ logRange,
158
+ minLog,
159
+ threshold
160
+ })
161
+ }));
162
+ }
163
+ function normalizeIncision(incision, input) {
164
+ if (incision === 0) {
165
+ return 0;
166
+ }
167
+ if (incision >= input.threshold) {
168
+ return 10;
169
+ }
170
+ const incisionLog = incision > 0 ? Math.log(incision) : input.minLog;
171
+ return Math.max(
172
+ 1,
173
+ Math.min(
174
+ 10,
175
+ Math.round(1 + (incisionLog - input.minLog) / input.logRange * 9)
176
+ )
177
+ );
178
+ }
179
+ function compareNumber(left, right) {
180
+ return left - right;
181
+ }
182
+ function createChunkRecord() {
183
+ return /* @__PURE__ */ Object.create(null);
184
+ }
185
+ function createReadingEdgeListRecord() {
186
+ return /* @__PURE__ */ Object.create(null);
187
+ }
188
+ function createNumberListRecord() {
189
+ return /* @__PURE__ */ Object.create(null);
190
+ }
191
+ function createNumberRecord() {
192
+ return /* @__PURE__ */ Object.create(null);
193
+ }
194
+ export {
195
+ computeNormalizedSegmentIncisions
196
+ };
197
+ //# sourceMappingURL=segment-incision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/topology/segment-incision.ts"],"sourcesContent":["import type {\n ChunkRecord,\n ReadingEdgeRecord,\n ReadonlySerialFragments,\n} from \"../document/index.js\";\n\nexport interface SegmentInfo {\n readonly startSentenceIndex: number;\n readonly wordsCount: number;\n readonly startIncision: number;\n readonly endIncision: number;\n}\n\nexport async function computeNormalizedSegmentIncisions(input: {\n chunks: readonly ChunkRecord[];\n edges: readonly ReadingEdgeRecord[];\n fragments: ReadonlySerialFragments;\n}): Promise<SegmentInfo[]> {\n const segmentWordsCounts = await loadSegmentWordsCounts(input.fragments);\n\n return normalizeIncisions(\n computeSegmentIncisions({\n chunks: input.chunks,\n edges: input.edges,\n segmentWordsCounts,\n }),\n );\n}\n\nasync function loadSegmentWordsCounts(\n fragments: ReadonlySerialFragments,\n): Promise<Readonly<Record<string, number>>> {\n const wordsCounts = createNumberRecord();\n const startSentenceIndexes = await fragments.listFragmentIds();\n\n for (const startSentenceIndex of startSentenceIndexes) {\n const segment = await fragments.getFragment(startSentenceIndex);\n\n wordsCounts[String(startSentenceIndex)] = segment.sentences.reduce(\n (total, sentence) => total + sentence.wordsCount,\n 0,\n );\n }\n\n return wordsCounts;\n}\n\nfunction computeSegmentIncisions(input: {\n chunks: readonly ChunkRecord[];\n edges: readonly ReadingEdgeRecord[];\n segmentWordsCounts: Readonly<Record<string, number>>;\n}): SegmentInfo[] {\n const startSentenceIndexes = Object.keys(input.segmentWordsCounts)\n .map(Number)\n .sort(compareNumber);\n const chunkIdsBySegmentStartIndex = createNumberListRecord();\n const chunkWeightsById = createNumberRecord();\n const edgesByChunkId = createReadingEdgeListRecord();\n\n for (const chunk of input.chunks) {\n const startSentenceIndex = findContainingSegmentStartIndex(\n startSentenceIndexes,\n chunk.sentenceId[1],\n );\n\n if (startSentenceIndex === undefined) {\n continue;\n }\n\n const segmentKey = String(startSentenceIndex);\n\n chunkWeightsById[String(chunk.id)] = chunk.weight;\n if (chunkIdsBySegmentStartIndex[segmentKey] === undefined) {\n chunkIdsBySegmentStartIndex[segmentKey] = [];\n }\n chunkIdsBySegmentStartIndex[segmentKey]?.push(chunk.id);\n }\n\n for (const edge of input.edges) {\n const fromKey = String(edge.fromId);\n const toKey = String(edge.toId);\n\n if (edgesByChunkId[fromKey] === undefined) {\n edgesByChunkId[fromKey] = [];\n }\n if (edgesByChunkId[toKey] === undefined) {\n edgesByChunkId[toKey] = [];\n }\n\n edgesByChunkId[fromKey]?.push(edge);\n edgesByChunkId[toKey]?.push(edge);\n }\n\n const chunksById = createChunkRecord();\n\n for (const chunk of input.chunks) {\n chunksById[String(chunk.id)] = chunk;\n }\n\n return startSentenceIndexes\n .filter(\n (startSentenceIndex) =>\n chunkIdsBySegmentStartIndex[String(startSentenceIndex)] !== undefined,\n )\n .map((startSentenceIndex) => {\n const chunkIds =\n chunkIdsBySegmentStartIndex[String(startSentenceIndex)] ?? [];\n let endIncision = 0;\n let startIncision = 0;\n\n for (const chunkId of chunkIds) {\n const chunkWeight = chunkWeightsById[String(chunkId)] ?? 0;\n const chunkEdges = edgesByChunkId[String(chunkId)] ?? [];\n const externalEdges = chunkEdges\n .map((edge) => ({\n otherChunkId: edge.fromId === chunkId ? edge.toId : edge.fromId,\n weight: edge.weight,\n }))\n .map((edge) => {\n const otherChunk = chunksById[String(edge.otherChunkId)];\n\n if (otherChunk === undefined) {\n return undefined;\n }\n\n return {\n otherSegmentStartIndex: findContainingSegmentStartIndex(\n startSentenceIndexes,\n otherChunk.sentenceId[1],\n ),\n weight: edge.weight,\n };\n })\n .filter(\n (\n edge,\n ): edge is {\n otherSegmentStartIndex: number;\n weight: number;\n } =>\n edge !== undefined &&\n edge.otherSegmentStartIndex !== undefined &&\n edge.otherSegmentStartIndex !== startSentenceIndex,\n );\n\n if (externalEdges.length === 0) {\n continue;\n }\n\n const totalExternalWeight = externalEdges.reduce(\n (total, edge) => total + edge.weight,\n 0,\n );\n\n if (totalExternalWeight === 0) {\n continue;\n }\n\n for (const edge of externalEdges) {\n const halfWeight = (chunkWeight / totalExternalWeight) * edge.weight;\n\n if (edge.otherSegmentStartIndex < startSentenceIndex) {\n startIncision += halfWeight;\n continue;\n }\n\n endIncision += halfWeight;\n }\n }\n\n return {\n endIncision,\n startSentenceIndex,\n startIncision,\n wordsCount: input.segmentWordsCounts[String(startSentenceIndex)] ?? 0,\n };\n });\n}\n\nfunction findContainingSegmentStartIndex(\n startSentenceIndexes: readonly number[],\n sentenceIndex: number,\n): number | undefined {\n let containingSegmentStartIndex: number | undefined;\n\n for (const startSentenceIndex of startSentenceIndexes) {\n if (startSentenceIndex > sentenceIndex) {\n break;\n }\n\n containingSegmentStartIndex = startSentenceIndex;\n }\n\n return containingSegmentStartIndex;\n}\n\nfunction normalizeIncisions(\n segmentInfos: readonly SegmentInfo[],\n): SegmentInfo[] {\n const allIncisions = segmentInfos\n .flatMap((segmentInfo) => [\n segmentInfo.startIncision,\n segmentInfo.endIncision,\n ])\n .filter((incision) => incision > 0)\n .sort(compareNumber);\n\n if (allIncisions.length === 0) {\n return [...segmentInfos];\n }\n\n const thresholdIndex = Math.min(\n Math.floor(allIncisions.length * 0.98),\n allIncisions.length - 1,\n );\n const threshold = allIncisions[thresholdIndex] ?? 0;\n const normalValues = allIncisions.filter((incision) => incision < threshold);\n\n if (normalValues.length === 0) {\n return segmentInfos.map((segmentInfo) => ({\n ...segmentInfo,\n endIncision: segmentInfo.endIncision > 0 ? 10 : 0,\n startIncision: segmentInfo.startIncision > 0 ? 10 : 0,\n }));\n }\n\n const minValue = Math.min(...normalValues);\n const maxValue = Math.max(...normalValues);\n const minLog = minValue > 0 ? Math.log(minValue) : 0;\n const maxLog = maxValue > 0 ? Math.log(maxValue) : 0;\n const logRange = maxLog - minLog === 0 ? 1 : maxLog - minLog;\n\n return segmentInfos.map((segmentInfo) => ({\n ...segmentInfo,\n endIncision: normalizeIncision(segmentInfo.endIncision, {\n logRange,\n minLog,\n threshold,\n }),\n startIncision: normalizeIncision(segmentInfo.startIncision, {\n logRange,\n minLog,\n threshold,\n }),\n }));\n}\n\nfunction normalizeIncision(\n incision: number,\n input: {\n logRange: number;\n minLog: number;\n threshold: number;\n },\n): number {\n if (incision === 0) {\n return 0;\n }\n\n if (incision >= input.threshold) {\n return 10;\n }\n\n const incisionLog = incision > 0 ? Math.log(incision) : input.minLog;\n\n return Math.max(\n 1,\n Math.min(\n 10,\n Math.round(1 + ((incisionLog - input.minLog) / input.logRange) * 9),\n ),\n );\n}\n\nfunction compareNumber(left: number, right: number): number {\n return left - right;\n}\n\nfunction createChunkRecord(): Record<string, ChunkRecord | undefined> {\n return Object.create(null) as Record<string, ChunkRecord | undefined>;\n}\n\nfunction createReadingEdgeListRecord(): Record<\n string,\n ReadingEdgeRecord[] | undefined\n> {\n return Object.create(null) as Record<string, ReadingEdgeRecord[] | undefined>;\n}\n\nfunction createNumberListRecord(): Record<string, number[] | undefined> {\n return Object.create(null) as Record<string, number[] | undefined>;\n}\n\nfunction createNumberRecord(): Record<string, number> {\n return Object.create(null) as Record<string, number>;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,13 @@
1
+ import { ChunkRecord, ReadingEdgeRecord } from '../document/types.js';
2
+
3
+ declare function splitConnectedComponents(input: {
4
+ chunkIds: readonly number[];
5
+ edges: readonly ReadingEdgeRecord[];
6
+ }): number[][];
7
+ declare function detectSnakesInComponent(input: {
8
+ chunks: readonly ChunkRecord[];
9
+ edges: readonly ReadingEdgeRecord[];
10
+ snakeWordsCount?: number;
11
+ }): number[][];
12
+
13
+ export { detectSnakesInComponent, splitConnectedComponents };