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,193 @@
|
|
|
1
|
+
import { createHash } from "crypto";
|
|
2
|
+
import {
|
|
3
|
+
chmod,
|
|
4
|
+
mkdir,
|
|
5
|
+
readFile,
|
|
6
|
+
rename,
|
|
7
|
+
rm,
|
|
8
|
+
stat,
|
|
9
|
+
writeFile
|
|
10
|
+
} from "fs/promises";
|
|
11
|
+
import { dirname, resolve } from "path";
|
|
12
|
+
import { setTimeout as sleep } from "timers/promises";
|
|
13
|
+
import { isNodeError } from "../utils/node-error.js";
|
|
14
|
+
import { Database } from "./database.js";
|
|
15
|
+
const INIT_LOCK_RETRY_MS = 50;
|
|
16
|
+
const INIT_LOCK_STALE_MS = 5 * 60 * 1e3;
|
|
17
|
+
const INIT_LOCK_HEARTBEAT_MS = Math.floor(INIT_LOCK_STALE_MS / 2);
|
|
18
|
+
async function openSharedStateDatabase(databasePath, schemaSql, options = {}) {
|
|
19
|
+
await ensureSharedStateDatabaseInitialized(databasePath, schemaSql);
|
|
20
|
+
return await Database.open(databasePath, "", options);
|
|
21
|
+
}
|
|
22
|
+
async function ensureSharedStateDatabaseInitialized(databasePath, schemaSql) {
|
|
23
|
+
const resolvedDatabasePath = resolve(databasePath);
|
|
24
|
+
const markerPath = createInitMarkerPath(resolvedDatabasePath);
|
|
25
|
+
const schemaHash = hashSchema(schemaSql);
|
|
26
|
+
if (await hasInitMarker(markerPath, schemaHash)) {
|
|
27
|
+
await hardenSharedStateFile(resolvedDatabasePath);
|
|
28
|
+
await hardenSharedStateFile(markerPath);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
await mkdir(dirname(resolvedDatabasePath), { recursive: true });
|
|
32
|
+
await withInitLock(resolvedDatabasePath, async () => {
|
|
33
|
+
if (await hasInitMarker(markerPath, schemaHash)) {
|
|
34
|
+
await hardenSharedStateFile(resolvedDatabasePath);
|
|
35
|
+
await hardenSharedStateFile(markerPath);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
await Database.initialize(resolvedDatabasePath, schemaSql);
|
|
39
|
+
await hardenSharedStateFile(resolvedDatabasePath);
|
|
40
|
+
await writeInitMarker(markerPath, schemaHash);
|
|
41
|
+
});
|
|
42
|
+
await hardenSharedStateFile(resolvedDatabasePath);
|
|
43
|
+
await hardenSharedStateFile(markerPath);
|
|
44
|
+
}
|
|
45
|
+
async function writeInitMarker(markerPath, schemaHash) {
|
|
46
|
+
const tempPath = `${markerPath}.${process.pid}.tmp`;
|
|
47
|
+
await writeFile(tempPath, `${schemaHash}
|
|
48
|
+
`, {
|
|
49
|
+
encoding: "utf8",
|
|
50
|
+
mode: 384
|
|
51
|
+
});
|
|
52
|
+
await rename(tempPath, markerPath);
|
|
53
|
+
await hardenSharedStateFile(markerPath);
|
|
54
|
+
}
|
|
55
|
+
async function withInitLock(databasePath, operation) {
|
|
56
|
+
const lockPath = `${databasePath}.init.lock`;
|
|
57
|
+
while (true) {
|
|
58
|
+
try {
|
|
59
|
+
await mkdir(lockPath, { mode: 448 });
|
|
60
|
+
break;
|
|
61
|
+
} catch (error) {
|
|
62
|
+
if (!isNodeError(error) || error.code !== "EEXIST") {
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
await removeStaleInitLock(lockPath);
|
|
66
|
+
await sleep(INIT_LOCK_RETRY_MS);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
await writeInitLockOwner(lockPath);
|
|
71
|
+
const heartbeat = setInterval(() => {
|
|
72
|
+
void writeInitLockOwner(lockPath).catch(() => void 0);
|
|
73
|
+
}, INIT_LOCK_HEARTBEAT_MS);
|
|
74
|
+
try {
|
|
75
|
+
return await operation();
|
|
76
|
+
} finally {
|
|
77
|
+
clearInterval(heartbeat);
|
|
78
|
+
}
|
|
79
|
+
} finally {
|
|
80
|
+
await rm(lockPath, { force: true, recursive: true });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async function writeInitLockOwner(lockPath) {
|
|
84
|
+
await writeFile(
|
|
85
|
+
`${lockPath}/owner.json`,
|
|
86
|
+
`${JSON.stringify(
|
|
87
|
+
{
|
|
88
|
+
at: Date.now(),
|
|
89
|
+
pid: process.pid
|
|
90
|
+
},
|
|
91
|
+
null,
|
|
92
|
+
2
|
|
93
|
+
)}
|
|
94
|
+
`,
|
|
95
|
+
{
|
|
96
|
+
encoding: "utf8",
|
|
97
|
+
mode: 384
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
async function removeStaleInitLock(lockPath) {
|
|
102
|
+
try {
|
|
103
|
+
const owner = await readInitLockOwner(lockPath);
|
|
104
|
+
if (owner !== void 0) {
|
|
105
|
+
if (isProcessAlive(owner.pid)) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (Date.now() - owner.at < INIT_LOCK_STALE_MS) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
} else if (!await isPathOlderThan(lockPath, INIT_LOCK_STALE_MS)) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
await rm(lockPath, { force: true, recursive: true });
|
|
115
|
+
} catch (error) {
|
|
116
|
+
if (isNodeError(error) && error.code === "ENOENT") {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async function readInitLockOwner(lockPath) {
|
|
123
|
+
try {
|
|
124
|
+
const parsed = JSON.parse(
|
|
125
|
+
await readFile(`${lockPath}/owner.json`, "utf8")
|
|
126
|
+
);
|
|
127
|
+
if (isInitLockOwner(parsed)) {
|
|
128
|
+
return parsed;
|
|
129
|
+
}
|
|
130
|
+
return void 0;
|
|
131
|
+
} catch (error) {
|
|
132
|
+
if (isNodeError(error) && error.code === "ENOENT") {
|
|
133
|
+
return void 0;
|
|
134
|
+
}
|
|
135
|
+
if (error instanceof SyntaxError) {
|
|
136
|
+
return void 0;
|
|
137
|
+
}
|
|
138
|
+
throw error;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function isInitLockOwner(value) {
|
|
142
|
+
if (typeof value !== "object" || value === null) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
const record = value;
|
|
146
|
+
return typeof record.pid === "number" && Number.isInteger(record.pid) && record.pid > 0 && typeof record.at === "number";
|
|
147
|
+
}
|
|
148
|
+
async function isPathOlderThan(path, ms) {
|
|
149
|
+
const pathStat = await stat(path);
|
|
150
|
+
return Date.now() - pathStat.mtimeMs >= ms;
|
|
151
|
+
}
|
|
152
|
+
function isProcessAlive(pid) {
|
|
153
|
+
try {
|
|
154
|
+
process.kill(pid, 0);
|
|
155
|
+
return true;
|
|
156
|
+
} catch (error) {
|
|
157
|
+
if (isNodeError(error) && error.code === "ESRCH") {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
async function hasInitMarker(markerPath, schemaHash) {
|
|
164
|
+
try {
|
|
165
|
+
return (await readFile(markerPath, "utf8")).trim() === schemaHash;
|
|
166
|
+
} catch (error) {
|
|
167
|
+
if (isNodeError(error) && error.code === "ENOENT") {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
throw error;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function createInitMarkerPath(databasePath) {
|
|
174
|
+
return `${databasePath}.initialized`;
|
|
175
|
+
}
|
|
176
|
+
async function hardenSharedStateFile(path) {
|
|
177
|
+
try {
|
|
178
|
+
await chmod(path, 384);
|
|
179
|
+
} catch (error) {
|
|
180
|
+
if (isNodeError(error) && error.code === "ENOENT") {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
throw error;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
function hashSchema(schemaSql) {
|
|
187
|
+
return createHash("sha256").update(schemaSql).digest("hex");
|
|
188
|
+
}
|
|
189
|
+
export {
|
|
190
|
+
ensureSharedStateDatabaseInitialized,
|
|
191
|
+
openSharedStateDatabase
|
|
192
|
+
};
|
|
193
|
+
//# sourceMappingURL=shared-state-database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/document/shared-state-database.ts"],"sourcesContent":["import { createHash } from \"crypto\";\nimport {\n chmod,\n mkdir,\n readFile,\n rename,\n rm,\n stat,\n writeFile,\n} from \"fs/promises\";\nimport { dirname, resolve } from \"path\";\nimport { setTimeout as sleep } from \"timers/promises\";\n\nimport { isNodeError } from \"../utils/node-error.js\";\n\nimport { Database } from \"./database.js\";\n\nconst INIT_LOCK_RETRY_MS = 50;\nconst INIT_LOCK_STALE_MS = 5 * 60 * 1000;\nconst INIT_LOCK_HEARTBEAT_MS = Math.floor(INIT_LOCK_STALE_MS / 2);\n\ninterface InitLockOwner {\n readonly at: number;\n readonly pid: number;\n}\n\nexport async function openSharedStateDatabase(\n databasePath: string,\n schemaSql: string,\n options: { readonly readonly?: boolean } = {},\n): Promise<Database> {\n await ensureSharedStateDatabaseInitialized(databasePath, schemaSql);\n\n return await Database.open(databasePath, \"\", options);\n}\n\nexport async function ensureSharedStateDatabaseInitialized(\n databasePath: string,\n schemaSql: string,\n): Promise<void> {\n const resolvedDatabasePath = resolve(databasePath);\n const markerPath = createInitMarkerPath(resolvedDatabasePath);\n const schemaHash = hashSchema(schemaSql);\n\n if (await hasInitMarker(markerPath, schemaHash)) {\n await hardenSharedStateFile(resolvedDatabasePath);\n await hardenSharedStateFile(markerPath);\n return;\n }\n\n await mkdir(dirname(resolvedDatabasePath), { recursive: true });\n await withInitLock(resolvedDatabasePath, async () => {\n if (await hasInitMarker(markerPath, schemaHash)) {\n await hardenSharedStateFile(resolvedDatabasePath);\n await hardenSharedStateFile(markerPath);\n return;\n }\n\n await Database.initialize(resolvedDatabasePath, schemaSql);\n await hardenSharedStateFile(resolvedDatabasePath);\n await writeInitMarker(markerPath, schemaHash);\n });\n await hardenSharedStateFile(resolvedDatabasePath);\n await hardenSharedStateFile(markerPath);\n}\n\nasync function writeInitMarker(\n markerPath: string,\n schemaHash: string,\n): Promise<void> {\n const tempPath = `${markerPath}.${process.pid}.tmp`;\n\n await writeFile(tempPath, `${schemaHash}\\n`, {\n encoding: \"utf8\",\n mode: 0o600,\n });\n await rename(tempPath, markerPath);\n await hardenSharedStateFile(markerPath);\n}\n\nasync function withInitLock<T>(\n databasePath: string,\n operation: () => Promise<T>,\n): Promise<T> {\n const lockPath = `${databasePath}.init.lock`;\n\n while (true) {\n try {\n await mkdir(lockPath, { mode: 0o700 });\n break;\n } catch (error) {\n if (!isNodeError(error) || error.code !== \"EEXIST\") {\n throw error;\n }\n\n await removeStaleInitLock(lockPath);\n await sleep(INIT_LOCK_RETRY_MS);\n }\n }\n\n try {\n await writeInitLockOwner(lockPath);\n const heartbeat = setInterval(() => {\n void writeInitLockOwner(lockPath).catch(() => undefined);\n }, INIT_LOCK_HEARTBEAT_MS);\n\n try {\n return await operation();\n } finally {\n clearInterval(heartbeat);\n }\n } finally {\n await rm(lockPath, { force: true, recursive: true });\n }\n}\n\nasync function writeInitLockOwner(lockPath: string): Promise<void> {\n await writeFile(\n `${lockPath}/owner.json`,\n `${JSON.stringify(\n {\n at: Date.now(),\n pid: process.pid,\n },\n null,\n 2,\n )}\\n`,\n {\n encoding: \"utf8\",\n mode: 0o600,\n },\n );\n}\n\nasync function removeStaleInitLock(lockPath: string): Promise<void> {\n try {\n const owner = await readInitLockOwner(lockPath);\n\n if (owner !== undefined) {\n if (isProcessAlive(owner.pid)) {\n return;\n }\n\n if (Date.now() - owner.at < INIT_LOCK_STALE_MS) {\n return;\n }\n } else if (!(await isPathOlderThan(lockPath, INIT_LOCK_STALE_MS))) {\n return;\n }\n\n await rm(lockPath, { force: true, recursive: true });\n } catch (error) {\n if (isNodeError(error) && error.code === \"ENOENT\") {\n return;\n }\n\n throw error;\n }\n}\n\nasync function readInitLockOwner(\n lockPath: string,\n): Promise<InitLockOwner | undefined> {\n try {\n const parsed = JSON.parse(\n await readFile(`${lockPath}/owner.json`, \"utf8\"),\n ) as unknown;\n\n if (isInitLockOwner(parsed)) {\n return parsed;\n }\n\n return undefined;\n } catch (error) {\n if (isNodeError(error) && error.code === \"ENOENT\") {\n return undefined;\n }\n\n if (error instanceof SyntaxError) {\n return undefined;\n }\n\n throw error;\n }\n}\n\nfunction isInitLockOwner(value: unknown): value is InitLockOwner {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n\n const record = value as Record<string, unknown>;\n\n return (\n typeof record.pid === \"number\" &&\n Number.isInteger(record.pid) &&\n record.pid > 0 &&\n typeof record.at === \"number\"\n );\n}\n\nasync function isPathOlderThan(path: string, ms: number): Promise<boolean> {\n const pathStat = await stat(path);\n\n return Date.now() - pathStat.mtimeMs >= ms;\n}\n\nfunction isProcessAlive(pid: number): boolean {\n try {\n process.kill(pid, 0);\n return true;\n } catch (error) {\n if (isNodeError(error) && error.code === \"ESRCH\") {\n return false;\n }\n\n return true;\n }\n}\n\nasync function hasInitMarker(\n markerPath: string,\n schemaHash: string,\n): Promise<boolean> {\n try {\n return (await readFile(markerPath, \"utf8\")).trim() === schemaHash;\n } catch (error) {\n if (isNodeError(error) && error.code === \"ENOENT\") {\n return false;\n }\n\n throw error;\n }\n}\n\nfunction createInitMarkerPath(databasePath: string): string {\n return `${databasePath}.initialized`;\n}\n\nasync function hardenSharedStateFile(path: string): Promise<void> {\n try {\n await chmod(path, 0o600);\n } catch (error) {\n if (isNodeError(error) && error.code === \"ENOENT\") {\n return;\n }\n\n throw error;\n }\n}\n\nfunction hashSchema(schemaSql: string): string {\n return createHash(\"sha256\").update(schemaSql).digest(\"hex\");\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { Database } from './database.js';
|
|
2
|
+
import { ChunkRecord, CreateChunkRecord, SentenceGroupRecord, GraphBuildParameterRecord, ReadingEdgeRecord, MentionLinkRecord, MentionRecord, SerialRecord, SnakeChunkRecord, SnakeEdgeRecord, SnakeRecord, ObjectMetadataTarget, CreateSnakeRecord } from './types.js';
|
|
3
|
+
import 'sqlite3';
|
|
4
|
+
|
|
5
|
+
interface ReadonlySerialStore {
|
|
6
|
+
getById(serialId: number): Promise<SerialRecord | undefined>;
|
|
7
|
+
getRevision(serialId: number): Promise<number>;
|
|
8
|
+
getRevisions(serialIds: readonly number[]): Promise<ReadonlyMap<number, number>>;
|
|
9
|
+
getMaxId(): Promise<number>;
|
|
10
|
+
getChaptersRevision(): Promise<number>;
|
|
11
|
+
listIds(): Promise<number[]>;
|
|
12
|
+
listDocumentOrders(): Promise<ReadonlyMap<number, number>>;
|
|
13
|
+
}
|
|
14
|
+
interface ReadonlyGraphBuildParameterStore {
|
|
15
|
+
getByHash(hash: string): Promise<GraphBuildParameterRecord | undefined>;
|
|
16
|
+
}
|
|
17
|
+
interface ReadonlyChunkStore {
|
|
18
|
+
countAll(): Promise<number>;
|
|
19
|
+
getById(chunkId: number): Promise<ChunkRecord | undefined>;
|
|
20
|
+
listAll(): Promise<ChunkRecord[]>;
|
|
21
|
+
listBySentenceStartIndexes(serialId: number, sentenceStartIndexes: readonly number[]): Promise<ChunkRecord[]>;
|
|
22
|
+
listBySentenceRange(serialId: number, startSentenceIndex: number, endSentenceIndex: number): Promise<ChunkRecord[]>;
|
|
23
|
+
listBySerial(serialId: number): Promise<ChunkRecord[]>;
|
|
24
|
+
getMaxId(): Promise<number>;
|
|
25
|
+
listFragmentPairs(): Promise<ReadonlyArray<readonly [number, number]>>;
|
|
26
|
+
}
|
|
27
|
+
interface ReadonlyReadingEdgeStore {
|
|
28
|
+
countAll(): Promise<number>;
|
|
29
|
+
listAll(): Promise<ReadingEdgeRecord[]>;
|
|
30
|
+
listBySerial(serialId: number): Promise<ReadingEdgeRecord[]>;
|
|
31
|
+
listIncoming(chunkId: number): Promise<ReadingEdgeRecord[]>;
|
|
32
|
+
listOutgoing(chunkId: number): Promise<ReadingEdgeRecord[]>;
|
|
33
|
+
}
|
|
34
|
+
interface ReadonlyMentionStore {
|
|
35
|
+
getById(mentionId: string): Promise<MentionRecord | undefined>;
|
|
36
|
+
listAll(): Promise<MentionRecord[]>;
|
|
37
|
+
listBySurfaceTerms(terms: readonly string[]): Promise<MentionRecord[]>;
|
|
38
|
+
listBySurfaces(surfaces: readonly string[]): Promise<MentionRecord[]>;
|
|
39
|
+
listByQid(qid: string): Promise<MentionRecord[]>;
|
|
40
|
+
listByChapter(chapterId: number): Promise<MentionRecord[]>;
|
|
41
|
+
}
|
|
42
|
+
interface ReadonlyMentionLinkStore {
|
|
43
|
+
getById(linkId: string): Promise<MentionLinkRecord | undefined>;
|
|
44
|
+
listByTriple(input: {
|
|
45
|
+
readonly objectQid: string;
|
|
46
|
+
readonly predicate: string;
|
|
47
|
+
readonly subjectQid: string;
|
|
48
|
+
}): Promise<MentionLinkRecord[]>;
|
|
49
|
+
listByChapter(chapterId: number): Promise<MentionLinkRecord[]>;
|
|
50
|
+
}
|
|
51
|
+
interface ReadonlySnakeStore {
|
|
52
|
+
getById(snakeId: number): Promise<SnakeRecord | undefined>;
|
|
53
|
+
listIdsByGroup(serialId: number, groupId: number): Promise<number[]>;
|
|
54
|
+
listBySerial(serialId: number): Promise<SnakeRecord[]>;
|
|
55
|
+
}
|
|
56
|
+
interface ReadonlySnakeChunkStore {
|
|
57
|
+
listChunkIds(snakeId: number): Promise<number[]>;
|
|
58
|
+
listBySnake(snakeId: number): Promise<SnakeChunkRecord[]>;
|
|
59
|
+
}
|
|
60
|
+
interface ReadonlySnakeEdgeStore {
|
|
61
|
+
listIncoming(snakeId: number): Promise<SnakeEdgeRecord[]>;
|
|
62
|
+
listOutgoing(snakeId: number): Promise<SnakeEdgeRecord[]>;
|
|
63
|
+
listWithin(snakeIds: readonly number[]): Promise<SnakeEdgeRecord[]>;
|
|
64
|
+
listBySerial(serialId: number): Promise<SnakeEdgeRecord[]>;
|
|
65
|
+
}
|
|
66
|
+
interface ReadonlyFragmentGroupStore {
|
|
67
|
+
listBySerial(serialId: number): Promise<SentenceGroupRecord[]>;
|
|
68
|
+
listSerialIds(): Promise<number[]>;
|
|
69
|
+
listGroupIdsForSerial(serialId: number): Promise<number[]>;
|
|
70
|
+
}
|
|
71
|
+
interface ReadonlyObjectMetadataStore {
|
|
72
|
+
getMap(objectPath: string): Promise<Readonly<Record<string, unknown>>>;
|
|
73
|
+
}
|
|
74
|
+
declare class ObjectMetadataStore implements ReadonlyObjectMetadataStore {
|
|
75
|
+
#private;
|
|
76
|
+
constructor(database: Database);
|
|
77
|
+
getMap(objectPath: string): Promise<Readonly<Record<string, unknown>>>;
|
|
78
|
+
replaceMap(target: ObjectMetadataTarget, map: Readonly<Record<string, unknown>>): Promise<void>;
|
|
79
|
+
put(target: ObjectMetadataTarget, key: string, value: unknown): Promise<void>;
|
|
80
|
+
deleteKey(objectPath: string, key: string): Promise<void>;
|
|
81
|
+
clear(objectPath: string): Promise<void>;
|
|
82
|
+
deleteChapterSubtree(chapterId: number): Promise<void>;
|
|
83
|
+
deleteDeletedChunks(): Promise<void>;
|
|
84
|
+
deleteDeletedEntitiesAndTriples(): Promise<void>;
|
|
85
|
+
}
|
|
86
|
+
declare class SerialStore implements ReadonlySerialStore {
|
|
87
|
+
#private;
|
|
88
|
+
constructor(database: Database);
|
|
89
|
+
create(): Promise<number>;
|
|
90
|
+
createWithId(serialId: number): Promise<void>;
|
|
91
|
+
ensure(serialId: number): Promise<void>;
|
|
92
|
+
getById(serialId: number): Promise<SerialRecord | undefined>;
|
|
93
|
+
getRevision(serialId: number): Promise<number>;
|
|
94
|
+
getRevisions(serialIds: readonly number[]): Promise<ReadonlyMap<number, number>>;
|
|
95
|
+
bumpRevision(serialId: number): Promise<void>;
|
|
96
|
+
bumpChaptersRevision(): Promise<void>;
|
|
97
|
+
getChaptersRevision(): Promise<number>;
|
|
98
|
+
getMaxId(): Promise<number>;
|
|
99
|
+
setTopologyReady(serialId: number, ready?: boolean, parameterHash?: string): Promise<void>;
|
|
100
|
+
setKnowledgeGraphReady(serialId: number, ready?: boolean, parameterHash?: string): Promise<void>;
|
|
101
|
+
listIds(): Promise<number[]>;
|
|
102
|
+
listDocumentOrders(): Promise<ReadonlyMap<number, number>>;
|
|
103
|
+
setDocumentOrders(entries: readonly {
|
|
104
|
+
readonly documentOrder: number;
|
|
105
|
+
readonly serialId: number;
|
|
106
|
+
}[]): Promise<void>;
|
|
107
|
+
}
|
|
108
|
+
declare class GraphBuildParameterStore implements ReadonlyGraphBuildParameterStore {
|
|
109
|
+
#private;
|
|
110
|
+
constructor(database: Database);
|
|
111
|
+
save(input: {
|
|
112
|
+
readonly language?: string;
|
|
113
|
+
readonly prompt: string;
|
|
114
|
+
}): Promise<GraphBuildParameterRecord>;
|
|
115
|
+
getByHash(hash: string): Promise<GraphBuildParameterRecord | undefined>;
|
|
116
|
+
deleteUnreferenced(): Promise<void>;
|
|
117
|
+
}
|
|
118
|
+
declare class ChunkStore implements ReadonlyChunkStore {
|
|
119
|
+
#private;
|
|
120
|
+
constructor(database: Database);
|
|
121
|
+
countAll(): Promise<number>;
|
|
122
|
+
create(record: CreateChunkRecord): Promise<ChunkRecord>;
|
|
123
|
+
save(record: ChunkRecord): Promise<void>;
|
|
124
|
+
getById(chunkId: number): Promise<ChunkRecord | undefined>;
|
|
125
|
+
listAll(): Promise<ChunkRecord[]>;
|
|
126
|
+
listBySentenceStartIndexes(serialId: number, sentenceStartIndexes: readonly number[]): Promise<ChunkRecord[]>;
|
|
127
|
+
listBySentenceRange(serialId: number, startSentenceIndex: number, endSentenceIndex: number): Promise<ChunkRecord[]>;
|
|
128
|
+
listBySerial(serialId: number): Promise<ChunkRecord[]>;
|
|
129
|
+
getMaxId(): Promise<number>;
|
|
130
|
+
listFragmentPairs(): Promise<ReadonlyArray<readonly [number, number]>>;
|
|
131
|
+
}
|
|
132
|
+
declare class ReadingEdgeStore implements ReadonlyReadingEdgeStore {
|
|
133
|
+
#private;
|
|
134
|
+
constructor(database: Database);
|
|
135
|
+
countAll(): Promise<number>;
|
|
136
|
+
save(record: ReadingEdgeRecord): Promise<void>;
|
|
137
|
+
listAll(): Promise<ReadingEdgeRecord[]>;
|
|
138
|
+
listBySerial(serialId: number): Promise<ReadingEdgeRecord[]>;
|
|
139
|
+
listIncoming(chunkId: number): Promise<ReadingEdgeRecord[]>;
|
|
140
|
+
listOutgoing(chunkId: number): Promise<ReadingEdgeRecord[]>;
|
|
141
|
+
}
|
|
142
|
+
declare class SnakeStore implements ReadonlySnakeStore {
|
|
143
|
+
#private;
|
|
144
|
+
constructor(database: Database);
|
|
145
|
+
create(record: CreateSnakeRecord): Promise<number>;
|
|
146
|
+
getById(snakeId: number): Promise<SnakeRecord | undefined>;
|
|
147
|
+
listIdsByGroup(serialId: number, groupId: number): Promise<number[]>;
|
|
148
|
+
listBySerial(serialId: number): Promise<SnakeRecord[]>;
|
|
149
|
+
}
|
|
150
|
+
declare class MentionStore implements ReadonlyMentionStore {
|
|
151
|
+
#private;
|
|
152
|
+
constructor(database: Database);
|
|
153
|
+
save(record: MentionRecord): Promise<void>;
|
|
154
|
+
saveMany(records: readonly MentionRecord[]): Promise<void>;
|
|
155
|
+
getById(mentionId: string): Promise<MentionRecord | undefined>;
|
|
156
|
+
listAll(): Promise<MentionRecord[]>;
|
|
157
|
+
listByQid(qid: string): Promise<MentionRecord[]>;
|
|
158
|
+
listBySurfaces(surfaces: readonly string[]): Promise<MentionRecord[]>;
|
|
159
|
+
listBySurfaceTerms(terms: readonly string[]): Promise<MentionRecord[]>;
|
|
160
|
+
listByChapter(chapterId: number): Promise<MentionRecord[]>;
|
|
161
|
+
deleteByChapter(chapterId: number): Promise<void>;
|
|
162
|
+
}
|
|
163
|
+
declare class MentionLinkStore implements ReadonlyMentionLinkStore {
|
|
164
|
+
#private;
|
|
165
|
+
constructor(database: Database);
|
|
166
|
+
save(record: MentionLinkRecord): Promise<void>;
|
|
167
|
+
saveMany(records: readonly MentionLinkRecord[]): Promise<void>;
|
|
168
|
+
getById(linkId: string): Promise<MentionLinkRecord | undefined>;
|
|
169
|
+
listByTriple(input: {
|
|
170
|
+
readonly objectQid: string;
|
|
171
|
+
readonly predicate: string;
|
|
172
|
+
readonly subjectQid: string;
|
|
173
|
+
}): Promise<MentionLinkRecord[]>;
|
|
174
|
+
listByChapter(chapterId: number): Promise<MentionLinkRecord[]>;
|
|
175
|
+
deleteByChapter(chapterId: number): Promise<void>;
|
|
176
|
+
}
|
|
177
|
+
declare class SnakeChunkStore implements ReadonlySnakeChunkStore {
|
|
178
|
+
#private;
|
|
179
|
+
constructor(database: Database);
|
|
180
|
+
save(record: SnakeChunkRecord): Promise<void>;
|
|
181
|
+
listChunkIds(snakeId: number): Promise<number[]>;
|
|
182
|
+
listBySnake(snakeId: number): Promise<SnakeChunkRecord[]>;
|
|
183
|
+
}
|
|
184
|
+
declare class SnakeEdgeStore implements ReadonlySnakeEdgeStore {
|
|
185
|
+
#private;
|
|
186
|
+
constructor(database: Database);
|
|
187
|
+
save(record: SnakeEdgeRecord): Promise<void>;
|
|
188
|
+
listIncoming(snakeId: number): Promise<SnakeEdgeRecord[]>;
|
|
189
|
+
listOutgoing(snakeId: number): Promise<SnakeEdgeRecord[]>;
|
|
190
|
+
listWithin(snakeIds: readonly number[]): Promise<SnakeEdgeRecord[]>;
|
|
191
|
+
listBySerial(serialId: number): Promise<SnakeEdgeRecord[]>;
|
|
192
|
+
}
|
|
193
|
+
declare class FragmentGroupStore implements ReadonlyFragmentGroupStore {
|
|
194
|
+
#private;
|
|
195
|
+
constructor(database: Database);
|
|
196
|
+
save(record: SentenceGroupRecord): Promise<void>;
|
|
197
|
+
saveMany(records: readonly SentenceGroupRecord[]): Promise<void>;
|
|
198
|
+
listBySerial(serialId: number): Promise<SentenceGroupRecord[]>;
|
|
199
|
+
listSerialIds(): Promise<number[]>;
|
|
200
|
+
listGroupIdsForSerial(serialId: number): Promise<number[]>;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export { ChunkStore, FragmentGroupStore, GraphBuildParameterStore, MentionLinkStore, MentionStore, ObjectMetadataStore, ReadingEdgeStore, type ReadonlyChunkStore, type ReadonlyFragmentGroupStore, type ReadonlyGraphBuildParameterStore, type ReadonlyMentionLinkStore, type ReadonlyMentionStore, type ReadonlyObjectMetadataStore, type ReadonlyReadingEdgeStore, type ReadonlySerialStore, type ReadonlySnakeChunkStore, type ReadonlySnakeEdgeStore, type ReadonlySnakeStore, SerialStore, SnakeChunkStore, SnakeEdgeStore, SnakeStore };
|