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.
- package/LICENSE +201 -0
- package/data/editor/clue_reviewer.jinja +410 -0
- package/data/editor/clue_reviewer_generator.jinja +428 -0
- package/data/editor/revision_feedback.jinja +5 -0
- package/data/editor/text_compressor.jinja +127 -0
- package/data/guaranteed/response_intent_classifier.jinja +8 -0
- package/data/help/commands/archive/next.jinja +29 -0
- package/data/help/commands/gc.jinja +38 -0
- package/data/help/commands/legacy/migrate.jinja +20 -0
- package/data/help/commands/legacy.jinja +19 -0
- package/data/help/commands/maintenance/chapter/add.jinja +41 -0
- package/data/help/commands/maintenance/chapter/list.jinja +33 -0
- package/data/help/commands/maintenance/chapter/move.jinja +36 -0
- package/data/help/commands/maintenance/chapter/remove.jinja +26 -0
- package/data/help/commands/maintenance/chapter/reset.jinja +29 -0
- package/data/help/commands/maintenance/chapter/set-source.jinja +34 -0
- package/data/help/commands/maintenance/chapter/set-summary.jinja +31 -0
- package/data/help/commands/maintenance/chapter/set-title.jinja +29 -0
- package/data/help/commands/maintenance/chapter/tree.jinja +58 -0
- package/data/help/commands/maintenance/chapter.jinja +59 -0
- package/data/help/commands/maintenance/cover.jinja +28 -0
- package/data/help/commands/maintenance/meta.jinja +55 -0
- package/data/help/commands/predicate.jinja +460 -0
- package/data/help/commands/root.jinja +83 -0
- package/data/help/commands/transform.jinja +34 -0
- package/data/help/commands/uri.jinja +274 -0
- package/data/help/topics/config.jinja +88 -0
- package/data/help/topics/format.jinja +72 -0
- package/data/help/topics/readiness.jinja +99 -0
- package/data/help/topics/recipe.jinja +151 -0
- package/data/help/topics/runtime.jinja +62 -0
- package/data/help/topics/uri.jinja +178 -0
- package/data/output/epub/cover.xhtml.jinja +13 -0
- package/data/output/epub/nav.xhtml.jinja +12 -0
- package/data/output/epub/package.opf.xml.jinja +39 -0
- package/data/output/epub/section.xhtml.jinja +12 -0
- package/data/topologization/book_coherence_extraction.jinja +223 -0
- package/data/topologization/chunk_extraction.jinja +233 -0
- package/data/topologization/evidence_choice.jinja +38 -0
- package/data/topologization/translate_chunks.jinja +138 -0
- package/data/topologization/user_focused_extraction.jinja +378 -0
- package/dist/archive/query/archive-view.d.ts +26 -0
- package/dist/archive/query/archive-view.js +4540 -0
- package/dist/archive/query/archive-view.js.map +1 -0
- package/dist/archive/query/continuation-cursor.d.ts +61 -0
- package/dist/archive/query/continuation-cursor.js +363 -0
- package/dist/archive/query/continuation-cursor.js.map +1 -0
- package/dist/archive/query/index.d.ts +29 -0
- package/dist/archive/query/index.js +63 -0
- package/dist/archive/query/index.js.map +1 -0
- package/dist/archive/query/lexical-search.d.ts +22 -0
- package/dist/archive/query/lexical-search.js +137 -0
- package/dist/archive/query/lexical-search.js.map +1 -0
- package/dist/archive/query/search-cache.d.ts +192 -0
- package/dist/archive/query/search-cache.js +1248 -0
- package/dist/archive/query/search-cache.js.map +1 -0
- package/dist/archive/search-index/index.d.ts +26 -0
- package/dist/archive/search-index/index.js +29 -0
- package/dist/archive/search-index/index.js.map +1 -0
- package/dist/archive/search-index/search-index.d.ts +26 -0
- package/dist/archive/search-index/search-index.js +555 -0
- package/dist/archive/search-index/search-index.js.map +1 -0
- package/dist/archive/search-index/search-tokenizer.d.ts +16 -0
- package/dist/archive/search-index/search-tokenizer.js +225 -0
- package/dist/archive/search-index/search-tokenizer.js.map +1 -0
- package/dist/common/cli-command.d.ts +4 -0
- package/dist/common/cli-command.js +7 -0
- package/dist/common/cli-command.js.map +1 -0
- package/dist/common/data-dir.d.ts +3 -0
- package/dist/common/data-dir.js +48 -0
- package/dist/common/data-dir.js.map +1 -0
- package/dist/common/language.d.ts +55 -0
- package/dist/common/language.js +208 -0
- package/dist/common/language.js.map +1 -0
- package/dist/common/llm-scope.d.ts +19 -0
- package/dist/common/llm-scope.js +31 -0
- package/dist/common/llm-scope.js.map +1 -0
- package/dist/common/logging.d.ts +22 -0
- package/dist/common/logging.js +141 -0
- package/dist/common/logging.js.map +1 -0
- package/dist/common/template.d.ts +8 -0
- package/dist/common/template.js +54 -0
- package/dist/common/template.js.map +1 -0
- package/dist/common/tinyld-language.d.ts +6 -0
- package/dist/common/tinyld-language.js +34 -0
- package/dist/common/tinyld-language.js.map +1 -0
- package/dist/common/wiki-graph-dir.d.ts +10 -0
- package/dist/common/wiki-graph-dir.js +41 -0
- package/dist/common/wiki-graph-dir.js.map +1 -0
- package/dist/common/wiki-graph-temp.d.ts +6 -0
- package/dist/common/wiki-graph-temp.js +21 -0
- package/dist/common/wiki-graph-temp.js.map +1 -0
- package/dist/common/wiki-graph-uri.d.ts +28 -0
- package/dist/common/wiki-graph-uri.js +171 -0
- package/dist/common/wiki-graph-uri.js.map +1 -0
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.js +13 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/task-context.d.ts +41 -0
- package/dist/context/task-context.js +111 -0
- package/dist/context/task-context.js.map +1 -0
- package/dist/document/database.d.ts +30 -0
- package/dist/document/database.js +273 -0
- package/dist/document/database.js.map +1 -0
- package/dist/document/document.d.ts +153 -0
- package/dist/document/document.js +615 -0
- package/dist/document/document.js.map +1 -0
- package/dist/document/fragments.d.ts +63 -0
- package/dist/document/fragments.js +371 -0
- package/dist/document/fragments.js.map +1 -0
- package/dist/document/index.d.ts +13 -0
- package/dist/document/index.js +62 -0
- package/dist/document/index.js.map +1 -0
- package/dist/document/schema.d.ts +8 -0
- package/dist/document/schema.js +472 -0
- package/dist/document/schema.js.map +1 -0
- package/dist/document/shared-state-database.d.ts +9 -0
- package/dist/document/shared-state-database.js +193 -0
- package/dist/document/shared-state-database.js.map +1 -0
- package/dist/document/stores.d.ts +203 -0
- package/dist/document/stores.js +1678 -0
- package/dist/document/stores.js.map +1 -0
- package/dist/document/text-streams.d.ts +86 -0
- package/dist/document/text-streams.js +515 -0
- package/dist/document/text-streams.js.map +1 -0
- package/dist/document/types.d.ts +148 -0
- package/dist/document/types.js +69 -0
- package/dist/document/types.js.map +1 -0
- package/dist/editor/clue.d.ts +27 -0
- package/dist/editor/clue.js +158 -0
- package/dist/editor/clue.js.map +1 -0
- package/dist/editor/compressor.d.ts +18 -0
- package/dist/editor/compressor.js +68 -0
- package/dist/editor/compressor.js.map +1 -0
- package/dist/editor/editor.d.ts +39 -0
- package/dist/editor/editor.js +253 -0
- package/dist/editor/editor.js.map +1 -0
- package/dist/editor/feedback.d.ts +16 -0
- package/dist/editor/feedback.js +104 -0
- package/dist/editor/feedback.js.map +1 -0
- package/dist/editor/index.d.ts +17 -0
- package/dist/editor/index.js +5 -0
- package/dist/editor/index.js.map +1 -0
- package/dist/editor/language-review.d.ts +14 -0
- package/dist/editor/language-review.js +35 -0
- package/dist/editor/language-review.js.map +1 -0
- package/dist/editor/log.d.ts +37 -0
- package/dist/editor/log.js +202 -0
- package/dist/editor/log.js.map +1 -0
- package/dist/editor/markup.d.ts +20 -0
- package/dist/editor/markup.js +294 -0
- package/dist/editor/markup.js.map +1 -0
- package/dist/editor/prompt-templates.d.ts +6 -0
- package/dist/editor/prompt-templates.js +11 -0
- package/dist/editor/prompt-templates.js.map +1 -0
- package/dist/editor/response.d.ts +5 -0
- package/dist/editor/response.js +31 -0
- package/dist/editor/response.js.map +1 -0
- package/dist/editor/review.d.ts +34 -0
- package/dist/editor/review.js +189 -0
- package/dist/editor/review.js.map +1 -0
- package/dist/editor/types.d.ts +31 -0
- package/dist/editor/types.js +21 -0
- package/dist/editor/types.js.map +1 -0
- package/dist/evidence-selection/anchor-resolver.d.ts +43 -0
- package/dist/evidence-selection/anchor-resolver.js +783 -0
- package/dist/evidence-selection/anchor-resolver.js.map +1 -0
- package/dist/evidence-selection/anchor-types.d.ts +27 -0
- package/dist/evidence-selection/anchor-types.js +1 -0
- package/dist/evidence-selection/anchor-types.js.map +1 -0
- package/dist/evidence-selection/index.d.ts +8 -0
- package/dist/evidence-selection/index.js +32 -0
- package/dist/evidence-selection/index.js.map +1 -0
- package/dist/evidence-selection/prompt.d.ts +18 -0
- package/dist/evidence-selection/prompt.js +54 -0
- package/dist/evidence-selection/prompt.js.map +1 -0
- package/dist/evidence-selection/quote-score.d.ts +29 -0
- package/dist/evidence-selection/quote-score.js +331 -0
- package/dist/evidence-selection/quote-score.js.map +1 -0
- package/dist/evidence-selection/selection-resolver.d.ts +19 -0
- package/dist/evidence-selection/selection-resolver.js +303 -0
- package/dist/evidence-selection/selection-resolver.js.map +1 -0
- package/dist/evidence-selection/text.d.ts +4 -0
- package/dist/evidence-selection/text.js +66 -0
- package/dist/evidence-selection/text.js.map +1 -0
- package/dist/evidence-selection/types.d.ts +36 -0
- package/dist/evidence-selection/types.js +1 -0
- package/dist/evidence-selection/types.js.map +1 -0
- package/dist/facade/app.d.ts +75 -0
- package/dist/facade/app.js +141 -0
- package/dist/facade/app.js.map +1 -0
- package/dist/facade/build-queue.d.ts +181 -0
- package/dist/facade/build-queue.js +1442 -0
- package/dist/facade/build-queue.js.map +1 -0
- package/dist/facade/chapter-build.d.ts +60 -0
- package/dist/facade/chapter-build.js +1020 -0
- package/dist/facade/chapter-build.js.map +1 -0
- package/dist/facade/chapter.d.ts +168 -0
- package/dist/facade/chapter.js +944 -0
- package/dist/facade/chapter.js.map +1 -0
- package/dist/facade/digest.d.ts +55 -0
- package/dist/facade/digest.js +168 -0
- package/dist/facade/digest.js.map +1 -0
- package/dist/facade/graph.d.ts +60 -0
- package/dist/facade/graph.js +203 -0
- package/dist/facade/graph.js.map +1 -0
- package/dist/facade/import.d.ts +49 -0
- package/dist/facade/import.js +262 -0
- package/dist/facade/import.js.map +1 -0
- package/dist/facade/index.d.ts +39 -0
- package/dist/facade/index.js +171 -0
- package/dist/facade/index.js.map +1 -0
- package/dist/facade/knowledge-graph-build.d.ts +75 -0
- package/dist/facade/knowledge-graph-build.js +897 -0
- package/dist/facade/knowledge-graph-build.js.map +1 -0
- package/dist/facade/llm-sampling.d.ts +11 -0
- package/dist/facade/llm-sampling.js +58 -0
- package/dist/facade/llm-sampling.js.map +1 -0
- package/dist/facade/types.d.ts +8 -0
- package/dist/facade/types.js +1 -0
- package/dist/facade/types.js.map +1 -0
- package/dist/facade/wiki-graph-archive.d.ts +41 -0
- package/dist/facade/wiki-graph-archive.js +130 -0
- package/dist/facade/wiki-graph-archive.js.map +1 -0
- package/dist/gc/files.d.ts +15 -0
- package/dist/gc/files.js +141 -0
- package/dist/gc/files.js.map +1 -0
- package/dist/gc/index.d.ts +2 -0
- package/dist/gc/index.js +5 -0
- package/dist/gc/index.js.map +1 -0
- package/dist/gc/lock.d.ts +3 -0
- package/dist/gc/lock.js +137 -0
- package/dist/gc/lock.js.map +1 -0
- package/dist/gc/runner.d.ts +9 -0
- package/dist/gc/runner.js +129 -0
- package/dist/gc/runner.js.map +1 -0
- package/dist/gc/tmp-gc.d.ts +5 -0
- package/dist/gc/tmp-gc.js +57 -0
- package/dist/gc/tmp-gc.js.map +1 -0
- package/dist/gc/types.d.ts +24 -0
- package/dist/gc/types.js +1 -0
- package/dist/gc/types.js.map +1 -0
- package/dist/gc.cjs +10041 -0
- package/dist/gc.cjs.map +1 -0
- package/dist/gc.d.cts +10 -0
- package/dist/gc.d.ts +2 -0
- package/dist/gc.js +5 -0
- package/dist/gc.js.map +1 -0
- package/dist/guaranteed/classifier.d.ts +10 -0
- package/dist/guaranteed/classifier.js +88 -0
- package/dist/guaranteed/classifier.js.map +1 -0
- package/dist/guaranteed/errors.d.ts +38 -0
- package/dist/guaranteed/errors.js +73 -0
- package/dist/guaranteed/errors.js.map +1 -0
- package/dist/guaranteed/index.d.ts +7 -0
- package/dist/guaranteed/index.js +21 -0
- package/dist/guaranteed/index.js.map +1 -0
- package/dist/guaranteed/request.d.ts +8 -0
- package/dist/guaranteed/request.js +206 -0
- package/dist/guaranteed/request.js.map +1 -0
- package/dist/guaranteed/response.d.ts +12 -0
- package/dist/guaranteed/response.js +98 -0
- package/dist/guaranteed/response.js.map +1 -0
- package/dist/guaranteed/types.d.ts +20 -0
- package/dist/guaranteed/types.js +1 -0
- package/dist/guaranteed/types.js.map +1 -0
- package/dist/index-B8NNnQ8P.d.ts +424 -0
- package/dist/index.cjs +34774 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2462 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.js +168 -0
- package/dist/index.js.map +1 -0
- package/dist/legacy-sdpub/upgrade.d.ts +7 -0
- package/dist/legacy-sdpub/upgrade.js +795 -0
- package/dist/legacy-sdpub/upgrade.js.map +1 -0
- package/dist/llm/cache.d.ts +13 -0
- package/dist/llm/cache.js +35 -0
- package/dist/llm/cache.js.map +1 -0
- package/dist/llm/client.d.ts +26 -0
- package/dist/llm/client.js +572 -0
- package/dist/llm/client.js.map +1 -0
- package/dist/llm/context.d.ts +22 -0
- package/dist/llm/context.js +78 -0
- package/dist/llm/context.js.map +1 -0
- package/dist/llm/errors.d.ts +7 -0
- package/dist/llm/errors.js +12 -0
- package/dist/llm/errors.js.map +1 -0
- package/dist/llm/index.d.ts +7 -0
- package/dist/llm/index.js +17 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/request-log.d.ts +9 -0
- package/dist/llm/request-log.js +35 -0
- package/dist/llm/request-log.js.map +1 -0
- package/dist/llm/sampling.d.ts +11 -0
- package/dist/llm/sampling.js +67 -0
- package/dist/llm/sampling.js.map +1 -0
- package/dist/llm/types.d.ts +50 -0
- package/dist/llm/types.js +1 -0
- package/dist/llm/types.js.map +1 -0
- package/dist/output/epub/archive.d.ts +9 -0
- package/dist/output/epub/archive.js +81 -0
- package/dist/output/epub/archive.js.map +1 -0
- package/dist/output/epub/book.d.ts +15 -0
- package/dist/output/epub/book.js +76 -0
- package/dist/output/epub/book.js.map +1 -0
- package/dist/output/epub/content.d.ts +9 -0
- package/dist/output/epub/content.js +35 -0
- package/dist/output/epub/content.js.map +1 -0
- package/dist/output/epub/index.d.ts +20 -0
- package/dist/output/epub/index.js +14 -0
- package/dist/output/epub/index.js.map +1 -0
- package/dist/output/epub/model.d.ts +24 -0
- package/dist/output/epub/model.js +1 -0
- package/dist/output/epub/model.js.map +1 -0
- package/dist/output/epub/navigation.d.ts +10 -0
- package/dist/output/epub/navigation.js +39 -0
- package/dist/output/epub/navigation.js.map +1 -0
- package/dist/output/epub/package.d.ts +17 -0
- package/dist/output/epub/package.js +29 -0
- package/dist/output/epub/package.js.map +1 -0
- package/dist/output/epub/shared.d.ts +4 -0
- package/dist/output/epub/shared.js +12 -0
- package/dist/output/epub/shared.js.map +1 -0
- package/dist/output/epub/templates.d.ts +35 -0
- package/dist/output/epub/templates.js +26 -0
- package/dist/output/epub/templates.js.map +1 -0
- package/dist/output/index.d.ts +14 -0
- package/dist/output/index.js +11 -0
- package/dist/output/index.js.map +1 -0
- package/dist/output/plain-text.d.ts +18 -0
- package/dist/output/plain-text.js +56 -0
- package/dist/output/plain-text.js.map +1 -0
- package/dist/progress/index.d.ts +3 -0
- package/dist/progress/index.js +14 -0
- package/dist/progress/index.js.map +1 -0
- package/dist/progress/reporter.d.ts +10 -0
- package/dist/progress/reporter.js +79 -0
- package/dist/progress/reporter.js.map +1 -0
- package/dist/progress/tracker.d.ts +37 -0
- package/dist/progress/tracker.js +119 -0
- package/dist/progress/tracker.js.map +1 -0
- package/dist/progress/types.d.ts +28 -0
- package/dist/progress/types.js +1 -0
- package/dist/progress/types.js.map +1 -0
- package/dist/reader/attention/attention.d.ts +39 -0
- package/dist/reader/attention/attention.js +123 -0
- package/dist/reader/attention/attention.js.map +1 -0
- package/dist/reader/attention/index.d.ts +9 -0
- package/dist/reader/attention/index.js +5 -0
- package/dist/reader/attention/index.js.map +1 -0
- package/dist/reader/attention/wave-reflection.d.ts +21 -0
- package/dist/reader/attention/wave-reflection.js +153 -0
- package/dist/reader/attention/wave-reflection.js.map +1 -0
- package/dist/reader/attention/working-memory.d.ts +28 -0
- package/dist/reader/attention/working-memory.js +62 -0
- package/dist/reader/attention/working-memory.js.map +1 -0
- package/dist/reader/chunk-batch/extract.d.ts +13 -0
- package/dist/reader/chunk-batch/extract.js +14 -0
- package/dist/reader/chunk-batch/extract.js.map +1 -0
- package/dist/reader/chunk-batch/extractor.d.ts +17 -0
- package/dist/reader/chunk-batch/extractor.js +337 -0
- package/dist/reader/chunk-batch/extractor.js.map +1 -0
- package/dist/reader/chunk-batch/fragment-projection.d.ts +34 -0
- package/dist/reader/chunk-batch/fragment-projection.js +94 -0
- package/dist/reader/chunk-batch/fragment-projection.js.map +1 -0
- package/dist/reader/chunk-batch/index.d.ts +12 -0
- package/dist/reader/chunk-batch/index.js +13 -0
- package/dist/reader/chunk-batch/index.js.map +1 -0
- package/dist/reader/chunk-batch/language.d.ts +9 -0
- package/dist/reader/chunk-batch/language.js +23 -0
- package/dist/reader/chunk-batch/language.js.map +1 -0
- package/dist/reader/chunk-batch/parser.d.ts +94 -0
- package/dist/reader/chunk-batch/parser.js +640 -0
- package/dist/reader/chunk-batch/parser.js.map +1 -0
- package/dist/reader/chunk-batch/prompt-templates.d.ts +6 -0
- package/dist/reader/chunk-batch/prompt-templates.js +11 -0
- package/dist/reader/chunk-batch/prompt-templates.js.map +1 -0
- package/dist/reader/chunk-batch/types.d.ts +85 -0
- package/dist/reader/chunk-batch/types.js +1 -0
- package/dist/reader/chunk-batch/types.js.map +1 -0
- package/dist/reader/index.d.ts +13 -0
- package/dist/reader/index.js +7 -0
- package/dist/reader/index.js.map +1 -0
- package/dist/reader/reader.d.ts +37 -0
- package/dist/reader/reader.js +82 -0
- package/dist/reader/reader.js.map +1 -0
- package/dist/reader/segment/index.d.ts +2 -0
- package/dist/reader/segment/index.js +5 -0
- package/dist/reader/segment/index.js.map +1 -0
- package/dist/reader/segment/intl-segmenter.d.ts +5 -0
- package/dist/reader/segment/intl-segmenter.js +102 -0
- package/dist/reader/segment/intl-segmenter.js.map +1 -0
- package/dist/reader/segment/segment.d.ts +5 -0
- package/dist/reader/segment/segment.js +9 -0
- package/dist/reader/segment/segment.js.map +1 -0
- package/dist/reader/segment/types.d.ts +14 -0
- package/dist/reader/segment/types.js +1 -0
- package/dist/reader/segment/types.js.map +1 -0
- package/dist/reader/types.d.ts +29 -0
- package/dist/reader/types.js +1 -0
- package/dist/reader/types.js.map +1 -0
- package/dist/serial.d.ts +89 -0
- package/dist/serial.js +476 -0
- package/dist/serial.js.map +1 -0
- package/dist/source/adapter.d.ts +15 -0
- package/dist/source/adapter.js +1 -0
- package/dist/source/adapter.js.map +1 -0
- package/dist/source/epub/archive.d.ts +27 -0
- package/dist/source/epub/archive.js +189 -0
- package/dist/source/epub/archive.js.map +1 -0
- package/dist/source/epub/content.d.ts +22 -0
- package/dist/source/epub/content.js +183 -0
- package/dist/source/epub/content.js.map +1 -0
- package/dist/source/epub/document.d.ts +55 -0
- package/dist/source/epub/document.js +179 -0
- package/dist/source/epub/document.js.map +1 -0
- package/dist/source/epub/index.d.ts +10 -0
- package/dist/source/epub/index.js +6 -0
- package/dist/source/epub/index.js.map +1 -0
- package/dist/source/epub/navigation.d.ts +16 -0
- package/dist/source/epub/navigation.js +215 -0
- package/dist/source/epub/navigation.js.map +1 -0
- package/dist/source/epub/package.d.ts +33 -0
- package/dist/source/epub/package.js +237 -0
- package/dist/source/epub/package.js.map +1 -0
- package/dist/source/epub/xml.d.ts +16 -0
- package/dist/source/epub/xml.js +111 -0
- package/dist/source/epub/xml.js.map +1 -0
- package/dist/source/index.d.ts +12 -0
- package/dist/source/index.js +32 -0
- package/dist/source/index.js.map +1 -0
- package/dist/source/meta.d.ts +30 -0
- package/dist/source/meta.js +22 -0
- package/dist/source/meta.js.map +1 -0
- package/dist/source/plain-text.d.ts +16 -0
- package/dist/source/plain-text.js +86 -0
- package/dist/source/plain-text.js.map +1 -0
- package/dist/source/toc.d.ts +16 -0
- package/dist/source/toc.js +17 -0
- package/dist/source/toc.js.map +1 -0
- package/dist/source/types.d.ts +16 -0
- package/dist/source/types.js +1 -0
- package/dist/source/types.js.map +1 -0
- package/dist/topology/grouping.d.ts +15 -0
- package/dist/topology/grouping.js +18 -0
- package/dist/topology/grouping.js.map +1 -0
- package/dist/topology/index.d.ts +21 -0
- package/dist/topology/index.js +5 -0
- package/dist/topology/index.js.map +1 -0
- package/dist/topology/resource-segmentation.d.ts +13 -0
- package/dist/topology/resource-segmentation.js +111 -0
- package/dist/topology/resource-segmentation.js.map +1 -0
- package/dist/topology/segment-incision.d.ts +18 -0
- package/dist/topology/segment-incision.js +197 -0
- package/dist/topology/segment-incision.js.map +1 -0
- package/dist/topology/snake-detector.d.ts +13 -0
- package/dist/topology/snake-detector.js +520 -0
- package/dist/topology/snake-detector.js.map +1 -0
- package/dist/topology/snake-graph-builder.d.ts +14 -0
- package/dist/topology/snake-graph-builder.js +76 -0
- package/dist/topology/snake-graph-builder.js.map +1 -0
- package/dist/topology/topology.d.ts +29 -0
- package/dist/topology/topology.js +348 -0
- package/dist/topology/topology.js.map +1 -0
- package/dist/topology/weights.d.ts +10 -0
- package/dist/topology/weights.js +84 -0
- package/dist/topology/weights.js.map +1 -0
- package/dist/types-FVIqiLC9.d.cts +24 -0
- package/dist/utils/async-semaphore.d.ts +7 -0
- package/dist/utils/async-semaphore.js +40 -0
- package/dist/utils/async-semaphore.js.map +1 -0
- package/dist/utils/enum.d.ts +5 -0
- package/dist/utils/enum.js +18 -0
- package/dist/utils/enum.js.map +1 -0
- package/dist/utils/hash.d.ts +3 -0
- package/dist/utils/hash.js +132 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/node-error.d.ts +4 -0
- package/dist/utils/node-error.js +59 -0
- package/dist/utils/node-error.js.map +1 -0
- package/dist/wikg/archive-uri.d.ts +1 -0
- package/dist/wikg/archive-uri.js +37 -0
- package/dist/wikg/archive-uri.js.map +1 -0
- package/dist/wikg/archive.d.ts +28 -0
- package/dist/wikg/archive.js +496 -0
- package/dist/wikg/archive.js.map +1 -0
- package/dist/wikg/index.d.ts +31 -0
- package/dist/wikg/index.js +60 -0
- package/dist/wikg/index.js.map +1 -0
- package/dist/wikg/wikg-coordinator.d.ts +45 -0
- package/dist/wikg/wikg-coordinator.js +1687 -0
- package/dist/wikg/wikg-coordinator.js.map +1 -0
- package/dist/wikg/wiki-graph-archive-file.d.ts +42 -0
- package/dist/wikg/wiki-graph-archive-file.js +78 -0
- package/dist/wikg/wiki-graph-archive-file.js.map +1 -0
- package/dist/wikilink/index.d.ts +10 -0
- package/dist/wikilink/index.js +7 -0
- package/dist/wikilink/index.js.map +1 -0
- package/dist/wikilink/relation-discovery.d.ts +31 -0
- package/dist/wikilink/relation-discovery.js +477 -0
- package/dist/wikilink/relation-discovery.js.map +1 -0
- package/dist/wikilink/types.d.ts +23 -0
- package/dist/wikilink/types.js +1 -0
- package/dist/wikilink/types.js.map +1 -0
- package/dist/wikilink/window.d.ts +7 -0
- package/dist/wikilink/window.js +53 -0
- package/dist/wikilink/window.js.map +1 -0
- package/dist/wikimatch/enrichment.d.ts +10 -0
- package/dist/wikimatch/enrichment.js +55 -0
- package/dist/wikimatch/enrichment.js.map +1 -0
- package/dist/wikimatch/index.d.ts +16 -0
- package/dist/wikimatch/index.js +66 -0
- package/dist/wikimatch/index.js.map +1 -0
- package/dist/wikimatch/option-narrowing.d.ts +17 -0
- package/dist/wikimatch/option-narrowing.js +208 -0
- package/dist/wikimatch/option-narrowing.js.map +1 -0
- package/dist/wikimatch/options.d.ts +14 -0
- package/dist/wikimatch/options.js +155 -0
- package/dist/wikimatch/options.js.map +1 -0
- package/dist/wikimatch/policy-judge.d.ts +17 -0
- package/dist/wikimatch/policy-judge.js +430 -0
- package/dist/wikimatch/policy-judge.js.map +1 -0
- package/dist/wikimatch/range-suppression.d.ts +9 -0
- package/dist/wikimatch/range-suppression.js +27 -0
- package/dist/wikimatch/range-suppression.js.map +1 -0
- package/dist/wikimatch/surface-screening.d.ts +16 -0
- package/dist/wikimatch/surface-screening.js +168 -0
- package/dist/wikimatch/surface-screening.js.map +1 -0
- package/dist/wikimatch/surface-window.d.ts +6 -0
- package/dist/wikimatch/surface-window.js +44 -0
- package/dist/wikimatch/surface-window.js.map +1 -0
- package/dist/wikimatch/types.d.ts +151 -0
- package/dist/wikimatch/types.js +1 -0
- package/dist/wikimatch/types.js.map +1 -0
- package/dist/wikimatch/wikispine.d.ts +43 -0
- package/dist/wikimatch/wikispine.js +399 -0
- package/dist/wikimatch/wikispine.js.map +1 -0
- package/dist/wikimatch/window.d.ts +6 -0
- package/dist/wikimatch/window.js +83 -0
- package/dist/wikimatch/window.js.map +1 -0
- package/dist/wikimatch/words.d.ts +16 -0
- package/dist/wikimatch/words.js +66 -0
- package/dist/wikimatch/words.js.map +1 -0
- package/dist/wikipage/cache.d.ts +18 -0
- package/dist/wikipage/cache.js +404 -0
- package/dist/wikipage/cache.js.map +1 -0
- package/dist/wikipage/fetch-log.d.ts +17 -0
- package/dist/wikipage/fetch-log.js +143 -0
- package/dist/wikipage/fetch-log.js.map +1 -0
- package/dist/wikipage/index.d.ts +14 -0
- package/dist/wikipage/index.js +17 -0
- package/dist/wikipage/index.js.map +1 -0
- package/dist/wikipage/normalizer.d.ts +14 -0
- package/dist/wikipage/normalizer.js +147 -0
- package/dist/wikipage/normalizer.js.map +1 -0
- package/dist/wikipage/rate-limiter.d.ts +13 -0
- package/dist/wikipage/rate-limiter.js +84 -0
- package/dist/wikipage/rate-limiter.js.map +1 -0
- package/dist/wikipage/resolver.d.ts +26 -0
- package/dist/wikipage/resolver.js +325 -0
- package/dist/wikipage/resolver.js.map +1 -0
- package/dist/wikipage/types.d.ts +96 -0
- package/dist/wikipage/types.js +1 -0
- package/dist/wikipage/types.js.map +1 -0
- package/dist/wikipage/wikimedia-client.d.ts +48 -0
- package/dist/wikipage/wikimedia-client.js +397 -0
- package/dist/wikipage/wikimedia-client.js.map +1 -0
- package/dist/worker-BgQ0Xl8T.d.cts +181 -0
- package/dist/worker.cjs +5259 -0
- package/dist/worker.cjs.map +1 -0
- package/dist/worker.d.cts +2 -0
- package/dist/worker.d.ts +2 -0
- package/dist/worker.js +5 -0
- package/dist/worker.js.map +1 -0
- 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 };
|