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,472 @@
|
|
|
1
|
+
const SCHEMA_SQL = `
|
|
2
|
+
CREATE TABLE IF NOT EXISTS serials (
|
|
3
|
+
id INTEGER PRIMARY KEY,
|
|
4
|
+
document_order INTEGER NOT NULL DEFAULT 0
|
|
5
|
+
);
|
|
6
|
+
|
|
7
|
+
CREATE TABLE IF NOT EXISTS serial_states (
|
|
8
|
+
serial_id INTEGER PRIMARY KEY,
|
|
9
|
+
revision INTEGER NOT NULL DEFAULT 0,
|
|
10
|
+
topology_ready INTEGER NOT NULL DEFAULT 0,
|
|
11
|
+
topology_parameter_hash TEXT,
|
|
12
|
+
knowledge_graph_ready INTEGER NOT NULL DEFAULT 0,
|
|
13
|
+
knowledge_graph_parameter_hash TEXT,
|
|
14
|
+
FOREIGN KEY (serial_id) REFERENCES serials(id)
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
CREATE TABLE IF NOT EXISTS archive_revisions (
|
|
18
|
+
key TEXT PRIMARY KEY,
|
|
19
|
+
value INTEGER NOT NULL
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
CREATE TABLE IF NOT EXISTS archive_index_settings (
|
|
23
|
+
id INTEGER PRIMARY KEY CHECK (id = 1),
|
|
24
|
+
fts_embedded INTEGER NOT NULL DEFAULT 0
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
CREATE TABLE IF NOT EXISTS graph_build_parameters (
|
|
28
|
+
hash TEXT PRIMARY KEY,
|
|
29
|
+
prompt TEXT NOT NULL,
|
|
30
|
+
language TEXT,
|
|
31
|
+
created_at TEXT NOT NULL
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS chunks (
|
|
35
|
+
id INTEGER PRIMARY KEY,
|
|
36
|
+
generation INTEGER NOT NULL,
|
|
37
|
+
serial_id INTEGER NOT NULL,
|
|
38
|
+
sentence_index INTEGER NOT NULL,
|
|
39
|
+
label TEXT NOT NULL,
|
|
40
|
+
content TEXT NOT NULL,
|
|
41
|
+
retention TEXT,
|
|
42
|
+
importance TEXT,
|
|
43
|
+
wordsCount INTEGER NOT NULL DEFAULT 0,
|
|
44
|
+
weight REAL NOT NULL DEFAULT 0.0
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_sentence
|
|
48
|
+
ON chunks(serial_id, sentence_index);
|
|
49
|
+
|
|
50
|
+
CREATE INDEX IF NOT EXISTS idx_chunks_serial_id
|
|
51
|
+
ON chunks(serial_id, id);
|
|
52
|
+
|
|
53
|
+
CREATE TABLE IF NOT EXISTS chunk_sentences (
|
|
54
|
+
chunk_id INTEGER NOT NULL,
|
|
55
|
+
serial_id INTEGER NOT NULL,
|
|
56
|
+
sentence_index INTEGER NOT NULL,
|
|
57
|
+
FOREIGN KEY (chunk_id) REFERENCES chunks(id),
|
|
58
|
+
PRIMARY KEY (chunk_id, serial_id, sentence_index)
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
CREATE TABLE IF NOT EXISTS reading_edges (
|
|
62
|
+
from_id INTEGER NOT NULL,
|
|
63
|
+
to_id INTEGER NOT NULL,
|
|
64
|
+
strength TEXT,
|
|
65
|
+
weight REAL NOT NULL DEFAULT 0.1,
|
|
66
|
+
PRIMARY KEY (from_id, to_id),
|
|
67
|
+
FOREIGN KEY (from_id) REFERENCES chunks(id),
|
|
68
|
+
FOREIGN KEY (to_id) REFERENCES chunks(id)
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
CREATE TABLE IF NOT EXISTS snakes (
|
|
72
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
73
|
+
serial_id INTEGER NOT NULL,
|
|
74
|
+
group_id INTEGER NOT NULL,
|
|
75
|
+
local_snake_id INTEGER NOT NULL,
|
|
76
|
+
size INTEGER NOT NULL,
|
|
77
|
+
first_label TEXT NOT NULL,
|
|
78
|
+
last_label TEXT NOT NULL,
|
|
79
|
+
wordsCount INTEGER NOT NULL DEFAULT 0,
|
|
80
|
+
weight REAL NOT NULL DEFAULT 0.0,
|
|
81
|
+
UNIQUE(serial_id, group_id, local_snake_id)
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
CREATE TABLE IF NOT EXISTS snake_chunks (
|
|
85
|
+
snake_id INTEGER NOT NULL,
|
|
86
|
+
chunk_id INTEGER NOT NULL,
|
|
87
|
+
position INTEGER NOT NULL,
|
|
88
|
+
FOREIGN KEY (snake_id) REFERENCES snakes(id),
|
|
89
|
+
FOREIGN KEY (chunk_id) REFERENCES chunks(id),
|
|
90
|
+
PRIMARY KEY (snake_id, chunk_id)
|
|
91
|
+
);
|
|
92
|
+
|
|
93
|
+
CREATE TABLE IF NOT EXISTS snake_edges (
|
|
94
|
+
from_snake_id INTEGER NOT NULL,
|
|
95
|
+
to_snake_id INTEGER NOT NULL,
|
|
96
|
+
weight REAL NOT NULL DEFAULT 0.1,
|
|
97
|
+
PRIMARY KEY (from_snake_id, to_snake_id),
|
|
98
|
+
FOREIGN KEY (from_snake_id) REFERENCES snakes(id),
|
|
99
|
+
FOREIGN KEY (to_snake_id) REFERENCES snakes(id)
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
CREATE TABLE IF NOT EXISTS sentence_groups (
|
|
103
|
+
serial_id INTEGER NOT NULL,
|
|
104
|
+
group_id INTEGER NOT NULL,
|
|
105
|
+
start_sentence_index INTEGER NOT NULL,
|
|
106
|
+
end_sentence_index INTEGER NOT NULL,
|
|
107
|
+
PRIMARY KEY (serial_id, group_id, start_sentence_index, end_sentence_index)
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
CREATE TABLE IF NOT EXISTS mentions (
|
|
111
|
+
id TEXT PRIMARY KEY,
|
|
112
|
+
chapter_id INTEGER NOT NULL,
|
|
113
|
+
sentence_index INTEGER,
|
|
114
|
+
range_start INTEGER NOT NULL,
|
|
115
|
+
range_end INTEGER NOT NULL,
|
|
116
|
+
surface TEXT NOT NULL,
|
|
117
|
+
qid TEXT NOT NULL,
|
|
118
|
+
confidence REAL,
|
|
119
|
+
note TEXT,
|
|
120
|
+
FOREIGN KEY (chapter_id) REFERENCES serials(id)
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
CREATE INDEX IF NOT EXISTS idx_mentions_chapter
|
|
124
|
+
ON mentions(chapter_id);
|
|
125
|
+
|
|
126
|
+
CREATE INDEX IF NOT EXISTS idx_mentions_chapter_position
|
|
127
|
+
ON mentions(chapter_id, sentence_index, range_start, range_end, id);
|
|
128
|
+
|
|
129
|
+
CREATE INDEX IF NOT EXISTS idx_mentions_chapter_qid
|
|
130
|
+
ON mentions(chapter_id, qid);
|
|
131
|
+
|
|
132
|
+
CREATE INDEX IF NOT EXISTS idx_mentions_qid
|
|
133
|
+
ON mentions(qid);
|
|
134
|
+
|
|
135
|
+
CREATE INDEX IF NOT EXISTS idx_mentions_qid_position
|
|
136
|
+
ON mentions(qid, chapter_id, sentence_index, range_start, range_end, id);
|
|
137
|
+
|
|
138
|
+
CREATE INDEX IF NOT EXISTS idx_mentions_surface
|
|
139
|
+
ON mentions(surface);
|
|
140
|
+
|
|
141
|
+
CREATE INDEX IF NOT EXISTS idx_mentions_surface_position
|
|
142
|
+
ON mentions(surface, chapter_id, sentence_index, range_start, range_end, id);
|
|
143
|
+
|
|
144
|
+
CREATE INDEX IF NOT EXISTS idx_mentions_sentence
|
|
145
|
+
ON mentions(chapter_id, sentence_index);
|
|
146
|
+
|
|
147
|
+
CREATE TABLE IF NOT EXISTS mention_links (
|
|
148
|
+
id TEXT PRIMARY KEY,
|
|
149
|
+
source_mention_id TEXT NOT NULL,
|
|
150
|
+
target_mention_id TEXT NOT NULL,
|
|
151
|
+
predicate TEXT NOT NULL,
|
|
152
|
+
confidence REAL,
|
|
153
|
+
note TEXT,
|
|
154
|
+
FOREIGN KEY (source_mention_id) REFERENCES mentions(id),
|
|
155
|
+
FOREIGN KEY (target_mention_id) REFERENCES mentions(id)
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
CREATE TABLE IF NOT EXISTS mention_link_evidence_sentences (
|
|
159
|
+
link_id TEXT NOT NULL,
|
|
160
|
+
chapter_id INTEGER NOT NULL,
|
|
161
|
+
sentence_index INTEGER NOT NULL,
|
|
162
|
+
FOREIGN KEY (link_id) REFERENCES mention_links(id),
|
|
163
|
+
PRIMARY KEY (link_id, chapter_id, sentence_index)
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
CREATE INDEX IF NOT EXISTS idx_mention_link_evidence_sentences_sentence
|
|
167
|
+
ON mention_link_evidence_sentences(chapter_id, sentence_index);
|
|
168
|
+
|
|
169
|
+
CREATE INDEX IF NOT EXISTS idx_mention_links_source
|
|
170
|
+
ON mention_links(source_mention_id);
|
|
171
|
+
|
|
172
|
+
CREATE INDEX IF NOT EXISTS idx_mention_links_target
|
|
173
|
+
ON mention_links(target_mention_id);
|
|
174
|
+
|
|
175
|
+
CREATE INDEX IF NOT EXISTS idx_mention_links_predicate
|
|
176
|
+
ON mention_links(predicate);
|
|
177
|
+
|
|
178
|
+
CREATE INDEX IF NOT EXISTS idx_mention_links_predicate_source_target
|
|
179
|
+
ON mention_links(predicate, source_mention_id, target_mention_id);
|
|
180
|
+
|
|
181
|
+
CREATE INDEX IF NOT EXISTS idx_mention_links_predicate_target_source
|
|
182
|
+
ON mention_links(predicate, target_mention_id, source_mention_id);
|
|
183
|
+
|
|
184
|
+
CREATE INDEX IF NOT EXISTS idx_mention_links_source_predicate_target
|
|
185
|
+
ON mention_links(source_mention_id, predicate, target_mention_id);
|
|
186
|
+
|
|
187
|
+
CREATE INDEX IF NOT EXISTS idx_mention_links_target_predicate_source
|
|
188
|
+
ON mention_links(target_mention_id, predicate, source_mention_id);
|
|
189
|
+
|
|
190
|
+
CREATE INDEX IF NOT EXISTS idx_mention_links_source_target_predicate
|
|
191
|
+
ON mention_links(source_mention_id, target_mention_id, predicate);
|
|
192
|
+
|
|
193
|
+
CREATE INDEX IF NOT EXISTS idx_reading_edges_target
|
|
194
|
+
ON reading_edges(to_id, from_id);
|
|
195
|
+
|
|
196
|
+
CREATE INDEX IF NOT EXISTS idx_snake_edges_target
|
|
197
|
+
ON snake_edges(to_snake_id, from_snake_id);
|
|
198
|
+
|
|
199
|
+
CREATE VIEW IF NOT EXISTS chapter_entities AS
|
|
200
|
+
SELECT
|
|
201
|
+
chapter_id,
|
|
202
|
+
qid,
|
|
203
|
+
COUNT(*) AS mention_count
|
|
204
|
+
FROM mentions
|
|
205
|
+
GROUP BY chapter_id, qid;
|
|
206
|
+
|
|
207
|
+
CREATE VIEW IF NOT EXISTS book_entities AS
|
|
208
|
+
SELECT
|
|
209
|
+
qid,
|
|
210
|
+
SUM(mention_count) AS mention_count
|
|
211
|
+
FROM chapter_entities
|
|
212
|
+
GROUP BY qid;
|
|
213
|
+
|
|
214
|
+
CREATE VIEW IF NOT EXISTS chapter_entity_relations AS
|
|
215
|
+
SELECT
|
|
216
|
+
source_mentions.chapter_id AS chapter_id,
|
|
217
|
+
source_mentions.qid AS subject_qid,
|
|
218
|
+
mention_links.predicate AS predicate,
|
|
219
|
+
target_mentions.qid AS object_qid,
|
|
220
|
+
COUNT(*) AS evidence_count
|
|
221
|
+
FROM mention_links
|
|
222
|
+
JOIN mentions AS source_mentions
|
|
223
|
+
ON source_mentions.id = mention_links.source_mention_id
|
|
224
|
+
JOIN mentions AS target_mentions
|
|
225
|
+
ON target_mentions.id = mention_links.target_mention_id
|
|
226
|
+
WHERE source_mentions.chapter_id = target_mentions.chapter_id
|
|
227
|
+
GROUP BY
|
|
228
|
+
source_mentions.chapter_id,
|
|
229
|
+
source_mentions.qid,
|
|
230
|
+
mention_links.predicate,
|
|
231
|
+
target_mentions.qid;
|
|
232
|
+
|
|
233
|
+
CREATE VIEW IF NOT EXISTS book_entity_relations AS
|
|
234
|
+
SELECT
|
|
235
|
+
subject_qid,
|
|
236
|
+
predicate,
|
|
237
|
+
object_qid,
|
|
238
|
+
SUM(evidence_count) AS evidence_count
|
|
239
|
+
FROM chapter_entity_relations
|
|
240
|
+
GROUP BY subject_qid, predicate, object_qid;
|
|
241
|
+
|
|
242
|
+
CREATE TABLE IF NOT EXISTS text_sentence_records (
|
|
243
|
+
id INTEGER PRIMARY KEY,
|
|
244
|
+
kind INTEGER NOT NULL,
|
|
245
|
+
chapter_id INTEGER NOT NULL,
|
|
246
|
+
sentence_index INTEGER NOT NULL,
|
|
247
|
+
words_count INTEGER NOT NULL DEFAULT 0,
|
|
248
|
+
byte_offset INTEGER NOT NULL DEFAULT 0,
|
|
249
|
+
byte_length INTEGER NOT NULL DEFAULT 0,
|
|
250
|
+
UNIQUE(kind, chapter_id, sentence_index)
|
|
251
|
+
);
|
|
252
|
+
|
|
253
|
+
CREATE INDEX IF NOT EXISTS idx_text_sentence_records_chapter
|
|
254
|
+
ON text_sentence_records(kind, chapter_id, sentence_index);
|
|
255
|
+
|
|
256
|
+
CREATE TABLE IF NOT EXISTS object_metadata (
|
|
257
|
+
id INTEGER PRIMARY KEY,
|
|
258
|
+
object_kind INTEGER NOT NULL,
|
|
259
|
+
object_path TEXT NOT NULL,
|
|
260
|
+
key TEXT NOT NULL,
|
|
261
|
+
value_json TEXT NOT NULL,
|
|
262
|
+
updated_at TEXT NOT NULL,
|
|
263
|
+
chapter_id INTEGER,
|
|
264
|
+
chunk_id INTEGER,
|
|
265
|
+
entity_qid TEXT,
|
|
266
|
+
triple_subject_qid TEXT,
|
|
267
|
+
triple_predicate TEXT,
|
|
268
|
+
triple_object_qid TEXT,
|
|
269
|
+
UNIQUE(object_path, key)
|
|
270
|
+
);
|
|
271
|
+
|
|
272
|
+
CREATE INDEX IF NOT EXISTS idx_object_metadata_object
|
|
273
|
+
ON object_metadata(object_path);
|
|
274
|
+
|
|
275
|
+
CREATE INDEX IF NOT EXISTS idx_object_metadata_chapter
|
|
276
|
+
ON object_metadata(chapter_id);
|
|
277
|
+
|
|
278
|
+
CREATE INDEX IF NOT EXISTS idx_object_metadata_chunk
|
|
279
|
+
ON object_metadata(chunk_id);
|
|
280
|
+
|
|
281
|
+
CREATE INDEX IF NOT EXISTS idx_object_metadata_entity
|
|
282
|
+
ON object_metadata(entity_qid);
|
|
283
|
+
|
|
284
|
+
CREATE INDEX IF NOT EXISTS idx_object_metadata_triple
|
|
285
|
+
ON object_metadata(
|
|
286
|
+
triple_subject_qid,
|
|
287
|
+
triple_predicate,
|
|
288
|
+
triple_object_qid
|
|
289
|
+
);
|
|
290
|
+
`;
|
|
291
|
+
const SEARCH_INDEX_SCHEMA_SQL = `
|
|
292
|
+
CREATE TABLE IF NOT EXISTS search_index_state (
|
|
293
|
+
key TEXT PRIMARY KEY,
|
|
294
|
+
value TEXT NOT NULL
|
|
295
|
+
);
|
|
296
|
+
|
|
297
|
+
CREATE TABLE IF NOT EXISTS text_sentence_records (
|
|
298
|
+
id INTEGER PRIMARY KEY,
|
|
299
|
+
kind INTEGER NOT NULL,
|
|
300
|
+
chapter_id INTEGER NOT NULL,
|
|
301
|
+
sentence_index INTEGER NOT NULL,
|
|
302
|
+
words_count INTEGER NOT NULL DEFAULT 0,
|
|
303
|
+
byte_offset INTEGER NOT NULL DEFAULT 0,
|
|
304
|
+
byte_length INTEGER NOT NULL DEFAULT 0,
|
|
305
|
+
UNIQUE(kind, chapter_id, sentence_index)
|
|
306
|
+
);
|
|
307
|
+
|
|
308
|
+
CREATE INDEX IF NOT EXISTS idx_text_sentence_records_chapter
|
|
309
|
+
ON text_sentence_records(kind, chapter_id, sentence_index);
|
|
310
|
+
|
|
311
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS text_sentence_fts USING fts5(
|
|
312
|
+
tier1,
|
|
313
|
+
tier2,
|
|
314
|
+
tier3,
|
|
315
|
+
tokenize='ascii'
|
|
316
|
+
);
|
|
317
|
+
|
|
318
|
+
CREATE TABLE IF NOT EXISTS search_object_properties_records (
|
|
319
|
+
id INTEGER PRIMARY KEY,
|
|
320
|
+
owner_kind INTEGER NOT NULL,
|
|
321
|
+
owner_id TEXT NOT NULL,
|
|
322
|
+
property_kind INTEGER NOT NULL,
|
|
323
|
+
chapter_id INTEGER
|
|
324
|
+
);
|
|
325
|
+
|
|
326
|
+
CREATE INDEX IF NOT EXISTS idx_search_object_properties_records_owner
|
|
327
|
+
ON search_object_properties_records(owner_kind, owner_id);
|
|
328
|
+
|
|
329
|
+
CREATE INDEX IF NOT EXISTS idx_search_object_properties_records_chapter
|
|
330
|
+
ON search_object_properties_records(chapter_id, owner_kind, owner_id);
|
|
331
|
+
|
|
332
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS search_object_properties_fts USING fts5(
|
|
333
|
+
tier1,
|
|
334
|
+
tier2,
|
|
335
|
+
tier3,
|
|
336
|
+
tokenize='ascii'
|
|
337
|
+
);
|
|
338
|
+
`;
|
|
339
|
+
async function initializeDocumentSchema(database) {
|
|
340
|
+
await migrateSerialDocumentOrder(database);
|
|
341
|
+
await ensureGraphBuildParameterTable(database);
|
|
342
|
+
await migrateSerialStateRevision(database);
|
|
343
|
+
await migrateSerialStateKnowledgeGraphReady(database);
|
|
344
|
+
await migrateSerialStateGraphParameterHashes(database);
|
|
345
|
+
await ensureSerialDocumentOrderIndex(database);
|
|
346
|
+
await ensureGraphBuildParameterIndexes(database);
|
|
347
|
+
}
|
|
348
|
+
async function migrateSerialDocumentOrder(database) {
|
|
349
|
+
const columns = await listTableColumns(database, "serials");
|
|
350
|
+
if (columns.has("document_order")) {
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
await database.transaction(async () => {
|
|
354
|
+
const transactionColumns = await listTableColumns(database, "serials");
|
|
355
|
+
if (transactionColumns.has("document_order")) {
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
await database.run(`
|
|
359
|
+
ALTER TABLE serials
|
|
360
|
+
ADD COLUMN document_order INTEGER NOT NULL DEFAULT 0
|
|
361
|
+
`);
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
async function ensureSerialDocumentOrderIndex(database) {
|
|
365
|
+
await database.run(`
|
|
366
|
+
CREATE INDEX IF NOT EXISTS idx_serials_document_order
|
|
367
|
+
ON serials(document_order, id)
|
|
368
|
+
`);
|
|
369
|
+
}
|
|
370
|
+
async function migrateSerialStateRevision(database) {
|
|
371
|
+
const columns = await listTableColumns(database, "serial_states");
|
|
372
|
+
if (columns.has("revision")) {
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
await database.transaction(async () => {
|
|
376
|
+
const transactionColumns = await listTableColumns(
|
|
377
|
+
database,
|
|
378
|
+
"serial_states"
|
|
379
|
+
);
|
|
380
|
+
if (transactionColumns.has("revision")) {
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
await database.run(`
|
|
384
|
+
ALTER TABLE serial_states
|
|
385
|
+
ADD COLUMN revision INTEGER NOT NULL DEFAULT 0
|
|
386
|
+
`);
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
async function ensureGraphBuildParameterTable(database) {
|
|
390
|
+
await database.run(`
|
|
391
|
+
CREATE TABLE IF NOT EXISTS graph_build_parameters (
|
|
392
|
+
hash TEXT PRIMARY KEY,
|
|
393
|
+
prompt TEXT NOT NULL,
|
|
394
|
+
language TEXT,
|
|
395
|
+
created_at TEXT NOT NULL
|
|
396
|
+
)
|
|
397
|
+
`);
|
|
398
|
+
}
|
|
399
|
+
async function ensureGraphBuildParameterIndexes(database) {
|
|
400
|
+
await database.run(`
|
|
401
|
+
CREATE INDEX IF NOT EXISTS idx_serial_states_topology_parameter_hash
|
|
402
|
+
ON serial_states(topology_parameter_hash)
|
|
403
|
+
`);
|
|
404
|
+
await database.run(`
|
|
405
|
+
CREATE INDEX IF NOT EXISTS idx_serial_states_knowledge_graph_parameter_hash
|
|
406
|
+
ON serial_states(knowledge_graph_parameter_hash)
|
|
407
|
+
`);
|
|
408
|
+
}
|
|
409
|
+
async function migrateSerialStateKnowledgeGraphReady(database) {
|
|
410
|
+
const columns = await listTableColumns(database, "serial_states");
|
|
411
|
+
if (columns.has("knowledge_graph_ready")) {
|
|
412
|
+
return;
|
|
413
|
+
}
|
|
414
|
+
await database.transaction(async () => {
|
|
415
|
+
const transactionColumns = await listTableColumns(
|
|
416
|
+
database,
|
|
417
|
+
"serial_states"
|
|
418
|
+
);
|
|
419
|
+
if (transactionColumns.has("knowledge_graph_ready")) {
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
await database.run(`
|
|
423
|
+
ALTER TABLE serial_states
|
|
424
|
+
ADD COLUMN knowledge_graph_ready INTEGER NOT NULL DEFAULT 0
|
|
425
|
+
`);
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
async function migrateSerialStateGraphParameterHashes(database) {
|
|
429
|
+
const columns = await listTableColumns(database, "serial_states");
|
|
430
|
+
const parameterColumns = [
|
|
431
|
+
["topology_parameter_hash", "TEXT"],
|
|
432
|
+
["knowledge_graph_parameter_hash", "TEXT"]
|
|
433
|
+
];
|
|
434
|
+
const missingColumns = [];
|
|
435
|
+
for (const column of parameterColumns) {
|
|
436
|
+
if (!columns.has(column[0])) {
|
|
437
|
+
missingColumns.push(column);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
if (missingColumns.length === 0) {
|
|
441
|
+
return;
|
|
442
|
+
}
|
|
443
|
+
await database.transaction(async () => {
|
|
444
|
+
const transactionColumns = await listTableColumns(
|
|
445
|
+
database,
|
|
446
|
+
"serial_states"
|
|
447
|
+
);
|
|
448
|
+
for (const [name, type] of missingColumns) {
|
|
449
|
+
if (transactionColumns.has(name)) {
|
|
450
|
+
continue;
|
|
451
|
+
}
|
|
452
|
+
await database.run(`
|
|
453
|
+
ALTER TABLE serial_states
|
|
454
|
+
ADD COLUMN ${name} ${type}
|
|
455
|
+
`);
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
async function listTableColumns(database, table) {
|
|
460
|
+
const columns = await database.queryAll(
|
|
461
|
+
`PRAGMA table_info(${table})`,
|
|
462
|
+
void 0,
|
|
463
|
+
(row) => String(row.name)
|
|
464
|
+
);
|
|
465
|
+
return new Set(columns);
|
|
466
|
+
}
|
|
467
|
+
export {
|
|
468
|
+
SCHEMA_SQL,
|
|
469
|
+
SEARCH_INDEX_SCHEMA_SQL,
|
|
470
|
+
initializeDocumentSchema
|
|
471
|
+
};
|
|
472
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/document/schema.ts"],"sourcesContent":["import type { Database } from \"./database.js\";\n\nexport const SCHEMA_SQL = `\n CREATE TABLE IF NOT EXISTS serials (\n id INTEGER PRIMARY KEY,\n document_order INTEGER NOT NULL DEFAULT 0\n );\n\n CREATE TABLE IF NOT EXISTS serial_states (\n serial_id INTEGER PRIMARY KEY,\n revision INTEGER NOT NULL DEFAULT 0,\n topology_ready INTEGER NOT NULL DEFAULT 0,\n topology_parameter_hash TEXT,\n knowledge_graph_ready INTEGER NOT NULL DEFAULT 0,\n knowledge_graph_parameter_hash TEXT,\n FOREIGN KEY (serial_id) REFERENCES serials(id)\n );\n\n CREATE TABLE IF NOT EXISTS archive_revisions (\n key TEXT PRIMARY KEY,\n value INTEGER NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS archive_index_settings (\n id INTEGER PRIMARY KEY CHECK (id = 1),\n fts_embedded INTEGER NOT NULL DEFAULT 0\n );\n\n CREATE TABLE IF NOT EXISTS graph_build_parameters (\n hash TEXT PRIMARY KEY,\n prompt TEXT NOT NULL,\n language TEXT,\n created_at TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS chunks (\n id INTEGER PRIMARY KEY,\n generation INTEGER NOT NULL,\n serial_id INTEGER NOT NULL,\n sentence_index INTEGER NOT NULL,\n label TEXT NOT NULL,\n content TEXT NOT NULL,\n retention TEXT,\n importance TEXT,\n wordsCount INTEGER NOT NULL DEFAULT 0,\n weight REAL NOT NULL DEFAULT 0.0\n );\n\n CREATE INDEX IF NOT EXISTS idx_chunks_sentence\n ON chunks(serial_id, sentence_index);\n\n CREATE INDEX IF NOT EXISTS idx_chunks_serial_id\n ON chunks(serial_id, id);\n\n CREATE TABLE IF NOT EXISTS chunk_sentences (\n chunk_id INTEGER NOT NULL,\n serial_id INTEGER NOT NULL,\n sentence_index INTEGER NOT NULL,\n FOREIGN KEY (chunk_id) REFERENCES chunks(id),\n PRIMARY KEY (chunk_id, serial_id, sentence_index)\n );\n\n CREATE TABLE IF NOT EXISTS reading_edges (\n from_id INTEGER NOT NULL,\n to_id INTEGER NOT NULL,\n strength TEXT,\n weight REAL NOT NULL DEFAULT 0.1,\n PRIMARY KEY (from_id, to_id),\n FOREIGN KEY (from_id) REFERENCES chunks(id),\n FOREIGN KEY (to_id) REFERENCES chunks(id)\n );\n\n CREATE TABLE IF NOT EXISTS snakes (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n serial_id INTEGER NOT NULL,\n group_id INTEGER NOT NULL,\n local_snake_id INTEGER NOT NULL,\n size INTEGER NOT NULL,\n first_label TEXT NOT NULL,\n last_label TEXT NOT NULL,\n wordsCount INTEGER NOT NULL DEFAULT 0,\n weight REAL NOT NULL DEFAULT 0.0,\n UNIQUE(serial_id, group_id, local_snake_id)\n );\n\n CREATE TABLE IF NOT EXISTS snake_chunks (\n snake_id INTEGER NOT NULL,\n chunk_id INTEGER NOT NULL,\n position INTEGER NOT NULL,\n FOREIGN KEY (snake_id) REFERENCES snakes(id),\n FOREIGN KEY (chunk_id) REFERENCES chunks(id),\n PRIMARY KEY (snake_id, chunk_id)\n );\n\n CREATE TABLE IF NOT EXISTS snake_edges (\n from_snake_id INTEGER NOT NULL,\n to_snake_id INTEGER NOT NULL,\n weight REAL NOT NULL DEFAULT 0.1,\n PRIMARY KEY (from_snake_id, to_snake_id),\n FOREIGN KEY (from_snake_id) REFERENCES snakes(id),\n FOREIGN KEY (to_snake_id) REFERENCES snakes(id)\n );\n\n CREATE TABLE IF NOT EXISTS sentence_groups (\n serial_id INTEGER NOT NULL,\n group_id INTEGER NOT NULL,\n start_sentence_index INTEGER NOT NULL,\n end_sentence_index INTEGER NOT NULL,\n PRIMARY KEY (serial_id, group_id, start_sentence_index, end_sentence_index)\n );\n\n CREATE TABLE IF NOT EXISTS mentions (\n id TEXT PRIMARY KEY,\n chapter_id INTEGER NOT NULL,\n sentence_index INTEGER,\n range_start INTEGER NOT NULL,\n range_end INTEGER NOT NULL,\n surface TEXT NOT NULL,\n qid TEXT NOT NULL,\n confidence REAL,\n note TEXT,\n FOREIGN KEY (chapter_id) REFERENCES serials(id)\n );\n\n CREATE INDEX IF NOT EXISTS idx_mentions_chapter\n ON mentions(chapter_id);\n\n CREATE INDEX IF NOT EXISTS idx_mentions_chapter_position\n ON mentions(chapter_id, sentence_index, range_start, range_end, id);\n\n CREATE INDEX IF NOT EXISTS idx_mentions_chapter_qid\n ON mentions(chapter_id, qid);\n\n CREATE INDEX IF NOT EXISTS idx_mentions_qid\n ON mentions(qid);\n\n CREATE INDEX IF NOT EXISTS idx_mentions_qid_position\n ON mentions(qid, chapter_id, sentence_index, range_start, range_end, id);\n\n CREATE INDEX IF NOT EXISTS idx_mentions_surface\n ON mentions(surface);\n\n CREATE INDEX IF NOT EXISTS idx_mentions_surface_position\n ON mentions(surface, chapter_id, sentence_index, range_start, range_end, id);\n\n CREATE INDEX IF NOT EXISTS idx_mentions_sentence\n ON mentions(chapter_id, sentence_index);\n\n CREATE TABLE IF NOT EXISTS mention_links (\n id TEXT PRIMARY KEY,\n source_mention_id TEXT NOT NULL,\n target_mention_id TEXT NOT NULL,\n predicate TEXT NOT NULL,\n confidence REAL,\n note TEXT,\n FOREIGN KEY (source_mention_id) REFERENCES mentions(id),\n FOREIGN KEY (target_mention_id) REFERENCES mentions(id)\n );\n\n CREATE TABLE IF NOT EXISTS mention_link_evidence_sentences (\n link_id TEXT NOT NULL,\n chapter_id INTEGER NOT NULL,\n sentence_index INTEGER NOT NULL,\n FOREIGN KEY (link_id) REFERENCES mention_links(id),\n PRIMARY KEY (link_id, chapter_id, sentence_index)\n );\n\n CREATE INDEX IF NOT EXISTS idx_mention_link_evidence_sentences_sentence\n ON mention_link_evidence_sentences(chapter_id, sentence_index);\n\n CREATE INDEX IF NOT EXISTS idx_mention_links_source\n ON mention_links(source_mention_id);\n\n CREATE INDEX IF NOT EXISTS idx_mention_links_target\n ON mention_links(target_mention_id);\n\n CREATE INDEX IF NOT EXISTS idx_mention_links_predicate\n ON mention_links(predicate);\n\n CREATE INDEX IF NOT EXISTS idx_mention_links_predicate_source_target\n ON mention_links(predicate, source_mention_id, target_mention_id);\n\n CREATE INDEX IF NOT EXISTS idx_mention_links_predicate_target_source\n ON mention_links(predicate, target_mention_id, source_mention_id);\n\n CREATE INDEX IF NOT EXISTS idx_mention_links_source_predicate_target\n ON mention_links(source_mention_id, predicate, target_mention_id);\n\n CREATE INDEX IF NOT EXISTS idx_mention_links_target_predicate_source\n ON mention_links(target_mention_id, predicate, source_mention_id);\n\n CREATE INDEX IF NOT EXISTS idx_mention_links_source_target_predicate\n ON mention_links(source_mention_id, target_mention_id, predicate);\n\n CREATE INDEX IF NOT EXISTS idx_reading_edges_target\n ON reading_edges(to_id, from_id);\n\n CREATE INDEX IF NOT EXISTS idx_snake_edges_target\n ON snake_edges(to_snake_id, from_snake_id);\n\n CREATE VIEW IF NOT EXISTS chapter_entities AS\n SELECT\n chapter_id,\n qid,\n COUNT(*) AS mention_count\n FROM mentions\n GROUP BY chapter_id, qid;\n\n CREATE VIEW IF NOT EXISTS book_entities AS\n SELECT\n qid,\n SUM(mention_count) AS mention_count\n FROM chapter_entities\n GROUP BY qid;\n\n CREATE VIEW IF NOT EXISTS chapter_entity_relations AS\n SELECT\n source_mentions.chapter_id AS chapter_id,\n source_mentions.qid AS subject_qid,\n mention_links.predicate AS predicate,\n target_mentions.qid AS object_qid,\n COUNT(*) AS evidence_count\n FROM mention_links\n JOIN mentions AS source_mentions\n ON source_mentions.id = mention_links.source_mention_id\n JOIN mentions AS target_mentions\n ON target_mentions.id = mention_links.target_mention_id\n WHERE source_mentions.chapter_id = target_mentions.chapter_id\n GROUP BY\n source_mentions.chapter_id,\n source_mentions.qid,\n mention_links.predicate,\n target_mentions.qid;\n\n CREATE VIEW IF NOT EXISTS book_entity_relations AS\n SELECT\n subject_qid,\n predicate,\n object_qid,\n SUM(evidence_count) AS evidence_count\n FROM chapter_entity_relations\n GROUP BY subject_qid, predicate, object_qid;\n\n CREATE TABLE IF NOT EXISTS text_sentence_records (\n id INTEGER PRIMARY KEY,\n kind INTEGER NOT NULL,\n chapter_id INTEGER NOT NULL,\n sentence_index INTEGER NOT NULL,\n words_count INTEGER NOT NULL DEFAULT 0,\n byte_offset INTEGER NOT NULL DEFAULT 0,\n byte_length INTEGER NOT NULL DEFAULT 0,\n UNIQUE(kind, chapter_id, sentence_index)\n );\n\n CREATE INDEX IF NOT EXISTS idx_text_sentence_records_chapter\n ON text_sentence_records(kind, chapter_id, sentence_index);\n\n CREATE TABLE IF NOT EXISTS object_metadata (\n id INTEGER PRIMARY KEY,\n object_kind INTEGER NOT NULL,\n object_path TEXT NOT NULL,\n key TEXT NOT NULL,\n value_json TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n chapter_id INTEGER,\n chunk_id INTEGER,\n entity_qid TEXT,\n triple_subject_qid TEXT,\n triple_predicate TEXT,\n triple_object_qid TEXT,\n UNIQUE(object_path, key)\n );\n\n CREATE INDEX IF NOT EXISTS idx_object_metadata_object\n ON object_metadata(object_path);\n\n CREATE INDEX IF NOT EXISTS idx_object_metadata_chapter\n ON object_metadata(chapter_id);\n\n CREATE INDEX IF NOT EXISTS idx_object_metadata_chunk\n ON object_metadata(chunk_id);\n\n CREATE INDEX IF NOT EXISTS idx_object_metadata_entity\n ON object_metadata(entity_qid);\n\n CREATE INDEX IF NOT EXISTS idx_object_metadata_triple\n ON object_metadata(\n triple_subject_qid,\n triple_predicate,\n triple_object_qid\n );\n`;\n\nexport const SEARCH_INDEX_SCHEMA_SQL = `\n CREATE TABLE IF NOT EXISTS search_index_state (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n );\n\n CREATE TABLE IF NOT EXISTS text_sentence_records (\n id INTEGER PRIMARY KEY,\n kind INTEGER NOT NULL,\n chapter_id INTEGER NOT NULL,\n sentence_index INTEGER NOT NULL,\n words_count INTEGER NOT NULL DEFAULT 0,\n byte_offset INTEGER NOT NULL DEFAULT 0,\n byte_length INTEGER NOT NULL DEFAULT 0,\n UNIQUE(kind, chapter_id, sentence_index)\n );\n\n CREATE INDEX IF NOT EXISTS idx_text_sentence_records_chapter\n ON text_sentence_records(kind, chapter_id, sentence_index);\n\n CREATE VIRTUAL TABLE IF NOT EXISTS text_sentence_fts USING fts5(\n tier1,\n tier2,\n tier3,\n tokenize='ascii'\n );\n\n CREATE TABLE IF NOT EXISTS search_object_properties_records (\n id INTEGER PRIMARY KEY,\n owner_kind INTEGER NOT NULL,\n owner_id TEXT NOT NULL,\n property_kind INTEGER NOT NULL,\n chapter_id INTEGER\n );\n\n CREATE INDEX IF NOT EXISTS idx_search_object_properties_records_owner\n ON search_object_properties_records(owner_kind, owner_id);\n\n CREATE INDEX IF NOT EXISTS idx_search_object_properties_records_chapter\n ON search_object_properties_records(chapter_id, owner_kind, owner_id);\n\n CREATE VIRTUAL TABLE IF NOT EXISTS search_object_properties_fts USING fts5(\n tier1,\n tier2,\n tier3,\n tokenize='ascii'\n );\n`;\n\nexport async function initializeDocumentSchema(\n database: Database,\n): Promise<void> {\n await migrateSerialDocumentOrder(database);\n await ensureGraphBuildParameterTable(database);\n await migrateSerialStateRevision(database);\n await migrateSerialStateKnowledgeGraphReady(database);\n await migrateSerialStateGraphParameterHashes(database);\n await ensureSerialDocumentOrderIndex(database);\n await ensureGraphBuildParameterIndexes(database);\n}\n\nasync function migrateSerialDocumentOrder(database: Database): Promise<void> {\n const columns = await listTableColumns(database, \"serials\");\n\n if (columns.has(\"document_order\")) {\n return;\n }\n\n await database.transaction(async () => {\n const transactionColumns = await listTableColumns(database, \"serials\");\n\n if (transactionColumns.has(\"document_order\")) {\n return;\n }\n\n await database.run(`\n ALTER TABLE serials\n ADD COLUMN document_order INTEGER NOT NULL DEFAULT 0\n `);\n });\n}\n\nasync function ensureSerialDocumentOrderIndex(\n database: Database,\n): Promise<void> {\n await database.run(`\n CREATE INDEX IF NOT EXISTS idx_serials_document_order\n ON serials(document_order, id)\n `);\n}\n\nasync function migrateSerialStateRevision(database: Database): Promise<void> {\n const columns = await listTableColumns(database, \"serial_states\");\n\n if (columns.has(\"revision\")) {\n return;\n }\n\n await database.transaction(async () => {\n const transactionColumns = await listTableColumns(\n database,\n \"serial_states\",\n );\n\n if (transactionColumns.has(\"revision\")) {\n return;\n }\n\n await database.run(`\n ALTER TABLE serial_states\n ADD COLUMN revision INTEGER NOT NULL DEFAULT 0\n `);\n });\n}\n\nasync function ensureGraphBuildParameterTable(\n database: Database,\n): Promise<void> {\n await database.run(`\n CREATE TABLE IF NOT EXISTS graph_build_parameters (\n hash TEXT PRIMARY KEY,\n prompt TEXT NOT NULL,\n language TEXT,\n created_at TEXT NOT NULL\n )\n `);\n}\n\nasync function ensureGraphBuildParameterIndexes(\n database: Database,\n): Promise<void> {\n await database.run(`\n CREATE INDEX IF NOT EXISTS idx_serial_states_topology_parameter_hash\n ON serial_states(topology_parameter_hash)\n `);\n await database.run(`\n CREATE INDEX IF NOT EXISTS idx_serial_states_knowledge_graph_parameter_hash\n ON serial_states(knowledge_graph_parameter_hash)\n `);\n}\n\nasync function migrateSerialStateKnowledgeGraphReady(\n database: Database,\n): Promise<void> {\n const columns = await listTableColumns(database, \"serial_states\");\n\n if (columns.has(\"knowledge_graph_ready\")) {\n return;\n }\n\n await database.transaction(async () => {\n const transactionColumns = await listTableColumns(\n database,\n \"serial_states\",\n );\n\n if (transactionColumns.has(\"knowledge_graph_ready\")) {\n return;\n }\n\n await database.run(`\n ALTER TABLE serial_states\n ADD COLUMN knowledge_graph_ready INTEGER NOT NULL DEFAULT 0\n `);\n });\n}\n\nasync function migrateSerialStateGraphParameterHashes(\n database: Database,\n): Promise<void> {\n const columns = await listTableColumns(database, \"serial_states\");\n const parameterColumns = [\n [\"topology_parameter_hash\", \"TEXT\"],\n [\"knowledge_graph_parameter_hash\", \"TEXT\"],\n ] as const;\n const missingColumns: Array<(typeof parameterColumns)[number]> = [];\n\n for (const column of parameterColumns) {\n if (!columns.has(column[0])) {\n missingColumns.push(column);\n }\n }\n\n if (missingColumns.length === 0) {\n return;\n }\n\n await database.transaction(async () => {\n const transactionColumns = await listTableColumns(\n database,\n \"serial_states\",\n );\n\n for (const [name, type] of missingColumns) {\n if (transactionColumns.has(name)) {\n continue;\n }\n\n await database.run(`\n ALTER TABLE serial_states\n ADD COLUMN ${name} ${type}\n `);\n }\n });\n}\n\nasync function listTableColumns(\n database: Database,\n table: string,\n): Promise<ReadonlySet<string>> {\n const columns = await database.queryAll(\n `PRAGMA table_info(${table})`,\n undefined,\n (row) => String(row.name),\n );\n\n return new Set(columns);\n}\n"],"mappings":"AAEO,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Database } from './database.js';
|
|
2
|
+
import 'sqlite3';
|
|
3
|
+
|
|
4
|
+
declare function openSharedStateDatabase(databasePath: string, schemaSql: string, options?: {
|
|
5
|
+
readonly readonly?: boolean;
|
|
6
|
+
}): Promise<Database>;
|
|
7
|
+
declare function ensureSharedStateDatabaseInitialized(databasePath: string, schemaSql: string): Promise<void>;
|
|
8
|
+
|
|
9
|
+
export { ensureSharedStateDatabaseInitialized, openSharedStateDatabase };
|