wiki-graph-core 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/data/editor/text_compressor.jinja +17 -13
- package/data/help/commands/archive/next.jinja +7 -2
- package/data/help/commands/gc.jinja +2 -1
- package/data/help/commands/legacy/migrate.jinja +6 -1
- package/data/help/commands/legacy.jinja +3 -2
- package/data/help/commands/library-predicate.jinja +296 -0
- package/data/help/commands/library.jinja +235 -0
- package/data/help/commands/maintenance/chapter/add.jinja +3 -3
- package/data/help/commands/maintenance/chapter/list.jinja +4 -4
- package/data/help/commands/maintenance/chapter/move.jinja +4 -4
- package/data/help/commands/maintenance/chapter/remove.jinja +1 -1
- package/data/help/commands/maintenance/chapter/reset.jinja +1 -1
- package/data/help/commands/maintenance/chapter/set-source.jinja +2 -2
- package/data/help/commands/maintenance/chapter/set-summary.jinja +1 -1
- package/data/help/commands/maintenance/chapter/set-title.jinja +3 -3
- package/data/help/commands/maintenance/chapter/tree.jinja +6 -6
- package/data/help/commands/maintenance/chapter.jinja +10 -10
- package/data/help/commands/maintenance/meta.jinja +7 -7
- package/data/help/commands/maintenance/upgrade.jinja +35 -0
- package/data/help/commands/maintenance.jinja +23 -0
- package/data/help/commands/predicate.jinja +204 -28
- package/data/help/commands/root.jinja +10 -3
- package/data/help/commands/uri.jinja +165 -6
- package/data/help/topics/config.jinja +10 -3
- package/data/help/topics/library.jinja +87 -0
- package/data/help/topics/readiness.jinja +32 -2
- package/data/help/topics/recipe.jinja +42 -17
- package/data/help/topics/runtime.jinja +20 -3
- package/data/help/topics/uri.jinja +51 -25
- package/dist/api/app.d.ts +87 -0
- package/dist/api/app.js +137 -0
- package/dist/api/app.js.map +1 -0
- package/dist/api/chapter/advance.d.ts +36 -0
- package/dist/api/chapter/advance.js +171 -0
- package/dist/api/chapter/advance.js.map +1 -0
- package/dist/api/chapter/details.d.ts +25 -0
- package/dist/api/chapter/details.js +17 -0
- package/dist/api/chapter/details.js.map +1 -0
- package/dist/api/chapter/entries.d.ts +41 -0
- package/dist/api/chapter/entries.js +216 -0
- package/dist/api/chapter/entries.js.map +1 -0
- package/dist/api/chapter/generate.d.ts +42 -0
- package/dist/api/chapter/generate.js +61 -0
- package/dist/api/chapter/generate.js.map +1 -0
- package/dist/api/chapter/index.d.ts +43 -0
- package/dist/api/chapter/index.js +11 -0
- package/dist/api/chapter/index.js.map +1 -0
- package/dist/api/chapter/manage.d.ts +53 -0
- package/dist/api/chapter/manage.js +185 -0
- package/dist/api/chapter/manage.js.map +1 -0
- package/dist/api/chapter/options.d.ts +51 -0
- package/dist/api/chapter/options.js +11 -0
- package/dist/api/chapter/options.js.map +1 -0
- package/dist/api/chapter/parse.d.ts +13 -0
- package/dist/api/chapter/parse.js +16 -0
- package/dist/api/chapter/parse.js.map +1 -0
- package/dist/api/chapter/tree.d.ts +61 -0
- package/dist/api/chapter/tree.js +387 -0
- package/dist/api/chapter/tree.js.map +1 -0
- package/dist/api/chapter/types.d.ts +104 -0
- package/dist/api/chapter/types.js +5 -0
- package/dist/api/chapter/types.js.map +1 -0
- package/dist/api/chapter-build/index.d.ts +42 -0
- package/dist/api/chapter-build/index.js +3 -0
- package/dist/api/chapter-build/index.js.map +1 -0
- package/dist/api/chapter-build/types.d.ts +37 -0
- package/dist/api/digest.d.ts +67 -0
- package/dist/api/digest.js +171 -0
- package/dist/api/digest.js.map +1 -0
- package/dist/api/graph.d.ts +24 -0
- package/dist/api/graph.js +2 -0
- package/dist/api/graph.js.map +1 -0
- package/dist/api/import.d.ts +62 -0
- package/dist/api/import.js +269 -0
- package/dist/api/import.js.map +1 -0
- package/dist/api/index.d.ts +91 -0
- package/dist/api/index.js +189 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/knowledge-graph-build/index.d.ts +40 -0
- package/dist/api/knowledge-graph-build/index.js +2 -0
- package/dist/api/knowledge-graph-build/index.js.map +1 -0
- package/dist/api/knowledge-graph-build/types.d.ts +13 -0
- package/dist/api/llm-sampling.d.ts +11 -0
- package/dist/api/llm-sampling.js +58 -0
- package/dist/api/llm-sampling.js.map +1 -0
- package/dist/api/prompts.d.ts +1 -0
- package/dist/api/prompts.js +2 -0
- package/dist/api/prompts.js.map +1 -0
- package/dist/api/wiki-graph-archive.d.ts +42 -0
- package/dist/api/wiki-graph-archive.js +130 -0
- package/dist/api/wiki-graph-archive.js.map +1 -0
- package/dist/core-Cv8a8viI.d.ts +85 -0
- package/dist/document/chapter/index.d.ts +26 -0
- package/dist/document/chapter/index.js +23 -0
- package/dist/document/chapter/index.js.map +1 -0
- package/dist/document/chapter/path.d.ts +14 -0
- package/dist/document/chapter/path.js +133 -0
- package/dist/document/chapter/path.js.map +1 -0
- package/dist/document/chapter/query.d.ts +33 -0
- package/dist/document/chapter/query.js +83 -0
- package/dist/document/chapter/query.js.map +1 -0
- package/dist/document/chapter/stage.d.ts +28 -0
- package/dist/document/chapter/stage.js +13 -0
- package/dist/document/chapter/stage.js.map +1 -0
- package/dist/document/chapter/toc.d.ts +33 -0
- package/dist/document/chapter/toc.js +213 -0
- package/dist/document/chapter/toc.js.map +1 -0
- package/dist/document/chapter/tree.d.ts +20 -0
- package/dist/document/chapter/tree.js +48 -0
- package/dist/document/chapter/tree.js.map +1 -0
- package/dist/document/chapter/types.d.ts +31 -0
- package/dist/document/chapter/types.js +10 -0
- package/dist/document/chapter/types.js.map +1 -0
- package/dist/document/directory/context.d.ts +25 -0
- package/dist/document/directory/context.js +54 -0
- package/dist/document/directory/context.js.map +1 -0
- package/dist/document/directory/core.d.ts +25 -0
- package/dist/document/directory/core.js +382 -0
- package/dist/document/directory/core.js.map +1 -0
- package/dist/document/directory/file-store.d.ts +27 -0
- package/dist/document/directory/file-store.js +48 -0
- package/dist/document/directory/file-store.js.map +1 -0
- package/dist/document/directory/files.d.ts +53 -0
- package/dist/document/directory/files.js +71 -0
- package/dist/document/directory/files.js.map +1 -0
- package/dist/document/directory/index.d.ts +26 -0
- package/dist/document/directory/index.js +4 -0
- package/dist/document/directory/index.js.map +1 -0
- package/dist/document/directory/search-index.d.ts +32 -0
- package/dist/document/directory/search-index.js +154 -0
- package/dist/document/directory/search-index.js.map +1 -0
- package/dist/document/directory/serial-cleanup.d.ts +47 -0
- package/dist/document/directory/serial-cleanup.js +178 -0
- package/dist/document/directory/serial-cleanup.js.map +1 -0
- package/dist/document/directory/toc.d.ts +6 -0
- package/dist/document/directory/toc.js +14 -0
- package/dist/document/directory/toc.js.map +1 -0
- package/dist/document/directory/types.d.ts +105 -0
- package/dist/document/fragment-backed.d.ts +27 -0
- package/dist/document/fragment-backed.js +26 -0
- package/dist/document/fragment-backed.js.map +1 -0
- package/dist/document/fragments/core.d.ts +18 -0
- package/dist/document/fragments/core.js +68 -0
- package/dist/document/fragments/core.js.map +1 -0
- package/dist/document/fragments/draft.d.ts +16 -0
- package/dist/document/fragments/draft.js +57 -0
- package/dist/document/fragments/draft.js.map +1 -0
- package/dist/document/fragments/file-access.d.ts +7 -0
- package/dist/document/fragments/file-access.js +28 -0
- package/dist/document/fragments/file-access.js.map +1 -0
- package/dist/document/fragments/file.d.ts +7 -0
- package/dist/document/fragments/file.js +55 -0
- package/dist/document/fragments/file.js.map +1 -0
- package/dist/document/fragments/index.d.ts +5 -0
- package/dist/document/fragments/index.js +5 -0
- package/dist/document/fragments/index.js.map +1 -0
- package/dist/document/fragments/sentence.d.ts +5 -0
- package/dist/document/fragments/sentence.js +14 -0
- package/dist/document/fragments/sentence.js.map +1 -0
- package/dist/document/fragments/serial.d.ts +16 -0
- package/dist/document/fragments/serial.js +187 -0
- package/dist/document/fragments/serial.js.map +1 -0
- package/dist/document/fragments/types.d.ts +37 -0
- package/dist/document/fragments/types.js +9 -0
- package/dist/document/fragments/types.js.map +1 -0
- package/dist/document/home-schema-upgrade.d.ts +5 -0
- package/dist/document/home-schema-upgrade.js +529 -0
- package/dist/document/home-schema-upgrade.js.map +1 -0
- package/dist/document/index.d.ts +27 -8
- package/dist/document/index.js +10 -4
- package/dist/document/index.js.map +1 -1
- package/dist/document/schema.d.ts +3 -2
- package/dist/document/schema.js +24 -11
- package/dist/document/schema.js.map +1 -1
- package/dist/document/shared-state-database.js +27 -3
- package/dist/document/shared-state-database.js.map +1 -1
- package/dist/document/stores/chunk.d.ts +21 -0
- package/dist/document/stores/chunk.js +299 -0
- package/dist/document/stores/chunk.js.map +1 -0
- package/dist/document/stores/fragment-group.d.ts +16 -0
- package/dist/document/stores/fragment-group.js +77 -0
- package/dist/document/stores/fragment-group.js.map +1 -0
- package/dist/document/stores/graph-build-parameter.d.ts +17 -0
- package/dist/document/stores/graph-build-parameter.js +62 -0
- package/dist/document/stores/graph-build-parameter.js.map +1 -0
- package/dist/document/stores/helpers.d.ts +22 -0
- package/dist/document/stores/helpers.js +115 -0
- package/dist/document/stores/helpers.js.map +1 -0
- package/dist/document/stores/index.d.ts +15 -0
- package/dist/document/stores/index.js +23 -0
- package/dist/document/stores/index.js.map +1 -0
- package/dist/document/stores/mention-link.d.ts +32 -0
- package/dist/document/stores/mention-link.js +287 -0
- package/dist/document/stores/mention-link.js.map +1 -0
- package/dist/document/stores/mention.d.ts +31 -0
- package/dist/document/stores/mention.js +238 -0
- package/dist/document/stores/mention.js.map +1 -0
- package/dist/document/stores/object-metadata.d.ts +19 -0
- package/dist/document/stores/object-metadata.js +148 -0
- package/dist/document/stores/object-metadata.js.map +1 -0
- package/dist/document/stores/reading-edge.d.ts +17 -0
- package/dist/document/stores/reading-edge.js +80 -0
- package/dist/document/stores/reading-edge.js.map +1 -0
- package/dist/document/stores/serial.d.ts +29 -0
- package/dist/document/stores/serial.js +296 -0
- package/dist/document/stores/serial.js.map +1 -0
- package/dist/document/stores/snake/chunk.d.ts +14 -0
- package/dist/document/stores/snake/chunk.js +48 -0
- package/dist/document/stores/snake/chunk.js.map +1 -0
- package/dist/document/stores/snake/core.d.ts +15 -0
- package/dist/document/stores/snake/core.js +112 -0
- package/dist/document/stores/snake/core.js.map +1 -0
- package/dist/document/stores/snake/edge.d.ts +16 -0
- package/dist/document/stores/snake/edge.js +86 -0
- package/dist/document/stores/snake/edge.js.map +1 -0
- package/dist/document/stores/snake/index.d.ts +7 -0
- package/dist/document/stores/snake/index.js +4 -0
- package/dist/document/stores/snake/index.js.map +1 -0
- package/dist/document/stores/types.d.ts +95 -0
- package/dist/document/text-streams/core.d.ts +17 -0
- package/dist/document/text-streams/core.js +45 -0
- package/dist/document/text-streams/core.js.map +1 -0
- package/dist/document/text-streams/draft.d.ts +20 -0
- package/dist/document/text-streams/draft.js +70 -0
- package/dist/document/text-streams/draft.js.map +1 -0
- package/dist/document/text-streams/file-access.d.ts +6 -0
- package/dist/document/text-streams/file-access.js +31 -0
- package/dist/document/text-streams/file-access.js.map +1 -0
- package/dist/document/text-streams/index.d.ts +7 -0
- package/dist/document/text-streams/index.js +5 -0
- package/dist/document/text-streams/index.js.map +1 -0
- package/dist/document/text-streams/sentence.d.ts +13 -0
- package/dist/document/text-streams/sentence.js +77 -0
- package/dist/document/text-streams/sentence.js.map +1 -0
- package/dist/document/text-streams/serial.d.ts +24 -0
- package/dist/document/text-streams/serial.js +324 -0
- package/dist/document/text-streams/serial.js.map +1 -0
- package/dist/document/text-streams/types.d.ts +55 -0
- package/dist/document/text-streams/types.js +10 -0
- package/dist/document/text-streams/types.js.map +1 -0
- package/dist/external/guaranteed/classifier.js.map +1 -0
- package/dist/external/guaranteed/errors.js.map +1 -0
- package/dist/external/guaranteed/index.js.map +1 -0
- package/dist/external/guaranteed/request.js.map +1 -0
- package/dist/external/guaranteed/response.js.map +1 -0
- package/dist/external/llm/cache.js +35 -0
- package/dist/external/llm/cache.js.map +1 -0
- package/dist/external/llm/client/core.d.ts +26 -0
- package/dist/external/llm/client/core.js +321 -0
- package/dist/external/llm/client/core.js.map +1 -0
- package/dist/external/llm/client/files.d.ts +6 -0
- package/dist/external/llm/client/files.js +29 -0
- package/dist/external/llm/client/files.js.map +1 -0
- package/dist/external/llm/client/generation.d.ts +16 -0
- package/dist/external/llm/client/generation.js +35 -0
- package/dist/external/llm/client/generation.js.map +1 -0
- package/dist/external/llm/client/index.d.ts +5 -0
- package/dist/external/llm/client/index.js +5 -0
- package/dist/external/llm/client/index.js.map +1 -0
- package/dist/external/llm/client/log.d.ts +22 -0
- package/dist/external/llm/client/log.js +106 -0
- package/dist/external/llm/client/log.js.map +1 -0
- package/dist/external/llm/client/model.d.ts +10 -0
- package/dist/external/llm/client/model.js +26 -0
- package/dist/external/llm/client/model.js.map +1 -0
- package/dist/external/llm/client/retry.d.ts +4 -0
- package/dist/external/llm/client/retry.js +91 -0
- package/dist/external/llm/client/retry.js.map +1 -0
- package/dist/external/llm/context.js +78 -0
- package/dist/external/llm/context.js.map +1 -0
- package/dist/external/llm/errors.js.map +1 -0
- package/dist/external/llm/index.d.ts +7 -0
- package/dist/external/llm/index.js +17 -0
- package/dist/external/llm/index.js.map +1 -0
- package/dist/external/llm/request-log.js +35 -0
- package/dist/external/llm/request-log.js.map +1 -0
- package/dist/external/llm/sampling.js.map +1 -0
- package/dist/external/wikimatch/enrichment.d.ts +15 -0
- package/dist/external/wikimatch/enrichment.js +61 -0
- package/dist/external/wikimatch/enrichment.js.map +1 -0
- package/dist/external/wikimatch/index.d.ts +19 -0
- package/dist/external/wikimatch/index.js +66 -0
- package/dist/external/wikimatch/index.js.map +1 -0
- package/dist/external/wikimatch/option-narrowing.d.ts +19 -0
- package/dist/external/wikimatch/option-narrowing.js.map +1 -0
- package/dist/external/wikimatch/options.d.ts +16 -0
- package/dist/external/wikimatch/options.js +154 -0
- package/dist/external/wikimatch/options.js.map +1 -0
- package/dist/external/wikimatch/policy-judge.d.ts +19 -0
- package/dist/external/wikimatch/policy-judge.js +431 -0
- package/dist/external/wikimatch/policy-judge.js.map +1 -0
- package/dist/external/wikimatch/range-suppression.js.map +1 -0
- package/dist/external/wikimatch/surface/index.d.ts +10 -0
- package/dist/external/wikimatch/surface/index.js +3 -0
- package/dist/external/wikimatch/surface/index.js.map +1 -0
- package/dist/external/wikimatch/surface/screening.d.ts +18 -0
- package/dist/external/wikimatch/surface/screening.js +168 -0
- package/dist/external/wikimatch/surface/screening.js.map +1 -0
- package/dist/external/wikimatch/surface/window.d.ts +8 -0
- package/dist/external/wikimatch/surface/window.js +44 -0
- package/dist/external/wikimatch/surface/window.js.map +1 -0
- package/dist/external/wikimatch/types.d.ts +153 -0
- package/dist/external/wikimatch/wikispine.d.ts +45 -0
- package/dist/external/wikimatch/wikispine.js.map +1 -0
- package/dist/external/wikimatch/window.d.ts +8 -0
- package/dist/external/wikimatch/window.js.map +1 -0
- package/dist/external/wikimatch/words.js.map +1 -0
- package/dist/external/wikipage/cache.d.ts +20 -0
- package/dist/external/wikipage/cache.js +442 -0
- package/dist/external/wikipage/cache.js.map +1 -0
- package/dist/external/wikipage/fetch-log.js +146 -0
- package/dist/external/wikipage/fetch-log.js.map +1 -0
- package/dist/external/wikipage/index.d.ts +15 -0
- package/dist/external/wikipage/index.js +17 -0
- package/dist/external/wikipage/index.js.map +1 -0
- package/dist/external/wikipage/normalizer.d.ts +16 -0
- package/dist/external/wikipage/normalizer.js +188 -0
- package/dist/external/wikipage/normalizer.js.map +1 -0
- package/dist/external/wikipage/rate-limiter.js.map +1 -0
- package/dist/external/wikipage/resolver.d.ts +22 -0
- package/dist/external/wikipage/resolver.js +359 -0
- package/dist/external/wikipage/resolver.js.map +1 -0
- package/dist/external/wikipage/types.d.ts +118 -0
- package/dist/external/wikipage/wikimedia-client/core.d.ts +13 -0
- package/dist/external/wikipage/wikimedia-client/core.js +207 -0
- package/dist/external/wikipage/wikimedia-client/core.js.map +1 -0
- package/dist/external/wikipage/wikimedia-client/html.d.ts +7 -0
- package/dist/external/wikipage/wikimedia-client/html.js +136 -0
- package/dist/external/wikipage/wikimedia-client/html.js.map +1 -0
- package/dist/external/wikipage/wikimedia-client/index.d.ts +5 -0
- package/dist/external/wikipage/wikimedia-client/index.js +4 -0
- package/dist/external/wikipage/wikimedia-client/index.js.map +1 -0
- package/dist/external/wikipage/wikimedia-client/json.d.ts +7 -0
- package/dist/external/wikipage/wikimedia-client/json.js +27 -0
- package/dist/external/wikipage/wikimedia-client/json.js.map +1 -0
- package/dist/external/wikipage/wikimedia-client/request.d.ts +12 -0
- package/dist/external/wikipage/wikimedia-client/request.js +51 -0
- package/dist/external/wikipage/wikimedia-client/request.js.map +1 -0
- package/dist/external/wikipage/wikimedia-client/wiki.d.ts +54 -0
- package/dist/external/wikipage/wikimedia-client/wiki.js +28 -0
- package/dist/external/wikipage/wikimedia-client/wiki.js.map +1 -0
- package/dist/gc.cjs +8188 -8373
- package/dist/gc.cjs.map +1 -1
- package/dist/gc.d.cts +23 -3
- package/dist/gc.d.ts +2 -2
- package/dist/gc.js +1 -1
- package/dist/gc.js.map +1 -1
- package/dist/graph/evidence-selection/anchor/index.d.ts +4 -0
- package/dist/graph/evidence-selection/anchor/index.js +3 -0
- package/dist/graph/evidence-selection/anchor/index.js.map +1 -0
- package/dist/graph/evidence-selection/anchor/resolver/index.d.ts +38 -0
- package/dist/graph/evidence-selection/anchor/resolver/index.js +418 -0
- package/dist/graph/evidence-selection/anchor/resolver/index.js.map +1 -0
- package/dist/graph/evidence-selection/anchor/resolver/matcher.d.ts +8 -0
- package/dist/graph/evidence-selection/anchor/resolver/matcher.js +178 -0
- package/dist/graph/evidence-selection/anchor/resolver/matcher.js.map +1 -0
- package/dist/graph/evidence-selection/anchor/resolver/parser.d.ts +7 -0
- package/dist/graph/evidence-selection/anchor/resolver/parser.js +91 -0
- package/dist/graph/evidence-selection/anchor/resolver/parser.js.map +1 -0
- package/dist/graph/evidence-selection/anchor/resolver/scoring.d.ts +20 -0
- package/dist/graph/evidence-selection/anchor/resolver/scoring.js +119 -0
- package/dist/graph/evidence-selection/anchor/resolver/scoring.js.map +1 -0
- package/dist/graph/evidence-selection/anchor/resolver/types.d.ts +15 -0
- package/dist/graph/evidence-selection/anchor/resolver/types.js +17 -0
- package/dist/graph/evidence-selection/anchor/resolver/types.js.map +1 -0
- package/dist/graph/evidence-selection/anchor/types.d.ts +27 -0
- package/dist/graph/evidence-selection/index.d.ts +9 -0
- package/dist/graph/evidence-selection/index.js +32 -0
- package/dist/graph/evidence-selection/index.js.map +1 -0
- package/dist/graph/evidence-selection/prompt.js.map +1 -0
- package/dist/graph/evidence-selection/quote-score.js.map +1 -0
- package/dist/graph/evidence-selection/resolver.js +303 -0
- package/dist/graph/evidence-selection/resolver.js.map +1 -0
- package/dist/graph/evidence-selection/text.js.map +1 -0
- package/dist/graph/knowledge-build/artifact-io.d.ts +12 -0
- package/dist/graph/knowledge-build/artifact-io.js +151 -0
- package/dist/graph/knowledge-build/artifact-io.js.map +1 -0
- package/dist/graph/knowledge-build/artifact.d.ts +17 -0
- package/dist/graph/knowledge-build/artifact.js +66 -0
- package/dist/graph/knowledge-build/artifact.js.map +1 -0
- package/dist/graph/knowledge-build/candidates.d.ts +24 -0
- package/dist/graph/knowledge-build/candidates.js +60 -0
- package/dist/graph/knowledge-build/candidates.js.map +1 -0
- package/dist/graph/knowledge-build/commit.d.ts +39 -0
- package/dist/graph/knowledge-build/commit.js +52 -0
- package/dist/graph/knowledge-build/commit.js.map +1 -0
- package/dist/graph/knowledge-build/constants.d.ts +6 -0
- package/dist/graph/knowledge-build/constants.js +11 -0
- package/dist/graph/knowledge-build/constants.js.map +1 -0
- package/dist/graph/knowledge-build/fragments.d.ts +33 -0
- package/dist/graph/knowledge-build/fragments.js +36 -0
- package/dist/graph/knowledge-build/fragments.js.map +1 -0
- package/dist/graph/knowledge-build/generate.d.ts +39 -0
- package/dist/graph/knowledge-build/generate.js +128 -0
- package/dist/graph/knowledge-build/generate.js.map +1 -0
- package/dist/graph/knowledge-build/grounding-runner.d.ts +23 -0
- package/dist/graph/knowledge-build/grounding-runner.js +90 -0
- package/dist/graph/knowledge-build/grounding-runner.js.map +1 -0
- package/dist/graph/knowledge-build/grounding.d.ts +19 -0
- package/dist/graph/knowledge-build/grounding.js +158 -0
- package/dist/graph/knowledge-build/grounding.js.map +1 -0
- package/dist/graph/knowledge-build/index.d.ts +40 -0
- package/dist/graph/knowledge-build/index.js +8 -0
- package/dist/graph/knowledge-build/index.js.map +1 -0
- package/dist/graph/knowledge-build/mentions.d.ts +25 -0
- package/dist/graph/knowledge-build/mentions.js +66 -0
- package/dist/graph/knowledge-build/mentions.js.map +1 -0
- package/dist/graph/knowledge-build/parameter.d.ts +19 -0
- package/dist/graph/knowledge-build/parameter.js +14 -0
- package/dist/graph/knowledge-build/parameter.js.map +1 -0
- package/dist/graph/knowledge-build/progress.d.ts +8 -0
- package/dist/graph/knowledge-build/progress.js +45 -0
- package/dist/graph/knowledge-build/progress.js.map +1 -0
- package/dist/graph/knowledge-build/relations.d.ts +22 -0
- package/dist/graph/knowledge-build/relations.js +118 -0
- package/dist/graph/knowledge-build/relations.js.map +1 -0
- package/dist/graph/knowledge-build/request.d.ts +8 -0
- package/dist/graph/knowledge-build/request.js +19 -0
- package/dist/graph/knowledge-build/request.js.map +1 -0
- package/dist/graph/knowledge-build/snapshot.d.ts +38 -0
- package/dist/graph/knowledge-build/snapshot.js +18 -0
- package/dist/graph/knowledge-build/snapshot.js.map +1 -0
- package/dist/graph/knowledge-build/types.d.ts +46 -0
- package/dist/graph/reading-build/artifact.d.ts +42 -0
- package/dist/graph/reading-build/artifact.js +162 -0
- package/dist/graph/reading-build/artifact.js.map +1 -0
- package/dist/graph/reading-build/copy.d.ts +28 -0
- package/dist/graph/reading-build/copy.js +65 -0
- package/dist/graph/reading-build/copy.js.map +1 -0
- package/dist/graph/reading-build/index.d.ts +39 -0
- package/dist/graph/reading-build/index.js +4 -0
- package/dist/graph/reading-build/index.js.map +1 -0
- package/dist/graph/reading-build/input.d.ts +32 -0
- package/dist/graph/reading-build/input.js +19 -0
- package/dist/graph/reading-build/input.js.map +1 -0
- package/dist/graph/reading-build/options.d.ts +47 -0
- package/dist/graph/reading-build/options.js +20 -0
- package/dist/graph/reading-build/options.js.map +1 -0
- package/dist/graph/reading-build/source-fragments.d.ts +15 -0
- package/dist/graph/reading-build/source-fragments.js +36 -0
- package/dist/graph/reading-build/source-fragments.js.map +1 -0
- package/dist/graph/reading-build/types.d.ts +57 -0
- package/dist/graph/reading.d.ts +73 -0
- package/dist/graph/reading.js +203 -0
- package/dist/graph/reading.js.map +1 -0
- package/dist/graph/topology/core.d.ts +42 -0
- package/dist/graph/topology/core.js +348 -0
- package/dist/graph/topology/core.js.map +1 -0
- package/dist/graph/topology/grouping.d.ts +13 -0
- package/dist/graph/topology/grouping.js.map +1 -0
- package/dist/graph/topology/index.d.ts +34 -0
- package/dist/graph/topology/index.js +5 -0
- package/dist/graph/topology/index.js.map +1 -0
- package/dist/graph/topology/resource-segmentation.d.ts +11 -0
- package/dist/graph/topology/resource-segmentation.js.map +1 -0
- package/dist/graph/topology/segment-incision.d.ts +16 -0
- package/dist/graph/topology/segment-incision.js.map +1 -0
- package/dist/graph/topology/snake/compare.d.ts +8 -0
- package/dist/graph/topology/snake/compare.js +29 -0
- package/dist/graph/topology/snake/compare.js.map +1 -0
- package/dist/graph/topology/snake/components.d.ts +12 -0
- package/dist/graph/topology/snake/components.js +80 -0
- package/dist/graph/topology/snake/components.js.map +1 -0
- package/dist/graph/topology/snake/constants.d.ts +7 -0
- package/dist/graph/topology/snake/constants.js +13 -0
- package/dist/graph/topology/snake/constants.js.map +1 -0
- package/dist/graph/topology/snake/detect.d.ts +9 -0
- package/dist/graph/topology/snake/detect.js +63 -0
- package/dist/graph/topology/snake/detect.js.map +1 -0
- package/dist/graph/topology/snake/detector.d.ts +3 -0
- package/dist/graph/topology/snake/detector.js +7 -0
- package/dist/graph/topology/snake/detector.js.map +1 -0
- package/dist/graph/topology/snake/fingerprints.d.ts +7 -0
- package/dist/graph/topology/snake/fingerprints.js +86 -0
- package/dist/graph/topology/snake/fingerprints.js.map +1 -0
- package/dist/graph/topology/snake/graph-builder.d.ts +14 -0
- package/dist/graph/topology/snake/graph-builder.js +76 -0
- package/dist/graph/topology/snake/graph-builder.js.map +1 -0
- package/dist/graph/topology/snake/graph.d.ts +7 -0
- package/dist/graph/topology/snake/graph.js +105 -0
- package/dist/graph/topology/snake/graph.js.map +1 -0
- package/dist/graph/topology/snake/index.d.ts +4 -0
- package/dist/graph/topology/snake/index.js +3 -0
- package/dist/graph/topology/snake/index.js.map +1 -0
- package/dist/graph/topology/snake/merge.d.ts +6 -0
- package/dist/graph/topology/snake/merge.js +174 -0
- package/dist/graph/topology/snake/merge.js.map +1 -0
- package/dist/graph/topology/snake/records.d.ts +12 -0
- package/dist/graph/topology/snake/records.js +35 -0
- package/dist/graph/topology/snake/records.js.map +1 -0
- package/dist/graph/topology/snake/types.d.ts +23 -0
- package/dist/graph/topology/snake/types.js +1 -0
- package/dist/graph/topology/snake/weights.d.ts +3 -0
- package/dist/graph/topology/snake/weights.js +17 -0
- package/dist/graph/topology/snake/weights.js.map +1 -0
- package/dist/graph/topology/weights.d.ts +10 -0
- package/dist/graph/topology/weights.js +84 -0
- package/dist/graph/topology/weights.js.map +1 -0
- package/dist/graph/wikilink/index.d.ts +12 -0
- package/dist/graph/wikilink/index.js.map +1 -0
- package/dist/graph/wikilink/relation-discovery.d.ts +33 -0
- package/dist/graph/wikilink/relation-discovery.js +477 -0
- package/dist/graph/wikilink/relation-discovery.js.map +1 -0
- package/dist/graph/wikilink/types.d.ts +25 -0
- package/dist/graph/wikilink/types.js +1 -0
- package/dist/graph/wikilink/window.d.ts +9 -0
- package/dist/graph/wikilink/window.js.map +1 -0
- package/dist/index.cjs +37880 -29183
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1657 -1421
- package/dist/index.d.ts +127 -72
- package/dist/index.js +333 -27
- package/dist/index.js.map +1 -1
- package/dist/library/index.d.ts +38 -0
- package/dist/library/index.js +6 -0
- package/dist/library/index.js.map +1 -0
- package/dist/library/lock.d.ts +9 -0
- package/dist/library/lock.js +121 -0
- package/dist/library/lock.js.map +1 -0
- package/dist/library/membership.d.ts +51 -0
- package/dist/library/membership.js +799 -0
- package/dist/library/membership.js.map +1 -0
- package/dist/library/query-helpers.d.ts +45 -0
- package/dist/library/query-helpers.js +45 -0
- package/dist/library/query-helpers.js.map +1 -0
- package/dist/library/query.d.ts +45 -0
- package/dist/library/query.js +422 -0
- package/dist/library/query.js.map +1 -0
- package/dist/library/registry.d.ts +39 -0
- package/dist/library/registry.js +591 -0
- package/dist/library/registry.js.map +1 -0
- package/dist/library/search-index.d.ts +87 -0
- package/dist/library/search-index.js +473 -0
- package/dist/library/search-index.js.map +1 -0
- package/dist/library/search-query.d.ts +32 -0
- package/dist/library/search-query.js +418 -0
- package/dist/library/search-query.js.map +1 -0
- package/dist/library/segments.d.ts +3 -0
- package/dist/library/segments.js +16 -0
- package/dist/library/segments.js.map +1 -0
- package/dist/maintenance/upgrade.d.ts +54 -0
- package/dist/maintenance/upgrade.js +199 -0
- package/dist/maintenance/upgrade.js.map +1 -0
- package/dist/object-stream.d.ts +170 -0
- package/dist/object-stream.js +732 -0
- package/dist/object-stream.js.map +1 -0
- package/dist/retrieval/query/archive-view/backlinks.d.ts +38 -0
- package/dist/retrieval/query/archive-view/backlinks.js +200 -0
- package/dist/retrieval/query/archive-view/backlinks.js.map +1 -0
- package/dist/retrieval/query/archive-view/collection.d.ts +33 -0
- package/dist/retrieval/query/archive-view/collection.js +327 -0
- package/dist/retrieval/query/archive-view/collection.js.map +1 -0
- package/dist/retrieval/query/archive-view/core.d.ts +44 -0
- package/dist/retrieval/query/archive-view/core.js +165 -0
- package/dist/retrieval/query/archive-view/core.js.map +1 -0
- package/dist/retrieval/query/archive-view/evidence-hydration.d.ts +41 -0
- package/dist/retrieval/query/archive-view/evidence-hydration.js +311 -0
- package/dist/retrieval/query/archive-view/evidence-hydration.js.map +1 -0
- package/dist/retrieval/query/archive-view/evidence.d.ts +31 -0
- package/dist/retrieval/query/archive-view/evidence.js +166 -0
- package/dist/retrieval/query/archive-view/evidence.js.map +1 -0
- package/dist/retrieval/query/archive-view/find.d.ts +41 -0
- package/dist/retrieval/query/archive-view/find.js +289 -0
- package/dist/retrieval/query/archive-view/find.js.map +1 -0
- package/dist/retrieval/query/archive-view/helper/constants.d.ts +15 -0
- package/dist/retrieval/query/archive-view/helper/constants.js +20 -0
- package/dist/retrieval/query/archive-view/helper/constants.js.map +1 -0
- package/dist/retrieval/query/archive-view/helper/index.d.ts +34 -0
- package/dist/retrieval/query/archive-view/helper/index.js +9 -0
- package/dist/retrieval/query/archive-view/helper/index.js.map +1 -0
- package/dist/retrieval/query/archive-view/helper/meta.d.ts +17 -0
- package/dist/retrieval/query/archive-view/helper/meta.js +57 -0
- package/dist/retrieval/query/archive-view/helper/meta.js.map +1 -0
- package/dist/retrieval/query/archive-view/helper/parse.d.ts +38 -0
- package/dist/retrieval/query/archive-view/helper/parse.js +71 -0
- package/dist/retrieval/query/archive-view/helper/parse.js.map +1 -0
- package/dist/retrieval/query/archive-view/helper/position.d.ts +39 -0
- package/dist/retrieval/query/archive-view/helper/position.js +75 -0
- package/dist/retrieval/query/archive-view/helper/position.js.map +1 -0
- package/dist/retrieval/query/archive-view/helper/results.d.ts +45 -0
- package/dist/retrieval/query/archive-view/helper/results.js +153 -0
- package/dist/retrieval/query/archive-view/helper/results.js.map +1 -0
- package/dist/retrieval/query/archive-view/helper/sort.d.ts +35 -0
- package/dist/retrieval/query/archive-view/helper/sort.js +88 -0
- package/dist/retrieval/query/archive-view/helper/sort.js.map +1 -0
- package/dist/retrieval/query/archive-view/helper/text.d.ts +46 -0
- package/dist/retrieval/query/archive-view/helper/text.js +91 -0
- package/dist/retrieval/query/archive-view/helper/text.js.map +1 -0
- package/dist/retrieval/query/archive-view/helper/uri.d.ts +4 -0
- package/dist/retrieval/query/archive-view/helper/uri.js +12 -0
- package/dist/retrieval/query/archive-view/helper/uri.js.map +1 -0
- package/dist/retrieval/query/archive-view/helpers.d.ts +34 -0
- package/dist/retrieval/query/archive-view/helpers.js +2 -0
- package/dist/retrieval/query/archive-view/helpers.js.map +1 -0
- package/dist/retrieval/query/archive-view/index-state.d.ts +35 -0
- package/dist/retrieval/query/archive-view/index-state.js +191 -0
- package/dist/retrieval/query/archive-view/index-state.js.map +1 -0
- package/dist/retrieval/query/archive-view/index.d.ts +41 -0
- package/dist/retrieval/query/archive-view/index.js +51 -0
- package/dist/retrieval/query/archive-view/index.js.map +1 -0
- package/dist/retrieval/query/archive-view/knowledge.d.ts +45 -0
- package/dist/retrieval/query/archive-view/knowledge.js +99 -0
- package/dist/retrieval/query/archive-view/knowledge.js.map +1 -0
- package/dist/retrieval/query/archive-view/pack.d.ts +30 -0
- package/dist/retrieval/query/archive-view/pack.js +49 -0
- package/dist/retrieval/query/archive-view/pack.js.map +1 -0
- package/dist/retrieval/query/archive-view/pages.d.ts +41 -0
- package/dist/retrieval/query/archive-view/pages.js +341 -0
- package/dist/retrieval/query/archive-view/pages.js.map +1 -0
- package/dist/retrieval/query/archive-view/references.d.ts +88 -0
- package/dist/retrieval/query/archive-view/references.js +287 -0
- package/dist/retrieval/query/archive-view/references.js.map +1 -0
- package/dist/retrieval/query/archive-view/related/core.d.ts +37 -0
- package/dist/retrieval/query/archive-view/related/core.js +163 -0
- package/dist/retrieval/query/archive-view/related/core.js.map +1 -0
- package/dist/retrieval/query/archive-view/related/entity.d.ts +33 -0
- package/dist/retrieval/query/archive-view/related/entity.js +93 -0
- package/dist/retrieval/query/archive-view/related/entity.js.map +1 -0
- package/dist/retrieval/query/archive-view/related/index.d.ts +37 -0
- package/dist/retrieval/query/archive-view/related/index.js +7 -0
- package/dist/retrieval/query/archive-view/related/index.js.map +1 -0
- package/dist/retrieval/query/archive-view/related/pagination.d.ts +31 -0
- package/dist/retrieval/query/archive-view/related/pagination.js +90 -0
- package/dist/retrieval/query/archive-view/related/pagination.js.map +1 -0
- package/dist/retrieval/query/archive-view/related/query.d.ts +31 -0
- package/dist/retrieval/query/archive-view/related/query.js +145 -0
- package/dist/retrieval/query/archive-view/related/query.js.map +1 -0
- package/dist/retrieval/query/archive-view/related/sort.d.ts +32 -0
- package/dist/retrieval/query/archive-view/related/sort.js +85 -0
- package/dist/retrieval/query/archive-view/related/sort.js.map +1 -0
- package/dist/retrieval/query/archive-view/related/wikipage.d.ts +37 -0
- package/dist/retrieval/query/archive-view/related/wikipage.js +43 -0
- package/dist/retrieval/query/archive-view/related/wikipage.js.map +1 -0
- package/dist/retrieval/query/archive-view/search/bucket-hydration.d.ts +31 -0
- package/dist/retrieval/query/archive-view/search/bucket-hydration.js +58 -0
- package/dist/retrieval/query/archive-view/search/bucket-hydration.js.map +1 -0
- package/dist/retrieval/query/archive-view/search/bucket-order.d.ts +36 -0
- package/dist/retrieval/query/archive-view/search/bucket-order.js +64 -0
- package/dist/retrieval/query/archive-view/search/bucket-order.js.map +1 -0
- package/dist/retrieval/query/archive-view/search/bucket.d.ts +30 -0
- package/dist/retrieval/query/archive-view/search/bucket.js +3 -0
- package/dist/retrieval/query/archive-view/search/bucket.js.map +1 -0
- package/dist/retrieval/query/archive-view/search/buckets.d.ts +42 -0
- package/dist/retrieval/query/archive-view/search/buckets.js +302 -0
- package/dist/retrieval/query/archive-view/search/buckets.js.map +1 -0
- package/dist/retrieval/query/archive-view/search/cache-input.d.ts +45 -0
- package/dist/retrieval/query/archive-view/search/cache-input.js +255 -0
- package/dist/retrieval/query/archive-view/search/cache-input.js.map +1 -0
- package/dist/retrieval/query/archive-view/search/core.d.ts +31 -0
- package/dist/retrieval/query/archive-view/search/core.js +388 -0
- package/dist/retrieval/query/archive-view/search/core.js.map +1 -0
- package/dist/retrieval/query/archive-view/search/hydration.d.ts +51 -0
- package/dist/retrieval/query/archive-view/search/hydration.js +234 -0
- package/dist/retrieval/query/archive-view/search/hydration.js.map +1 -0
- package/dist/retrieval/query/archive-view/search/index.d.ts +35 -0
- package/dist/retrieval/query/archive-view/search/index.js +7 -0
- package/dist/retrieval/query/archive-view/search/index.js.map +1 -0
- package/dist/retrieval/query/archive-view/source-evidence/core.d.ts +60 -0
- package/dist/retrieval/query/archive-view/source-evidence/core.js +330 -0
- package/dist/retrieval/query/archive-view/source-evidence/core.js.map +1 -0
- package/dist/retrieval/query/archive-view/source-evidence/index.d.ts +30 -0
- package/dist/retrieval/query/archive-view/source-evidence/index.js +5 -0
- package/dist/retrieval/query/archive-view/source-evidence/index.js.map +1 -0
- package/dist/retrieval/query/archive-view/source-evidence/pagination.d.ts +46 -0
- package/dist/retrieval/query/archive-view/source-evidence/pagination.js +82 -0
- package/dist/retrieval/query/archive-view/source-evidence/pagination.js.map +1 -0
- package/dist/retrieval/query/archive-view/source-evidence/ranges.d.ts +47 -0
- package/dist/retrieval/query/archive-view/source-evidence/ranges.js +209 -0
- package/dist/retrieval/query/archive-view/source-evidence/ranges.js.map +1 -0
- package/dist/retrieval/query/archive-view/source-evidence/read.d.ts +31 -0
- package/dist/retrieval/query/archive-view/source-evidence/read.js +49 -0
- package/dist/retrieval/query/archive-view/source-evidence/read.js.map +1 -0
- package/dist/retrieval/query/archive-view/source.d.ts +30 -0
- package/dist/retrieval/query/archive-view/source.js +2 -0
- package/dist/retrieval/query/archive-view/source.js.map +1 -0
- package/dist/retrieval/query/archive-view/text-streams.d.ts +44 -0
- package/dist/retrieval/query/archive-view/text-streams.js +160 -0
- package/dist/retrieval/query/archive-view/text-streams.js.map +1 -0
- package/dist/retrieval/query/archive-view/types.d.ts +363 -0
- package/dist/retrieval/query/archive-view/types.js +1 -0
- package/dist/retrieval/query/continuation-cursor/core.d.ts +6 -0
- package/dist/retrieval/query/continuation-cursor/core.js +82 -0
- package/dist/retrieval/query/continuation-cursor/core.js.map +1 -0
- package/dist/retrieval/query/continuation-cursor/index.d.ts +2 -0
- package/dist/retrieval/query/continuation-cursor/index.js +3 -0
- package/dist/retrieval/query/continuation-cursor/index.js.map +1 -0
- package/dist/retrieval/query/continuation-cursor/payload.d.ts +12 -0
- package/dist/retrieval/query/continuation-cursor/payload.js +285 -0
- package/dist/retrieval/query/continuation-cursor/payload.js.map +1 -0
- package/dist/retrieval/query/continuation-cursor/store.d.ts +10 -0
- package/dist/retrieval/query/continuation-cursor/store.js +65 -0
- package/dist/retrieval/query/continuation-cursor/store.js.map +1 -0
- package/dist/retrieval/query/continuation-cursor/types.d.ts +72 -0
- package/dist/retrieval/query/continuation-cursor/types.js +1 -0
- package/dist/retrieval/query/continuation-cursor/types.js.map +1 -0
- package/dist/retrieval/query/index.d.ts +47 -0
- package/dist/retrieval/query/index.js +63 -0
- package/dist/retrieval/query/index.js.map +1 -0
- package/dist/retrieval/query/lexical-search.js.map +1 -0
- package/dist/retrieval/query/search-cache/buckets.d.ts +32 -0
- package/dist/retrieval/query/search-cache/buckets.js +87 -0
- package/dist/retrieval/query/search-cache/buckets.js.map +1 -0
- package/dist/retrieval/query/search-cache/cursor.d.ts +42 -0
- package/dist/retrieval/query/search-cache/cursor.js +84 -0
- package/dist/retrieval/query/search-cache/cursor.js.map +1 -0
- package/dist/retrieval/query/search-cache/database.d.ts +7 -0
- package/dist/retrieval/query/search-cache/database.js +47 -0
- package/dist/retrieval/query/search-cache/database.js.map +1 -0
- package/dist/retrieval/query/search-cache/gc.d.ts +6 -0
- package/dist/retrieval/query/search-cache/gc.js +110 -0
- package/dist/retrieval/query/search-cache/gc.js.map +1 -0
- package/dist/retrieval/query/search-cache/hits.d.ts +42 -0
- package/dist/retrieval/query/search-cache/hits.js +446 -0
- package/dist/retrieval/query/search-cache/hits.js.map +1 -0
- package/dist/retrieval/query/search-cache/ids.d.ts +32 -0
- package/dist/retrieval/query/search-cache/ids.js +48 -0
- package/dist/retrieval/query/search-cache/ids.js.map +1 -0
- package/dist/retrieval/query/search-cache/index.d.ts +33 -0
- package/dist/retrieval/query/search-cache/index.js +46 -0
- package/dist/retrieval/query/search-cache/index.js.map +1 -0
- package/dist/retrieval/query/search-cache/parsing.d.ts +36 -0
- package/dist/retrieval/query/search-cache/parsing.js +38 -0
- package/dist/retrieval/query/search-cache/parsing.js.map +1 -0
- package/dist/retrieval/query/search-cache/schema.d.ts +7 -0
- package/dist/retrieval/query/search-cache/schema.js +117 -0
- package/dist/retrieval/query/search-cache/schema.js.map +1 -0
- package/dist/retrieval/query/search-cache/scores.d.ts +4 -0
- package/dist/retrieval/query/search-cache/scores.js +12 -0
- package/dist/retrieval/query/search-cache/scores.js.map +1 -0
- package/dist/retrieval/query/search-cache/sessions.d.ts +45 -0
- package/dist/retrieval/query/search-cache/sessions.js +330 -0
- package/dist/retrieval/query/search-cache/sessions.js.map +1 -0
- package/dist/retrieval/query/search-cache/store.d.ts +23 -0
- package/dist/retrieval/query/search-cache/store.js +111 -0
- package/dist/retrieval/query/search-cache/store.js.map +1 -0
- package/dist/retrieval/query/search-cache/types.d.ts +164 -0
- package/dist/retrieval/query/search-cache/types.js +9 -0
- package/dist/retrieval/query/search-cache/types.js.map +1 -0
- package/dist/retrieval/query/view.d.ts +41 -0
- package/dist/retrieval/query/view.js +2 -0
- package/dist/retrieval/query/view.js.map +1 -0
- package/dist/retrieval/search-index/index.d.ts +33 -0
- package/dist/retrieval/search-index/index.js +41 -0
- package/dist/retrieval/search-index/index.js.map +1 -0
- package/dist/retrieval/search-index/search/build.d.ts +39 -0
- package/dist/retrieval/search-index/search/build.js +212 -0
- package/dist/retrieval/search-index/search/build.js.map +1 -0
- package/dist/retrieval/search-index/search/core.d.ts +33 -0
- package/dist/retrieval/search-index/search/core.js +8 -0
- package/dist/retrieval/search-index/search/core.js.map +1 -0
- package/dist/retrieval/search-index/search/dirty.d.ts +30 -0
- package/dist/retrieval/search-index/search/dirty.js +28 -0
- package/dist/retrieval/search-index/search/dirty.js.map +1 -0
- package/dist/retrieval/search-index/search/errors.d.ts +3 -0
- package/dist/retrieval/search-index/search/errors.js +8 -0
- package/dist/retrieval/search-index/search/errors.js.map +1 -0
- package/dist/retrieval/search-index/search/fingerprint.d.ts +8 -0
- package/dist/retrieval/search-index/search/fingerprint.js +51 -0
- package/dist/retrieval/search-index/search/fingerprint.js.map +1 -0
- package/dist/retrieval/search-index/search/helpers.d.ts +44 -0
- package/dist/retrieval/search-index/search/helpers.js +109 -0
- package/dist/retrieval/search-index/search/helpers.js.map +1 -0
- package/dist/retrieval/search-index/search/index.d.ts +34 -0
- package/dist/retrieval/search-index/search/index.js +3 -0
- package/dist/retrieval/search-index/search/index.js.map +1 -0
- package/dist/retrieval/search-index/search/match.d.ts +34 -0
- package/dist/retrieval/search-index/search/match.js +82 -0
- package/dist/retrieval/search-index/search/match.js.map +1 -0
- package/dist/retrieval/search-index/search/query.d.ts +44 -0
- package/dist/retrieval/search-index/search/query.js +219 -0
- package/dist/retrieval/search-index/search/query.js.map +1 -0
- package/dist/retrieval/search-index/search/settings.d.ts +29 -0
- package/dist/retrieval/search-index/search/settings.js +35 -0
- package/dist/retrieval/search-index/search/settings.js.map +1 -0
- package/dist/retrieval/search-index/search/status.d.ts +31 -0
- package/dist/retrieval/search-index/search/status.js +70 -0
- package/dist/retrieval/search-index/search/status.js.map +1 -0
- package/dist/retrieval/search-index/search/tokenizer.js +225 -0
- package/dist/retrieval/search-index/search/tokenizer.js.map +1 -0
- package/dist/retrieval/search-index/search/types.d.ts +79 -0
- package/dist/retrieval/search-index/search/types.js +31 -0
- package/dist/retrieval/search-index/search/types.js.map +1 -0
- package/dist/retrieval/search-index/search/write.d.ts +10 -0
- package/dist/retrieval/search-index/search/write.js +70 -0
- package/dist/retrieval/search-index/search/write.js.map +1 -0
- package/dist/runtime/common/cli-command.js.map +1 -0
- package/dist/runtime/common/data-dir.js +49 -0
- package/dist/runtime/common/data-dir.js.map +1 -0
- package/dist/runtime/common/language.js.map +1 -0
- package/dist/runtime/common/llm-scope.js.map +1 -0
- package/dist/runtime/common/logging.js.map +1 -0
- package/dist/runtime/common/prompts.d.ts +6 -0
- package/dist/runtime/common/prompts.js +25 -0
- package/dist/runtime/common/prompts.js.map +1 -0
- package/dist/runtime/common/template.js.map +1 -0
- package/dist/runtime/common/tinyld-language.js.map +1 -0
- package/dist/runtime/common/wiki-graph/dir.d.ts +19 -0
- package/dist/runtime/common/wiki-graph/dir.js +68 -0
- package/dist/runtime/common/wiki-graph/dir.js.map +1 -0
- package/dist/runtime/common/wiki-graph/index.d.ts +3 -0
- package/dist/runtime/common/wiki-graph/index.js +4 -0
- package/dist/runtime/common/wiki-graph/index.js.map +1 -0
- package/dist/runtime/common/wiki-graph/temp.js +21 -0
- package/dist/runtime/common/wiki-graph/temp.js.map +1 -0
- package/dist/runtime/common/wiki-graph/uri.d.ts +37 -0
- package/dist/runtime/common/wiki-graph/uri.js +288 -0
- package/dist/runtime/common/wiki-graph/uri.js.map +1 -0
- package/dist/runtime/context/index.d.ts +1 -0
- package/dist/runtime/context/index.js +13 -0
- package/dist/runtime/context/index.js.map +1 -0
- package/dist/runtime/context/task.js +111 -0
- package/dist/runtime/context/task.js.map +1 -0
- package/dist/runtime/gc/files.js +141 -0
- package/dist/runtime/gc/files.js.map +1 -0
- package/dist/runtime/gc/index.js.map +1 -0
- package/dist/runtime/gc/lock.js +137 -0
- package/dist/runtime/gc/lock.js.map +1 -0
- package/dist/runtime/gc/runner.js +134 -0
- package/dist/runtime/gc/runner.js.map +1 -0
- package/dist/runtime/gc/temp.js +57 -0
- package/dist/runtime/gc/temp.js.map +1 -0
- package/dist/runtime/gc/types.js +1 -0
- package/dist/runtime/gc/types.js.map +1 -0
- package/dist/runtime/jobs/conflicts.d.ts +16 -0
- package/dist/runtime/jobs/conflicts.js +61 -0
- package/dist/runtime/jobs/conflicts.js.map +1 -0
- package/dist/runtime/jobs/database.d.ts +12 -0
- package/dist/runtime/jobs/database.js +74 -0
- package/dist/runtime/jobs/database.js.map +1 -0
- package/dist/runtime/jobs/events.d.ts +6 -0
- package/dist/runtime/jobs/events.js +29 -0
- package/dist/runtime/jobs/events.js.map +1 -0
- package/dist/runtime/jobs/gc.d.ts +10 -0
- package/dist/runtime/jobs/gc.js +81 -0
- package/dist/runtime/jobs/gc.js.map +1 -0
- package/dist/runtime/jobs/helpers.d.ts +6 -0
- package/dist/runtime/jobs/helpers.js +35 -0
- package/dist/runtime/jobs/helpers.js.map +1 -0
- package/dist/runtime/jobs/index.d.ts +7 -0
- package/dist/runtime/jobs/index.js +42 -0
- package/dist/runtime/jobs/index.js.map +1 -0
- package/dist/runtime/jobs/jobs.d.ts +24 -0
- package/dist/runtime/jobs/jobs.js +416 -0
- package/dist/runtime/jobs/jobs.js.map +1 -0
- package/dist/runtime/jobs/paths.d.ts +9 -0
- package/dist/runtime/jobs/paths.js +48 -0
- package/dist/runtime/jobs/paths.js.map +1 -0
- package/dist/runtime/jobs/progress.d.ts +37 -0
- package/dist/runtime/jobs/progress.js +246 -0
- package/dist/runtime/jobs/progress.js.map +1 -0
- package/dist/runtime/jobs/recovery.d.ts +6 -0
- package/dist/runtime/jobs/recovery.js +40 -0
- package/dist/runtime/jobs/recovery.js.map +1 -0
- package/dist/runtime/jobs/row.d.ts +10 -0
- package/dist/runtime/jobs/row.js +92 -0
- package/dist/runtime/jobs/row.js.map +1 -0
- package/dist/runtime/jobs/schema.d.ts +3 -0
- package/dist/runtime/jobs/schema.js +55 -0
- package/dist/runtime/jobs/schema.js.map +1 -0
- package/dist/runtime/jobs/state.d.ts +13 -0
- package/dist/runtime/jobs/state.js +156 -0
- package/dist/runtime/jobs/state.js.map +1 -0
- package/dist/runtime/jobs/types.d.ts +141 -0
- package/dist/runtime/jobs/types.js +13 -0
- package/dist/runtime/jobs/types.js.map +1 -0
- package/dist/runtime/jobs/worker.d.ts +5 -0
- package/dist/runtime/jobs/worker.js +241 -0
- package/dist/runtime/jobs/worker.js.map +1 -0
- package/dist/runtime/progress/index.js.map +1 -0
- package/dist/runtime/progress/reporter.js.map +1 -0
- package/dist/runtime/progress/tracker.js.map +1 -0
- package/dist/runtime/progress/types.js +1 -0
- package/dist/runtime/progress/types.js.map +1 -0
- package/dist/serial.d.ts +36 -85
- package/dist/serial.js +1 -475
- package/dist/serial.js.map +1 -1
- package/dist/state-lock.d.ts +21 -0
- package/dist/state-lock.js +233 -0
- package/dist/state-lock.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/archive.d.ts +11 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/archive.js +94 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/archive.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/database.d.ts +7 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/database.js +28 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/database.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/extract.d.ts +3 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/extract.js +68 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/extract.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/index.js +47 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/index.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/schema.d.ts +3 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/schema.js +41 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/schema.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/core.d.ts +3 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/core.js +77 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/core.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/fragments.d.ts +10 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/fragments.js +123 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/fragments.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/index.d.ts +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/index.js +2 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/index.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/references.d.ts +5 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/references.js +305 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/references.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/source-text.d.ts +11 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/source-text.js +62 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/source-text.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/summaries.d.ts +3 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/summaries.js +45 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/summaries.js.map +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/types.d.ts +19 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/types.js +1 -0
- package/dist/storage/migration/legacy-sdpub/upgrade/text-storage/types.js.map +1 -0
- package/dist/storage/schema-upgrade/index.d.ts +8 -0
- package/dist/storage/schema-upgrade/index.js +308 -0
- package/dist/storage/schema-upgrade/index.js.map +1 -0
- package/dist/storage/wikg/archive/constants.d.ts +6 -0
- package/dist/storage/wikg/archive/constants.js +19 -0
- package/dist/storage/wikg/archive/constants.js.map +1 -0
- package/dist/storage/wikg/archive/document-files.d.ts +11 -0
- package/dist/storage/wikg/archive/document-files.js +70 -0
- package/dist/storage/wikg/archive/document-files.js.map +1 -0
- package/dist/storage/wikg/archive/extract.d.ts +3 -0
- package/dist/storage/wikg/archive/extract.js +37 -0
- package/dist/storage/wikg/archive/extract.js.map +1 -0
- package/dist/storage/wikg/archive/index.d.ts +6 -0
- package/dist/storage/wikg/archive/index.js +25 -0
- package/dist/storage/wikg/archive/index.js.map +1 -0
- package/dist/storage/wikg/archive/manifest.d.ts +11 -0
- package/dist/storage/wikg/archive/manifest.js +60 -0
- package/dist/storage/wikg/archive/manifest.js.map +1 -0
- package/dist/storage/wikg/archive/paths.d.ts +9 -0
- package/dist/storage/wikg/archive/paths.js +46 -0
- package/dist/storage/wikg/archive/paths.js.map +1 -0
- package/dist/storage/wikg/archive/reader.d.ts +17 -0
- package/dist/storage/wikg/archive/reader.js +101 -0
- package/dist/storage/wikg/archive/reader.js.map +1 -0
- package/dist/storage/wikg/archive/types.d.ts +10 -0
- package/dist/storage/wikg/archive/types.js +1 -0
- package/dist/storage/wikg/archive/types.js.map +1 -0
- package/dist/storage/wikg/archive/write.d.ts +8 -0
- package/dist/storage/wikg/archive/write.js +155 -0
- package/dist/storage/wikg/archive/write.js.map +1 -0
- package/dist/storage/wikg/archive/zip.d.ts +13 -0
- package/dist/storage/wikg/archive/zip.js +122 -0
- package/dist/storage/wikg/archive/zip.js.map +1 -0
- package/dist/storage/wikg/archive-uri.d.ts +1 -0
- package/dist/storage/wikg/archive-uri.js +39 -0
- package/dist/storage/wikg/archive-uri.js.map +1 -0
- package/dist/storage/wikg/coordinator.d.ts +29 -0
- package/dist/storage/wikg/coordinator.js +2 -0
- package/dist/storage/wikg/coordinator.js.map +1 -0
- package/dist/storage/wikg/index.d.ts +41 -0
- package/dist/storage/wikg/index.js +68 -0
- package/dist/storage/wikg/index.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/activity.d.ts +4 -0
- package/dist/storage/wikg/wikg-coordinator/activity.js +48 -0
- package/dist/storage/wikg/wikg-coordinator/activity.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/archive-key.d.ts +7 -0
- package/dist/storage/wikg/wikg-coordinator/archive-key.js +38 -0
- package/dist/storage/wikg/wikg-coordinator/archive-key.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/constants.d.ts +9 -0
- package/dist/storage/wikg/wikg-coordinator/constants.js +19 -0
- package/dist/storage/wikg/wikg-coordinator/constants.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/facade.d.ts +40 -0
- package/dist/storage/wikg/wikg-coordinator/facade.js +43 -0
- package/dist/storage/wikg/wikg-coordinator/facade.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/file-store.d.ts +52 -0
- package/dist/storage/wikg/wikg-coordinator/file-store.js +369 -0
- package/dist/storage/wikg/wikg-coordinator/file-store.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/flusher.d.ts +4 -0
- package/dist/storage/wikg/wikg-coordinator/flusher.js +115 -0
- package/dist/storage/wikg/wikg-coordinator/flusher.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/gc.d.ts +5 -0
- package/dist/storage/wikg/wikg-coordinator/gc.js +197 -0
- package/dist/storage/wikg/wikg-coordinator/gc.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/index.d.ts +29 -0
- package/dist/storage/wikg/wikg-coordinator/index.js +11 -0
- package/dist/storage/wikg/wikg-coordinator/index.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/locks.d.ts +19 -0
- package/dist/storage/wikg/wikg-coordinator/locks.js +194 -0
- package/dist/storage/wikg/wikg-coordinator/locks.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/overlays.d.ts +32 -0
- package/dist/storage/wikg/wikg-coordinator/overlays.js +141 -0
- package/dist/storage/wikg/wikg-coordinator/overlays.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/owners.d.ts +15 -0
- package/dist/storage/wikg/wikg-coordinator/owners.js +95 -0
- package/dist/storage/wikg/wikg-coordinator/owners.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/search-index-cache.d.ts +9 -0
- package/dist/storage/wikg/wikg-coordinator/search-index-cache.js +164 -0
- package/dist/storage/wikg/wikg-coordinator/search-index-cache.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/session.d.ts +43 -0
- package/dist/storage/wikg/wikg-coordinator/session.js +147 -0
- package/dist/storage/wikg/wikg-coordinator/session.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/state.d.ts +16 -0
- package/dist/storage/wikg/wikg-coordinator/state.js +258 -0
- package/dist/storage/wikg/wikg-coordinator/state.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/types.d.ts +28 -0
- package/dist/storage/wikg/wikg-coordinator/types.js +1 -0
- package/dist/storage/wikg/wikg-coordinator/types.js.map +1 -0
- package/dist/storage/wikg/wikg-coordinator/workspace.d.ts +8 -0
- package/dist/storage/wikg/wikg-coordinator/workspace.js +60 -0
- package/dist/storage/wikg/wikg-coordinator/workspace.js.map +1 -0
- package/dist/storage/wikg/wiki-graph-archive-file.d.ts +45 -0
- package/dist/storage/wikg/wiki-graph-archive-file.js +78 -0
- package/dist/storage/wikg/wiki-graph-archive-file.js.map +1 -0
- package/dist/text/editor/clue.d.ts +40 -0
- package/dist/text/editor/clue.js.map +1 -0
- package/dist/text/editor/compression.d.ts +52 -0
- package/dist/text/editor/compression.js +253 -0
- package/dist/text/editor/compression.js.map +1 -0
- package/dist/text/editor/compressor.d.ts +19 -0
- package/dist/text/editor/compressor.js +123 -0
- package/dist/text/editor/compressor.js.map +1 -0
- package/dist/text/editor/feedback.d.ts +16 -0
- package/dist/text/editor/feedback.js.map +1 -0
- package/dist/text/editor/index.d.ts +30 -0
- package/dist/text/editor/index.js +5 -0
- package/dist/text/editor/index.js.map +1 -0
- package/dist/text/editor/language-review.d.ts +14 -0
- package/dist/text/editor/language-review.js +35 -0
- package/dist/text/editor/language-review.js.map +1 -0
- package/dist/text/editor/log.d.ts +50 -0
- package/dist/text/editor/log.js +202 -0
- package/dist/text/editor/log.js.map +1 -0
- package/dist/text/editor/markup.d.ts +18 -0
- package/dist/text/editor/markup.js +294 -0
- package/dist/text/editor/markup.js.map +1 -0
- package/dist/text/editor/prompt-templates.js.map +1 -0
- package/dist/text/editor/response.js.map +1 -0
- package/dist/text/editor/review.d.ts +47 -0
- package/dist/text/editor/review.js +189 -0
- package/dist/text/editor/review.js.map +1 -0
- package/dist/text/editor/types.js +21 -0
- package/dist/text/editor/types.js.map +1 -0
- package/dist/text/output/epub/archive.js.map +1 -0
- package/dist/text/output/epub/book.d.ts +28 -0
- package/dist/text/output/epub/book.js.map +1 -0
- package/dist/text/output/epub/content.js.map +1 -0
- package/dist/text/output/epub/index.d.ts +33 -0
- package/dist/text/output/epub/index.js.map +1 -0
- package/dist/text/output/epub/model.js.map +1 -0
- package/dist/text/output/epub/navigation.js.map +1 -0
- package/dist/text/output/epub/package.js.map +1 -0
- package/dist/text/output/epub/shared.js.map +1 -0
- package/dist/text/output/epub/templates.js +26 -0
- package/dist/text/output/epub/templates.js.map +1 -0
- package/dist/text/output/index.d.ts +27 -0
- package/dist/text/output/index.js.map +1 -0
- package/dist/text/output/plain-text.d.ts +31 -0
- package/dist/text/output/plain-text.js.map +1 -0
- package/dist/text/reader/attention/core.d.ts +39 -0
- package/dist/text/reader/attention/core.js +123 -0
- package/dist/text/reader/attention/core.js.map +1 -0
- package/dist/text/reader/attention/index.d.ts +9 -0
- package/dist/text/reader/attention/index.js +5 -0
- package/dist/text/reader/attention/index.js.map +1 -0
- package/dist/text/reader/attention/wave-reflection.d.ts +21 -0
- package/dist/text/reader/attention/wave-reflection.js.map +1 -0
- package/dist/text/reader/attention/working-memory.d.ts +28 -0
- package/dist/text/reader/attention/working-memory.js.map +1 -0
- package/dist/text/reader/chunk-batch/extract.d.ts +13 -0
- package/dist/text/reader/chunk-batch/extract.js.map +1 -0
- package/dist/text/reader/chunk-batch/extractor.d.ts +17 -0
- package/dist/text/reader/chunk-batch/extractor.js +337 -0
- package/dist/text/reader/chunk-batch/extractor.js.map +1 -0
- package/dist/text/reader/chunk-batch/fragment-projection.d.ts +34 -0
- package/dist/text/reader/chunk-batch/fragment-projection.js.map +1 -0
- package/dist/text/reader/chunk-batch/index.d.ts +13 -0
- package/dist/text/reader/chunk-batch/index.js +13 -0
- package/dist/text/reader/chunk-batch/index.js.map +1 -0
- package/dist/text/reader/chunk-batch/language.d.ts +9 -0
- package/dist/text/reader/chunk-batch/language.js +23 -0
- package/dist/text/reader/chunk-batch/language.js.map +1 -0
- package/dist/text/reader/chunk-batch/parser/annotations.d.ts +19 -0
- package/dist/text/reader/chunk-batch/parser/annotations.js +34 -0
- package/dist/text/reader/chunk-batch/parser/annotations.js.map +1 -0
- package/dist/text/reader/chunk-batch/parser/core.d.ts +33 -0
- package/dist/text/reader/chunk-batch/parser/core.js +171 -0
- package/dist/text/reader/chunk-batch/parser/core.js.map +1 -0
- package/dist/text/reader/chunk-batch/parser/evidence.d.ts +21 -0
- package/dist/text/reader/chunk-batch/parser/evidence.js +40 -0
- package/dist/text/reader/chunk-batch/parser/evidence.js.map +1 -0
- package/dist/text/reader/chunk-batch/parser/helpers.d.ts +27 -0
- package/dist/text/reader/chunk-batch/parser/helpers.js +98 -0
- package/dist/text/reader/chunk-batch/parser/helpers.js.map +1 -0
- package/dist/text/reader/chunk-batch/parser/index.d.ts +13 -0
- package/dist/text/reader/chunk-batch/parser/index.js +3 -0
- package/dist/text/reader/chunk-batch/parser/index.js.map +1 -0
- package/dist/text/reader/chunk-batch/parser/links.d.ts +17 -0
- package/dist/text/reader/chunk-batch/parser/links.js +44 -0
- package/dist/text/reader/chunk-batch/parser/links.js.map +1 -0
- package/dist/text/reader/chunk-batch/parser/resolver.d.ts +28 -0
- package/dist/text/reader/chunk-batch/parser/resolver.js +267 -0
- package/dist/text/reader/chunk-batch/parser/resolver.js.map +1 -0
- package/dist/text/reader/chunk-batch/parser/schema.d.ts +136 -0
- package/dist/text/reader/chunk-batch/parser/schema.js +71 -0
- package/dist/text/reader/chunk-batch/parser/schema.js.map +1 -0
- package/dist/text/reader/chunk-batch/prompt-templates.js.map +1 -0
- package/dist/text/reader/chunk-batch/types.d.ts +85 -0
- package/dist/text/reader/chunk-batch/types.js +1 -0
- package/dist/text/reader/chunk-batch/types.js.map +1 -0
- package/dist/text/reader/core.d.ts +37 -0
- package/dist/text/reader/core.js +82 -0
- package/dist/text/reader/core.js.map +1 -0
- package/dist/text/reader/index.d.ts +13 -0
- package/dist/text/reader/index.js +7 -0
- package/dist/text/reader/index.js.map +1 -0
- package/dist/text/reader/segment/core.js +9 -0
- package/dist/text/reader/segment/core.js.map +1 -0
- package/dist/text/reader/segment/index.d.ts +2 -0
- package/dist/text/reader/segment/index.js +5 -0
- package/dist/text/reader/segment/index.js.map +1 -0
- package/dist/text/reader/segment/intl-segmenter.js.map +1 -0
- package/dist/text/reader/segment/types.js +1 -0
- package/dist/text/reader/segment/types.js.map +1 -0
- package/dist/text/reader/types.d.ts +29 -0
- package/dist/text/reader/types.js +1 -0
- package/dist/text/reader/types.js.map +1 -0
- package/dist/text/serial/discovery.d.ts +36 -0
- package/dist/text/serial/discovery.js +5 -0
- package/dist/text/serial/discovery.js.map +1 -0
- package/dist/text/serial/fragments.d.ts +67 -0
- package/dist/text/serial/fragments.js +121 -0
- package/dist/text/serial/fragments.js.map +1 -0
- package/dist/text/serial/generation.d.ts +48 -0
- package/dist/text/serial/generation.js +257 -0
- package/dist/text/serial/generation.js.map +1 -0
- package/dist/text/serial/index.d.ts +40 -0
- package/dist/text/serial/index.js +7 -0
- package/dist/text/serial/index.js.map +1 -0
- package/dist/text/serial/options.d.ts +77 -0
- package/dist/text/serial/options.js +17 -0
- package/dist/text/serial/options.js.map +1 -0
- package/dist/text/serial/read.d.ts +28 -0
- package/dist/text/serial/read.js +19 -0
- package/dist/text/serial/read.js.map +1 -0
- package/dist/text/serial/reader-graph.d.ts +39 -0
- package/dist/text/serial/reader-graph.js +27 -0
- package/dist/text/serial/reader-graph.js.map +1 -0
- package/dist/text/serial/record.d.ts +40 -0
- package/dist/text/serial/record.js +21 -0
- package/dist/text/serial/record.js.map +1 -0
- package/dist/text/serial/source.d.ts +39 -0
- package/dist/text/serial/source.js +12 -0
- package/dist/text/serial/source.js.map +1 -0
- package/dist/text/serial/topology.d.ts +43 -0
- package/dist/text/serial/topology.js +64 -0
- package/dist/text/serial/topology.js.map +1 -0
- package/dist/text/source/adapter.js.map +1 -0
- package/dist/text/source/epub/archive.js.map +1 -0
- package/dist/text/source/epub/content.js.map +1 -0
- package/dist/text/source/epub/document.js.map +1 -0
- package/dist/text/source/epub/index.js.map +1 -0
- package/dist/text/source/epub/navigation.js.map +1 -0
- package/dist/text/source/epub/package.js.map +1 -0
- package/dist/text/source/epub/xml.js.map +1 -0
- package/dist/text/source/index.js.map +1 -0
- package/dist/text/source/meta.js.map +1 -0
- package/dist/text/source/plain-text.js.map +1 -0
- package/dist/text/source/toc.d.ts +17 -0
- package/dist/text/source/toc.js +19 -0
- package/dist/text/source/toc.js.map +1 -0
- package/dist/text/source/types.js +1 -0
- package/dist/text/source/types.js.map +1 -0
- package/dist/text/summary-build/artifact.d.ts +44 -0
- package/dist/text/summary-build/artifact.js +157 -0
- package/dist/text/summary-build/artifact.js.map +1 -0
- package/dist/text/summary-build/build.d.ts +37 -0
- package/dist/text/summary-build/build.js +60 -0
- package/dist/text/summary-build/build.js.map +1 -0
- package/dist/text/summary-build/index.d.ts +38 -0
- package/dist/text/summary-build/index.js +4 -0
- package/dist/text/summary-build/index.js.map +1 -0
- package/dist/text/summary-build/schema.d.ts +106 -0
- package/dist/text/summary-build/schema.js +118 -0
- package/dist/text/summary-build/schema.js.map +1 -0
- package/dist/text/summary-build/snapshot/chunk-store.d.ts +17 -0
- package/dist/text/summary-build/snapshot/chunk-store.js +68 -0
- package/dist/text/summary-build/snapshot/chunk-store.js.map +1 -0
- package/dist/text/summary-build/snapshot/empty-stores.d.ts +50 -0
- package/dist/text/summary-build/snapshot/empty-stores.js +60 -0
- package/dist/text/summary-build/snapshot/empty-stores.js.map +1 -0
- package/dist/text/summary-build/snapshot/graph-stores.d.ts +42 -0
- package/dist/text/summary-build/snapshot/graph-stores.js +148 -0
- package/dist/text/summary-build/snapshot/graph-stores.js.map +1 -0
- package/dist/text/summary-build/snapshot/helpers.d.ts +17 -0
- package/dist/text/summary-build/snapshot/helpers.js +65 -0
- package/dist/text/summary-build/snapshot/helpers.js.map +1 -0
- package/dist/text/summary-build/snapshot/index.d.ts +63 -0
- package/dist/text/summary-build/snapshot/index.js +106 -0
- package/dist/text/summary-build/snapshot/index.js.map +1 -0
- package/dist/text/summary-build/snapshot/serial-store.d.ts +29 -0
- package/dist/text/summary-build/snapshot/serial-store.js +92 -0
- package/dist/text/summary-build/snapshot/serial-store.js.map +1 -0
- package/dist/text/summary-build/snapshot-io.d.ts +14 -0
- package/dist/text/summary-build/snapshot-io.js +25 -0
- package/dist/text/summary-build/snapshot-io.js.map +1 -0
- package/dist/text/summary-build/source.d.ts +39 -0
- package/dist/text/summary-build/source.js +30 -0
- package/dist/text/summary-build/source.js.map +1 -0
- package/dist/text/summary-build/types.d.ts +34 -0
- package/dist/text/summary-build/types.js +1 -0
- package/dist/text/summary-build/types.js.map +1 -0
- package/dist/worker-DWasYKWW.d.cts +143 -0
- package/dist/worker.cjs +5560 -2312
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.cts +1 -2
- package/dist/worker.d.ts +2 -2
- package/dist/worker.js +1 -1
- package/dist/worker.js.map +1 -1
- package/package.json +3 -2
- package/dist/archive/query/archive-view.d.ts +0 -26
- package/dist/archive/query/archive-view.js +0 -4540
- package/dist/archive/query/archive-view.js.map +0 -1
- package/dist/archive/query/continuation-cursor.d.ts +0 -61
- package/dist/archive/query/continuation-cursor.js +0 -363
- package/dist/archive/query/continuation-cursor.js.map +0 -1
- package/dist/archive/query/index.d.ts +0 -29
- package/dist/archive/query/index.js +0 -63
- package/dist/archive/query/index.js.map +0 -1
- package/dist/archive/query/lexical-search.js.map +0 -1
- package/dist/archive/query/search-cache.d.ts +0 -192
- package/dist/archive/query/search-cache.js +0 -1248
- package/dist/archive/query/search-cache.js.map +0 -1
- package/dist/archive/search-index/index.d.ts +0 -26
- package/dist/archive/search-index/index.js +0 -29
- package/dist/archive/search-index/index.js.map +0 -1
- package/dist/archive/search-index/search-index.d.ts +0 -26
- package/dist/archive/search-index/search-index.js +0 -555
- package/dist/archive/search-index/search-index.js.map +0 -1
- package/dist/archive/search-index/search-tokenizer.js +0 -225
- package/dist/archive/search-index/search-tokenizer.js.map +0 -1
- package/dist/common/cli-command.js.map +0 -1
- package/dist/common/data-dir.js +0 -48
- package/dist/common/data-dir.js.map +0 -1
- package/dist/common/language.js.map +0 -1
- package/dist/common/llm-scope.js.map +0 -1
- package/dist/common/logging.js.map +0 -1
- package/dist/common/template.js.map +0 -1
- package/dist/common/tinyld-language.js.map +0 -1
- package/dist/common/wiki-graph-dir.d.ts +0 -10
- package/dist/common/wiki-graph-dir.js +0 -41
- package/dist/common/wiki-graph-dir.js.map +0 -1
- package/dist/common/wiki-graph-temp.js +0 -21
- package/dist/common/wiki-graph-temp.js.map +0 -1
- package/dist/common/wiki-graph-uri.d.ts +0 -28
- package/dist/common/wiki-graph-uri.js +0 -171
- package/dist/common/wiki-graph-uri.js.map +0 -1
- package/dist/context/index.d.ts +0 -1
- package/dist/context/index.js +0 -13
- package/dist/context/index.js.map +0 -1
- package/dist/context/task-context.js +0 -111
- package/dist/context/task-context.js.map +0 -1
- package/dist/document/document.d.ts +0 -153
- package/dist/document/document.js +0 -615
- package/dist/document/document.js.map +0 -1
- package/dist/document/fragments.d.ts +0 -63
- package/dist/document/fragments.js +0 -371
- package/dist/document/fragments.js.map +0 -1
- package/dist/document/stores.d.ts +0 -203
- package/dist/document/stores.js +0 -1678
- package/dist/document/stores.js.map +0 -1
- package/dist/document/text-streams.d.ts +0 -86
- package/dist/document/text-streams.js +0 -515
- package/dist/document/text-streams.js.map +0 -1
- package/dist/editor/clue.d.ts +0 -27
- package/dist/editor/clue.js.map +0 -1
- package/dist/editor/compressor.d.ts +0 -18
- package/dist/editor/compressor.js +0 -68
- package/dist/editor/compressor.js.map +0 -1
- package/dist/editor/editor.d.ts +0 -39
- package/dist/editor/editor.js +0 -253
- package/dist/editor/editor.js.map +0 -1
- package/dist/editor/feedback.d.ts +0 -16
- package/dist/editor/feedback.js.map +0 -1
- package/dist/editor/index.d.ts +0 -17
- package/dist/editor/index.js +0 -5
- package/dist/editor/index.js.map +0 -1
- package/dist/editor/language-review.d.ts +0 -14
- package/dist/editor/language-review.js +0 -35
- package/dist/editor/language-review.js.map +0 -1
- package/dist/editor/log.d.ts +0 -37
- package/dist/editor/log.js +0 -202
- package/dist/editor/log.js.map +0 -1
- package/dist/editor/markup.d.ts +0 -20
- package/dist/editor/markup.js +0 -294
- package/dist/editor/markup.js.map +0 -1
- package/dist/editor/prompt-templates.js.map +0 -1
- package/dist/editor/response.js.map +0 -1
- package/dist/editor/review.d.ts +0 -34
- package/dist/editor/review.js +0 -189
- package/dist/editor/review.js.map +0 -1
- package/dist/editor/types.js +0 -21
- package/dist/editor/types.js.map +0 -1
- package/dist/evidence-selection/anchor-resolver.d.ts +0 -43
- package/dist/evidence-selection/anchor-resolver.js +0 -783
- package/dist/evidence-selection/anchor-resolver.js.map +0 -1
- package/dist/evidence-selection/anchor-types.d.ts +0 -27
- package/dist/evidence-selection/anchor-types.js +0 -1
- package/dist/evidence-selection/index.d.ts +0 -8
- package/dist/evidence-selection/index.js +0 -32
- package/dist/evidence-selection/index.js.map +0 -1
- package/dist/evidence-selection/prompt.js.map +0 -1
- package/dist/evidence-selection/quote-score.js.map +0 -1
- package/dist/evidence-selection/selection-resolver.js +0 -303
- package/dist/evidence-selection/selection-resolver.js.map +0 -1
- package/dist/evidence-selection/text.js.map +0 -1
- package/dist/facade/app.d.ts +0 -75
- package/dist/facade/app.js +0 -141
- package/dist/facade/app.js.map +0 -1
- package/dist/facade/build-queue.d.ts +0 -181
- package/dist/facade/build-queue.js +0 -1442
- package/dist/facade/build-queue.js.map +0 -1
- package/dist/facade/chapter-build.d.ts +0 -60
- package/dist/facade/chapter-build.js +0 -1020
- package/dist/facade/chapter-build.js.map +0 -1
- package/dist/facade/chapter.d.ts +0 -168
- package/dist/facade/chapter.js +0 -944
- package/dist/facade/chapter.js.map +0 -1
- package/dist/facade/digest.d.ts +0 -55
- package/dist/facade/digest.js +0 -168
- package/dist/facade/digest.js.map +0 -1
- package/dist/facade/graph.d.ts +0 -60
- package/dist/facade/graph.js +0 -203
- package/dist/facade/graph.js.map +0 -1
- package/dist/facade/import.d.ts +0 -49
- package/dist/facade/import.js +0 -262
- package/dist/facade/import.js.map +0 -1
- package/dist/facade/index.d.ts +0 -39
- package/dist/facade/index.js +0 -171
- package/dist/facade/index.js.map +0 -1
- package/dist/facade/knowledge-graph-build.d.ts +0 -75
- package/dist/facade/knowledge-graph-build.js +0 -897
- package/dist/facade/knowledge-graph-build.js.map +0 -1
- package/dist/facade/llm-sampling.d.ts +0 -11
- package/dist/facade/llm-sampling.js +0 -58
- package/dist/facade/llm-sampling.js.map +0 -1
- package/dist/facade/wiki-graph-archive.d.ts +0 -41
- package/dist/facade/wiki-graph-archive.js +0 -130
- package/dist/facade/wiki-graph-archive.js.map +0 -1
- package/dist/gc/files.js +0 -141
- package/dist/gc/files.js.map +0 -1
- package/dist/gc/index.js.map +0 -1
- package/dist/gc/lock.js +0 -137
- package/dist/gc/lock.js.map +0 -1
- package/dist/gc/runner.js +0 -129
- package/dist/gc/runner.js.map +0 -1
- package/dist/gc/tmp-gc.js +0 -57
- package/dist/gc/tmp-gc.js.map +0 -1
- package/dist/guaranteed/classifier.js.map +0 -1
- package/dist/guaranteed/errors.js.map +0 -1
- package/dist/guaranteed/index.js.map +0 -1
- package/dist/guaranteed/request.js.map +0 -1
- package/dist/guaranteed/response.js.map +0 -1
- package/dist/index-B8NNnQ8P.d.ts +0 -424
- package/dist/legacy-sdpub/upgrade.js +0 -795
- package/dist/legacy-sdpub/upgrade.js.map +0 -1
- package/dist/llm/cache.js +0 -35
- package/dist/llm/cache.js.map +0 -1
- package/dist/llm/client.d.ts +0 -26
- package/dist/llm/client.js +0 -572
- package/dist/llm/client.js.map +0 -1
- package/dist/llm/context.js +0 -78
- package/dist/llm/context.js.map +0 -1
- package/dist/llm/errors.js.map +0 -1
- package/dist/llm/index.d.ts +0 -7
- package/dist/llm/index.js +0 -17
- package/dist/llm/index.js.map +0 -1
- package/dist/llm/request-log.js +0 -35
- package/dist/llm/request-log.js.map +0 -1
- package/dist/llm/sampling.js.map +0 -1
- package/dist/output/epub/archive.js.map +0 -1
- package/dist/output/epub/book.d.ts +0 -15
- package/dist/output/epub/book.js.map +0 -1
- package/dist/output/epub/content.js.map +0 -1
- package/dist/output/epub/index.d.ts +0 -20
- package/dist/output/epub/index.js.map +0 -1
- package/dist/output/epub/navigation.js.map +0 -1
- package/dist/output/epub/package.js.map +0 -1
- package/dist/output/epub/shared.js.map +0 -1
- package/dist/output/epub/templates.js +0 -26
- package/dist/output/epub/templates.js.map +0 -1
- package/dist/output/index.d.ts +0 -14
- package/dist/output/index.js.map +0 -1
- package/dist/output/plain-text.d.ts +0 -18
- package/dist/output/plain-text.js.map +0 -1
- package/dist/progress/index.js.map +0 -1
- package/dist/progress/reporter.js.map +0 -1
- package/dist/progress/tracker.js.map +0 -1
- package/dist/reader/attention/attention.d.ts +0 -39
- package/dist/reader/attention/attention.js +0 -123
- package/dist/reader/attention/attention.js.map +0 -1
- package/dist/reader/attention/index.d.ts +0 -9
- package/dist/reader/attention/index.js +0 -5
- package/dist/reader/attention/index.js.map +0 -1
- package/dist/reader/attention/wave-reflection.d.ts +0 -21
- package/dist/reader/attention/wave-reflection.js.map +0 -1
- package/dist/reader/attention/working-memory.d.ts +0 -28
- package/dist/reader/attention/working-memory.js.map +0 -1
- package/dist/reader/chunk-batch/extract.d.ts +0 -13
- package/dist/reader/chunk-batch/extract.js.map +0 -1
- package/dist/reader/chunk-batch/extractor.d.ts +0 -17
- package/dist/reader/chunk-batch/extractor.js +0 -337
- package/dist/reader/chunk-batch/extractor.js.map +0 -1
- package/dist/reader/chunk-batch/fragment-projection.d.ts +0 -34
- package/dist/reader/chunk-batch/fragment-projection.js.map +0 -1
- package/dist/reader/chunk-batch/index.d.ts +0 -12
- package/dist/reader/chunk-batch/index.js +0 -13
- package/dist/reader/chunk-batch/index.js.map +0 -1
- package/dist/reader/chunk-batch/language.d.ts +0 -9
- package/dist/reader/chunk-batch/language.js +0 -23
- package/dist/reader/chunk-batch/language.js.map +0 -1
- package/dist/reader/chunk-batch/parser.d.ts +0 -94
- package/dist/reader/chunk-batch/parser.js +0 -640
- package/dist/reader/chunk-batch/parser.js.map +0 -1
- package/dist/reader/chunk-batch/prompt-templates.js.map +0 -1
- package/dist/reader/chunk-batch/types.d.ts +0 -85
- package/dist/reader/index.d.ts +0 -13
- package/dist/reader/index.js +0 -7
- package/dist/reader/index.js.map +0 -1
- package/dist/reader/reader.d.ts +0 -37
- package/dist/reader/reader.js +0 -82
- package/dist/reader/reader.js.map +0 -1
- package/dist/reader/segment/index.d.ts +0 -2
- package/dist/reader/segment/index.js +0 -5
- package/dist/reader/segment/index.js.map +0 -1
- package/dist/reader/segment/intl-segmenter.js.map +0 -1
- package/dist/reader/segment/segment.js +0 -9
- package/dist/reader/segment/segment.js.map +0 -1
- package/dist/reader/types.d.ts +0 -29
- package/dist/source/epub/archive.js.map +0 -1
- package/dist/source/epub/content.js.map +0 -1
- package/dist/source/epub/document.js.map +0 -1
- package/dist/source/epub/index.js.map +0 -1
- package/dist/source/epub/navigation.js.map +0 -1
- package/dist/source/epub/package.js.map +0 -1
- package/dist/source/epub/xml.js.map +0 -1
- package/dist/source/index.js.map +0 -1
- package/dist/source/meta.js.map +0 -1
- package/dist/source/plain-text.js.map +0 -1
- package/dist/source/toc.d.ts +0 -16
- package/dist/source/toc.js +0 -17
- package/dist/source/toc.js.map +0 -1
- package/dist/topology/grouping.d.ts +0 -15
- package/dist/topology/grouping.js.map +0 -1
- package/dist/topology/index.d.ts +0 -21
- package/dist/topology/index.js +0 -5
- package/dist/topology/index.js.map +0 -1
- package/dist/topology/resource-segmentation.d.ts +0 -13
- package/dist/topology/resource-segmentation.js.map +0 -1
- package/dist/topology/segment-incision.d.ts +0 -18
- package/dist/topology/segment-incision.js.map +0 -1
- package/dist/topology/snake-detector.d.ts +0 -13
- package/dist/topology/snake-detector.js +0 -520
- package/dist/topology/snake-detector.js.map +0 -1
- package/dist/topology/snake-graph-builder.d.ts +0 -14
- package/dist/topology/snake-graph-builder.js +0 -76
- package/dist/topology/snake-graph-builder.js.map +0 -1
- package/dist/topology/topology.d.ts +0 -29
- package/dist/topology/topology.js +0 -348
- package/dist/topology/topology.js.map +0 -1
- package/dist/topology/weights.d.ts +0 -10
- package/dist/topology/weights.js +0 -84
- package/dist/topology/weights.js.map +0 -1
- package/dist/types-FVIqiLC9.d.cts +0 -24
- package/dist/wikg/archive-uri.d.ts +0 -1
- package/dist/wikg/archive-uri.js +0 -37
- package/dist/wikg/archive-uri.js.map +0 -1
- package/dist/wikg/archive.d.ts +0 -28
- package/dist/wikg/archive.js +0 -496
- package/dist/wikg/archive.js.map +0 -1
- package/dist/wikg/index.d.ts +0 -31
- package/dist/wikg/index.js +0 -60
- package/dist/wikg/index.js.map +0 -1
- package/dist/wikg/wikg-coordinator.d.ts +0 -45
- package/dist/wikg/wikg-coordinator.js +0 -1687
- package/dist/wikg/wikg-coordinator.js.map +0 -1
- package/dist/wikg/wiki-graph-archive-file.d.ts +0 -42
- package/dist/wikg/wiki-graph-archive-file.js +0 -78
- package/dist/wikg/wiki-graph-archive-file.js.map +0 -1
- package/dist/wikilink/index.d.ts +0 -10
- package/dist/wikilink/index.js.map +0 -1
- package/dist/wikilink/relation-discovery.d.ts +0 -31
- package/dist/wikilink/relation-discovery.js +0 -477
- package/dist/wikilink/relation-discovery.js.map +0 -1
- package/dist/wikilink/types.d.ts +0 -23
- package/dist/wikilink/window.d.ts +0 -7
- package/dist/wikilink/window.js.map +0 -1
- package/dist/wikimatch/enrichment.d.ts +0 -10
- package/dist/wikimatch/enrichment.js +0 -55
- package/dist/wikimatch/enrichment.js.map +0 -1
- package/dist/wikimatch/index.d.ts +0 -16
- package/dist/wikimatch/index.js +0 -66
- package/dist/wikimatch/index.js.map +0 -1
- package/dist/wikimatch/option-narrowing.d.ts +0 -17
- package/dist/wikimatch/option-narrowing.js.map +0 -1
- package/dist/wikimatch/options.d.ts +0 -14
- package/dist/wikimatch/options.js +0 -155
- package/dist/wikimatch/options.js.map +0 -1
- package/dist/wikimatch/policy-judge.d.ts +0 -17
- package/dist/wikimatch/policy-judge.js +0 -430
- package/dist/wikimatch/policy-judge.js.map +0 -1
- package/dist/wikimatch/range-suppression.js.map +0 -1
- package/dist/wikimatch/surface-screening.d.ts +0 -16
- package/dist/wikimatch/surface-screening.js +0 -168
- package/dist/wikimatch/surface-screening.js.map +0 -1
- package/dist/wikimatch/surface-window.d.ts +0 -6
- package/dist/wikimatch/surface-window.js +0 -44
- package/dist/wikimatch/surface-window.js.map +0 -1
- package/dist/wikimatch/types.d.ts +0 -151
- package/dist/wikimatch/wikispine.d.ts +0 -43
- package/dist/wikimatch/wikispine.js.map +0 -1
- package/dist/wikimatch/window.d.ts +0 -6
- package/dist/wikimatch/window.js.map +0 -1
- package/dist/wikimatch/words.js.map +0 -1
- package/dist/wikipage/cache.d.ts +0 -18
- package/dist/wikipage/cache.js +0 -404
- package/dist/wikipage/cache.js.map +0 -1
- package/dist/wikipage/fetch-log.js +0 -143
- package/dist/wikipage/fetch-log.js.map +0 -1
- package/dist/wikipage/index.d.ts +0 -14
- package/dist/wikipage/index.js +0 -17
- package/dist/wikipage/index.js.map +0 -1
- package/dist/wikipage/normalizer.d.ts +0 -14
- package/dist/wikipage/normalizer.js +0 -147
- package/dist/wikipage/normalizer.js.map +0 -1
- package/dist/wikipage/rate-limiter.js.map +0 -1
- package/dist/wikipage/resolver.d.ts +0 -26
- package/dist/wikipage/resolver.js +0 -325
- package/dist/wikipage/resolver.js.map +0 -1
- package/dist/wikipage/types.d.ts +0 -96
- package/dist/wikipage/wikimedia-client.d.ts +0 -48
- package/dist/wikipage/wikimedia-client.js +0 -397
- package/dist/wikipage/wikimedia-client.js.map +0 -1
- package/dist/worker-BgQ0Xl8T.d.cts +0 -181
- /package/dist/{evidence-selection → api/chapter-build}/types.js +0 -0
- /package/dist/{evidence-selection → api/chapter-build}/types.js.map +0 -0
- /package/dist/{facade → api/knowledge-graph-build}/types.js +0 -0
- /package/dist/{facade → api/knowledge-graph-build}/types.js.map +0 -0
- /package/dist/{facade → api}/types.d.ts +0 -0
- /package/dist/{gc → api}/types.js +0 -0
- /package/dist/{gc → api}/types.js.map +0 -0
- /package/dist/{guaranteed → document/directory}/types.js +0 -0
- /package/dist/{guaranteed → document/directory}/types.js.map +0 -0
- /package/dist/{llm → document/stores}/types.js +0 -0
- /package/dist/{llm → document/stores}/types.js.map +0 -0
- /package/dist/{guaranteed → external/guaranteed}/classifier.d.ts +0 -0
- /package/dist/{guaranteed → external/guaranteed}/classifier.js +0 -0
- /package/dist/{guaranteed → external/guaranteed}/errors.d.ts +0 -0
- /package/dist/{guaranteed → external/guaranteed}/errors.js +0 -0
- /package/dist/{guaranteed → external/guaranteed}/index.d.ts +0 -0
- /package/dist/{guaranteed → external/guaranteed}/index.js +0 -0
- /package/dist/{guaranteed → external/guaranteed}/request.d.ts +0 -0
- /package/dist/{guaranteed → external/guaranteed}/request.js +0 -0
- /package/dist/{guaranteed → external/guaranteed}/response.d.ts +0 -0
- /package/dist/{guaranteed → external/guaranteed}/response.js +0 -0
- /package/dist/{guaranteed → external/guaranteed}/types.d.ts +0 -0
- /package/dist/{progress → external/guaranteed}/types.js +0 -0
- /package/dist/{progress → external/guaranteed}/types.js.map +0 -0
- /package/dist/{llm → external/llm}/cache.d.ts +0 -0
- /package/dist/{llm → external/llm}/context.d.ts +0 -0
- /package/dist/{llm → external/llm}/errors.d.ts +0 -0
- /package/dist/{llm → external/llm}/errors.js +0 -0
- /package/dist/{llm → external/llm}/request-log.d.ts +0 -0
- /package/dist/{llm → external/llm}/sampling.d.ts +0 -0
- /package/dist/{llm → external/llm}/sampling.js +0 -0
- /package/dist/{llm → external/llm}/types.d.ts +0 -0
- /package/dist/{reader/chunk-batch → external/llm}/types.js +0 -0
- /package/dist/{reader/chunk-batch → external/llm}/types.js.map +0 -0
- /package/dist/{wikimatch → external/wikimatch}/option-narrowing.js +0 -0
- /package/dist/{wikimatch → external/wikimatch}/range-suppression.d.ts +0 -0
- /package/dist/{wikimatch → external/wikimatch}/range-suppression.js +0 -0
- /package/dist/{reader/segment → external/wikimatch}/types.js +0 -0
- /package/dist/{reader/segment → external/wikimatch}/types.js.map +0 -0
- /package/dist/{wikimatch → external/wikimatch}/wikispine.js +0 -0
- /package/dist/{wikimatch → external/wikimatch}/window.js +0 -0
- /package/dist/{wikimatch → external/wikimatch}/words.d.ts +0 -0
- /package/dist/{wikimatch → external/wikimatch}/words.js +0 -0
- /package/dist/{wikipage → external/wikipage}/fetch-log.d.ts +0 -0
- /package/dist/{wikipage → external/wikipage}/rate-limiter.d.ts +0 -0
- /package/dist/{wikipage → external/wikipage}/rate-limiter.js +0 -0
- /package/dist/{reader → external/wikipage}/types.js +0 -0
- /package/dist/{reader → external/wikipage}/types.js.map +0 -0
- /package/dist/{source → graph/evidence-selection/anchor}/types.js +0 -0
- /package/dist/{source → graph/evidence-selection/anchor}/types.js.map +0 -0
- /package/dist/{evidence-selection → graph/evidence-selection}/prompt.d.ts +0 -0
- /package/dist/{evidence-selection → graph/evidence-selection}/prompt.js +0 -0
- /package/dist/{evidence-selection → graph/evidence-selection}/quote-score.d.ts +0 -0
- /package/dist/{evidence-selection → graph/evidence-selection}/quote-score.js +0 -0
- /package/dist/{evidence-selection/selection-resolver.d.ts → graph/evidence-selection/resolver.d.ts} +0 -0
- /package/dist/{evidence-selection → graph/evidence-selection}/text.d.ts +0 -0
- /package/dist/{evidence-selection → graph/evidence-selection}/text.js +0 -0
- /package/dist/{evidence-selection → graph/evidence-selection}/types.d.ts +0 -0
- /package/dist/{wikilink → graph/evidence-selection}/types.js +0 -0
- /package/dist/{wikilink → graph/evidence-selection}/types.js.map +0 -0
- /package/dist/{wikimatch → graph/knowledge-build}/types.js +0 -0
- /package/dist/{wikimatch → graph/knowledge-build}/types.js.map +0 -0
- /package/dist/{wikipage → graph/reading-build}/types.js +0 -0
- /package/dist/{wikipage → graph/reading-build}/types.js.map +0 -0
- /package/dist/{topology → graph/topology}/grouping.js +0 -0
- /package/dist/{topology → graph/topology}/resource-segmentation.js +0 -0
- /package/dist/{topology → graph/topology}/segment-incision.js +0 -0
- /package/dist/{evidence-selection/anchor-types.js.map → graph/topology/snake/types.js.map} +0 -0
- /package/dist/{wikilink → graph/wikilink}/index.js +0 -0
- /package/dist/{output/epub/model.js.map → graph/wikilink/types.js.map} +0 -0
- /package/dist/{wikilink → graph/wikilink}/window.js +0 -0
- /package/dist/{source/adapter.js.map → retrieval/query/archive-view/types.js.map} +0 -0
- /package/dist/{archive → retrieval}/query/lexical-search.d.ts +0 -0
- /package/dist/{archive → retrieval}/query/lexical-search.js +0 -0
- /package/dist/{archive/search-index/search-tokenizer.d.ts → retrieval/search-index/search/tokenizer.d.ts} +0 -0
- /package/dist/{common → runtime/common}/cli-command.d.ts +0 -0
- /package/dist/{common → runtime/common}/cli-command.js +0 -0
- /package/dist/{common → runtime/common}/data-dir.d.ts +0 -0
- /package/dist/{common → runtime/common}/language.d.ts +0 -0
- /package/dist/{common → runtime/common}/language.js +0 -0
- /package/dist/{common → runtime/common}/llm-scope.d.ts +0 -0
- /package/dist/{common → runtime/common}/llm-scope.js +0 -0
- /package/dist/{common → runtime/common}/logging.d.ts +0 -0
- /package/dist/{common → runtime/common}/logging.js +0 -0
- /package/dist/{common → runtime/common}/template.d.ts +0 -0
- /package/dist/{common → runtime/common}/template.js +0 -0
- /package/dist/{common → runtime/common}/tinyld-language.d.ts +0 -0
- /package/dist/{common → runtime/common}/tinyld-language.js +0 -0
- /package/dist/{common/wiki-graph-temp.d.ts → runtime/common/wiki-graph/temp.d.ts} +0 -0
- /package/dist/{context/task-context.d.ts → runtime/context/task.d.ts} +0 -0
- /package/dist/{gc → runtime/gc}/files.d.ts +0 -0
- /package/dist/{gc → runtime/gc}/index.d.ts +0 -0
- /package/dist/{gc → runtime/gc}/index.js +0 -0
- /package/dist/{gc → runtime/gc}/lock.d.ts +0 -0
- /package/dist/{gc → runtime/gc}/runner.d.ts +0 -0
- /package/dist/{gc/tmp-gc.d.ts → runtime/gc/temp.d.ts} +0 -0
- /package/dist/{gc → runtime/gc}/types.d.ts +0 -0
- /package/dist/{progress → runtime/progress}/index.d.ts +0 -0
- /package/dist/{progress → runtime/progress}/index.js +0 -0
- /package/dist/{progress → runtime/progress}/reporter.d.ts +0 -0
- /package/dist/{progress → runtime/progress}/reporter.js +0 -0
- /package/dist/{progress → runtime/progress}/tracker.d.ts +0 -0
- /package/dist/{progress → runtime/progress}/tracker.js +0 -0
- /package/dist/{progress → runtime/progress}/types.d.ts +0 -0
- /package/dist/{legacy-sdpub/upgrade.d.ts → storage/migration/legacy-sdpub/upgrade/index.d.ts} +0 -0
- /package/dist/{editor → text/editor}/clue.js +0 -0
- /package/dist/{editor → text/editor}/feedback.js +0 -0
- /package/dist/{editor → text/editor}/prompt-templates.d.ts +0 -0
- /package/dist/{editor → text/editor}/prompt-templates.js +0 -0
- /package/dist/{editor → text/editor}/response.d.ts +0 -0
- /package/dist/{editor → text/editor}/response.js +0 -0
- /package/dist/{editor → text/editor}/types.d.ts +0 -0
- /package/dist/{output → text/output}/epub/archive.d.ts +0 -0
- /package/dist/{output → text/output}/epub/archive.js +0 -0
- /package/dist/{output → text/output}/epub/book.js +0 -0
- /package/dist/{output → text/output}/epub/content.d.ts +0 -0
- /package/dist/{output → text/output}/epub/content.js +0 -0
- /package/dist/{output → text/output}/epub/index.js +0 -0
- /package/dist/{output → text/output}/epub/model.d.ts +0 -0
- /package/dist/{output → text/output}/epub/model.js +0 -0
- /package/dist/{output → text/output}/epub/navigation.d.ts +0 -0
- /package/dist/{output → text/output}/epub/navigation.js +0 -0
- /package/dist/{output → text/output}/epub/package.d.ts +0 -0
- /package/dist/{output → text/output}/epub/package.js +0 -0
- /package/dist/{output → text/output}/epub/shared.d.ts +0 -0
- /package/dist/{output → text/output}/epub/shared.js +0 -0
- /package/dist/{output → text/output}/epub/templates.d.ts +0 -0
- /package/dist/{output → text/output}/index.js +0 -0
- /package/dist/{output → text/output}/plain-text.js +0 -0
- /package/dist/{reader → text/reader}/attention/wave-reflection.js +0 -0
- /package/dist/{reader → text/reader}/attention/working-memory.js +0 -0
- /package/dist/{reader → text/reader}/chunk-batch/extract.js +0 -0
- /package/dist/{reader → text/reader}/chunk-batch/fragment-projection.js +0 -0
- /package/dist/{reader → text/reader}/chunk-batch/prompt-templates.d.ts +0 -0
- /package/dist/{reader → text/reader}/chunk-batch/prompt-templates.js +0 -0
- /package/dist/{reader/segment/segment.d.ts → text/reader/segment/core.d.ts} +0 -0
- /package/dist/{reader → text/reader}/segment/intl-segmenter.d.ts +0 -0
- /package/dist/{reader → text/reader}/segment/intl-segmenter.js +0 -0
- /package/dist/{reader → text/reader}/segment/types.d.ts +0 -0
- /package/dist/{source → text/source}/adapter.d.ts +0 -0
- /package/dist/{source → text/source}/adapter.js +0 -0
- /package/dist/{source → text/source}/epub/archive.d.ts +0 -0
- /package/dist/{source → text/source}/epub/archive.js +0 -0
- /package/dist/{source → text/source}/epub/content.d.ts +0 -0
- /package/dist/{source → text/source}/epub/content.js +0 -0
- /package/dist/{source → text/source}/epub/document.d.ts +0 -0
- /package/dist/{source → text/source}/epub/document.js +0 -0
- /package/dist/{source → text/source}/epub/index.d.ts +0 -0
- /package/dist/{source → text/source}/epub/index.js +0 -0
- /package/dist/{source → text/source}/epub/navigation.d.ts +0 -0
- /package/dist/{source → text/source}/epub/navigation.js +0 -0
- /package/dist/{source → text/source}/epub/package.d.ts +0 -0
- /package/dist/{source → text/source}/epub/package.js +0 -0
- /package/dist/{source → text/source}/epub/xml.d.ts +0 -0
- /package/dist/{source → text/source}/epub/xml.js +0 -0
- /package/dist/{source → text/source}/index.d.ts +0 -0
- /package/dist/{source → text/source}/index.js +0 -0
- /package/dist/{source → text/source}/meta.d.ts +0 -0
- /package/dist/{source → text/source}/meta.js +0 -0
- /package/dist/{source → text/source}/plain-text.d.ts +0 -0
- /package/dist/{source → text/source}/plain-text.js +0 -0
- /package/dist/{source → text/source}/types.d.ts +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Document } from '../../document/directory/types.js';
|
|
2
|
+
import { ReaderTextStream } from '../reader/types.js';
|
|
3
|
+
import { WriteSerialSourceOptions } from './options.js';
|
|
4
|
+
import '../source/meta.js';
|
|
5
|
+
import 'zod';
|
|
6
|
+
import '../source/toc.js';
|
|
7
|
+
import '../source/types.js';
|
|
8
|
+
import '../../document/database.js';
|
|
9
|
+
import 'sqlite3';
|
|
10
|
+
import '../../document/types.js';
|
|
11
|
+
import '../../document/text-streams/serial.js';
|
|
12
|
+
import '../../document/text-streams/draft.js';
|
|
13
|
+
import '../../document/text-streams/types.js';
|
|
14
|
+
import '../../document/stores/chunk.js';
|
|
15
|
+
import '../../document/stores/types.js';
|
|
16
|
+
import '../../document/stores/fragment-group.js';
|
|
17
|
+
import '../../document/stores/graph-build-parameter.js';
|
|
18
|
+
import '../../document/stores/mention-link.js';
|
|
19
|
+
import '../../document/stores/mention.js';
|
|
20
|
+
import '../../document/stores/object-metadata.js';
|
|
21
|
+
import '../../document/stores/reading-edge.js';
|
|
22
|
+
import '../../document/stores/serial.js';
|
|
23
|
+
import '../../document/stores/snake/chunk.js';
|
|
24
|
+
import '../../document/stores/snake/core.js';
|
|
25
|
+
import '../../document/stores/snake/edge.js';
|
|
26
|
+
import '../reader/attention/core.js';
|
|
27
|
+
import '../reader/chunk-batch/types.js';
|
|
28
|
+
import '../../runtime/common/language.js';
|
|
29
|
+
import '../../external/llm/client/core.js';
|
|
30
|
+
import '../../external/llm/context.js';
|
|
31
|
+
import '../../external/llm/cache.js';
|
|
32
|
+
import '../../external/llm/types.js';
|
|
33
|
+
import 'ai';
|
|
34
|
+
import '../reader/segment/types.js';
|
|
35
|
+
import '../../runtime/common/llm-scope.js';
|
|
36
|
+
|
|
37
|
+
declare function writeSerialSource(document: Document, serialId: number, stream: ReaderTextStream, options?: WriteSerialSourceOptions): Promise<void>;
|
|
38
|
+
|
|
39
|
+
export { writeSerialSource };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { collectTextStream } from "./fragments.js";
|
|
2
|
+
async function writeSerialSource(document, serialId, stream, options = {}) {
|
|
3
|
+
const serialFragments = document.getSerialFragments(serialId);
|
|
4
|
+
await serialFragments.writeTextStream(await collectTextStream(stream), {
|
|
5
|
+
...options.segmenter === void 0 ? {} : { segmenter: options.segmenter }
|
|
6
|
+
});
|
|
7
|
+
await document.serials.bumpRevision(serialId);
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
writeSerialSource
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/text/serial/source.ts"],"sourcesContent":["import type { Document } from \"../../document/index.js\";\nimport type { ReaderTextStream } from \"../reader/index.js\";\nimport { collectTextStream } from \"./fragments.js\";\nimport type { WriteSerialSourceOptions } from \"./options.js\";\n\nexport async function writeSerialSource(\n document: Document,\n serialId: number,\n stream: ReaderTextStream,\n options: WriteSerialSourceOptions = {},\n): Promise<void> {\n const serialFragments = document.getSerialFragments(serialId);\n\n await serialFragments.writeTextStream(await collectTextStream(stream), {\n ...(options.segmenter === undefined\n ? {}\n : { segmenter: options.segmenter }),\n });\n await document.serials.bumpRevision(serialId);\n}\n"],"mappings":"AAEA,SAAS,yBAAyB;AAGlC,eAAsB,kBACpB,UACA,UACA,QACA,UAAoC,CAAC,GACtB;AACf,QAAM,kBAAkB,SAAS,mBAAmB,QAAQ;AAE5D,QAAM,gBAAgB,gBAAgB,MAAM,kBAAkB,MAAM,GAAG;AAAA,IACrE,GAAI,QAAQ,cAAc,SACtB,CAAC,IACD,EAAE,WAAW,QAAQ,UAAU;AAAA,EACrC,CAAC;AACD,QAAM,SAAS,QAAQ,aAAa,QAAQ;AAC9C;","names":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ChunkRecord, ReadingEdgeRecord, SentenceGroupRecord, SnakeChunkRecord, SnakeEdgeRecord, SnakeRecord } from '../../document/types.js';
|
|
2
|
+
import { ReadonlyDocument } from '../../document/directory/types.js';
|
|
3
|
+
import '../source/meta.js';
|
|
4
|
+
import 'zod';
|
|
5
|
+
import '../source/toc.js';
|
|
6
|
+
import '../source/types.js';
|
|
7
|
+
import '../../document/database.js';
|
|
8
|
+
import 'sqlite3';
|
|
9
|
+
import '../../document/text-streams/serial.js';
|
|
10
|
+
import '../../document/text-streams/draft.js';
|
|
11
|
+
import '../../document/text-streams/types.js';
|
|
12
|
+
import '../../document/stores/chunk.js';
|
|
13
|
+
import '../../document/stores/types.js';
|
|
14
|
+
import '../../document/stores/fragment-group.js';
|
|
15
|
+
import '../../document/stores/graph-build-parameter.js';
|
|
16
|
+
import '../../document/stores/mention-link.js';
|
|
17
|
+
import '../../document/stores/mention.js';
|
|
18
|
+
import '../../document/stores/object-metadata.js';
|
|
19
|
+
import '../../document/stores/reading-edge.js';
|
|
20
|
+
import '../../document/stores/serial.js';
|
|
21
|
+
import '../../document/stores/snake/chunk.js';
|
|
22
|
+
import '../../document/stores/snake/core.js';
|
|
23
|
+
import '../../document/stores/snake/edge.js';
|
|
24
|
+
|
|
25
|
+
declare class Serial {
|
|
26
|
+
#private;
|
|
27
|
+
constructor(document: ReadonlyDocument, serialId: number, summary: string);
|
|
28
|
+
get id(): number;
|
|
29
|
+
getSummary(): string;
|
|
30
|
+
getTopology(): SerialTopology;
|
|
31
|
+
}
|
|
32
|
+
declare class SerialTopology {
|
|
33
|
+
#private;
|
|
34
|
+
constructor(document: ReadonlyDocument, serialId: number);
|
|
35
|
+
listChunks(): Promise<readonly ChunkRecord[]>;
|
|
36
|
+
listEdges(): Promise<readonly ReadingEdgeRecord[]>;
|
|
37
|
+
listGroups(): Promise<readonly SentenceGroupRecord[]>;
|
|
38
|
+
listSnakeChunks(snakeId: number): Promise<readonly SnakeChunkRecord[]>;
|
|
39
|
+
listSnakeEdges(): Promise<readonly SnakeEdgeRecord[]>;
|
|
40
|
+
listSnakes(): Promise<readonly SnakeRecord[]>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { Serial, SerialTopology };
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
class Serial {
|
|
2
|
+
#id;
|
|
3
|
+
#summary;
|
|
4
|
+
#topology;
|
|
5
|
+
constructor(document, serialId, summary) {
|
|
6
|
+
this.#id = serialId;
|
|
7
|
+
this.#summary = summary;
|
|
8
|
+
this.#topology = new SerialTopology(document, serialId);
|
|
9
|
+
}
|
|
10
|
+
get id() {
|
|
11
|
+
return this.#id;
|
|
12
|
+
}
|
|
13
|
+
getSummary() {
|
|
14
|
+
return this.#summary;
|
|
15
|
+
}
|
|
16
|
+
getTopology() {
|
|
17
|
+
return this.#topology;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
class SerialTopology {
|
|
21
|
+
#chunks;
|
|
22
|
+
#fragmentGroups;
|
|
23
|
+
#readingEdges;
|
|
24
|
+
#serialId;
|
|
25
|
+
#snakeChunks;
|
|
26
|
+
#snakeEdges;
|
|
27
|
+
#snakes;
|
|
28
|
+
constructor(document, serialId) {
|
|
29
|
+
this.#chunks = document.chunks;
|
|
30
|
+
this.#fragmentGroups = document.fragmentGroups;
|
|
31
|
+
this.#readingEdges = document.readingEdges;
|
|
32
|
+
this.#serialId = serialId;
|
|
33
|
+
this.#snakeChunks = document.snakeChunks;
|
|
34
|
+
this.#snakeEdges = document.snakeEdges;
|
|
35
|
+
this.#snakes = document.snakes;
|
|
36
|
+
}
|
|
37
|
+
async listChunks() {
|
|
38
|
+
return await this.#chunks.listBySerial(this.#serialId);
|
|
39
|
+
}
|
|
40
|
+
async listEdges() {
|
|
41
|
+
return await this.#readingEdges.listBySerial(this.#serialId);
|
|
42
|
+
}
|
|
43
|
+
async listGroups() {
|
|
44
|
+
return await this.#fragmentGroups.listBySerial(this.#serialId);
|
|
45
|
+
}
|
|
46
|
+
async listSnakeChunks(snakeId) {
|
|
47
|
+
const snake = await this.#snakes.getById(snakeId);
|
|
48
|
+
if (snake === void 0 || snake.serialId !== this.#serialId) {
|
|
49
|
+
throw new Error(`Snake ${snakeId} does not belong to this serial`);
|
|
50
|
+
}
|
|
51
|
+
return await this.#snakeChunks.listBySnake(snakeId);
|
|
52
|
+
}
|
|
53
|
+
async listSnakeEdges() {
|
|
54
|
+
return await this.#snakeEdges.listBySerial(this.#serialId);
|
|
55
|
+
}
|
|
56
|
+
async listSnakes() {
|
|
57
|
+
return await this.#snakes.listBySerial(this.#serialId);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
Serial,
|
|
62
|
+
SerialTopology
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=topology.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/text/serial/topology.ts"],"sourcesContent":["import type {\n ChunkRecord,\n ReadingEdgeRecord,\n ReadonlyChunkStore,\n ReadonlyDocument,\n ReadonlyFragmentGroupStore,\n ReadonlyReadingEdgeStore,\n ReadonlySnakeChunkStore,\n ReadonlySnakeEdgeStore,\n ReadonlySnakeStore,\n SentenceGroupRecord,\n SnakeChunkRecord,\n SnakeEdgeRecord,\n SnakeRecord,\n} from \"../../document/index.js\";\n\nexport class Serial {\n readonly #id: number;\n readonly #summary: string;\n readonly #topology: SerialTopology;\n\n public constructor(\n document: ReadonlyDocument,\n serialId: number,\n summary: string,\n ) {\n this.#id = serialId;\n this.#summary = summary;\n this.#topology = new SerialTopology(document, serialId);\n }\n\n public get id(): number {\n return this.#id;\n }\n\n public getSummary(): string {\n return this.#summary;\n }\n\n public getTopology(): SerialTopology {\n return this.#topology;\n }\n}\n\nexport class SerialTopology {\n readonly #chunks: ReadonlyChunkStore;\n readonly #fragmentGroups: ReadonlyFragmentGroupStore;\n readonly #readingEdges: ReadonlyReadingEdgeStore;\n readonly #serialId: number;\n readonly #snakeChunks: ReadonlySnakeChunkStore;\n readonly #snakeEdges: ReadonlySnakeEdgeStore;\n readonly #snakes: ReadonlySnakeStore;\n\n public constructor(document: ReadonlyDocument, serialId: number) {\n this.#chunks = document.chunks;\n this.#fragmentGroups = document.fragmentGroups;\n this.#readingEdges = document.readingEdges;\n this.#serialId = serialId;\n this.#snakeChunks = document.snakeChunks;\n this.#snakeEdges = document.snakeEdges;\n this.#snakes = document.snakes;\n }\n\n public async listChunks(): Promise<readonly ChunkRecord[]> {\n return await this.#chunks.listBySerial(this.#serialId);\n }\n\n public async listEdges(): Promise<readonly ReadingEdgeRecord[]> {\n return await this.#readingEdges.listBySerial(this.#serialId);\n }\n\n public async listGroups(): Promise<readonly SentenceGroupRecord[]> {\n return await this.#fragmentGroups.listBySerial(this.#serialId);\n }\n\n public async listSnakeChunks(\n snakeId: number,\n ): Promise<readonly SnakeChunkRecord[]> {\n const snake = await this.#snakes.getById(snakeId);\n if (snake === undefined || snake.serialId !== this.#serialId) {\n throw new Error(`Snake ${snakeId} does not belong to this serial`);\n }\n return await this.#snakeChunks.listBySnake(snakeId);\n }\n\n public async listSnakeEdges(): Promise<readonly SnakeEdgeRecord[]> {\n return await this.#snakeEdges.listBySerial(this.#serialId);\n }\n\n public async listSnakes(): Promise<readonly SnakeRecord[]> {\n return await this.#snakes.listBySerial(this.#serialId);\n }\n}\n"],"mappings":"AAgBO,MAAM,OAAO;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EAEF,YACL,UACA,UACA,SACA;AACA,SAAK,MAAM;AACX,SAAK,WAAW;AAChB,SAAK,YAAY,IAAI,eAAe,UAAU,QAAQ;AAAA,EACxD;AAAA,EAEA,IAAW,KAAa;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,aAAqB;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEO,cAA8B;AACnC,WAAO,KAAK;AAAA,EACd;AACF;AAEO,MAAM,eAAe;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEF,YAAY,UAA4B,UAAkB;AAC/D,SAAK,UAAU,SAAS;AACxB,SAAK,kBAAkB,SAAS;AAChC,SAAK,gBAAgB,SAAS;AAC9B,SAAK,YAAY;AACjB,SAAK,eAAe,SAAS;AAC7B,SAAK,cAAc,SAAS;AAC5B,SAAK,UAAU,SAAS;AAAA,EAC1B;AAAA,EAEA,MAAa,aAA8C;AACzD,WAAO,MAAM,KAAK,QAAQ,aAAa,KAAK,SAAS;AAAA,EACvD;AAAA,EAEA,MAAa,YAAmD;AAC9D,WAAO,MAAM,KAAK,cAAc,aAAa,KAAK,SAAS;AAAA,EAC7D;AAAA,EAEA,MAAa,aAAsD;AACjE,WAAO,MAAM,KAAK,gBAAgB,aAAa,KAAK,SAAS;AAAA,EAC/D;AAAA,EAEA,MAAa,gBACX,SACsC;AACtC,UAAM,QAAQ,MAAM,KAAK,QAAQ,QAAQ,OAAO;AAChD,QAAI,UAAU,UAAa,MAAM,aAAa,KAAK,WAAW;AAC5D,YAAM,IAAI,MAAM,SAAS,OAAO,iCAAiC;AAAA,IACnE;AACA,WAAO,MAAM,KAAK,aAAa,YAAY,OAAO;AAAA,EACpD;AAAA,EAEA,MAAa,iBAAsD;AACjE,WAAO,MAAM,KAAK,YAAY,aAAa,KAAK,SAAS;AAAA,EAC3D;AAAA,EAEA,MAAa,aAA8C;AACzD,WAAO,MAAM,KAAK,QAAQ,aAAa,KAAK,SAAS;AAAA,EACvD;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/text/source/epub/archive.ts"],"sourcesContent":["import { createHash } from \"crypto\";\nimport { posix } from \"path\";\nimport { PassThrough, type Readable } from \"stream\";\nimport type { Entry, ZipFile } from \"yauzl\";\nimport { open } from \"yauzl\";\n\nexport class EpubArchive {\n readonly #path: string;\n readonly #zipFile: ZipFile;\n readonly #entries: ReadonlyMap<string, Entry>;\n #closed = false;\n\n public constructor(\n path: string,\n zipFile: ZipFile,\n entries: ReadonlyMap<string, Entry>,\n ) {\n this.#path = path;\n this.#zipFile = zipFile;\n this.#entries = entries;\n }\n\n public static async open(path: string): Promise<EpubArchive> {\n const zipFile = await openZipFile(path);\n const entries = await indexEntries(zipFile);\n\n return new EpubArchive(path, zipFile, entries);\n }\n\n public close(): Promise<void> {\n if (this.#closed) {\n return Promise.resolve();\n }\n\n this.#closed = true;\n this.#zipFile.close();\n\n return Promise.resolve();\n }\n\n public hasEntry(path: string): boolean {\n return this.#entries.has(normalizeArchivePath(path));\n }\n\n public listEntries(): readonly string[] {\n return [...this.#entries.keys()];\n }\n\n public async openReadStream(path: string): Promise<Readable> {\n const entry = this.#getEntry(path);\n\n return await openEntryStream(this.#zipFile, entry);\n }\n\n public async readText(path: string): Promise<string> {\n const stream = await this.openReadStream(path);\n return (await readStreamToBuffer(stream)).toString(\"utf8\");\n }\n\n public async readBuffer(path: string): Promise<Buffer> {\n const stream = await this.openReadStream(path);\n return await readStreamToBuffer(stream);\n }\n\n public resolveRelativePath(basePath: string, href: string): string {\n const normalizedHref = normalizeHref(href);\n if (normalizedHref === \"\") {\n throw new Error(`Invalid EPUB href: ${href}`);\n }\n\n return normalizeArchivePath(\n posix.join(posix.dirname(normalizeArchivePath(basePath)), normalizedHref),\n );\n }\n\n public createSectionId(path: string, fragment?: string): string {\n const normalizedPath = normalizeArchivePath(path);\n\n if (fragment === undefined || fragment === \"\") {\n return normalizedPath;\n }\n\n return `${normalizedPath}#${fragment}`;\n }\n\n public createSyntheticSectionId(path: string, title?: string): string {\n const normalizedPath = normalizeArchivePath(path);\n const hash = createHash(\"sha1\")\n .update(`${normalizedPath}:${title ?? \"\"}`)\n .digest(\"hex\")\n .slice(0, 10);\n\n return `toc:${hash}`;\n }\n\n public get path(): string {\n return this.#path;\n }\n\n #getEntry(path: string): Entry {\n const normalizedPath = normalizeArchivePath(path);\n const entry = this.#entries.get(normalizedPath);\n\n if (entry === undefined) {\n throw new Error(`EPUB entry does not exist: ${normalizedPath}`);\n }\n\n return entry;\n }\n}\n\nexport function normalizeArchivePath(path: string): string {\n const normalized = path.replaceAll(\"\\\\\", \"/\").trim();\n const withoutFragment = normalized.startsWith(\"/\")\n ? normalized.slice(1)\n : normalized;\n\n return posix\n .normalize(withoutFragment)\n .replace(/^(\\.\\/)+/, \"\")\n .replace(/^\\/+/, \"\");\n}\n\nexport function normalizeHref(href: string): string {\n const [path] = href.split(\"#\", 1);\n\n return normalizeArchivePath(path ?? \"\");\n}\n\nexport function normalizeFragment(\n fragment: string | undefined,\n): string | undefined {\n if (fragment === undefined) {\n return undefined;\n }\n\n const normalized = fragment.startsWith(\"#\") ? fragment.slice(1) : fragment;\n\n return normalized === \"\" ? undefined : normalized;\n}\n\nexport function splitHref(href: string): {\n readonly path: string;\n readonly fragment: string | undefined;\n} {\n const [pathPart, fragmentPart] = href.split(\"#\", 2);\n\n return {\n path: normalizeArchivePath(pathPart ?? \"\"),\n fragment: normalizeFragment(fragmentPart),\n };\n}\n\nasync function openZipFile(path: string): Promise<ZipFile> {\n return await new Promise((resolve, reject) => {\n open(path, { autoClose: false, lazyEntries: true }, (error, zipFile) => {\n if (error !== null || zipFile === undefined) {\n reject(error ?? new Error(`Cannot open EPUB archive: ${path}`));\n return;\n }\n\n resolve(zipFile);\n });\n });\n}\n\nasync function indexEntries(\n zipFile: ZipFile,\n): Promise<ReadonlyMap<string, Entry>> {\n return await new Promise((resolve, reject) => {\n const entries = new Map<string, Entry>();\n\n zipFile.on(\"entry\", (entry: Entry) => {\n if (entry.fileName.endsWith(\"/\")) {\n zipFile.readEntry();\n return;\n }\n\n entries.set(normalizeArchivePath(entry.fileName), entry);\n zipFile.readEntry();\n });\n zipFile.once(\"end\", () => {\n resolve(entries);\n });\n zipFile.once(\"error\", (error: Error) => {\n reject(error);\n });\n\n zipFile.readEntry();\n });\n}\n\nfunction toBuffer(chunk: unknown): Buffer {\n if (Buffer.isBuffer(chunk)) {\n return chunk;\n }\n\n if (typeof chunk === \"string\") {\n return Buffer.from(chunk, \"utf8\");\n }\n\n throw new Error(\"Unexpected ZIP stream chunk type\");\n}\n\nasync function readStreamToBuffer(stream: Readable): Promise<Buffer> {\n return await new Promise((resolve, reject) => {\n const chunks: Buffer[] = [];\n\n stream.on(\"data\", (chunk: unknown) => {\n chunks.push(toBuffer(chunk));\n });\n stream.once(\"end\", () => {\n resolve(Buffer.concat(chunks));\n });\n stream.once(\"error\", (error: Error) => {\n reject(error);\n });\n stream.resume();\n });\n}\n\nasync function openEntryStream(\n zipFile: ZipFile,\n entry: Entry,\n): Promise<Readable> {\n return await new Promise((resolve, reject) => {\n zipFile.openReadStream(entry, (error, stream) => {\n if (error !== null || stream === undefined) {\n reject(error ?? new Error(`Cannot open EPUB entry: ${entry.fileName}`));\n return;\n }\n\n resolve(normalizeEntryStream(stream));\n });\n });\n}\n\nfunction normalizeEntryStream(stream: Readable): Readable {\n const normalized = new PassThrough();\n\n stream.once(\"error\", (error: Error) => {\n normalized.destroy(error);\n });\n normalized.once(\"close\", () => {\n stream.unpipe(normalized);\n\n if (!stream.destroyed) {\n stream.destroy();\n }\n });\n\n stream.pipe(normalized);\n\n return normalized;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/text/source/epub/content.ts"],"sourcesContent":["import type { Readable } from \"stream\";\n\nimport { Parser } from \"htmlparser2\";\n\nimport type { SourceTextStream } from \"../types.js\";\nimport type { EpubArchive } from \"./archive.js\";\n\nconst BLOCK_TAGS = new Set([\n \"address\",\n \"article\",\n \"aside\",\n \"blockquote\",\n \"br\",\n \"dd\",\n \"div\",\n \"dl\",\n \"dt\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"header\",\n \"hr\",\n \"li\",\n \"main\",\n \"nav\",\n \"ol\",\n \"p\",\n \"pre\",\n \"section\",\n \"table\",\n \"td\",\n \"th\",\n \"tr\",\n \"ul\",\n]);\n\nconst SKIPPED_TAGS = new Set([\"script\", \"style\"]);\n\nexport interface EpubSectionTarget {\n readonly id: string;\n readonly path: string;\n readonly fragment: string | undefined;\n}\n\nexport interface EpubSectionAnalysis {\n readonly hasContent: boolean;\n readonly wordsCount: number;\n}\n\nexport class EpubContentLoader {\n readonly #archive: EpubArchive;\n readonly #targetsBySectionId: ReadonlyMap<\n string,\n {\n readonly path: string;\n readonly targets: readonly EpubSectionTarget[];\n }\n >;\n\n public constructor(\n archive: EpubArchive,\n targetsByPath: ReadonlyMap<string, readonly EpubSectionTarget[]>,\n ) {\n this.#archive = archive;\n this.#targetsBySectionId = createTargetsBySectionId(targetsByPath);\n }\n\n public async openSection(sectionId: string): Promise<SourceTextStream> {\n const target = this.#targetsBySectionId.get(sectionId);\n\n if (target === undefined) {\n return [];\n }\n\n const sections = await this.#parseSections(target.path, target.targets);\n\n return [sections.get(sectionId) ?? \"\"];\n }\n\n async #parseSections(\n path: string,\n targets: readonly EpubSectionTarget[],\n ): Promise<ReadonlyMap<string, string>> {\n const stream = await this.#archive.openReadStream(path);\n stream.setEncoding(\"utf8\");\n\n return await parseHtmlSections(stream, targets);\n }\n}\n\nexport async function analyzeSectionTargets(\n archive: Pick<EpubArchive, \"openReadStream\">,\n targetsByPath: ReadonlyMap<string, readonly EpubSectionTarget[]>,\n): Promise<ReadonlyMap<string, EpubSectionAnalysis>> {\n const analyses = new Map<string, EpubSectionAnalysis>();\n\n for (const [path, targets] of targetsByPath.entries()) {\n const stream = await archive.openReadStream(path);\n stream.setEncoding(\"utf8\");\n const sections = await parseHtmlSectionTexts(stream, targets);\n\n for (const target of targets) {\n const text = sections.get(target.id) ?? \"\";\n\n analyses.set(target.id, {\n hasContent: text.trim() !== \"\",\n wordsCount: countWords(text),\n });\n }\n }\n\n return analyses;\n}\n\nfunction createTargetsBySectionId(\n targetsByPath: ReadonlyMap<string, readonly EpubSectionTarget[]>,\n): ReadonlyMap<\n string,\n {\n readonly path: string;\n readonly targets: readonly EpubSectionTarget[];\n }\n> {\n const targetsBySectionId = new Map<\n string,\n {\n readonly path: string;\n readonly targets: readonly EpubSectionTarget[];\n }\n >();\n\n for (const [path, targets] of targetsByPath.entries()) {\n for (const target of targets) {\n targetsBySectionId.set(target.id, { path, targets });\n }\n }\n\n return targetsBySectionId;\n}\n\nasync function parseHtmlSections(\n stream: Readable,\n targets: readonly EpubSectionTarget[],\n): Promise<ReadonlyMap<string, string>> {\n return await parseHtmlSectionTexts(stream, targets);\n}\n\nasync function parseHtmlSectionTexts(\n stream: Readable,\n targets: readonly EpubSectionTarget[],\n): Promise<ReadonlyMap<string, string>> {\n const fragments = new Map<string, number>();\n const sections = new Map<string, string>();\n const orderedTargets = [...targets];\n const buffers = orderedTargets.map(() => \"\");\n const rootSectionIndex =\n orderedTargets[0]?.fragment === undefined && orderedTargets[0] !== undefined\n ? 0\n : -1;\n let currentIndex = rootSectionIndex;\n let skippedTagDepth = 0;\n\n orderedTargets.forEach((target, index) => {\n sections.set(target.id, \"\");\n if (target.fragment !== undefined && !fragments.has(target.fragment)) {\n fragments.set(target.fragment, index);\n }\n });\n\n const parser = new Parser(\n {\n onopentag(name, attributes) {\n const tagName = name.toLowerCase();\n if (SKIPPED_TAGS.has(tagName)) {\n skippedTagDepth += 1;\n return;\n }\n\n const anchorId = attributes.id ?? attributes[\"xml:id\"];\n if (anchorId !== undefined) {\n const nextIndex = fragments.get(anchorId);\n if (nextIndex !== undefined && nextIndex > currentIndex) {\n currentIndex = nextIndex;\n }\n }\n\n if (tagName === \"br\") {\n appendText(buffers, currentIndex, \"\\n\");\n }\n },\n ontext(text) {\n if (skippedTagDepth > 0) {\n return;\n }\n\n appendText(buffers, currentIndex, text);\n },\n onclosetag(name) {\n const tagName = name.toLowerCase();\n if (SKIPPED_TAGS.has(tagName)) {\n skippedTagDepth = Math.max(0, skippedTagDepth - 1);\n return;\n }\n\n if (BLOCK_TAGS.has(tagName)) {\n appendText(buffers, currentIndex, \"\\n\\n\");\n }\n },\n },\n { decodeEntities: true },\n );\n\n for await (const chunk of stream as AsyncIterable<unknown>) {\n parser.write(toTextChunk(chunk));\n }\n\n parser.end();\n\n orderedTargets.forEach((target, index) => {\n sections.set(target.id, normalizeSectionText(buffers[index] ?? \"\"));\n });\n\n return sections;\n}\n\nfunction appendText(\n buffers: string[],\n currentIndex: number,\n text: string,\n): void {\n if (currentIndex < 0 || currentIndex >= buffers.length) {\n return;\n }\n\n buffers[currentIndex] += text;\n}\n\nfunction normalizeSectionText(text: string): string {\n return text\n .replace(/\\r\\n/gu, \"\\n\")\n .replace(/\\n{3,}/gu, \"\\n\\n\")\n .trim();\n}\n\nfunction toTextChunk(chunk: unknown): string {\n if (typeof chunk === \"string\") {\n return chunk;\n }\n\n if (Buffer.isBuffer(chunk)) {\n return chunk.toString(\"utf8\");\n }\n\n throw new Error(\"Unexpected HTML stream chunk type\");\n}\n\nfunction countWords(text: string): number {\n return [...createWordSegmenter().segment(text)].filter(\n (segment) => segment.isWordLike,\n ).length;\n}\n\nlet WORD_SEGMENTER: Intl.Segmenter | undefined;\n\nfunction createWordSegmenter(): Intl.Segmenter {\n if (WORD_SEGMENTER === undefined) {\n WORD_SEGMENTER = new Intl.Segmenter(undefined, {\n granularity: \"word\",\n });\n }\n\n return WORD_SEGMENTER;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/text/source/epub/document.ts"],"sourcesContent":["import type { SourceAdapter, SourceDocument } from \"../adapter.js\";\nimport type { SourceAsset, SourceSection, SourceTextStream } from \"../types.js\";\nimport { normalizeFragment } from \"./archive.js\";\nimport { EpubArchive } from \"./archive.js\";\nimport {\n analyzeSectionTargets,\n EpubContentLoader,\n type EpubSectionAnalysis,\n type EpubSectionTarget,\n} from \"./content.js\";\nimport { readEpubNavigation, type EpubNavigationItem } from \"./navigation.js\";\nimport { readEpubPackage, type EpubPackageData } from \"./package.js\";\n\ninterface SectionDefinition {\n readonly hasContent: boolean;\n readonly id: string;\n readonly title: string | undefined;\n readonly path: string | undefined;\n readonly fragment: string | undefined;\n readonly wordsCount: number;\n readonly children: readonly SectionDefinition[];\n}\n\nclass EpubSourceSection implements SourceSection {\n readonly #document: EpubSourceDocument;\n readonly #definition: SectionDefinition;\n\n public constructor(\n document: EpubSourceDocument,\n definition: SectionDefinition,\n ) {\n this.#document = document;\n this.#definition = definition;\n }\n\n public get id(): string {\n return this.#definition.id;\n }\n\n public get hasContent(): boolean {\n return this.#definition.hasContent;\n }\n\n public get title(): string | undefined {\n return this.#definition.title;\n }\n\n public get wordsCount(): number {\n return this.#definition.wordsCount;\n }\n\n public get children(): readonly SourceSection[] {\n return this.#definition.children.map(\n (child) => new EpubSourceSection(this.#document, child),\n );\n }\n\n public async open(): Promise<SourceTextStream> {\n return await this.#document.openSection(this.#definition.id);\n }\n}\n\nexport class EpubSourceDocument implements SourceDocument {\n readonly #packageData: EpubPackageData;\n readonly #cover: SourceAsset | undefined;\n readonly #sections: readonly SectionDefinition[];\n readonly #contentLoader: EpubContentLoader;\n\n public constructor(\n packageData: EpubPackageData,\n cover: SourceAsset | undefined,\n sections: readonly SectionDefinition[],\n contentLoader: EpubContentLoader,\n ) {\n this.#packageData = packageData;\n this.#cover = cover;\n this.#sections = sections;\n this.#contentLoader = contentLoader;\n }\n\n public static async open(archive: EpubArchive): Promise<EpubSourceDocument> {\n assertArchiveIsSupported(archive);\n const packageData = await readEpubPackage(archive);\n const navigation = await readEpubNavigation(archive, packageData);\n const rawSections = buildSections(archive, navigation);\n const targetsByPath = groupTargetsByPath(rawSections);\n const sectionAnalyses = await analyzeSectionTargets(archive, targetsByPath);\n const sections = hydrateSectionAnalyses(rawSections, sectionAnalyses);\n const cover = await readCoverAsset(archive, packageData);\n\n return new EpubSourceDocument(\n packageData,\n cover,\n sections,\n new EpubContentLoader(archive, targetsByPath),\n );\n }\n\n public readMeta() {\n return Promise.resolve(this.#packageData.metadata);\n }\n\n public readCover() {\n return Promise.resolve(this.#cover);\n }\n\n public readSections() {\n return Promise.resolve(\n this.#sections.map((section) => new EpubSourceSection(this, section)),\n );\n }\n\n public async openSection(sectionId: string): Promise<SourceTextStream> {\n return await this.#contentLoader.openSection(sectionId);\n }\n}\n\nexport class EpubSourceAdapter implements SourceAdapter {\n public get format() {\n return \"epub\" as const;\n }\n\n public async openSession<T>(\n path: string,\n operation: (document: SourceDocument) => Promise<T>,\n ): Promise<T> {\n const archive = await EpubArchive.open(path);\n\n try {\n const document = await EpubSourceDocument.open(archive);\n\n return await operation(document);\n } finally {\n await archive.close();\n }\n }\n}\n\nexport const EPUB_SOURCE_ADAPTER = new EpubSourceAdapter();\n\nfunction assertArchiveIsSupported(archive: EpubArchive): void {\n if (!archive.hasEntry(\"META-INF/encryption.xml\")) {\n return;\n }\n\n throw new Error(\n \"Encrypted EPUB is not supported: found META-INF/encryption.xml.\",\n );\n}\n\nasync function readCoverAsset(\n archive: EpubArchive,\n packageData: EpubPackageData,\n): Promise<SourceAsset | undefined> {\n if (\n packageData.coverPath === undefined ||\n packageData.coverMediaType === undefined\n ) {\n return undefined;\n }\n\n return {\n path: packageData.coverPath,\n mediaType: packageData.coverMediaType,\n data: await archive.readBuffer(packageData.coverPath),\n };\n}\n\nfunction buildSections(\n archive: EpubArchive,\n items: readonly EpubNavigationItem[],\n): readonly SectionDefinition[] {\n const idCounts = new Map<string, number>();\n\n return items.map((item, index) =>\n buildSection(archive, item, [index], idCounts),\n );\n}\n\nfunction buildSection(\n archive: EpubArchive,\n item: EpubNavigationItem,\n indexPath: readonly number[],\n idCounts: Map<string, number>,\n): SectionDefinition {\n const fragment = normalizeFragment(item.fragment);\n const baseId =\n item.path === undefined\n ? `toc:${indexPath.join(\".\")}`\n : archive.createSectionId(item.path, fragment);\n const id = createUniqueId(baseId, idCounts);\n\n return {\n hasContent: item.path !== undefined,\n id,\n title: item.title,\n path: item.path,\n fragment,\n wordsCount: 0,\n children: item.children.map((child, index) =>\n buildSection(archive, child, [...indexPath, index], idCounts),\n ),\n };\n}\n\nfunction hydrateSectionAnalyses(\n sections: readonly SectionDefinition[],\n sectionAnalyses: ReadonlyMap<string, EpubSectionAnalysis>,\n): readonly SectionDefinition[] {\n return sections.map((section) => {\n const analysis = sectionAnalyses.get(section.id);\n\n return {\n ...section,\n hasContent: analysis?.hasContent ?? false,\n wordsCount: analysis?.wordsCount ?? 0,\n children: hydrateSectionAnalyses(section.children, sectionAnalyses),\n };\n });\n}\n\nfunction createUniqueId(baseId: string, idCounts: Map<string, number>): string {\n const currentCount = idCounts.get(baseId) ?? 0;\n idCounts.set(baseId, currentCount + 1);\n\n return currentCount === 0 ? baseId : `${baseId}~${currentCount + 1}`;\n}\n\nfunction groupTargetsByPath(\n sections: readonly SectionDefinition[],\n): ReadonlyMap<string, readonly EpubSectionTarget[]> {\n const targetsByPath = new Map<string, EpubSectionTarget[]>();\n\n for (const section of flattenSections(sections)) {\n if (section.path === undefined) {\n continue;\n }\n\n const targets = targetsByPath.get(section.path) ?? [];\n targets.push({\n id: section.id,\n path: section.path,\n fragment: section.fragment,\n });\n targetsByPath.set(section.path, targets);\n }\n\n return targetsByPath;\n}\n\nfunction flattenSections(\n sections: readonly SectionDefinition[],\n): readonly SectionDefinition[] {\n const flattened: SectionDefinition[] = [];\n\n for (const section of sections) {\n flattened.push(section);\n flattened.push(...flattenSections(section.children));\n }\n\n return flattened;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/text/source/epub/index.ts"],"sourcesContent":["export { EpubSourceAdapter, EPUB_SOURCE_ADAPTER } from \"./document.js\";\n"],"mappings":"AAAA,SAAS,mBAAmB,2BAA2B;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/text/source/epub/navigation.ts"],"sourcesContent":["import { basename, extname, posix } from \"path\";\n\nimport { parseDocument } from \"htmlparser2\";\n\nimport { splitHref } from \"./archive.js\";\nimport type { EpubArchive } from \"./archive.js\";\nimport { type EpubPackageData } from \"./package.js\";\nimport {\n findChild,\n findChildren,\n getAttribute,\n getDescendantText,\n parseXml,\n type XmlElement,\n} from \"./xml.js\";\n\nconst NON_CONTENT_FILE_NAMES = new Set([\n \"toc.xhtml\",\n \"nav.xhtml\",\n \"contents.xhtml\",\n \"tableofcontents.xhtml\",\n \"cover.xhtml\",\n \"titlepage.xhtml\",\n]);\n\ninterface HtmlNode {\n readonly type?: string;\n readonly name?: string;\n readonly data?: string;\n readonly attribs?: Readonly<Record<string, string>>;\n readonly children?: readonly HtmlNode[];\n}\n\nexport interface EpubNavigationItem {\n readonly title: string | undefined;\n readonly path: string | undefined;\n readonly fragment: string | undefined;\n readonly children: readonly EpubNavigationItem[];\n}\n\nexport async function readEpubNavigation(\n archive: EpubArchive,\n packageData: EpubPackageData,\n): Promise<readonly EpubNavigationItem[]> {\n const navigation =\n (await readNavDocument(archive, packageData)) ??\n (await readNcxDocument(archive, packageData)) ??\n [];\n\n if (navigation.length === 0) {\n return buildSpineNavigation(packageData, new Set());\n }\n\n const referencedPaths = collectReferencedPaths(navigation);\n const extras = buildSpineNavigation(packageData, referencedPaths);\n\n return extras.length === 0 ? navigation : [...navigation, ...extras];\n}\n\nasync function readNavDocument(\n archive: EpubArchive,\n packageData: EpubPackageData,\n): Promise<readonly EpubNavigationItem[] | undefined> {\n if (packageData.navPath === undefined) {\n return undefined;\n }\n\n const document = parseDocument(await archive.readText(packageData.navPath), {\n decodeEntities: true,\n }) as HtmlNode;\n const nav = findFirstHtmlElement(document, (element) => {\n if (getHtmlTagName(element) !== \"nav\") {\n return false;\n }\n\n const type = (element.attribs?.[\"epub:type\"] ?? element.attribs?.type ?? \"\")\n .split(/\\s+/u)\n .map((value) => value.trim().toLowerCase());\n\n return type.includes(\"toc\");\n });\n\n if (nav === undefined) {\n return undefined;\n }\n\n const ol = findFirstHtmlElement(\n nav,\n (element) => getHtmlTagName(element) === \"ol\",\n );\n if (ol === undefined) {\n return undefined;\n }\n\n const items = getHtmlElementChildren(ol)\n .filter((child) => getHtmlTagName(child) === \"li\")\n .map((li) => parseNavListItem(archive, packageData.navPath!, li))\n .filter((item): item is EpubNavigationItem => item !== undefined);\n\n return items.length === 0 ? undefined : items;\n}\n\nasync function readNcxDocument(\n archive: EpubArchive,\n packageData: EpubPackageData,\n): Promise<readonly EpubNavigationItem[] | undefined> {\n if (packageData.ncxPath === undefined) {\n return undefined;\n }\n\n const root = parseXml(await archive.readText(packageData.ncxPath));\n const navMap = findChild(root, \"navMap\");\n if (navMap === undefined) {\n return undefined;\n }\n\n const items = findChildren(navMap, \"navPoint\")\n .map((navPoint) =>\n parseNcxNavPoint(archive, packageData.ncxPath!, navPoint),\n )\n .filter((item): item is EpubNavigationItem => item !== undefined);\n\n return items.length === 0 ? undefined : items;\n}\n\nfunction parseNavListItem(\n archive: EpubArchive,\n navPath: string,\n item: HtmlNode,\n): EpubNavigationItem | undefined {\n const label = findHtmlLabelNode(item);\n const title =\n label === undefined ? undefined : normalizeText(collectHtmlText(label));\n const href =\n label !== undefined && getHtmlTagName(label) === \"a\"\n ? label.attribs?.href\n : undefined;\n const resolved = resolveHtmlHref(archive, navPath, href);\n const children = getHtmlElementChildren(item)\n .filter((child) => getHtmlTagName(child) === \"ol\")\n .flatMap((ol) => getHtmlElementChildren(ol))\n .filter((child) => getHtmlTagName(child) === \"li\")\n .map((li) => parseNavListItem(archive, navPath, li))\n .filter((child): child is EpubNavigationItem => child !== undefined);\n\n if (\n title === undefined &&\n resolved.path === undefined &&\n children.length === 0\n ) {\n return undefined;\n }\n\n return {\n title,\n path: resolved.path,\n fragment: resolved.fragment,\n children,\n };\n}\n\nfunction parseNcxNavPoint(\n archive: EpubArchive,\n ncxPath: string,\n navPoint: XmlElement,\n): EpubNavigationItem | undefined {\n const navLabel = findChild(navPoint, \"navLabel\");\n const textElement =\n navLabel === undefined ? undefined : findChild(navLabel, \"text\");\n const title =\n textElement === undefined\n ? undefined\n : normalizeText(getDescendantText(textElement));\n const contentElement = findChild(navPoint, \"content\");\n const resolved = resolveXmlHref(\n archive,\n ncxPath,\n getAttribute(contentElement ?? navPoint, \"src\"),\n );\n const children = findChildren(navPoint, \"navPoint\")\n .map((child) => parseNcxNavPoint(archive, ncxPath, child))\n .filter((child): child is EpubNavigationItem => child !== undefined);\n\n if (\n title === undefined &&\n resolved.path === undefined &&\n children.length === 0\n ) {\n return undefined;\n }\n\n return {\n title,\n path: resolved.path,\n fragment: resolved.fragment,\n children,\n };\n}\n\nfunction buildSpineNavigation(\n packageData: EpubPackageData,\n referencedPaths: ReadonlySet<string>,\n): readonly EpubNavigationItem[] {\n return packageData.spine\n .filter(\n (item) => !isNonContentSpineItem(packageData, item.path, referencedPaths),\n )\n .filter((item) => !referencedPaths.has(item.path))\n .map((item) => ({\n title: getFallbackTitle(item.path),\n path: item.path,\n fragment: undefined,\n children: [],\n }));\n}\n\nfunction isNonContentSpineItem(\n packageData: EpubPackageData,\n path: string,\n referencedPaths: ReadonlySet<string>,\n): boolean {\n if (packageData.guideNonContentPaths.has(path)) {\n return true;\n }\n\n const lowerName = posix.basename(path).toLowerCase();\n if (packageData.navPath === path) {\n return true;\n }\n\n return NON_CONTENT_FILE_NAMES.has(lowerName) && !referencedPaths.has(path);\n}\n\nfunction collectReferencedPaths(\n items: readonly EpubNavigationItem[],\n): ReadonlySet<string> {\n const paths = new Set<string>();\n\n for (const item of items) {\n if (item.path !== undefined) {\n paths.add(item.path);\n }\n\n for (const childPath of collectReferencedPaths(item.children)) {\n paths.add(childPath);\n }\n }\n\n return paths;\n}\n\nfunction resolveHtmlHref(\n archive: EpubArchive,\n basePath: string,\n href: string | undefined,\n): {\n readonly path: string | undefined;\n readonly fragment: string | undefined;\n} {\n if (href === undefined || href.trim() === \"\") {\n return { path: undefined, fragment: undefined };\n }\n\n const { path, fragment } = splitHref(href);\n\n return {\n path: path === \"\" ? undefined : archive.resolveRelativePath(basePath, path),\n fragment,\n };\n}\n\nfunction resolveXmlHref(\n archive: EpubArchive,\n basePath: string,\n href: string | undefined,\n): {\n readonly path: string | undefined;\n readonly fragment: string | undefined;\n} {\n if (href === undefined || href.trim() === \"\") {\n return { path: undefined, fragment: undefined };\n }\n\n const { path, fragment } = splitHref(href);\n\n return {\n path: path === \"\" ? undefined : archive.resolveRelativePath(basePath, path),\n fragment,\n };\n}\n\nfunction findFirstHtmlElement(\n node: HtmlNode,\n predicate: (element: HtmlNode) => boolean,\n): HtmlNode | undefined {\n if (isHtmlElement(node) && predicate(node)) {\n return node;\n }\n\n for (const child of node.children ?? []) {\n const found = findFirstHtmlElement(child, predicate);\n if (found !== undefined) {\n return found;\n }\n }\n\n return undefined;\n}\n\nfunction findHtmlLabelNode(node: HtmlNode): HtmlNode | undefined {\n for (const child of getHtmlElementChildren(node)) {\n const tagName = getHtmlTagName(child);\n if (tagName === \"a\" || tagName === \"span\") {\n return child;\n }\n }\n\n for (const child of getHtmlElementChildren(node)) {\n if (getHtmlTagName(child) === \"ol\") {\n continue;\n }\n\n const nested = findHtmlLabelNode(child);\n if (nested !== undefined) {\n return nested;\n }\n }\n\n return undefined;\n}\n\nfunction collectHtmlText(node: HtmlNode): string {\n if (node.type === \"text\") {\n return node.data ?? \"\";\n }\n\n return (node.children ?? []).map(collectHtmlText).join(\"\");\n}\n\nfunction getHtmlElementChildren(node: HtmlNode): readonly HtmlNode[] {\n return (node.children ?? []).filter(isHtmlElement);\n}\n\nfunction isHtmlElement(node: HtmlNode): boolean {\n return node.type === \"tag\" || node.type === \"script\" || node.type === \"style\";\n}\n\nfunction getHtmlTagName(node: HtmlNode): string | undefined {\n return node.name?.toLowerCase();\n}\n\nfunction getFallbackTitle(path: string): string | undefined {\n const stem = basename(path, extname(path)).trim();\n\n return stem === \"\" ? undefined : stem;\n}\n\nfunction normalizeText(text: string): string | undefined {\n const normalized = text.replace(/\\s+/gu, \" \").trim();\n\n return normalized === \"\" ? undefined : normalized;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/text/source/epub/package.ts"],"sourcesContent":["import { posix } from \"path\";\n\nimport { BOOK_META_VERSION, type BookMeta } from \"../meta.js\";\nimport { splitHref } from \"./archive.js\";\nimport type { EpubArchive } from \"./archive.js\";\nimport {\n findChild,\n findChildren,\n getAttribute,\n getDescendantText,\n getLocalName,\n parseXml,\n type XmlElement,\n} from \"./xml.js\";\n\nconst COVER_ITEM_IDS = [\"cover-image\", \"coverimg\", \"cover-img\", \"cover\"];\nconst GUIDE_NON_CONTENT_TYPES = new Set([\n \"cover\",\n \"titlepage\",\n \"other.titlepage\",\n]);\n\nexport interface EpubManifestItem {\n readonly id: string;\n readonly path: string;\n readonly mediaType: string;\n readonly properties: ReadonlySet<string>;\n}\n\nexport interface EpubSpineItem {\n readonly idref: string;\n readonly path: string;\n readonly mediaType: string;\n}\n\nexport interface EpubPackageData {\n readonly version: 2 | 3;\n readonly opfPath: string;\n readonly metadata: BookMeta;\n readonly manifest: ReadonlyMap<string, EpubManifestItem>;\n readonly manifestByPath: ReadonlyMap<string, EpubManifestItem>;\n readonly spine: readonly EpubSpineItem[];\n readonly navPath: string | undefined;\n readonly ncxPath: string | undefined;\n readonly coverPath: string | undefined;\n readonly coverMediaType: string | undefined;\n readonly guideNonContentPaths: ReadonlySet<string>;\n}\n\nexport async function readEpubPackage(\n archive: EpubArchive,\n): Promise<EpubPackageData> {\n const opfPath = await findOpfPath(archive);\n const opf = parseXml(await archive.readText(opfPath));\n const version = parsePackageVersion(getAttribute(opf, \"version\"));\n const metadataElement = findChild(opf, \"metadata\");\n const manifestElement = findChild(opf, \"manifest\");\n const spineElement = findChild(opf, \"spine\");\n const guideElement = findChild(opf, \"guide\");\n\n const manifest = buildManifest(archive, opfPath, manifestElement);\n const manifestByPath = new Map(\n [...manifest.values()].map((item) => [item.path, item]),\n );\n const spine = buildSpine(spineElement, manifest);\n const guideNonContentPaths = buildGuideNonContentPaths(\n archive,\n opfPath,\n guideElement,\n );\n const metadata = buildMetadata(metadataElement);\n const navPath = findNavPath(manifest);\n const ncxPath = findNcxPath(manifest, spineElement);\n const coverItem = findCoverItem(manifest, metadataElement);\n\n return {\n version,\n opfPath,\n metadata: {\n ...metadata,\n version: BOOK_META_VERSION,\n sourceFormat: \"epub\",\n },\n manifest,\n manifestByPath,\n spine,\n navPath,\n ncxPath,\n coverPath: coverItem?.path,\n coverMediaType: coverItem?.mediaType,\n guideNonContentPaths,\n };\n}\n\nasync function findOpfPath(archive: EpubArchive): Promise<string> {\n const container = parseXml(await archive.readText(\"META-INF/container.xml\"));\n const rootfiles = findChild(container, \"rootfiles\");\n const rootfile = rootfiles?.children.find(\n (child) => getLocalName(child.name) === \"rootfile\",\n );\n const fullPath =\n rootfile === undefined ? undefined : getAttribute(rootfile, \"full-path\");\n\n if (fullPath === undefined || fullPath.trim() === \"\") {\n throw new Error(\"EPUB container.xml does not contain an OPF rootfile\");\n }\n\n return fullPath;\n}\n\nfunction parsePackageVersion(version: string | undefined): 2 | 3 {\n return version?.trim().startsWith(\"3\") === true ? 3 : 2;\n}\n\nfunction buildMetadata(metadataElement: XmlElement | undefined): BookMeta {\n if (metadataElement === undefined) {\n return createEmptyMetadata();\n }\n\n const titles = readMetadataValues(metadataElement, \"title\");\n const creators = readMetadataValues(metadataElement, \"creator\");\n const languages = readMetadataValues(metadataElement, \"language\");\n const identifiers = readMetadataValues(metadataElement, \"identifier\");\n const publishers = readMetadataValues(metadataElement, \"publisher\");\n const dates = readMetadataValues(metadataElement, \"date\");\n const descriptions = readMetadataValues(metadataElement, \"description\");\n\n return {\n ...createEmptyMetadata(),\n title: titles[0] ?? null,\n authors: [...creators],\n language: languages[0] ?? null,\n identifier: identifiers[0] ?? null,\n publisher: publishers[0] ?? null,\n publishedAt: dates[0] ?? null,\n description: descriptions[0] ?? null,\n };\n}\n\nfunction createEmptyMetadata(): BookMeta {\n return {\n version: BOOK_META_VERSION,\n sourceFormat: \"epub\",\n title: null,\n authors: [],\n language: null,\n identifier: null,\n publisher: null,\n publishedAt: null,\n description: null,\n };\n}\n\nfunction readMetadataValues(\n metadataElement: XmlElement,\n localName: string,\n): readonly string[] {\n return metadataElement.children\n .filter((child) => getLocalName(child.name) === localName)\n .map((child) => normalizeText(getDescendantText(child)))\n .filter((value): value is string => value !== undefined);\n}\n\nfunction buildManifest(\n archive: EpubArchive,\n opfPath: string,\n manifestElement: XmlElement | undefined,\n): ReadonlyMap<string, EpubManifestItem> {\n const manifest = new Map<string, EpubManifestItem>();\n\n if (manifestElement === undefined) {\n return manifest;\n }\n\n for (const item of findChildren(manifestElement, \"item\")) {\n const id = getAttribute(item, \"id\");\n const href = getAttribute(item, \"href\");\n const mediaType = getAttribute(item, \"media-type\") ?? \"\";\n\n if (id === undefined || href === undefined) {\n continue;\n }\n\n manifest.set(id, {\n id,\n path: archive.resolveRelativePath(opfPath, href),\n mediaType,\n properties: new Set(\n (getAttribute(item, \"properties\") ?? \"\")\n .split(/\\s+/u)\n .map((value) => value.trim().toLowerCase())\n .filter((value) => value !== \"\"),\n ),\n });\n }\n\n return manifest;\n}\n\nfunction buildSpine(\n spineElement: XmlElement | undefined,\n manifest: ReadonlyMap<string, EpubManifestItem>,\n): readonly EpubSpineItem[] {\n if (spineElement === undefined) {\n return [];\n }\n\n return findChildren(spineElement, \"itemref\")\n .map((itemref) => getAttribute(itemref, \"idref\"))\n .filter((idref): idref is string => idref !== undefined)\n .map((idref) => {\n const item = manifest.get(idref);\n\n if (\n item === undefined ||\n (item.mediaType !== \"application/xhtml+xml\" &&\n item.mediaType !== \"text/html\")\n ) {\n return undefined;\n }\n\n return {\n idref,\n path: item.path,\n mediaType: item.mediaType,\n } satisfies EpubSpineItem;\n })\n .filter((item): item is EpubSpineItem => item !== undefined);\n}\n\nfunction buildGuideNonContentPaths(\n archive: EpubArchive,\n opfPath: string,\n guideElement: XmlElement | undefined,\n): ReadonlySet<string> {\n const paths = new Set<string>();\n\n if (guideElement === undefined) {\n return paths;\n }\n\n for (const reference of findChildren(guideElement, \"reference\")) {\n const type = (getAttribute(reference, \"type\") ?? \"\").trim().toLowerCase();\n if (!GUIDE_NON_CONTENT_TYPES.has(type)) {\n continue;\n }\n\n const href = getAttribute(reference, \"href\");\n if (href === undefined || href.trim() === \"\") {\n continue;\n }\n\n paths.add(archive.resolveRelativePath(opfPath, splitHref(href).path));\n }\n\n return paths;\n}\n\nfunction findNavPath(\n manifest: ReadonlyMap<string, EpubManifestItem>,\n): string | undefined {\n for (const item of manifest.values()) {\n if (item.properties.has(\"nav\")) {\n return item.path;\n }\n }\n\n return undefined;\n}\n\nfunction findNcxPath(\n manifest: ReadonlyMap<string, EpubManifestItem>,\n spineElement: XmlElement | undefined,\n): string | undefined {\n const tocId =\n spineElement === undefined ? undefined : getAttribute(spineElement, \"toc\");\n\n if (tocId !== undefined) {\n return manifest.get(tocId)?.path;\n }\n\n for (const item of manifest.values()) {\n if (item.mediaType === \"application/x-dtbncx+xml\") {\n return item.path;\n }\n }\n\n return undefined;\n}\n\nfunction findCoverItem(\n manifest: ReadonlyMap<string, EpubManifestItem>,\n metadataElement: XmlElement | undefined,\n): EpubManifestItem | undefined {\n for (const item of manifest.values()) {\n if (\n item.properties.has(\"cover-image\") &&\n item.mediaType.startsWith(\"image/\")\n ) {\n return item;\n }\n }\n\n const coverId = readCoverIdFromMetadata(metadataElement);\n if (coverId !== undefined) {\n const coverItem = manifest.get(coverId);\n if (coverItem?.mediaType.startsWith(\"image/\") === true) {\n return coverItem;\n }\n }\n\n for (const coverItemId of COVER_ITEM_IDS) {\n const coverItem = manifest.get(coverItemId);\n if (coverItem?.mediaType.startsWith(\"image/\") === true) {\n return coverItem;\n }\n }\n\n for (const item of manifest.values()) {\n if (\n item.mediaType.startsWith(\"image/\") &&\n posix.basename(item.path).toLowerCase().includes(\"cover\")\n ) {\n return item;\n }\n }\n\n return undefined;\n}\n\nfunction readCoverIdFromMetadata(\n metadataElement: XmlElement | undefined,\n): string | undefined {\n if (metadataElement === undefined) {\n return undefined;\n }\n\n for (const meta of findChildren(metadataElement, \"meta\")) {\n const name = (getAttribute(meta, \"name\") ?? \"\").trim().toLowerCase();\n if (name !== \"cover\") {\n continue;\n }\n\n const content = getAttribute(meta, \"content\");\n if (content !== undefined && content.trim() !== \"\") {\n return content.trim();\n }\n }\n\n return undefined;\n}\n\nfunction normalizeText(text: string): string | undefined {\n const normalized = text.replace(/\\s+/gu, \" \").trim();\n\n return normalized === \"\" ? undefined : normalized;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/text/source/epub/xml.ts"],"sourcesContent":["import { SaxesParser, type SaxesTagPlain } from \"saxes\";\n\nexport interface XmlElement {\n readonly name: string;\n readonly attributes: Readonly<Record<string, string>>;\n readonly children: readonly XmlElement[];\n readonly text: string;\n}\n\ninterface MutableXmlElement {\n readonly name: string;\n readonly attributes: Record<string, string>;\n readonly children: MutableXmlElement[];\n text: string;\n}\n\nexport function parseXml(content: string): XmlElement {\n const parser = new SaxesParser({ xmlns: false });\n const stack: MutableXmlElement[] = [];\n let root: MutableXmlElement | undefined;\n\n parser.on(\"opentag\", (tag: SaxesTagPlain) => {\n const element: MutableXmlElement = {\n name: tag.name,\n attributes: Object.fromEntries(\n Object.entries(tag.attributes).map(([name, value]) => [\n name,\n String(value),\n ]),\n ),\n children: [],\n text: \"\",\n };\n\n const parent = stack[stack.length - 1];\n if (parent === undefined) {\n root = element;\n } else {\n parent.children.push(element);\n }\n\n stack.push(element);\n });\n\n parser.on(\"text\", (text: string) => {\n const current = stack[stack.length - 1];\n if (current !== undefined) {\n current.text += text;\n }\n });\n\n parser.on(\"cdata\", (text: string) => {\n const current = stack[stack.length - 1];\n if (current !== undefined) {\n current.text += text;\n }\n });\n\n parser.on(\"closetag\", () => {\n stack.pop();\n });\n\n parser.write(content).close();\n\n if (root === undefined) {\n throw new Error(\"XML document is empty\");\n }\n\n return freezeXmlElement(root);\n}\n\nexport function findChild(\n element: XmlElement,\n localName: string,\n): XmlElement | undefined {\n return element.children.find(\n (child) => getLocalName(child.name) === localName,\n );\n}\n\nexport function findChildren(\n element: XmlElement,\n localName: string,\n): readonly XmlElement[] {\n return element.children.filter(\n (child) => getLocalName(child.name) === localName,\n );\n}\n\nexport function findDescendant(\n element: XmlElement,\n localName: string,\n): XmlElement | undefined {\n for (const child of element.children) {\n if (getLocalName(child.name) === localName) {\n return child;\n }\n\n const descendant = findDescendant(child, localName);\n if (descendant !== undefined) {\n return descendant;\n }\n }\n\n return undefined;\n}\n\nexport function findDescendants(\n element: XmlElement,\n localName: string,\n): readonly XmlElement[] {\n const descendants: XmlElement[] = [];\n\n for (const child of element.children) {\n if (getLocalName(child.name) === localName) {\n descendants.push(child);\n }\n\n descendants.push(...findDescendants(child, localName));\n }\n\n return descendants;\n}\n\nexport function getAttribute(\n element: XmlElement,\n name: string,\n): string | undefined {\n return element.attributes[name];\n}\n\nexport function getDescendantText(element: XmlElement): string {\n let text = element.text;\n\n for (const child of element.children) {\n text += getDescendantText(child);\n }\n\n return text;\n}\n\nexport function getLocalName(name: string): string {\n const index = name.indexOf(\":\");\n\n return index === -1 ? name : name.slice(index + 1);\n}\n\nfunction freezeXmlElement(element: MutableXmlElement): XmlElement {\n return {\n name: element.name,\n attributes: Object.freeze({ ...element.attributes }),\n children: Object.freeze(element.children.map(freezeXmlElement)),\n text: element.text,\n };\n}\n"],"mappings":"AAAA,SAAS,mBAAuC;AAgBzC,SAAS,SAAS,SAA6B;AACpD,QAAM,SAAS,IAAI,YAAY,EAAE,OAAO,MAAM,CAAC;AAC/C,QAAM,QAA6B,CAAC;AACpC,MAAI;AAEJ,SAAO,GAAG,WAAW,CAAC,QAAuB;AAC3C,UAAM,UAA6B;AAAA,MACjC,MAAM,IAAI;AAAA,MACV,YAAY,OAAO;AAAA,QACjB,OAAO,QAAQ,IAAI,UAAU,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;AAAA,UACpD;AAAA,UACA,OAAO,KAAK;AAAA,QACd,CAAC;AAAA,MACH;AAAA,MACA,UAAU,CAAC;AAAA,MACX,MAAM;AAAA,IACR;AAEA,UAAM,SAAS,MAAM,MAAM,SAAS,CAAC;AACrC,QAAI,WAAW,QAAW;AACxB,aAAO;AAAA,IACT,OAAO;AACL,aAAO,SAAS,KAAK,OAAO;AAAA,IAC9B;AAEA,UAAM,KAAK,OAAO;AAAA,EACpB,CAAC;AAED,SAAO,GAAG,QAAQ,CAAC,SAAiB;AAClC,UAAM,UAAU,MAAM,MAAM,SAAS,CAAC;AACtC,QAAI,YAAY,QAAW;AACzB,cAAQ,QAAQ;AAAA,IAClB;AAAA,EACF,CAAC;AAED,SAAO,GAAG,SAAS,CAAC,SAAiB;AACnC,UAAM,UAAU,MAAM,MAAM,SAAS,CAAC;AACtC,QAAI,YAAY,QAAW;AACzB,cAAQ,QAAQ;AAAA,IAClB;AAAA,EACF,CAAC;AAED,SAAO,GAAG,YAAY,MAAM;AAC1B,UAAM,IAAI;AAAA,EACZ,CAAC;AAED,SAAO,MAAM,OAAO,EAAE,MAAM;AAE5B,MAAI,SAAS,QAAW;AACtB,UAAM,IAAI,MAAM,uBAAuB;AAAA,EACzC;AAEA,SAAO,iBAAiB,IAAI;AAC9B;AAEO,SAAS,UACd,SACA,WACwB;AACxB,SAAO,QAAQ,SAAS;AAAA,IACtB,CAAC,UAAU,aAAa,MAAM,IAAI,MAAM;AAAA,EAC1C;AACF;AAEO,SAAS,aACd,SACA,WACuB;AACvB,SAAO,QAAQ,SAAS;AAAA,IACtB,CAAC,UAAU,aAAa,MAAM,IAAI,MAAM;AAAA,EAC1C;AACF;AAEO,SAAS,eACd,SACA,WACwB;AACxB,aAAW,SAAS,QAAQ,UAAU;AACpC,QAAI,aAAa,MAAM,IAAI,MAAM,WAAW;AAC1C,aAAO;AAAA,IACT;AAEA,UAAM,aAAa,eAAe,OAAO,SAAS;AAClD,QAAI,eAAe,QAAW;AAC5B,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,gBACd,SACA,WACuB;AACvB,QAAM,cAA4B,CAAC;AAEnC,aAAW,SAAS,QAAQ,UAAU;AACpC,QAAI,aAAa,MAAM,IAAI,MAAM,WAAW;AAC1C,kBAAY,KAAK,KAAK;AAAA,IACxB;AAEA,gBAAY,KAAK,GAAG,gBAAgB,OAAO,SAAS,CAAC;AAAA,EACvD;AAEA,SAAO;AACT;AAEO,SAAS,aACd,SACA,MACoB;AACpB,SAAO,QAAQ,WAAW,IAAI;AAChC;AAEO,SAAS,kBAAkB,SAA6B;AAC7D,MAAI,OAAO,QAAQ;AAEnB,aAAW,SAAS,QAAQ,UAAU;AACpC,YAAQ,kBAAkB,KAAK;AAAA,EACjC;AAEA,SAAO;AACT;AAEO,SAAS,aAAa,MAAsB;AACjD,QAAM,QAAQ,KAAK,QAAQ,GAAG;AAE9B,SAAO,UAAU,KAAK,OAAO,KAAK,MAAM,QAAQ,CAAC;AACnD;AAEA,SAAS,iBAAiB,SAAwC;AAChE,SAAO;AAAA,IACL,MAAM,QAAQ;AAAA,IACd,YAAY,OAAO,OAAO,EAAE,GAAG,QAAQ,WAAW,CAAC;AAAA,IACnD,UAAU,OAAO,OAAO,QAAQ,SAAS,IAAI,gBAAgB,CAAC;AAAA,IAC9D,MAAM,QAAQ;AAAA,EAChB;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/text/source/index.ts"],"sourcesContent":["export {\n BOOK_META_VERSION,\n SOURCE_FORMATS,\n bookMetaSchema,\n sourceFormatSchema,\n type BookMeta,\n type SourceFormat,\n} from \"./meta.js\";\nexport type { SourceAdapter, SourceDocument } from \"./adapter.js\";\nexport { EpubSourceAdapter, EPUB_SOURCE_ADAPTER } from \"./epub/index.js\";\nexport {\n MARKDOWN_SOURCE_ADAPTER,\n PlainTextSourceAdapter,\n TXT_SOURCE_ADAPTER,\n} from \"./plain-text.js\";\nexport {\n TOC_FILE_VERSION,\n tocFileSchema,\n tocItemSchema,\n type TocFile,\n type TocItem,\n} from \"./toc.js\";\nexport type { SourceAsset, SourceSection, SourceTextStream } from \"./types.js\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAEP,SAAS,mBAAmB,2BAA2B;AACvD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAGK;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/text/source/meta.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const SOURCE_FORMATS = [\"epub\", \"pdf\", \"txt\", \"markdown\"] as const;\nexport const BOOK_META_VERSION = 1;\n\nexport const sourceFormatSchema = z.enum(SOURCE_FORMATS);\n\nexport const bookMetaSchema = z.object({\n version: z.literal(BOOK_META_VERSION),\n sourceFormat: sourceFormatSchema,\n title: z.string().min(1).nullable(),\n authors: z.array(z.string().min(1)),\n language: z.string().min(1).nullable(),\n identifier: z.string().min(1).nullable(),\n publisher: z.string().min(1).nullable(),\n publishedAt: z.string().min(1).nullable(),\n description: z.string().min(1).nullable(),\n});\n\nexport type SourceFormat = z.infer<typeof sourceFormatSchema>;\nexport type BookMeta = z.infer<typeof bookMetaSchema>;\n"],"mappings":"AAAA,SAAS,SAAS;AAEX,MAAM,iBAAiB,CAAC,QAAQ,OAAO,OAAO,UAAU;AACxD,MAAM,oBAAoB;AAE1B,MAAM,qBAAqB,EAAE,KAAK,cAAc;AAEhD,MAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,SAAS,EAAE,QAAQ,iBAAiB;AAAA,EACpC,cAAc;AAAA,EACd,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAClC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,EAClC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACrC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACvC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACtC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACxC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS;AAC1C,CAAC;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/text/source/plain-text.ts"],"sourcesContent":["import { createReadStream } from \"fs\";\nimport { stat } from \"fs/promises\";\nimport { basename, extname, resolve } from \"path\";\n\nimport { BOOK_META_VERSION, type BookMeta } from \"./meta.js\";\nimport type { SourceAdapter, SourceDocument } from \"./adapter.js\";\nimport type { SourceAsset, SourceSection, SourceTextStream } from \"./types.js\";\n\ntype PlainTextSourceFormat = \"markdown\" | \"txt\";\n\nconst ROOT_SECTION_ID = \"root\";\n\nclass PlainTextSection implements SourceSection {\n readonly #path: string;\n readonly #id: string;\n\n public constructor(path: string, id = ROOT_SECTION_ID) {\n this.#path = resolve(path);\n this.#id = id;\n }\n\n public get id(): string {\n return this.#id;\n }\n\n public get hasContent(): boolean {\n return true;\n }\n\n public get title(): string | undefined {\n return undefined;\n }\n\n public get children(): readonly SourceSection[] {\n return [];\n }\n\n public open(): Promise<SourceTextStream> {\n return Promise.resolve(createReadStream(this.#path, { encoding: \"utf8\" }));\n }\n}\n\nclass PlainTextDocument implements SourceDocument {\n readonly #path: string;\n readonly #format: PlainTextSourceFormat;\n readonly #section: PlainTextSection;\n\n public constructor(path: string, format: PlainTextSourceFormat) {\n this.#path = resolve(path);\n this.#format = format;\n this.#section = new PlainTextSection(this.#path);\n }\n\n public readMeta(): Promise<BookMeta> {\n return Promise.resolve({\n version: BOOK_META_VERSION,\n sourceFormat: this.#format,\n title: getFileStem(this.#path),\n authors: [],\n language: null,\n identifier: null,\n publisher: null,\n publishedAt: null,\n description: null,\n });\n }\n\n public readCover(): Promise<SourceAsset | undefined> {\n return Promise.resolve(undefined);\n }\n\n public readSections(): Promise<readonly SourceSection[]> {\n return Promise.resolve([this.#section]);\n }\n}\n\nexport class PlainTextSourceAdapter implements SourceAdapter {\n readonly #format: PlainTextSourceFormat;\n\n public constructor(format: PlainTextSourceFormat) {\n this.#format = format;\n }\n\n public get format(): PlainTextSourceFormat {\n return this.#format;\n }\n\n public async openSession<T>(\n path: string,\n operation: (document: SourceDocument) => Promise<T>,\n ): Promise<T> {\n const resolvedPath = resolve(path);\n const fileStat = await stat(resolvedPath);\n\n if (!fileStat.isFile()) {\n throw new Error(`Source file is not a regular file: ${resolvedPath}`);\n }\n\n return await operation(new PlainTextDocument(resolvedPath, this.#format));\n }\n}\n\nexport const TXT_SOURCE_ADAPTER = new PlainTextSourceAdapter(\"txt\");\nexport const MARKDOWN_SOURCE_ADAPTER = new PlainTextSourceAdapter(\"markdown\");\n\nfunction getFileStem(path: string): string | null {\n const stem = basename(path, extname(path)).trim();\n\n return stem === \"\" ? null : stem;\n}\n"],"mappings":"AAAA,SAAS,wBAAwB;AACjC,SAAS,YAAY;AACrB,SAAS,UAAU,SAAS,eAAe;AAE3C,SAAS,yBAAwC;AAMjD,MAAM,kBAAkB;AAExB,MAAM,iBAA0C;AAAA,EACrC;AAAA,EACA;AAAA,EAEF,YAAY,MAAc,KAAK,iBAAiB;AACrD,SAAK,QAAQ,QAAQ,IAAI;AACzB,SAAK,MAAM;AAAA,EACb;AAAA,EAEA,IAAW,KAAa;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAW,aAAsB;AAC/B,WAAO;AAAA,EACT;AAAA,EAEA,IAAW,QAA4B;AACrC,WAAO;AAAA,EACT;AAAA,EAEA,IAAW,WAAqC;AAC9C,WAAO,CAAC;AAAA,EACV;AAAA,EAEO,OAAkC;AACvC,WAAO,QAAQ,QAAQ,iBAAiB,KAAK,OAAO,EAAE,UAAU,OAAO,CAAC,CAAC;AAAA,EAC3E;AACF;AAEA,MAAM,kBAA4C;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EAEF,YAAY,MAAc,QAA+B;AAC9D,SAAK,QAAQ,QAAQ,IAAI;AACzB,SAAK,UAAU;AACf,SAAK,WAAW,IAAI,iBAAiB,KAAK,KAAK;AAAA,EACjD;AAAA,EAEO,WAA8B;AACnC,WAAO,QAAQ,QAAQ;AAAA,MACrB,SAAS;AAAA,MACT,cAAc,KAAK;AAAA,MACnB,OAAO,YAAY,KAAK,KAAK;AAAA,MAC7B,SAAS,CAAC;AAAA,MACV,UAAU;AAAA,MACV,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,aAAa;AAAA,MACb,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EAEO,YAA8C;AACnD,WAAO,QAAQ,QAAQ,MAAS;AAAA,EAClC;AAAA,EAEO,eAAkD;AACvD,WAAO,QAAQ,QAAQ,CAAC,KAAK,QAAQ,CAAC;AAAA,EACxC;AACF;AAEO,MAAM,uBAAgD;AAAA,EAClD;AAAA,EAEF,YAAY,QAA+B;AAChD,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,IAAW,SAAgC;AACzC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAa,YACX,MACA,WACY;AACZ,UAAM,eAAe,QAAQ,IAAI;AACjC,UAAM,WAAW,MAAM,KAAK,YAAY;AAExC,QAAI,CAAC,SAAS,OAAO,GAAG;AACtB,YAAM,IAAI,MAAM,sCAAsC,YAAY,EAAE;AAAA,IACtE;AAEA,WAAO,MAAM,UAAU,IAAI,kBAAkB,cAAc,KAAK,OAAO,CAAC;AAAA,EAC1E;AACF;AAEO,MAAM,qBAAqB,IAAI,uBAAuB,KAAK;AAC3D,MAAM,0BAA0B,IAAI,uBAAuB,UAAU;AAE5E,SAAS,YAAY,MAA6B;AAChD,QAAM,OAAO,SAAS,MAAM,QAAQ,IAAI,CAAC,EAAE,KAAK;AAEhD,SAAO,SAAS,KAAK,OAAO;AAC9B;","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const TOC_FILE_VERSION = 1;
|
|
4
|
+
interface TocItem {
|
|
5
|
+
readonly key?: string | undefined;
|
|
6
|
+
readonly title?: string | null | undefined;
|
|
7
|
+
readonly serialId?: number | undefined;
|
|
8
|
+
readonly children: readonly TocItem[];
|
|
9
|
+
}
|
|
10
|
+
declare const tocItemSchema: z.ZodType<TocItem>;
|
|
11
|
+
declare const tocFileSchema: z.ZodObject<{
|
|
12
|
+
version: z.ZodLiteral<1>;
|
|
13
|
+
items: z.ZodArray<z.ZodType<TocItem, unknown, z.core.$ZodTypeInternals<TocItem, unknown>>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
type TocFile = z.infer<typeof tocFileSchema>;
|
|
16
|
+
|
|
17
|
+
export { TOC_FILE_VERSION, type TocFile, type TocItem, tocFileSchema, tocItemSchema };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { validateChapterKey } from "../../document/chapter/path.js";
|
|
3
|
+
const TOC_FILE_VERSION = 1;
|
|
4
|
+
const tocItemSchema = z.object({
|
|
5
|
+
key: z.string().min(1).transform((key) => validateChapterKey(key)).optional(),
|
|
6
|
+
title: z.string().min(1).nullable().optional(),
|
|
7
|
+
serialId: z.number().int().nonnegative().optional(),
|
|
8
|
+
children: z.lazy(() => z.array(tocItemSchema))
|
|
9
|
+
});
|
|
10
|
+
const tocFileSchema = z.object({
|
|
11
|
+
version: z.literal(TOC_FILE_VERSION),
|
|
12
|
+
items: z.array(tocItemSchema)
|
|
13
|
+
});
|
|
14
|
+
export {
|
|
15
|
+
TOC_FILE_VERSION,
|
|
16
|
+
tocFileSchema,
|
|
17
|
+
tocItemSchema
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=toc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/text/source/toc.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { validateChapterKey } from \"../../document/chapter/path.js\";\n\nexport const TOC_FILE_VERSION = 1;\n\nexport interface TocItem {\n readonly key?: string | undefined;\n readonly title?: string | null | undefined;\n readonly serialId?: number | undefined;\n readonly children: readonly TocItem[];\n}\n\nexport const tocItemSchema: z.ZodType<TocItem> = z.object({\n key: z\n .string()\n .min(1)\n .transform((key) => validateChapterKey(key))\n .optional(),\n title: z.string().min(1).nullable().optional(),\n serialId: z.number().int().nonnegative().optional(),\n children: z.lazy(() => z.array(tocItemSchema)),\n});\n\nexport const tocFileSchema = z.object({\n version: z.literal(TOC_FILE_VERSION),\n items: z.array(tocItemSchema),\n});\n\nexport type TocFile = z.infer<typeof tocFileSchema>;\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,SAAS,0BAA0B;AAE5B,MAAM,mBAAmB;AASzB,MAAM,gBAAoC,EAAE,OAAO;AAAA,EACxD,KAAK,EACF,OAAO,EACP,IAAI,CAAC,EACL,UAAU,CAAC,QAAQ,mBAAmB,GAAG,CAAC,EAC1C,SAAS;AAAA,EACZ,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS;AAAA,EAC7C,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS;AAAA,EAClD,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,CAAC;AAEM,MAAM,gBAAgB,EAAE,OAAO;AAAA,EACpC,SAAS,EAAE,QAAQ,gBAAgB;AAAA,EACnC,OAAO,EAAE,MAAM,aAAa;AAC9B,CAAC;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ReadonlyDocument, Document } from '../../document/directory/types.js';
|
|
2
|
+
import { ChapterDetails } from '../../document/chapter/types.js';
|
|
3
|
+
import { BuildChapterSummaryArtifactOptions, ChapterSummaryInputSnapshot } from './types.js';
|
|
4
|
+
import '../source/meta.js';
|
|
5
|
+
import 'zod';
|
|
6
|
+
import '../source/toc.js';
|
|
7
|
+
import '../source/types.js';
|
|
8
|
+
import '../../document/database.js';
|
|
9
|
+
import 'sqlite3';
|
|
10
|
+
import '../../document/types.js';
|
|
11
|
+
import '../../document/text-streams/serial.js';
|
|
12
|
+
import '../../document/text-streams/draft.js';
|
|
13
|
+
import '../../document/text-streams/types.js';
|
|
14
|
+
import '../../document/stores/chunk.js';
|
|
15
|
+
import '../../document/stores/types.js';
|
|
16
|
+
import '../../document/stores/fragment-group.js';
|
|
17
|
+
import '../../document/stores/graph-build-parameter.js';
|
|
18
|
+
import '../../document/stores/mention-link.js';
|
|
19
|
+
import '../../document/stores/mention.js';
|
|
20
|
+
import '../../document/stores/object-metadata.js';
|
|
21
|
+
import '../../document/stores/reading-edge.js';
|
|
22
|
+
import '../../document/stores/serial.js';
|
|
23
|
+
import '../../document/stores/snake/chunk.js';
|
|
24
|
+
import '../../document/stores/snake/core.js';
|
|
25
|
+
import '../../document/stores/snake/edge.js';
|
|
26
|
+
import '../../external/llm/client/core.js';
|
|
27
|
+
import '../../external/llm/context.js';
|
|
28
|
+
import '../../external/llm/cache.js';
|
|
29
|
+
import '../../external/llm/types.js';
|
|
30
|
+
import 'ai';
|
|
31
|
+
import '../../runtime/common/language.js';
|
|
32
|
+
import '../../runtime/common/llm-scope.js';
|
|
33
|
+
|
|
34
|
+
declare function buildChapterSummaryArtifact(document: ReadonlyDocument, chapterId: number, options: BuildChapterSummaryArtifactOptions): Promise<string>;
|
|
35
|
+
declare function buildChapterSummaryArtifactFromSnapshot(chapterId: number, options: BuildChapterSummaryArtifactOptions & {
|
|
36
|
+
readonly snapshotPath: string;
|
|
37
|
+
}): Promise<string>;
|
|
38
|
+
declare function buildChapterSummaryArtifactFromReadingGraphObjects(chapterId: number, options: BuildChapterSummaryArtifactOptions & {
|
|
39
|
+
readonly readingGraphObjectsPath: string;
|
|
40
|
+
}): Promise<string>;
|
|
41
|
+
declare function commitChapterSummaryArtifact(document: Document, chapterId: number, summary: string): Promise<ChapterDetails>;
|
|
42
|
+
declare function snapshotChapterSummaryInput(document: ReadonlyDocument, chapterId: number, workspacePath: string): Promise<ChapterSummaryInputSnapshot>;
|
|
43
|
+
|
|
44
|
+
export { buildChapterSummaryArtifact, buildChapterSummaryArtifactFromReadingGraphObjects, buildChapterSummaryArtifactFromSnapshot, commitChapterSummaryArtifact, snapshotChapterSummaryInput };
|