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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/wikg/wikg-coordinator.ts"],"sourcesContent":["import { createHash, randomUUID } from \"crypto\";\nimport {\n mkdir,\n mkdtemp,\n readFile,\n readdir,\n rename,\n rm,\n stat,\n writeFile,\n} from \"fs/promises\";\nimport { tmpdir } from \"os\";\nimport {\n basename,\n dirname,\n isAbsolute,\n join,\n posix,\n relative,\n resolve,\n} from \"path\";\n\nimport { resolveWikiGraphStagingDirectoryPath } from \"../common/wiki-graph-dir.js\";\nimport { createWikiGraphTempDirectory } from \"../common/wiki-graph-temp.js\";\nimport {\n Database as DocumentDatabase,\n DirectoryDocument,\n openSharedStateDatabase,\n} from \"../document/index.js\";\nimport type { Database } from \"../document/index.js\";\nimport type { DocumentFileStore } from \"../document/document.js\";\nimport { createArchiveSearchIndexFingerprint } from \"../archive/query/index.js\";\nimport { readSearchIndexFingerprintFromDatabase } from \"../archive/search-index/index.js\";\nimport {\n isDisposableDirectoryEntry,\n readPathSize,\n removeDisposableChildDirectories,\n removeDisposableDescendantDirectories,\n removeDisposableDirectory,\n} from \"../gc/files.js\";\nimport type { GcContext, GcJobResult } from \"../gc/index.js\";\nimport { AsyncSemaphore } from \"../utils/async-semaphore.js\";\nimport { isNodeError } from \"../utils/node-error.js\";\n\nimport {\n extractWikgArchive,\n listWikgArchiveEntries,\n readWikgArchiveMutationToken,\n readWikgArchiveEntry,\n WikgArchiveReader,\n writeWikgArchiveWithOverlays,\n type WikgArchiveOverlay,\n} from \"./archive.js\";\n\nconst STATE_SCHEMA_SQL = `\nCREATE TABLE IF NOT EXISTS entry_overlays (\n archive_key TEXT NOT NULL,\n archive_path TEXT NOT NULL,\n entry_path TEXT NOT NULL,\n kind TEXT NOT NULL,\n workspace_path TEXT,\n archive_signature TEXT,\n mutation_token TEXT,\n updated_at INTEGER NOT NULL,\n PRIMARY KEY (archive_key, entry_path)\n);\n\nCREATE TABLE IF NOT EXISTS entry_locks (\n archive_key TEXT NOT NULL,\n entry_path TEXT NOT NULL,\n mode TEXT NOT NULL,\n owner_id TEXT NOT NULL,\n owner_pid INTEGER NOT NULL,\n heartbeat_at INTEGER NOT NULL,\n created_at INTEGER NOT NULL,\n PRIMARY KEY (archive_key, entry_path, owner_id)\n);\n\nCREATE TABLE IF NOT EXISTS archive_owners (\n archive_key TEXT NOT NULL,\n owner_id TEXT NOT NULL,\n owner_pid INTEGER NOT NULL,\n heartbeat_at INTEGER NOT NULL,\n created_at INTEGER NOT NULL,\n PRIMARY KEY (archive_key, owner_id)\n);\n\nCREATE TABLE IF NOT EXISTS entry_sqlite_leases (\n archive_key TEXT NOT NULL,\n entry_path TEXT NOT NULL,\n mode TEXT NOT NULL DEFAULT 'read',\n owner_id TEXT NOT NULL,\n owner_pid INTEGER NOT NULL,\n heartbeat_at INTEGER NOT NULL,\n created_at INTEGER NOT NULL,\n PRIMARY KEY (archive_key, entry_path, owner_id)\n);\n\nCREATE TABLE IF NOT EXISTS archive_commit_locks (\n archive_key TEXT PRIMARY KEY,\n owner_id TEXT NOT NULL,\n owner_pid INTEGER NOT NULL,\n heartbeat_at INTEGER NOT NULL,\n created_at INTEGER NOT NULL\n);\n`;\n\nconst DATABASE_ENTRY_PATH = \"database.db\";\nconst SEARCH_INDEX_DATABASE_ENTRY_PATH = \"fts.db\";\nconst LOCK_POLL_INTERVAL_MS = 100;\nconst LOCK_STALE_TIMEOUT_MS = 60_000;\nconst OWNER_HEARTBEAT_INTERVAL_MS = 20_000;\nconst SQLITE_CACHE_TTL_MS = 60 * 60 * 1000;\nconst STATE_DATABASE_SEMAPHORE = new AsyncSemaphore(1);\nconst ARCHIVE_SESSION_CONSTRUCTOR_TOKEN = Symbol(\n \"WikgArchiveSession constructor token\",\n);\n\ntype EntryLockMode = \"read\" | \"state\" | \"write\";\ntype SqliteLeaseMode = \"read\" | \"write\";\ntype WorkspaceWritebackPolicy = \"archive\" | \"cache\";\n\nexport class WikgCoordinator {\n public createFileStore(\n archivePath: string,\n options: {\n readonly readonlyDatabase?: boolean;\n readonly searchIndexWritebackPolicy?: WorkspaceWritebackPolicy;\n readonly session?: WikgArchiveSession;\n } = {},\n ): DocumentFileStore {\n return new WikgDocumentFileStore(resolve(archivePath), options);\n }\n\n public async withArchiveSession<T>(\n archivePath: string,\n operation: (session: WikgArchiveSession) => Promise<T> | T,\n ): Promise<T> {\n const session = await WikgArchiveSession.open(resolve(archivePath));\n\n try {\n return await operation(session);\n } finally {\n await session.close();\n }\n }\n\n public async withReadWorkspace<T>(\n archivePath: string,\n operation: (documentDirectoryPath: string) => Promise<T> | T,\n options: {\n readonly documentDirPath?: string;\n } = {},\n ): Promise<T> {\n const directoryPath =\n options.documentDirPath === undefined\n ? await createWikiGraphTempDirectory(\"archive-open\")\n : resolve(options.documentDirPath);\n\n try {\n await extractWikgArchive(resolve(archivePath), directoryPath);\n return await operation(directoryPath);\n } finally {\n if (options.documentDirPath === undefined) {\n await rm(directoryPath, { force: true, recursive: true });\n }\n }\n }\n\n public async withWriteWorkspace<T>(\n archivePath: string,\n operation: (documentDirectoryPath: string) => Promise<T> | T,\n ): Promise<T> {\n const directoryPath = await createWikiGraphTempDirectory(\"archive-write\");\n\n try {\n await extractWikgArchive(resolve(archivePath), directoryPath);\n return await operation(directoryPath);\n } finally {\n await rm(directoryPath, { force: true, recursive: true });\n }\n }\n}\n\nexport class WikgArchiveSession {\n readonly #archiveKey: string;\n readonly #archivePath: string;\n readonly #ownerId = createOwnerId();\n readonly #heartbeat: NodeJS.Timeout;\n readonly #observedDirtyEntryPaths = new Set<string>();\n readonly #modifiedEntryPaths = new Set<string>();\n #closed = false;\n\n public constructor(archivePath: string, token?: symbol) {\n if (token !== ARCHIVE_SESSION_CONSTRUCTOR_TOKEN) {\n throw new Error(\"Use WikgCoordinator.withArchiveSession().\");\n }\n\n this.#archivePath = resolve(archivePath);\n this.#archiveKey = createArchiveKey(this.#archivePath);\n this.#heartbeat = setInterval(() => {\n void heartbeatArchiveOwner({\n archiveKey: this.#archiveKey,\n ownerId: this.#ownerId,\n }).catch(() => undefined);\n }, OWNER_HEARTBEAT_INTERVAL_MS);\n }\n\n public static async open(archivePath: string): Promise<WikgArchiveSession> {\n const session = new WikgArchiveSession(\n archivePath,\n ARCHIVE_SESSION_CONSTRUCTOR_TOKEN,\n );\n\n try {\n await registerArchiveOwner({\n archiveKey: session.#archiveKey,\n ownerId: session.#ownerId,\n });\n return session;\n } catch (error) {\n clearInterval(session.#heartbeat);\n throw error;\n }\n }\n\n public get archiveKey(): string {\n return this.#archiveKey;\n }\n\n public get archivePath(): string {\n return this.#archivePath;\n }\n\n public get ownerId(): string {\n return this.#ownerId;\n }\n\n public observeDirtyEntry(entryPath: string): void {\n this.#observedDirtyEntryPaths.add(entryPath);\n }\n\n public modifyEntry(entryPath: string): void {\n this.#modifiedEntryPaths.add(entryPath);\n }\n\n public createFileStore(\n options: {\n readonly readonlyDatabase?: boolean;\n readonly searchIndexWritebackPolicy?: WorkspaceWritebackPolicy;\n } = {},\n ): DocumentFileStore {\n return new WikgDocumentFileStore(this.#archivePath, {\n ...options,\n session: this,\n });\n }\n\n public async materializeReadWorkspace<T>(\n directoryPath: string | undefined,\n operation: (documentDirectoryPath: string) => Promise<T> | T,\n ): Promise<T> {\n const ownsDirectoryPath = directoryPath === undefined;\n const resolvedDirectoryPath = ownsDirectoryPath\n ? await createWikiGraphTempDirectory(\"archive-open\")\n : resolve(directoryPath);\n\n if (!ownsDirectoryPath) {\n await ensureEmptyDirectory(resolvedDirectoryPath);\n }\n\n const fileStore = this.createFileStore({ readonlyDatabase: true });\n const entries = await listVisibleEntryPaths(\n await listWikgArchiveEntries(this.#archivePath),\n {\n archiveKey: this.#archiveKey,\n prefix: \"\",\n },\n );\n\n try {\n for (const entryPath of entries) {\n const content = await fileStore.readFile(entryPath);\n\n if (content === undefined) {\n continue;\n }\n\n const targetPath = resolve(resolvedDirectoryPath, entryPath);\n const relativeTargetPath = relative(resolvedDirectoryPath, targetPath);\n\n if (\n relativeTargetPath.startsWith(\"..\") ||\n isAbsolute(relativeTargetPath)\n ) {\n throw new Error(`Archive entry escapes read workspace: ${entryPath}`);\n }\n\n await mkdir(dirname(targetPath), { recursive: true });\n await writeFile(targetPath, content);\n }\n\n return await operation(resolvedDirectoryPath);\n } finally {\n await fileStore.close();\n if (ownsDirectoryPath) {\n await rm(resolvedDirectoryPath, { force: true, recursive: true });\n }\n }\n }\n\n public async close(): Promise<void> {\n if (this.#closed) {\n return;\n }\n\n this.#closed = true;\n clearInterval(this.#heartbeat);\n\n try {\n await this.#settle();\n await reapArchive(this.#archiveKey);\n } finally {\n await unregisterArchiveOwner({\n archiveKey: this.#archiveKey,\n ownerId: this.#ownerId,\n });\n }\n\n await import(\"../gc/index.js\")\n .then(async ({ tryRunWikiGraphGc }) => {\n await tryRunWikiGraphGc({ opportunistic: true });\n })\n .catch(() => undefined);\n }\n\n async #settle(): Promise<void> {\n const entryPaths = new Set([\n ...this.#observedDirtyEntryPaths,\n ...this.#modifiedEntryPaths,\n ]);\n\n if (entryPaths.size === 0) {\n return;\n }\n\n await flushArchiveOverlays(this.#archiveKey, entryPaths);\n }\n}\n\nexport async function tryStartWikgFlusher(archivePath?: string): Promise<void> {\n if (archivePath !== undefined) {\n await flushArchiveOverlays(createArchiveKey(resolve(archivePath)));\n return;\n }\n\n const archiveKeys = await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n return await state.queryAll(\n `\nSELECT DISTINCT archive_key\nFROM entry_overlays\nORDER BY archive_key\n`,\n undefined,\n (row) => getString(row, \"archive_key\"),\n );\n });\n\n for (const archiveKey of archiveKeys) {\n await flushArchiveOverlays(archiveKey);\n }\n}\n\nexport async function runWikgCoordinatorGc(\n context: GcContext,\n): Promise<GcJobResult> {\n const candidates = await listSqliteCacheGcCandidates();\n let removed = 0;\n let freedBytes = 0;\n\n for (const candidate of candidates) {\n const result = await tryRemoveSqliteCacheCandidate(candidate, context);\n\n if (result.removed) {\n removed += 1;\n freedBytes += result.freedBytes;\n }\n }\n\n const orphanedFiles = await removeOrphanedWorkspaceFiles(context);\n const childDirectories = context.dryRun\n ? { freedBytes: 0, removed: 0, scanned: 0 }\n : await removeDisposableChildDirectories(getCoordinatorWorkspaceRootPath());\n\n return {\n freedBytes:\n freedBytes + orphanedFiles.freedBytes + childDirectories.freedBytes,\n removed: removed + orphanedFiles.removed + childDirectories.removed,\n scanned:\n candidates.length + orphanedFiles.scanned + childDirectories.scanned,\n };\n}\n\nasync function listSqliteCacheGcCandidates(): Promise<readonly EntryOverlay[]> {\n return await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n return await state.queryAll(\n `\nSELECT overlay.*\nFROM entry_overlays AS overlay\nWHERE overlay.entry_path IN (?, ?)\n AND overlay.kind = 'file'\n AND overlay.workspace_path IS NOT NULL\nORDER BY overlay.updated_at ASC\n`,\n [DATABASE_ENTRY_PATH, SEARCH_INDEX_DATABASE_ENTRY_PATH],\n mapEntryOverlay,\n );\n });\n}\n\nasync function tryRemoveSqliteCacheCandidate(\n candidate: EntryOverlay,\n context: GcContext,\n): Promise<{ readonly freedBytes: number; readonly removed: boolean }> {\n const releaseWriteLock = await acquireEntryLock(\n candidate.archiveKey,\n candidate.entryPath,\n \"write\",\n );\n\n try {\n const releaseStateLock = await acquireEntryLock(\n candidate.archiveKey,\n candidate.entryPath,\n \"state\",\n );\n\n try {\n const overlay = await readOverlay(\n candidate.archiveKey,\n candidate.entryPath,\n );\n\n if (\n overlay?.workspacePath === undefined ||\n overlay.workspacePath !== candidate.workspacePath ||\n !(await canRemoveSqliteCacheOverlay(overlay, context))\n ) {\n return { freedBytes: 0, removed: false };\n }\n\n let freedBytes = await readPathSize(overlay.workspacePath);\n\n if (!context.dryRun) {\n await deleteOverlay(overlay.archiveKey, overlay.entryPath);\n await rm(overlay.workspacePath, { force: true });\n freedBytes += await removeDisposableDirectory(\n dirname(overlay.workspacePath),\n );\n }\n\n return { freedBytes, removed: true };\n } finally {\n await releaseStateLock();\n }\n } finally {\n await releaseWriteLock();\n }\n}\n\nasync function canRemoveSqliteCacheOverlay(\n overlay: EntryOverlay,\n context: GcContext,\n): Promise<boolean> {\n if (\n await hasActiveArchiveOwnerOrSqliteLease(\n overlay.archiveKey,\n overlay.entryPath,\n )\n ) {\n return false;\n }\n if (overlay.workspacePath === undefined) {\n return false;\n }\n\n if (await isSqliteCacheOverlayDirty(overlay)) {\n return true;\n }\n if (!context.force && context.now - overlay.updatedAt < SQLITE_CACHE_TTL_MS) {\n return false;\n }\n if (\n overlay.entryPath === SEARCH_INDEX_DATABASE_ENTRY_PATH &&\n !context.force\n ) {\n return false;\n }\n\n return true;\n}\n\nasync function isSqliteCacheOverlayDirty(\n overlay: EntryOverlay,\n): Promise<boolean> {\n if (overlay.workspacePath === undefined) {\n return true;\n }\n if (!(await pathExists(overlay.workspacePath))) {\n return true;\n }\n if (!(await pathExists(overlay.archivePath))) {\n return true;\n }\n if (overlay.entryPath !== SEARCH_INDEX_DATABASE_ENTRY_PATH) {\n return false;\n }\n\n return (await readSearchIndexCacheStatus(overlay)) !== \"current\";\n}\n\nasync function readSearchIndexCacheStatus(\n overlay: EntryOverlay,\n): Promise<\"current\" | \"dirty\" | \"missing\"> {\n if (overlay.workspacePath === undefined) {\n return \"missing\";\n }\n if (!(await pathExists(overlay.workspacePath))) {\n return \"missing\";\n }\n if (!(await pathExists(overlay.archivePath))) {\n return \"dirty\";\n }\n\n try {\n const [indexedFingerprint, currentFingerprint] = await Promise.all([\n readSearchIndexCacheFingerprint(overlay.workspacePath),\n createCurrentArchiveSearchIndexFingerprint(overlay.archivePath),\n ]);\n\n if (indexedFingerprint === undefined) {\n return \"dirty\";\n }\n\n return indexedFingerprint === currentFingerprint ? \"current\" : \"dirty\";\n } catch {\n return \"dirty\";\n }\n}\n\nasync function readSearchIndexCacheFingerprint(\n databasePath: string,\n): Promise<string | undefined> {\n const database = await DocumentDatabase.open(databasePath, \"\", {\n readonly: true,\n });\n\n try {\n return await readSearchIndexFingerprintFromDatabase(database);\n } finally {\n await database.close();\n }\n}\n\nasync function createCurrentArchiveSearchIndexFingerprint(\n archivePath: string,\n): Promise<string> {\n const directoryPath = await createWikiGraphTempDirectory(\"archive-open\");\n\n try {\n await extractWikgArchive(archivePath, directoryPath);\n const document = await DirectoryDocument.open(directoryPath);\n\n try {\n return await createArchiveSearchIndexFingerprint(document);\n } finally {\n await document.release();\n }\n } finally {\n await rm(directoryPath, { force: true, recursive: true });\n }\n}\n\nasync function hasActiveArchiveOwnerOrSqliteLease(\n archiveKey: string,\n entryPath: string,\n): Promise<boolean> {\n return await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n const ownerCount = await state.queryOne(\n \"SELECT COUNT(*) AS count FROM archive_owners WHERE archive_key = ?\",\n [archiveKey],\n (row) => getNumber(row, \"count\"),\n );\n const leaseCount = await state.queryOne(\n `\nSELECT COUNT(*) AS count\nFROM entry_sqlite_leases\nWHERE archive_key = ?\n AND entry_path = ?\n`,\n [archiveKey, entryPath],\n (row) => getNumber(row, \"count\"),\n );\n\n return (ownerCount ?? 0) > 0 || (leaseCount ?? 0) > 0;\n });\n}\n\nasync function hasActiveWorkspaceUse(archiveKey: string): Promise<boolean> {\n return await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n const ownerCount = await state.queryOne(\n \"SELECT COUNT(*) AS count FROM archive_owners WHERE archive_key = ?\",\n [archiveKey],\n (row) => getNumber(row, \"count\"),\n );\n const leaseCount = await state.queryOne(\n \"SELECT COUNT(*) AS count FROM entry_sqlite_leases WHERE archive_key = ?\",\n [archiveKey],\n (row) => getNumber(row, \"count\"),\n );\n const lockCount = await state.queryOne(\n \"SELECT COUNT(*) AS count FROM entry_locks WHERE archive_key = ?\",\n [archiveKey],\n (row) => getNumber(row, \"count\"),\n );\n\n return (\n (ownerCount ?? 0) > 0 || (leaseCount ?? 0) > 0 || (lockCount ?? 0) > 0\n );\n });\n}\n\nasync function removeOrphanedWorkspaceFiles(\n context: GcContext,\n): Promise<Pick<GcJobResult, \"freedBytes\" | \"removed\" | \"scanned\">> {\n const rootPath = getCoordinatorWorkspaceRootPath();\n let archiveKeyEntries: readonly WorkspaceDirectoryEntry[];\n\n try {\n archiveKeyEntries = await readdir(rootPath, { withFileTypes: true });\n } catch (error) {\n if (isNodeError(error) && error.code === \"ENOENT\") {\n return { freedBytes: 0, removed: 0, scanned: 0 };\n }\n\n throw error;\n }\n\n let freedBytes = 0;\n let removed = 0;\n let scanned = 0;\n\n for (const archiveKeyEntry of archiveKeyEntries) {\n if (!archiveKeyEntry.isDirectory()) {\n continue;\n }\n\n const archiveKey = archiveKeyEntry.name;\n\n if (await hasActiveWorkspaceUse(archiveKey)) {\n continue;\n }\n\n const referencedWorkspacePaths = new Set(\n (await listOverlays(archiveKey))\n .map((overlay) => overlay.workspacePath)\n .filter((path): path is string => path !== undefined),\n );\n\n for (const workspacePath of await listWorkspaceFiles(\n join(rootPath, archiveKey),\n )) {\n scanned += 1;\n\n if (isDisposableDirectoryEntry(basename(workspacePath))) {\n continue;\n }\n if (referencedWorkspacePaths.has(workspacePath)) {\n continue;\n }\n\n const size = await readPathSize(workspacePath);\n\n if (!context.dryRun) {\n await rm(workspacePath, { force: true });\n }\n\n freedBytes += size;\n removed += 1;\n }\n\n if (!context.dryRun) {\n const disposableDirectories = await removeDisposableDescendantDirectories(\n join(rootPath, archiveKey),\n );\n\n freedBytes += disposableDirectories.freedBytes;\n removed += disposableDirectories.removed;\n scanned += disposableDirectories.scanned;\n }\n }\n\n return { freedBytes, removed, scanned };\n}\n\nclass WikgDocumentFileStore implements DocumentFileStore {\n readonly #archiveKey: string;\n readonly #archivePath: string;\n #archiveReader: Promise<WikgArchiveReader> | undefined;\n #entrySourceByPath:\n | Map<\n string,\n | { readonly kind: \"archive\" }\n | { readonly kind: \"deleted\" }\n | { readonly kind: \"workspace\"; readonly path: string }\n >\n | undefined;\n readonly #readonlyDatabase: boolean;\n readonly #searchIndexWritebackPolicy: WorkspaceWritebackPolicy;\n readonly #sqliteLeaseOwnerId = createOwnerId();\n\n public constructor(\n archivePath: string,\n options: {\n readonly readonlyDatabase?: boolean;\n readonly searchIndexWritebackPolicy?: WorkspaceWritebackPolicy;\n readonly session?: WikgArchiveSession;\n },\n ) {\n this.#archivePath = resolve(archivePath);\n this.#archiveKey = createArchiveKey(this.#archivePath);\n this.#readonlyDatabase = options.readonlyDatabase === true;\n this.#searchIndexWritebackPolicy =\n options.searchIndexWritebackPolicy ?? \"archive\";\n this.#session = options.session;\n }\n\n async #readOverlay(entryPath: string): Promise<EntryOverlay | undefined> {\n const overlay = await readOverlay(this.#archiveKey, entryPath);\n\n if (overlay === undefined) {\n return undefined;\n }\n\n const signature = await createArchiveSignature(this.#archivePath);\n\n if (overlay.archiveSignature === signature) {\n return overlay;\n }\n\n await deleteOverlay(this.#archiveKey, entryPath);\n if (overlay.workspacePath !== undefined) {\n await rm(overlay.workspacePath, { force: true }).catch(() => undefined);\n }\n this.#entrySourceByPath?.delete(entryPath);\n return undefined;\n }\n\n readonly #session: WikgArchiveSession | undefined;\n\n public async close(): Promise<void> {\n if (this.#archiveReader !== undefined) {\n (await this.#archiveReader).close();\n this.#archiveReader = undefined;\n }\n await releaseSqliteLease({\n archiveKey: this.#archiveKey,\n entryPath: DATABASE_ENTRY_PATH,\n ownerId: this.#sqliteLeaseOwnerId,\n });\n await releaseSqliteLease({\n archiveKey: this.#archiveKey,\n entryPath: SEARCH_INDEX_DATABASE_ENTRY_PATH,\n ownerId: this.#sqliteLeaseOwnerId,\n });\n }\n\n public async deleteFile(path: string): Promise<void> {\n const entryPath = this.#toEntryPath(path);\n\n await withEntryLock(this.#archiveKey, entryPath, \"write\", async () => {\n await withEntryLock(this.#archiveKey, entryPath, \"state\", async () => {\n const overlay = await this.#readOverlay(entryPath);\n\n await upsertOverlay({\n archiveKey: this.#archiveKey,\n archivePath: this.#archivePath,\n entryPath,\n kind: \"deleted\",\n });\n if (overlay?.workspacePath !== undefined) {\n await rm(overlay.workspacePath, { force: true }).catch(\n () => undefined,\n );\n }\n this.#entrySourceByPath?.set(entryPath, { kind: \"deleted\" });\n this.#session?.modifyEntry(entryPath);\n });\n });\n }\n\n public async deleteTree(path: string): Promise<void> {\n const rootEntryPath = this.#toEntryPath(path);\n const entries = await listVisibleEntryPaths(\n await this.#listArchiveEntries(),\n {\n archiveKey: this.#archiveKey,\n prefix: `${rootEntryPath}/`,\n },\n );\n\n for (const entryPath of entries) {\n await this.deleteFile(entryPath);\n }\n }\n\n public ensureDirectory(): Promise<void> {\n return Promise.resolve();\n }\n\n public initializeDatabaseSchema(): boolean {\n return false;\n }\n\n public markDatabaseDirty(): void {\n if (!this.#readonlyDatabase) {\n this.#session?.observeDirtyEntry(DATABASE_ENTRY_PATH);\n }\n }\n\n public markSearchIndexDatabaseDirty(): void {\n if (\n !this.#readonlyDatabase &&\n this.#searchIndexWritebackPolicy === \"archive\"\n ) {\n this.#session?.observeDirtyEntry(SEARCH_INDEX_DATABASE_ENTRY_PATH);\n }\n }\n\n public openDatabaseReadonly(): boolean {\n return this.#readonlyDatabase;\n }\n\n public async listFiles(path: string): Promise<readonly string[]> {\n const directoryEntryPath = this.#toEntryPath(path);\n const prefix = directoryEntryPath === \"\" ? \"\" : `${directoryEntryPath}/`;\n const entries = (await this.#listDirectoryEntryPaths(prefix)).map(\n ([entryPath]) => entryPath,\n );\n\n return entries\n .map((entryPath) => entryPath.slice(prefix.length))\n .filter((entryPath) => !entryPath.includes(\"/\"))\n .map((entryPath) => posix.basename(entryPath))\n .sort((left, right) => left.localeCompare(right));\n }\n\n public async listFileContents(\n path: string,\n ): Promise<ReadonlyMap<string, Uint8Array>> {\n const directoryEntryPath = this.#toEntryPath(path);\n const prefix = directoryEntryPath === \"\" ? \"\" : `${directoryEntryPath}/`;\n return await withEntryLock(\n this.#archiveKey,\n normalizeEntryDirectoryPrefix(prefix),\n \"read\",\n async () => {\n const contents = new Map<string, Uint8Array>();\n\n for (const [entryPath, source] of await this.#listDirectoryEntryPaths(\n prefix,\n )) {\n const name = entryPath.slice(prefix.length);\n\n if (name.includes(\"/\")) {\n continue;\n }\n if (source.kind === \"workspace\") {\n contents.set(name, await readFile(source.path));\n continue;\n }\n\n const content = await this.#readArchiveEntry(entryPath);\n\n if (content !== undefined) {\n contents.set(name, content);\n }\n }\n\n return contents;\n },\n );\n }\n\n public async readFile(path: string): Promise<Uint8Array | undefined> {\n const entryPath = this.#toEntryPath(path);\n\n return await withEntryLock(\n this.#archiveKey,\n entryPath,\n \"read\",\n async () => {\n const source =\n (await this.#getEntrySources()).get(entryPath) ??\n (await withEntryLock(\n this.#archiveKey,\n entryPath,\n \"state\",\n async () =>\n await resolveEntrySource({\n archiveKey: this.#archiveKey,\n entryPath,\n }),\n ));\n\n if (source.kind === \"deleted\") {\n this.#session?.observeDirtyEntry(entryPath);\n return undefined;\n }\n if (source.kind === \"workspace\") {\n this.#session?.observeDirtyEntry(entryPath);\n return await readFile(source.path);\n }\n\n return await this.#readArchiveEntry(entryPath);\n },\n );\n }\n\n public async resolveDatabasePath(): Promise<string> {\n return await this.#resolveSqliteDatabasePath(DATABASE_ENTRY_PATH, {\n createIfMissing: true,\n readonly: this.#readonlyDatabase,\n });\n }\n\n public async resolveSearchIndexDatabasePath(): Promise<string> {\n return await this.#resolveSqliteDatabasePath(\n SEARCH_INDEX_DATABASE_ENTRY_PATH,\n {\n createIfMissing: !this.#readonlyDatabase,\n readonly: this.#readonlyDatabase,\n },\n );\n }\n\n async #resolveSqliteDatabasePath(\n entryPath: string,\n options: { readonly createIfMissing: boolean; readonly readonly: boolean },\n ): Promise<string> {\n return await withEntryLock(\n this.#archiveKey,\n entryPath,\n \"state\",\n async () => {\n let overlay = await this.#readOverlay(entryPath);\n\n if (\n entryPath === SEARCH_INDEX_DATABASE_ENTRY_PATH &&\n overlay?.kind !== \"file\"\n ) {\n await tryAdoptSearchIndexCacheOverlay({\n targetArchiveKey: this.#archiveKey,\n targetArchivePath: this.#archivePath,\n });\n overlay = await this.#readOverlay(entryPath);\n }\n\n if (overlay?.kind !== \"file\") {\n const content = await readWikgArchiveEntry(\n this.#archivePath,\n entryPath,\n );\n\n if (content === undefined && !options.createIfMissing) {\n throw new Error(`Archive SQLite entry is missing: ${entryPath}`);\n }\n const workspacePath = await createWorkspaceFilePath(\n this.#archiveKey,\n entryPath,\n );\n\n await mkdir(dirname(workspacePath), { recursive: true });\n await writeFile(workspacePath, content ?? new Uint8Array());\n await upsertOverlay({\n archiveKey: this.#archiveKey,\n archivePath: this.#archivePath,\n entryPath,\n kind: \"file\",\n workspacePath,\n });\n overlay = await this.#readOverlay(entryPath);\n }\n\n if (overlay?.workspacePath === undefined) {\n throw new Error(\"Could not materialize SQLite database.\");\n }\n\n await acquireSqliteLease({\n archiveKey: this.#archiveKey,\n entryPath,\n mode: options.readonly ? \"read\" : \"write\",\n ownerId: this.#sqliteLeaseOwnerId,\n });\n return overlay.workspacePath;\n },\n );\n }\n\n public async writeFile(\n path: string,\n content: string | Uint8Array,\n options: { readonly overwrite?: boolean },\n ): Promise<void> {\n const entryPath = this.#toEntryPath(path);\n\n await withEntryLock(this.#archiveKey, entryPath, \"write\", async () => {\n const source = await withEntryLock(\n this.#archiveKey,\n entryPath,\n \"state\",\n async () =>\n await resolveEntrySource({\n archiveKey: this.#archiveKey,\n entryPath,\n }),\n );\n const archiveEntryExists =\n source.kind === \"archive\" &&\n (await this.#readArchiveEntry(entryPath)) !== undefined;\n\n if (\n options.overwrite !== true &&\n (source.kind === \"workspace\" || archiveEntryExists)\n ) {\n throw new Error(`File already exists: ${path}`);\n }\n\n await withEntryLock(this.#archiveKey, entryPath, \"state\", async () => {\n const workspacePath = await createWorkspaceFilePath(\n this.#archiveKey,\n entryPath,\n );\n\n await mkdir(dirname(workspacePath), { recursive: true });\n const temporaryWorkspacePath = `${workspacePath}.${process.pid}.${Date.now()}.tmp`;\n\n try {\n await writeFile(temporaryWorkspacePath, content);\n await rename(temporaryWorkspacePath, workspacePath);\n } finally {\n await rm(temporaryWorkspacePath, { force: true }).catch(\n () => undefined,\n );\n }\n await upsertOverlay({\n archiveKey: this.#archiveKey,\n archivePath: this.#archivePath,\n entryPath,\n kind: \"file\",\n workspacePath,\n });\n this.#entrySourceByPath?.set(entryPath, {\n kind: \"workspace\",\n path: workspacePath,\n });\n if (source.kind === \"workspace\" && source.path !== workspacePath) {\n await rm(source.path, { force: true }).catch(() => undefined);\n }\n this.#session?.modifyEntry(entryPath);\n });\n });\n }\n\n #toEntryPath(path: string): string {\n const resolvedPath = resolve(path);\n const rootPrefix = this.#archivePath.endsWith(\"/\")\n ? this.#archivePath\n : `${this.#archivePath}/`;\n\n if (resolvedPath.startsWith(rootPrefix)) {\n return normalizeEntryPath(resolvedPath.slice(rootPrefix.length));\n }\n\n return normalizeEntryPath(path);\n }\n\n async #listArchiveEntries(): Promise<readonly string[]> {\n return (await this.#getArchiveReader()).listEntries();\n }\n\n async #readArchiveEntry(entryPath: string): Promise<Buffer | undefined> {\n return await (await this.#getArchiveReader()).readEntry(entryPath);\n }\n\n async #getArchiveReader(): Promise<WikgArchiveReader> {\n this.#archiveReader ??= WikgArchiveReader.open(this.#archivePath);\n return await this.#archiveReader;\n }\n\n async #getEntrySources(): Promise<\n Map<\n string,\n | { readonly kind: \"archive\" }\n | { readonly kind: \"deleted\" }\n | { readonly kind: \"workspace\"; readonly path: string }\n >\n > {\n if (this.#entrySourceByPath !== undefined) {\n return this.#entrySourceByPath;\n }\n\n const entries = new Map<\n string,\n | { readonly kind: \"archive\" }\n | { readonly kind: \"deleted\" }\n | { readonly kind: \"workspace\"; readonly path: string }\n >();\n\n for (const entryPath of await this.#listArchiveEntries()) {\n entries.set(entryPath, { kind: \"archive\" });\n }\n for (const overlay of await listOverlays(this.#archiveKey)) {\n if (overlay.kind === \"deleted\") {\n entries.set(overlay.entryPath, { kind: \"deleted\" });\n } else if (overlay.workspacePath !== undefined) {\n entries.set(overlay.entryPath, {\n kind: \"workspace\",\n path: overlay.workspacePath,\n });\n }\n }\n\n this.#entrySourceByPath = entries;\n return entries;\n }\n\n async #listDirectoryEntryPaths(\n prefix: string,\n ): Promise<\n Array<\n readonly [\n string,\n (\n | { readonly kind: \"archive\" }\n | { readonly kind: \"workspace\"; readonly path: string }\n ),\n ]\n >\n > {\n const entries: Array<\n readonly [\n string,\n (\n | { readonly kind: \"archive\" }\n | { readonly kind: \"workspace\"; readonly path: string }\n ),\n ]\n > = [];\n\n for (const [entryPath, source] of await this.#getEntrySources()) {\n if (source.kind === \"deleted\" || !entryPath.startsWith(prefix)) {\n continue;\n }\n\n entries.push([entryPath, source]);\n }\n\n return entries.sort(([left], [right]) => left.localeCompare(right));\n }\n}\n\nasync function flushArchiveOverlays(\n archiveKey: string,\n requestedEntryPaths?: ReadonlySet<string>,\n): Promise<void> {\n const overlays = (await listOverlays(archiveKey)).filter(\n (overlay) =>\n requestedEntryPaths === undefined ||\n requestedEntryPaths.has(overlay.entryPath),\n );\n const archivePath = await resolveArchivePathFromKey(archiveKey);\n\n if (overlays.length === 0 || archivePath === undefined) {\n return;\n }\n\n const entryPaths = overlays\n .map((overlay) => overlay.entryPath)\n .sort((left, right) => left.localeCompare(right));\n const lockedEntryPaths = new Set(entryPaths);\n const releaseLocks: Array<() => Promise<void>> = [];\n\n try {\n for (const entryPath of entryPaths) {\n releaseLocks.push(await acquireEntryLock(archiveKey, entryPath, \"write\"));\n }\n for (const entryPath of entryPaths) {\n releaseLocks.push(await acquireEntryLock(archiveKey, entryPath, \"state\"));\n }\n\n if (entryPaths.includes(DATABASE_ENTRY_PATH)) {\n await waitForSqliteLeasesToDrain(archiveKey, DATABASE_ENTRY_PATH);\n }\n if (entryPaths.includes(SEARCH_INDEX_DATABASE_ENTRY_PATH)) {\n await waitForSqliteLeasesToDrain(\n archiveKey,\n SEARCH_INDEX_DATABASE_ENTRY_PATH,\n );\n }\n\n const currentOverlays = (await listOverlays(archiveKey)).filter((overlay) =>\n lockedEntryPaths.has(overlay.entryPath),\n );\n\n if (currentOverlays.length === 0) {\n return;\n }\n\n const releaseCommit = await acquireArchiveCommitLock(archiveKey);\n\n try {\n const temporaryDirectoryPath = await mkdtemp(\n join(tmpdir(), \"wikigraph-flush-\"),\n );\n const temporaryArchivePath = join(\n temporaryDirectoryPath,\n basename(archivePath),\n );\n\n try {\n await writeWikgArchiveWithOverlays(\n archivePath,\n temporaryArchivePath,\n currentOverlays.map(toArchiveOverlay),\n );\n await mkdir(dirname(archivePath), { recursive: true });\n await rename(temporaryArchivePath, archivePath);\n } finally {\n await rm(temporaryDirectoryPath, { force: true, recursive: true });\n }\n } finally {\n await releaseCommit();\n }\n\n for (const overlay of currentOverlays) {\n await deleteOverlay(archiveKey, overlay.entryPath);\n if (overlay.workspacePath !== undefined) {\n await rm(overlay.workspacePath, { force: true });\n }\n }\n } finally {\n for (const release of releaseLocks.reverse()) {\n await release();\n }\n }\n}\n\nasync function acquireArchiveCommitLock(\n archiveKey: string,\n): Promise<() => Promise<void>> {\n const ownerId = createOwnerId();\n\n while (true) {\n const acquired = await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n return await state.transaction(async () => {\n const existing = await state.queryOne(\n \"SELECT * FROM archive_commit_locks WHERE archive_key = ?\",\n [archiveKey],\n mapArchiveCommitLock,\n );\n\n if (existing !== undefined) {\n return false;\n }\n\n await state.run(\n `\nINSERT INTO archive_commit_locks (\n archive_key, owner_id, owner_pid, heartbeat_at, created_at\n) VALUES (?, ?, ?, ?, ?)\n`,\n [archiveKey, ownerId, process.pid, Date.now(), Date.now()],\n );\n return true;\n });\n });\n\n if (acquired) {\n return async () => {\n await withStateDatabase(async (releaseState) => {\n await releaseState.run(\n \"DELETE FROM archive_commit_locks WHERE archive_key = ? AND owner_id = ?\",\n [archiveKey, ownerId],\n );\n });\n };\n }\n\n await delay(LOCK_POLL_INTERVAL_MS);\n }\n}\n\nasync function registerArchiveOwner(input: {\n readonly archiveKey: string;\n readonly ownerId: string;\n}): Promise<void> {\n await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n await state.run(\n `\nINSERT OR REPLACE INTO archive_owners (\n archive_key, owner_id, owner_pid, heartbeat_at, created_at\n) VALUES (?, ?, ?, ?, ?)\n`,\n [input.archiveKey, input.ownerId, process.pid, Date.now(), Date.now()],\n );\n });\n}\n\nasync function heartbeatArchiveOwner(input: {\n readonly archiveKey: string;\n readonly ownerId: string;\n}): Promise<void> {\n await withStateDatabase(async (state) => {\n await state.run(\n `\nUPDATE archive_owners\nSET heartbeat_at = ?, owner_pid = ?\nWHERE archive_key = ? AND owner_id = ?\n`,\n [Date.now(), process.pid, input.archiveKey, input.ownerId],\n );\n });\n}\n\nasync function unregisterArchiveOwner(input: {\n readonly archiveKey: string;\n readonly ownerId: string;\n}): Promise<void> {\n await withStateDatabase(async (state) => {\n await state.transaction(async () => {\n await state.run(\n \"DELETE FROM entry_sqlite_leases WHERE archive_key = ? AND owner_id = ?\",\n [input.archiveKey, input.ownerId],\n );\n await state.run(\n \"DELETE FROM archive_owners WHERE archive_key = ? AND owner_id = ?\",\n [input.archiveKey, input.ownerId],\n );\n });\n });\n}\n\nasync function reapArchive(archiveKey: string): Promise<void> {\n await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n });\n\n const staleOwnerIds = await withStateDatabase(\n async (state) =>\n await state.queryAll(\n `\nSELECT owner_id\nFROM archive_owners\nWHERE archive_key = ?\n AND heartbeat_at <= ?\n`,\n [archiveKey, Date.now() - LOCK_STALE_TIMEOUT_MS],\n (row) => getString(row, \"owner_id\"),\n ),\n );\n\n if (staleOwnerIds.length === 0) {\n return;\n }\n\n await withStateDatabase(async (state) => {\n await state.transaction(async () => {\n await state.run(\n `\nDELETE FROM entry_sqlite_leases\nWHERE archive_key = ?\n AND owner_id IN (${createPlaceholders(staleOwnerIds.length)})\n`,\n [archiveKey, ...staleOwnerIds],\n );\n await state.run(\n `\nDELETE FROM archive_owners\nWHERE archive_key = ?\n AND owner_id IN (${createPlaceholders(staleOwnerIds.length)})\n`,\n [archiveKey, ...staleOwnerIds],\n );\n });\n });\n\n await flushArchiveOverlays(archiveKey);\n}\n\nasync function acquireEntryLock(\n archiveKey: string,\n entryPath: string,\n mode: EntryLockMode,\n): Promise<() => Promise<void>> {\n const ownerId = createOwnerId();\n\n while (true) {\n const acquired = await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n return await state.transaction(async () => {\n const conflicts = await state.queryAll(\n `\nSELECT *\nFROM entry_locks\nWHERE archive_key = ?\n`,\n [archiveKey],\n mapEntryLock,\n );\n\n if (\n conflicts.some(\n (lock) =>\n lock.ownerId !== ownerId &&\n lockPathsConflict(entryPath, lock.entryPath) &&\n locksConflict(mode, lock.mode),\n )\n ) {\n return false;\n }\n\n await state.run(\n `\nINSERT INTO entry_locks (\n archive_key, entry_path, mode, owner_id, owner_pid, heartbeat_at, created_at\n) VALUES (?, ?, ?, ?, ?, ?, ?)\n`,\n [\n archiveKey,\n entryPath,\n mode,\n ownerId,\n process.pid,\n Date.now(),\n Date.now(),\n ],\n );\n return true;\n });\n });\n\n if (acquired) {\n return async () => {\n await withStateDatabase(async (releaseState) => {\n await releaseState.run(\n `\nDELETE FROM entry_locks\nWHERE archive_key = ? AND entry_path = ? AND owner_id = ?\n`,\n [archiveKey, entryPath, ownerId],\n );\n });\n };\n }\n\n await delay(LOCK_POLL_INTERVAL_MS);\n }\n}\n\nasync function withEntryLock<T>(\n archiveKey: string,\n entryPath: string,\n mode: EntryLockMode,\n operation: () => Promise<T> | T,\n): Promise<T> {\n const release = await acquireEntryLock(archiveKey, entryPath, mode);\n\n try {\n return await operation();\n } finally {\n await release();\n }\n}\n\nfunction locksConflict(requested: EntryLockMode, existing: EntryLockMode) {\n if (requested === \"state\" || existing === \"state\") {\n return requested === \"state\" && existing === \"state\";\n }\n if (requested === \"read\" && existing === \"read\") {\n return false;\n }\n\n return true;\n}\n\nfunction lockPathsConflict(requested: string, existing: string): boolean {\n return (\n requested === existing ||\n lockPathContains(requested, existing) ||\n lockPathContains(existing, requested)\n );\n}\n\nfunction lockPathContains(parent: string, child: string): boolean {\n return parent.endsWith(\"/\") && child.startsWith(parent);\n}\n\nasync function acquireSqliteLease(input: {\n readonly archiveKey: string;\n readonly entryPath: string;\n readonly mode: SqliteLeaseMode;\n readonly ownerId: string;\n}): Promise<void> {\n await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n await state.run(\n `\nINSERT OR REPLACE INTO entry_sqlite_leases (\n archive_key, entry_path, mode, owner_id, owner_pid, heartbeat_at, created_at\n) VALUES (?, ?, ?, ?, ?, ?, ?)\n`,\n [\n input.archiveKey,\n input.entryPath,\n input.mode,\n input.ownerId,\n process.pid,\n Date.now(),\n Date.now(),\n ],\n );\n });\n}\n\nasync function releaseSqliteLease(input: {\n readonly archiveKey: string;\n readonly entryPath: string;\n readonly ownerId: string;\n}): Promise<void> {\n await withStateDatabase(async (state) => {\n await state.run(\n `\nDELETE FROM entry_sqlite_leases\nWHERE archive_key = ? AND entry_path = ? AND owner_id = ?\n`,\n [input.archiveKey, input.entryPath, input.ownerId],\n );\n });\n}\n\nasync function waitForSqliteLeasesToDrain(\n archiveKey: string,\n entryPath: string,\n): Promise<void> {\n while (true) {\n const count = await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n return await state.queryOne(\n `\nSELECT COUNT(*) AS count\nFROM entry_sqlite_leases AS lease\nLEFT JOIN archive_owners AS owner\n ON owner.archive_key = lease.archive_key\n AND owner.owner_id = lease.owner_id\nWHERE lease.archive_key = ?\n AND lease.entry_path = ?\n AND (\n owner.owner_id IS NULL\n OR owner.heartbeat_at > ?\n )\n`,\n [archiveKey, entryPath, Date.now() - LOCK_STALE_TIMEOUT_MS],\n (row) => getNumber(row, \"count\"),\n );\n });\n\n if (count === 0) {\n return;\n }\n\n await delay(LOCK_POLL_INTERVAL_MS);\n }\n}\n\nasync function listVisibleEntryPaths(\n archiveEntries: readonly string[],\n input: { readonly archiveKey: string; readonly prefix: string },\n): Promise<readonly string[]> {\n const matchingArchiveEntries = archiveEntries.filter((entryPath) =>\n entryPath.startsWith(input.prefix),\n );\n const overlays = await withStateDatabase(\n async (state) =>\n await state.queryAll(\n `\nSELECT *\nFROM entry_overlays\nWHERE archive_key = ?\n`,\n [input.archiveKey],\n mapEntryOverlay,\n ),\n );\n const entries = new Set(matchingArchiveEntries);\n\n for (const overlay of overlays) {\n if (!overlay.entryPath.startsWith(input.prefix)) {\n continue;\n }\n if (overlay.kind === \"deleted\") {\n entries.delete(overlay.entryPath);\n } else {\n entries.add(overlay.entryPath);\n }\n }\n\n return [...entries].sort((left, right) => left.localeCompare(right));\n}\n\nasync function resolveEntrySource(input: {\n readonly archiveKey: string;\n readonly entryPath: string;\n}): Promise<\n | { readonly kind: \"archive\" }\n | { readonly kind: \"deleted\" }\n | { readonly kind: \"workspace\"; readonly path: string }\n> {\n const overlay = await readOverlay(input.archiveKey, input.entryPath);\n\n if (overlay?.kind === \"deleted\") {\n return { kind: \"deleted\" };\n }\n if (overlay?.workspacePath !== undefined) {\n return { kind: \"workspace\", path: overlay.workspacePath };\n }\n return { kind: \"archive\" };\n}\n\nasync function readOverlay(\n archiveKey: string,\n entryPath: string,\n): Promise<EntryOverlay | undefined> {\n return await withStateDatabase(\n async (state) =>\n await state.queryOne(\n \"SELECT * FROM entry_overlays WHERE archive_key = ? AND entry_path = ?\",\n [archiveKey, entryPath],\n mapEntryOverlay,\n ),\n );\n}\n\nasync function listOverlays(\n archiveKey: string,\n): Promise<readonly EntryOverlay[]> {\n return await withStateDatabase(\n async (state) =>\n await state.queryAll(\n `\nSELECT *\nFROM entry_overlays\nWHERE archive_key = ?\nORDER BY entry_path ASC\n`,\n [archiveKey],\n mapEntryOverlay,\n ),\n );\n}\n\nasync function upsertOverlay(input: {\n readonly archiveKey: string;\n readonly archivePath: string;\n readonly entryPath: string;\n readonly kind: \"deleted\" | \"file\";\n readonly workspacePath?: string;\n}): Promise<void> {\n const mutationToken =\n input.entryPath === SEARCH_INDEX_DATABASE_ENTRY_PATH\n ? await readWikgArchiveMutationToken(input.archivePath)\n : undefined;\n\n await withStateDatabase(async (state) => {\n await state.run(\n `\nINSERT INTO entry_overlays (\n archive_key, archive_path, entry_path, kind, workspace_path,\n archive_signature, mutation_token, updated_at\n) VALUES (?, ?, ?, ?, ?, ?, ?, ?)\nON CONFLICT(archive_key, entry_path)\nDO UPDATE SET kind = excluded.kind,\n archive_path = excluded.archive_path,\n workspace_path = excluded.workspace_path,\n archive_signature = excluded.archive_signature,\n mutation_token = excluded.mutation_token,\n updated_at = excluded.updated_at\n`,\n [\n input.archiveKey,\n input.archivePath,\n input.entryPath,\n input.kind,\n input.workspacePath ?? null,\n await createArchiveSignature(input.archivePath),\n mutationToken ?? null,\n Date.now(),\n ],\n );\n });\n}\n\nasync function tryAdoptSearchIndexCacheOverlay(input: {\n readonly targetArchiveKey: string;\n readonly targetArchivePath: string;\n}): Promise<void> {\n const mutationToken = await readWikgArchiveMutationToken(\n input.targetArchivePath,\n );\n const candidates = await listSearchIndexAdoptionCandidates({\n mutationToken,\n targetArchiveKey: input.targetArchiveKey,\n });\n const adoptable: EntryOverlay[] = [];\n\n for (const candidate of candidates) {\n if (\n candidate.workspacePath === undefined ||\n (await pathExists(candidate.archivePath)) ||\n (await hasActiveWorkspaceUse(candidate.archiveKey))\n ) {\n continue;\n }\n\n adoptable.push(candidate);\n }\n\n if (adoptable.length !== 1) {\n return;\n }\n\n const candidate = adoptable[0]!;\n const releaseWriteLock = await acquireEntryLock(\n candidate.archiveKey,\n SEARCH_INDEX_DATABASE_ENTRY_PATH,\n \"write\",\n );\n\n try {\n const releaseStateLock = await acquireEntryLock(\n candidate.archiveKey,\n SEARCH_INDEX_DATABASE_ENTRY_PATH,\n \"state\",\n );\n\n try {\n const current = await readOverlay(\n candidate.archiveKey,\n SEARCH_INDEX_DATABASE_ENTRY_PATH,\n );\n const target = await readOverlay(\n input.targetArchiveKey,\n SEARCH_INDEX_DATABASE_ENTRY_PATH,\n );\n\n if (\n current?.workspacePath === undefined ||\n current.workspacePath !== candidate.workspacePath ||\n current.mutationToken !== mutationToken ||\n target !== undefined ||\n (await pathExists(candidate.archivePath)) ||\n (await hasActiveArchiveOwnerOrSqliteLease(\n candidate.archiveKey,\n SEARCH_INDEX_DATABASE_ENTRY_PATH,\n ))\n ) {\n return;\n }\n\n const targetWorkspacePath = await createWorkspaceFilePath(\n input.targetArchiveKey,\n SEARCH_INDEX_DATABASE_ENTRY_PATH,\n );\n\n await rm(targetWorkspacePath, { force: true }).catch(() => undefined);\n await mkdir(dirname(targetWorkspacePath), { recursive: true });\n await rename(current.workspacePath, targetWorkspacePath);\n await withStateDatabase(async (state) => {\n await state.run(\n `\nUPDATE entry_overlays\nSET archive_key = ?,\n archive_path = ?,\n workspace_path = ?,\n archive_signature = ?,\n updated_at = ?\nWHERE archive_key = ?\n AND entry_path = ?\n`,\n [\n input.targetArchiveKey,\n input.targetArchivePath,\n targetWorkspacePath,\n await createArchiveSignature(input.targetArchivePath),\n Date.now(),\n candidate.archiveKey,\n SEARCH_INDEX_DATABASE_ENTRY_PATH,\n ],\n );\n });\n } finally {\n await releaseStateLock();\n }\n } finally {\n await releaseWriteLock();\n }\n}\n\nasync function listSearchIndexAdoptionCandidates(input: {\n readonly mutationToken: string;\n readonly targetArchiveKey: string;\n}): Promise<readonly EntryOverlay[]> {\n return await withStateDatabase(async (state) => {\n await cleanupStaleState(state);\n return await state.queryAll(\n `\nSELECT *\nFROM entry_overlays\nWHERE entry_path = ?\n AND kind = 'file'\n AND workspace_path IS NOT NULL\n AND mutation_token = ?\n AND archive_key <> ?\nORDER BY updated_at ASC\n`,\n [\n SEARCH_INDEX_DATABASE_ENTRY_PATH,\n input.mutationToken,\n input.targetArchiveKey,\n ],\n mapEntryOverlay,\n );\n });\n}\n\nasync function deleteOverlay(\n archiveKey: string,\n entryPath: string,\n): Promise<void> {\n await withStateDatabase(async (state) => {\n await state.run(\n \"DELETE FROM entry_overlays WHERE archive_key = ? AND entry_path = ?\",\n [archiveKey, entryPath],\n );\n });\n}\n\nasync function resolveArchivePathFromKey(\n archiveKey: string,\n): Promise<string | undefined> {\n return await withStateDatabase(\n async (state) =>\n await state.queryOne(\n \"SELECT archive_path FROM entry_overlays WHERE archive_key = ? LIMIT 1\",\n [archiveKey],\n (row) => getString(row, \"archive_path\"),\n ),\n );\n}\n\nasync function cleanupStaleState(state: Database): Promise<void> {\n const now = Date.now();\n const staleOwnerPids = new Set<number>();\n\n for (const tableName of [\n \"archive_owners\",\n \"entry_locks\",\n \"entry_sqlite_leases\",\n \"archive_commit_locks\",\n ]) {\n const rows = await state.queryAll(\n `\nSELECT DISTINCT owner_pid\nFROM ${tableName}\nWHERE owner_pid IS NOT NULL\n AND heartbeat_at <= ?\n`,\n [now - LOCK_STALE_TIMEOUT_MS],\n (row) => getNumber(row, \"owner_pid\"),\n );\n\n for (const ownerPid of rows) {\n if (!isProcessAlive(ownerPid)) {\n staleOwnerPids.add(ownerPid);\n }\n }\n }\n\n if (staleOwnerPids.size === 0) {\n return;\n }\n\n await state.run(\n `\nDELETE FROM archive_owners\nWHERE owner_pid IN (${createPlaceholders(staleOwnerPids.size)})\n`,\n [...staleOwnerPids],\n );\n await state.run(\n `\nDELETE FROM entry_locks\nWHERE owner_pid IN (${createPlaceholders(staleOwnerPids.size)})\n`,\n [...staleOwnerPids],\n );\n await state.run(\n `\nDELETE FROM entry_sqlite_leases\nWHERE owner_pid IN (${createPlaceholders(staleOwnerPids.size)})\n`,\n [...staleOwnerPids],\n );\n await state.run(\n `\nDELETE FROM archive_commit_locks\nWHERE owner_pid IN (${createPlaceholders(staleOwnerPids.size)})\n`,\n [...staleOwnerPids],\n );\n}\n\nfunction createPlaceholders(count: number): string {\n return Array.from({ length: count }, () => \"?\").join(\", \");\n}\n\nfunction isProcessAlive(pid: number): boolean {\n try {\n process.kill(pid, 0);\n return true;\n } catch (error) {\n if (error instanceof Error && \"code\" in error && error.code === \"ESRCH\") {\n return false;\n }\n\n return true;\n }\n}\n\nasync function withStateDatabase<T>(\n operation: (state: Database) => Promise<T> | T,\n): Promise<T> {\n return await STATE_DATABASE_SEMAPHORE.use(async () => {\n const state = await openStateDatabase();\n\n try {\n return await operation(state);\n } finally {\n await state.close();\n }\n });\n}\n\nasync function openStateDatabase(): Promise<Database> {\n const database = await openSharedStateDatabase(\n join(getCoordinatorStateDirectoryPath(), \"staging.sqlite\"),\n STATE_SCHEMA_SQL,\n );\n\n await migrateStateDatabase(database);\n return database;\n}\n\nasync function migrateStateDatabase(database: Database): Promise<void> {\n const overlayColumns = await database.queryAll(\n \"PRAGMA table_info(entry_overlays)\",\n undefined,\n (row) => getString(row, \"name\"),\n );\n\n if (!overlayColumns.includes(\"archive_signature\")) {\n await database.run(`\n ALTER TABLE entry_overlays\n ADD COLUMN archive_signature TEXT\n `);\n }\n\n if (!overlayColumns.includes(\"mutation_token\")) {\n await database.run(`\n ALTER TABLE entry_overlays\n ADD COLUMN mutation_token TEXT\n `);\n }\n\n const sqliteLeaseColumns = await database.queryAll(\n \"PRAGMA table_info(entry_sqlite_leases)\",\n undefined,\n (row) => getString(row, \"name\"),\n );\n\n if (!sqliteLeaseColumns.includes(\"mode\")) {\n await database.run(`\n ALTER TABLE entry_sqlite_leases\n ADD COLUMN mode TEXT NOT NULL DEFAULT 'read'\n `);\n }\n}\n\nasync function createWorkspaceFilePath(\n archiveKey: string,\n entryPath: string,\n): Promise<string> {\n const directoryPath = join(\n getCoordinatorWorkspaceRootPath(),\n archiveKey,\n dirname(entryPath),\n );\n\n await mkdir(directoryPath, { recursive: true });\n return join(directoryPath, basename(entryPath));\n}\n\nfunction getCoordinatorWorkspaceRootPath(): string {\n return join(getCoordinatorStateDirectoryPath(), \"work\");\n}\n\nasync function ensureEmptyDirectory(directoryPath: string): Promise<void> {\n await mkdir(directoryPath, { recursive: true });\n\n const entries = await readdir(directoryPath);\n\n if (entries.length > 0) {\n throw new Error(`Read workspace directory is not empty: ${directoryPath}`);\n }\n}\n\nasync function listWorkspaceFiles(directoryPath: string): Promise<string[]> {\n let entries: readonly WorkspaceDirectoryEntry[];\n\n try {\n entries = await readdir(directoryPath, { withFileTypes: true });\n } catch (error) {\n if (isNodeError(error) && error.code === \"ENOENT\") {\n return [];\n }\n\n throw error;\n }\n\n const files: string[] = [];\n\n for (const entry of entries) {\n const path = join(directoryPath, entry.name);\n\n if (entry.isDirectory()) {\n files.push(...(await listWorkspaceFiles(path)));\n } else if (entry.isFile()) {\n files.push(path);\n }\n }\n\n return files;\n}\n\nfunction toArchiveOverlay(overlay: EntryOverlay): WikgArchiveOverlay {\n if (overlay.kind === \"deleted\") {\n return {\n entryPath: overlay.entryPath,\n kind: \"deleted\",\n };\n }\n if (overlay.workspacePath === undefined) {\n throw new Error(`Missing workspace path for ${overlay.entryPath}.`);\n }\n\n return {\n entryPath: overlay.entryPath,\n kind: \"file\",\n workspacePath: overlay.workspacePath,\n };\n}\n\nfunction normalizeEntryPath(path: string): string {\n return path.replaceAll(\"\\\\\", \"/\").replace(/^\\/+/u, \"\");\n}\n\nfunction normalizeEntryDirectoryPrefix(path: string): string {\n const entryPath = normalizeEntryPath(path);\n\n return entryPath === \"\" || entryPath.endsWith(\"/\")\n ? entryPath\n : `${entryPath}/`;\n}\n\nfunction getCoordinatorStateDirectoryPath(): string {\n return resolveWikiGraphStagingDirectoryPath();\n}\n\nfunction createArchiveKey(archivePath: string): string {\n return createHash(\"sha256\").update(resolve(archivePath)).digest(\"hex\");\n}\n\nasync function createArchiveSignature(archivePath: string): Promise<string> {\n const stats = await stat(archivePath);\n\n return `${stats.size}:${stats.mtimeMs}`;\n}\n\nfunction createOwnerId(): string {\n return `${process.pid}-${randomUUID()}`;\n}\n\nasync function delay(ms: number): Promise<void> {\n await new Promise<void>((resolveDelay) => {\n setTimeout(resolveDelay, ms);\n });\n}\n\nasync function pathExists(path: string): Promise<boolean> {\n try {\n await stat(path);\n return true;\n } catch (error) {\n if (isNodeError(error) && error.code === \"ENOENT\") {\n return false;\n }\n\n throw error;\n }\n}\n\ninterface EntryOverlay {\n readonly archiveKey: string;\n readonly archivePath: string;\n readonly archiveSignature?: string;\n readonly entryPath: string;\n readonly kind: \"deleted\" | \"file\";\n readonly mutationToken?: string;\n readonly updatedAt: number;\n readonly workspacePath?: string;\n}\n\ninterface EntryLock {\n readonly entryPath: string;\n readonly mode: EntryLockMode;\n readonly ownerId: string;\n}\n\ninterface ArchiveCommitLock {\n readonly ownerId: string;\n}\n\ninterface WorkspaceDirectoryEntry {\n isDirectory(): boolean;\n isFile(): boolean;\n readonly name: string;\n}\n\nfunction mapEntryOverlay(row: Record<string, unknown>): EntryOverlay {\n const workspacePath = getOptionalString(row, \"workspace_path\");\n const archiveSignature = getOptionalString(row, \"archive_signature\");\n const mutationToken = getOptionalString(row, \"mutation_token\");\n\n return {\n archiveKey: getString(row, \"archive_key\"),\n archivePath: getString(row, \"archive_path\"),\n ...(archiveSignature === undefined ? {} : { archiveSignature }),\n entryPath: getString(row, \"entry_path\"),\n kind: getOverlayKind(row),\n ...(mutationToken === undefined ? {} : { mutationToken }),\n updatedAt: getNumber(row, \"updated_at\"),\n ...(workspacePath === undefined ? {} : { workspacePath }),\n };\n}\n\nfunction mapEntryLock(row: Record<string, unknown>): EntryLock {\n return {\n entryPath: getString(row, \"entry_path\"),\n mode: getEntryLockMode(row),\n ownerId: getString(row, \"owner_id\"),\n };\n}\n\nfunction mapArchiveCommitLock(row: Record<string, unknown>): ArchiveCommitLock {\n return {\n ownerId: getString(row, \"owner_id\"),\n };\n}\n\nfunction getEntryLockMode(row: Record<string, unknown>): EntryLockMode {\n const mode = getString(row, \"mode\");\n\n if (mode === \"read\" || mode === \"state\" || mode === \"write\") {\n return mode;\n }\n\n throw new Error(`Unsupported entry lock mode: ${mode}.`);\n}\n\nfunction getOverlayKind(row: Record<string, unknown>): \"deleted\" | \"file\" {\n const kind = getString(row, \"kind\");\n\n if (kind === \"deleted\" || kind === \"file\") {\n return kind;\n }\n\n throw new Error(`Unsupported entry overlay kind: ${kind}.`);\n}\n\nfunction getString(row: Record<string, unknown>, key: string): string {\n const value = row[key];\n\n if (typeof value !== \"string\") {\n throw new TypeError(`Expected ${key} to be a string`);\n }\n\n return value;\n}\n\nfunction getNumber(row: Record<string, unknown>, key: string): number {\n const value = row[key];\n\n if (typeof value !== \"number\") {\n throw new TypeError(`Expected ${key} to be a number`);\n }\n\n return value;\n}\n\nfunction getOptionalString(\n row: Record<string, unknown>,\n key: string,\n): string | undefined {\n const value = row[key];\n\n if (value === null || value === undefined) {\n return undefined;\n }\n\n if (typeof value !== \"string\") {\n throw new TypeError(`Expected ${key} to be a string`);\n }\n\n return value;\n}\n"],"mappings":"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","names":["candidate"]}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { DirectoryDocument } from '../document/document.js';
|
|
2
|
-
import { WikiGraphArchive } from '../facade/wiki-graph-archive.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.js';
|
|
10
|
-
import '../document/types.js';
|
|
11
|
-
import '../document/stores.js';
|
|
12
|
-
import '../facade/chapter.js';
|
|
13
|
-
import '../common/language.js';
|
|
14
|
-
import '../common/llm-scope.js';
|
|
15
|
-
import '../llm/client.js';
|
|
16
|
-
import '../llm/context.js';
|
|
17
|
-
import '../llm/cache.js';
|
|
18
|
-
import '../llm/types.js';
|
|
19
|
-
import 'ai';
|
|
20
|
-
import '../reader/types.js';
|
|
21
|
-
import '../reader/attention/attention.js';
|
|
22
|
-
import '../reader/chunk-batch/types.js';
|
|
23
|
-
import '../reader/segment/types.js';
|
|
24
|
-
import '../serial.js';
|
|
25
|
-
import '../facade/types.js';
|
|
26
|
-
|
|
27
|
-
declare class WikiGraphArchiveFile {
|
|
28
|
-
#private;
|
|
29
|
-
constructor(path: string);
|
|
30
|
-
read<T>(operation: (digest: WikiGraphArchive) => Promise<T> | T, options?: {
|
|
31
|
-
readonly documentDirPath?: string;
|
|
32
|
-
}): Promise<T>;
|
|
33
|
-
readDocument<T>(operation: (document: DirectoryDocument, directoryPath: string) => Promise<T> | T, options?: {
|
|
34
|
-
readonly documentDirPath?: string;
|
|
35
|
-
readonly searchIndexWritebackPolicy?: "archive" | "cache";
|
|
36
|
-
}): Promise<T>;
|
|
37
|
-
write<T>(operation: (document: DirectoryDocument) => Promise<T> | T, options?: {
|
|
38
|
-
readonly searchIndexWritebackPolicy?: "archive" | "cache";
|
|
39
|
-
}): Promise<T>;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export { WikiGraphArchiveFile };
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { resolve } from "path";
|
|
2
|
-
import { DirectoryDocument } from "../document/index.js";
|
|
3
|
-
import { WikgCoordinator } from "./wikg-coordinator.js";
|
|
4
|
-
import { deleteArchiveSearchSessions } from "../archive/query/index.js";
|
|
5
|
-
import { WikiGraphArchive } from "../facade/wiki-graph-archive.js";
|
|
6
|
-
class WikiGraphArchiveFile {
|
|
7
|
-
#path;
|
|
8
|
-
#coordinator = new WikgCoordinator();
|
|
9
|
-
constructor(path) {
|
|
10
|
-
this.#path = resolve(path);
|
|
11
|
-
}
|
|
12
|
-
async read(operation, options = {}) {
|
|
13
|
-
return await this.readDocument(
|
|
14
|
-
async (document, directoryPath) => await operation(new WikiGraphArchive(document, directoryPath)),
|
|
15
|
-
options
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
async readDocument(operation, options = {}) {
|
|
19
|
-
return await this.#coordinator.withArchiveSession(
|
|
20
|
-
this.#path,
|
|
21
|
-
async (session) => {
|
|
22
|
-
if (options.documentDirPath !== void 0) {
|
|
23
|
-
return await session.materializeReadWorkspace(
|
|
24
|
-
options.documentDirPath,
|
|
25
|
-
async (directoryPath) => {
|
|
26
|
-
const document2 = await DirectoryDocument.open(directoryPath);
|
|
27
|
-
try {
|
|
28
|
-
return await operation(document2, directoryPath);
|
|
29
|
-
} finally {
|
|
30
|
-
await document2.release();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
const document = await DirectoryDocument.open(this.#path, {
|
|
36
|
-
fileStore: session.createFileStore({
|
|
37
|
-
readonlyDatabase: true,
|
|
38
|
-
...options.searchIndexWritebackPolicy === void 0 ? {} : {
|
|
39
|
-
searchIndexWritebackPolicy: options.searchIndexWritebackPolicy
|
|
40
|
-
}
|
|
41
|
-
})
|
|
42
|
-
});
|
|
43
|
-
try {
|
|
44
|
-
return await operation(document, this.#path);
|
|
45
|
-
} finally {
|
|
46
|
-
await document.release();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
async write(operation, options = {}) {
|
|
52
|
-
return await this.#coordinator.withArchiveSession(
|
|
53
|
-
this.#path,
|
|
54
|
-
async (session) => {
|
|
55
|
-
const document = await DirectoryDocument.open(this.#path, {
|
|
56
|
-
fileStore: session.createFileStore({
|
|
57
|
-
...options.searchIndexWritebackPolicy === void 0 ? {} : {
|
|
58
|
-
searchIndexWritebackPolicy: options.searchIndexWritebackPolicy
|
|
59
|
-
}
|
|
60
|
-
})
|
|
61
|
-
});
|
|
62
|
-
try {
|
|
63
|
-
return await operation(document);
|
|
64
|
-
} finally {
|
|
65
|
-
try {
|
|
66
|
-
await document.release();
|
|
67
|
-
} finally {
|
|
68
|
-
await deleteArchiveSearchSessions(this.#path);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
export {
|
|
76
|
-
WikiGraphArchiveFile
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=wiki-graph-archive-file.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/wikg/wiki-graph-archive-file.ts"],"sourcesContent":["import { resolve } from \"path\";\n\nimport { DirectoryDocument } from \"../document/index.js\";\n\nimport { WikgCoordinator } from \"./wikg-coordinator.js\";\nimport { deleteArchiveSearchSessions } from \"../archive/query/index.js\";\nimport { WikiGraphArchive } from \"../facade/wiki-graph-archive.js\";\n\nexport class WikiGraphArchiveFile {\n readonly #path: string;\n readonly #coordinator = new WikgCoordinator();\n\n public constructor(path: string) {\n this.#path = resolve(path);\n }\n\n public async read<T>(\n operation: (digest: WikiGraphArchive) => Promise<T> | T,\n options: {\n readonly documentDirPath?: string;\n } = {},\n ): Promise<T> {\n return await this.readDocument(\n async (document, directoryPath) =>\n await operation(new WikiGraphArchive(document, directoryPath)),\n options,\n );\n }\n\n public async readDocument<T>(\n operation: (\n document: DirectoryDocument,\n directoryPath: string,\n ) => Promise<T> | T,\n options: {\n readonly documentDirPath?: string;\n readonly searchIndexWritebackPolicy?: \"archive\" | \"cache\";\n } = {},\n ): Promise<T> {\n return await this.#coordinator.withArchiveSession(\n this.#path,\n async (session) => {\n if (options.documentDirPath !== undefined) {\n return await session.materializeReadWorkspace(\n options.documentDirPath,\n async (directoryPath) => {\n const document = await DirectoryDocument.open(directoryPath);\n\n try {\n return await operation(document, directoryPath);\n } finally {\n await document.release();\n }\n },\n );\n }\n\n const document = await DirectoryDocument.open(this.#path, {\n fileStore: session.createFileStore({\n readonlyDatabase: true,\n ...(options.searchIndexWritebackPolicy === undefined\n ? {}\n : {\n searchIndexWritebackPolicy:\n options.searchIndexWritebackPolicy,\n }),\n }),\n });\n\n try {\n return await operation(document, this.#path);\n } finally {\n await document.release();\n }\n },\n );\n }\n\n public async write<T>(\n operation: (document: DirectoryDocument) => Promise<T> | T,\n options: { readonly searchIndexWritebackPolicy?: \"archive\" | \"cache\" } = {},\n ): Promise<T> {\n return await this.#coordinator.withArchiveSession(\n this.#path,\n async (session) => {\n const document = await DirectoryDocument.open(this.#path, {\n fileStore: session.createFileStore({\n ...(options.searchIndexWritebackPolicy === undefined\n ? {}\n : {\n searchIndexWritebackPolicy:\n options.searchIndexWritebackPolicy,\n }),\n }),\n });\n\n try {\n return await operation(document);\n } finally {\n try {\n await document.release();\n } finally {\n await deleteArchiveSearchSessions(this.#path);\n }\n }\n },\n );\n }\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAExB,SAAS,yBAAyB;AAElC,SAAS,uBAAuB;AAChC,SAAS,mCAAmC;AAC5C,SAAS,wBAAwB;AAE1B,MAAM,qBAAqB;AAAA,EACvB;AAAA,EACA,eAAe,IAAI,gBAAgB;AAAA,EAErC,YAAY,MAAc;AAC/B,SAAK,QAAQ,QAAQ,IAAI;AAAA,EAC3B;AAAA,EAEA,MAAa,KACX,WACA,UAEI,CAAC,GACO;AACZ,WAAO,MAAM,KAAK;AAAA,MAChB,OAAO,UAAU,kBACf,MAAM,UAAU,IAAI,iBAAiB,UAAU,aAAa,CAAC;AAAA,MAC/D;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAa,aACX,WAIA,UAGI,CAAC,GACO;AACZ,WAAO,MAAM,KAAK,aAAa;AAAA,MAC7B,KAAK;AAAA,MACL,OAAO,YAAY;AACjB,YAAI,QAAQ,oBAAoB,QAAW;AACzC,iBAAO,MAAM,QAAQ;AAAA,YACnB,QAAQ;AAAA,YACR,OAAO,kBAAkB;AACvB,oBAAMA,YAAW,MAAM,kBAAkB,KAAK,aAAa;AAE3D,kBAAI;AACF,uBAAO,MAAM,UAAUA,WAAU,aAAa;AAAA,cAChD,UAAE;AACA,sBAAMA,UAAS,QAAQ;AAAA,cACzB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,cAAM,WAAW,MAAM,kBAAkB,KAAK,KAAK,OAAO;AAAA,UACxD,WAAW,QAAQ,gBAAgB;AAAA,YACjC,kBAAkB;AAAA,YAClB,GAAI,QAAQ,+BAA+B,SACvC,CAAC,IACD;AAAA,cACE,4BACE,QAAQ;AAAA,YACZ;AAAA,UACN,CAAC;AAAA,QACH,CAAC;AAED,YAAI;AACF,iBAAO,MAAM,UAAU,UAAU,KAAK,KAAK;AAAA,QAC7C,UAAE;AACA,gBAAM,SAAS,QAAQ;AAAA,QACzB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAa,MACX,WACA,UAAyE,CAAC,GAC9D;AACZ,WAAO,MAAM,KAAK,aAAa;AAAA,MAC7B,KAAK;AAAA,MACL,OAAO,YAAY;AACjB,cAAM,WAAW,MAAM,kBAAkB,KAAK,KAAK,OAAO;AAAA,UACxD,WAAW,QAAQ,gBAAgB;AAAA,YACjC,GAAI,QAAQ,+BAA+B,SACvC,CAAC,IACD;AAAA,cACE,4BACE,QAAQ;AAAA,YACZ;AAAA,UACN,CAAC;AAAA,QACH,CAAC;AAED,YAAI;AACF,iBAAO,MAAM,UAAU,QAAQ;AAAA,QACjC,UAAE;AACA,cAAI;AACF,kBAAM,SAAS,QAAQ;AAAA,UACzB,UAAE;AACA,kBAAM,4BAA4B,KAAK,KAAK;AAAA,UAC9C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":["document"]}
|
package/dist/wikilink/index.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { DiscoverWikilinkRelationsOptions, WikilinkDiscoveredRelation, WikilinkSentence, discoverWikilinkRelations } from './relation-discovery.js';
|
|
2
|
-
export { buildWikilinkEvidenceWindows } from './window.js';
|
|
3
|
-
export { BuildWikilinkEvidenceWindowsOptions, WikilinkEvidenceWindow, WikilinkMention } from './types.js';
|
|
4
|
-
import '../guaranteed/types.js';
|
|
5
|
-
import '../llm/types.js';
|
|
6
|
-
import 'ai';
|
|
7
|
-
import 'zod';
|
|
8
|
-
import '../document/types.js';
|
|
9
|
-
import '../wikimatch/types.js';
|
|
10
|
-
import '../wikipage/types.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/wikilink/index.ts"],"sourcesContent":["export { discoverWikilinkRelations } from \"./relation-discovery.js\";\nexport { buildWikilinkEvidenceWindows } from \"./window.js\";\nexport type {\n DiscoverWikilinkRelationsOptions,\n WikilinkDiscoveredRelation,\n WikilinkSentence,\n} from \"./relation-discovery.js\";\nexport type {\n BuildWikilinkEvidenceWindowsOptions,\n WikilinkEvidenceWindow,\n WikilinkMention,\n} from \"./types.js\";\n"],"mappings":"AAAA,SAAS,iCAAiC;AAC1C,SAAS,oCAAoC;","names":[]}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { GuaranteedRequest } from '../guaranteed/types.js';
|
|
2
|
-
import { SentenceId } from '../document/types.js';
|
|
3
|
-
import { WikilinkEvidenceWindow } from './types.js';
|
|
4
|
-
import '../llm/types.js';
|
|
5
|
-
import 'ai';
|
|
6
|
-
import 'zod';
|
|
7
|
-
import '../wikimatch/types.js';
|
|
8
|
-
import '../wikipage/types.js';
|
|
9
|
-
|
|
10
|
-
interface WikilinkSentence {
|
|
11
|
-
readonly text: string;
|
|
12
|
-
readonly wordsCount: number;
|
|
13
|
-
}
|
|
14
|
-
interface WikilinkDiscoveredRelation {
|
|
15
|
-
readonly confidence?: number;
|
|
16
|
-
readonly evidenceSentenceIds: readonly SentenceId[];
|
|
17
|
-
readonly predicate: string;
|
|
18
|
-
readonly sourceMentionId: string;
|
|
19
|
-
readonly targetMentionId: string;
|
|
20
|
-
}
|
|
21
|
-
interface DiscoverWikilinkRelationsOptions {
|
|
22
|
-
readonly chapterId: number;
|
|
23
|
-
readonly fragmentId?: number;
|
|
24
|
-
readonly maxRetries?: number;
|
|
25
|
-
readonly request: GuaranteedRequest;
|
|
26
|
-
readonly sentences: readonly WikilinkSentence[];
|
|
27
|
-
readonly window: WikilinkEvidenceWindow;
|
|
28
|
-
}
|
|
29
|
-
declare function discoverWikilinkRelations(options: DiscoverWikilinkRelationsOptions): Promise<readonly WikilinkDiscoveredRelation[]>;
|
|
30
|
-
|
|
31
|
-
export { type DiscoverWikilinkRelationsOptions, type WikilinkDiscoveredRelation, type WikilinkSentence, discoverWikilinkRelations };
|