@tenphi/akno-core 0.1.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/LICENSE +83 -0
- package/README.md +26 -0
- package/config/default.jsonc +548 -0
- package/dist/bench/answer-corpus.d.ts +48 -0
- package/dist/bench/answer-corpus.d.ts.map +1 -0
- package/dist/bench/answer-corpus.js +491 -0
- package/dist/bench/answer-corpus.js.map +1 -0
- package/dist/bench/answer.d.ts +156 -0
- package/dist/bench/answer.d.ts.map +1 -0
- package/dist/bench/answer.js +608 -0
- package/dist/bench/answer.js.map +1 -0
- package/dist/bench/auto-recall-answer-corpus.d.ts +21 -0
- package/dist/bench/auto-recall-answer-corpus.d.ts.map +1 -0
- package/dist/bench/auto-recall-answer-corpus.js +245 -0
- package/dist/bench/auto-recall-answer-corpus.js.map +1 -0
- package/dist/bench/auto-recall-answer.d.ts +198 -0
- package/dist/bench/auto-recall-answer.d.ts.map +1 -0
- package/dist/bench/auto-recall-answer.js +720 -0
- package/dist/bench/auto-recall-answer.js.map +1 -0
- package/dist/bench/auto-recall-corpus.d.ts +45 -0
- package/dist/bench/auto-recall-corpus.d.ts.map +1 -0
- package/dist/bench/auto-recall-corpus.js +221 -0
- package/dist/bench/auto-recall-corpus.js.map +1 -0
- package/dist/bench/auto-recall.d.ts +171 -0
- package/dist/bench/auto-recall.d.ts.map +1 -0
- package/dist/bench/auto-recall.js +651 -0
- package/dist/bench/auto-recall.js.map +1 -0
- package/dist/bench/entity-resolution.d.ts +37 -0
- package/dist/bench/entity-resolution.d.ts.map +1 -0
- package/dist/bench/entity-resolution.js +121 -0
- package/dist/bench/entity-resolution.js.map +1 -0
- package/dist/bench/graph.d.ts +57 -0
- package/dist/bench/graph.d.ts.map +1 -0
- package/dist/bench/graph.js +573 -0
- package/dist/bench/graph.js.map +1 -0
- package/dist/bench/llm-ranking-probe.d.ts +27 -0
- package/dist/bench/llm-ranking-probe.d.ts.map +1 -0
- package/dist/bench/llm-ranking-probe.js +105 -0
- package/dist/bench/llm-ranking-probe.js.map +1 -0
- package/dist/bench/merge-discovery-corpus.d.ts +26 -0
- package/dist/bench/merge-discovery-corpus.d.ts.map +1 -0
- package/dist/bench/merge-discovery-corpus.js +114 -0
- package/dist/bench/merge-discovery-corpus.js.map +1 -0
- package/dist/bench/merge-discovery-review.d.ts +81 -0
- package/dist/bench/merge-discovery-review.d.ts.map +1 -0
- package/dist/bench/merge-discovery-review.js +149 -0
- package/dist/bench/merge-discovery-review.js.map +1 -0
- package/dist/bench/merge-discovery.d.ts +122 -0
- package/dist/bench/merge-discovery.d.ts.map +1 -0
- package/dist/bench/merge-discovery.js +390 -0
- package/dist/bench/merge-discovery.js.map +1 -0
- package/dist/bench/mixed-retrieval.d.ts +35 -0
- package/dist/bench/mixed-retrieval.d.ts.map +1 -0
- package/dist/bench/mixed-retrieval.js +355 -0
- package/dist/bench/mixed-retrieval.js.map +1 -0
- package/dist/bench/ranking-corpus.d.ts +29 -0
- package/dist/bench/ranking-corpus.d.ts.map +1 -0
- package/dist/bench/ranking-corpus.js +514 -0
- package/dist/bench/ranking-corpus.js.map +1 -0
- package/dist/bench/ranking-end-to-end.d.ts +112 -0
- package/dist/bench/ranking-end-to-end.d.ts.map +1 -0
- package/dist/bench/ranking-end-to-end.js +479 -0
- package/dist/bench/ranking-end-to-end.js.map +1 -0
- package/dist/bench/ranking-latency.d.ts +71 -0
- package/dist/bench/ranking-latency.d.ts.map +1 -0
- package/dist/bench/ranking-latency.js +130 -0
- package/dist/bench/ranking-latency.js.map +1 -0
- package/dist/bench/ranking-matrix.d.ts +141 -0
- package/dist/bench/ranking-matrix.d.ts.map +1 -0
- package/dist/bench/ranking-matrix.js +526 -0
- package/dist/bench/ranking-matrix.js.map +1 -0
- package/dist/bench/ranking-review.d.ts +93 -0
- package/dist/bench/ranking-review.d.ts.map +1 -0
- package/dist/bench/ranking-review.js +249 -0
- package/dist/bench/ranking-review.js.map +1 -0
- package/dist/bench/ranking.d.ts +122 -0
- package/dist/bench/ranking.d.ts.map +1 -0
- package/dist/bench/ranking.js +547 -0
- package/dist/bench/ranking.js.map +1 -0
- package/dist/bench.d.ts +60 -0
- package/dist/bench.d.ts.map +1 -0
- package/dist/bench.js +167 -0
- package/dist/bench.js.map +1 -0
- package/dist/config/jsonc.d.ts +8 -0
- package/dist/config/jsonc.d.ts.map +1 -0
- package/dist/config/jsonc.js +85 -0
- package/dist/config/jsonc.js.map +1 -0
- package/dist/config/load.d.ts +43 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +608 -0
- package/dist/config/load.js.map +1 -0
- package/dist/config/paths.d.ts +10 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +38 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/schema.d.ts +698 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +394 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/write-rules.d.ts +41 -0
- package/dist/config/write-rules.d.ts.map +1 -0
- package/dist/config/write-rules.js +225 -0
- package/dist/config/write-rules.js.map +1 -0
- package/dist/config/write-setup.d.ts +42 -0
- package/dist/config/write-setup.d.ts.map +1 -0
- package/dist/config/write-setup.js +358 -0
- package/dist/config/write-setup.js.map +1 -0
- package/dist/context.d.ts +64 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +14 -0
- package/dist/context.js.map +1 -0
- package/dist/doctor.d.ts +115 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +388 -0
- package/dist/doctor.js.map +1 -0
- package/dist/index/chunk.d.ts +62 -0
- package/dist/index/chunk.d.ts.map +1 -0
- package/dist/index/chunk.js +307 -0
- package/dist/index/chunk.js.map +1 -0
- package/dist/index/defer.d.ts +32 -0
- package/dist/index/defer.d.ts.map +1 -0
- package/dist/index/defer.js +66 -0
- package/dist/index/defer.js.map +1 -0
- package/dist/index/derive.d.ts +99 -0
- package/dist/index/derive.d.ts.map +1 -0
- package/dist/index/derive.js +378 -0
- package/dist/index/derive.js.map +1 -0
- package/dist/index/entity-resolution.d.ts +68 -0
- package/dist/index/entity-resolution.d.ts.map +1 -0
- package/dist/index/entity-resolution.js +305 -0
- package/dist/index/entity-resolution.js.map +1 -0
- package/dist/index/graph.d.ts +46 -0
- package/dist/index/graph.d.ts.map +1 -0
- package/dist/index/graph.js +618 -0
- package/dist/index/graph.js.map +1 -0
- package/dist/index/indexer.d.ts +301 -0
- package/dist/index/indexer.d.ts.map +1 -0
- package/dist/index/indexer.js +1398 -0
- package/dist/index/indexer.js.map +1 -0
- package/dist/index/revision-barrier.d.ts +30 -0
- package/dist/index/revision-barrier.d.ts.map +1 -0
- package/dist/index/revision-barrier.js +140 -0
- package/dist/index/revision-barrier.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/ingest/adoption-eligibility.d.ts +4 -0
- package/dist/ingest/adoption-eligibility.d.ts.map +1 -0
- package/dist/ingest/adoption-eligibility.js +18 -0
- package/dist/ingest/adoption-eligibility.js.map +1 -0
- package/dist/ingest/availability.d.ts +15 -0
- package/dist/ingest/availability.d.ts.map +1 -0
- package/dist/ingest/availability.js +37 -0
- package/dist/ingest/availability.js.map +1 -0
- package/dist/ingest/extract.d.ts +58 -0
- package/dist/ingest/extract.d.ts.map +1 -0
- package/dist/ingest/extract.js +255 -0
- package/dist/ingest/extract.js.map +1 -0
- package/dist/ingest/fetch.d.ts +35 -0
- package/dist/ingest/fetch.d.ts.map +1 -0
- package/dist/ingest/fetch.js +142 -0
- package/dist/ingest/fetch.js.map +1 -0
- package/dist/ingest/inbox.d.ts +53 -0
- package/dist/ingest/inbox.d.ts.map +1 -0
- package/dist/ingest/inbox.js +110 -0
- package/dist/ingest/inbox.js.map +1 -0
- package/dist/ingest/name.d.ts +72 -0
- package/dist/ingest/name.d.ts.map +1 -0
- package/dist/ingest/name.js +208 -0
- package/dist/ingest/name.js.map +1 -0
- package/dist/ingest/parts.d.ts +78 -0
- package/dist/ingest/parts.d.ts.map +1 -0
- package/dist/ingest/parts.js +52 -0
- package/dist/ingest/parts.js.map +1 -0
- package/dist/ingest/rendition.d.ts +75 -0
- package/dist/ingest/rendition.d.ts.map +1 -0
- package/dist/ingest/rendition.js +92 -0
- package/dist/ingest/rendition.js.map +1 -0
- package/dist/ingest/store.d.ts +66 -0
- package/dist/ingest/store.d.ts.map +1 -0
- package/dist/ingest/store.js +92 -0
- package/dist/ingest/store.js.map +1 -0
- package/dist/kb/folders.d.ts +37 -0
- package/dist/kb/folders.d.ts.map +1 -0
- package/dist/kb/folders.js +133 -0
- package/dist/kb/folders.js.map +1 -0
- package/dist/kb/frontmatter.d.ts +91 -0
- package/dist/kb/frontmatter.d.ts.map +1 -0
- package/dist/kb/frontmatter.js +274 -0
- package/dist/kb/frontmatter.js.map +1 -0
- package/dist/kb/line-facts.d.ts +29 -0
- package/dist/kb/line-facts.d.ts.map +1 -0
- package/dist/kb/line-facts.js +23 -0
- package/dist/kb/line-facts.js.map +1 -0
- package/dist/kb/page.d.ts +92 -0
- package/dist/kb/page.d.ts.map +1 -0
- package/dist/kb/page.js +243 -0
- package/dist/kb/page.js.map +1 -0
- package/dist/kb/scan.d.ts +38 -0
- package/dist/kb/scan.d.ts.map +1 -0
- package/dist/kb/scan.js +109 -0
- package/dist/kb/scan.js.map +1 -0
- package/dist/kb/words.d.ts +30 -0
- package/dist/kb/words.d.ts.map +1 -0
- package/dist/kb/words.js +107 -0
- package/dist/kb/words.js.map +1 -0
- package/dist/maintenance/adopt.d.ts +65 -0
- package/dist/maintenance/adopt.d.ts.map +1 -0
- package/dist/maintenance/adopt.js +238 -0
- package/dist/maintenance/adopt.js.map +1 -0
- package/dist/maintenance/budget.d.ts +55 -0
- package/dist/maintenance/budget.d.ts.map +1 -0
- package/dist/maintenance/budget.js +61 -0
- package/dist/maintenance/budget.js.map +1 -0
- package/dist/maintenance/conflicts.d.ts +105 -0
- package/dist/maintenance/conflicts.d.ts.map +1 -0
- package/dist/maintenance/conflicts.js +368 -0
- package/dist/maintenance/conflicts.js.map +1 -0
- package/dist/maintenance/contradictions.d.ts +34 -0
- package/dist/maintenance/contradictions.d.ts.map +1 -0
- package/dist/maintenance/contradictions.js +199 -0
- package/dist/maintenance/contradictions.js.map +1 -0
- package/dist/maintenance/curate.d.ts +156 -0
- package/dist/maintenance/curate.d.ts.map +1 -0
- package/dist/maintenance/curate.js +2070 -0
- package/dist/maintenance/curate.js.map +1 -0
- package/dist/maintenance/dream.d.ts +139 -0
- package/dist/maintenance/dream.d.ts.map +1 -0
- package/dist/maintenance/dream.js +1632 -0
- package/dist/maintenance/dream.js.map +1 -0
- package/dist/maintenance/graph-candidates.d.ts +19 -0
- package/dist/maintenance/graph-candidates.d.ts.map +1 -0
- package/dist/maintenance/graph-candidates.js +120 -0
- package/dist/maintenance/graph-candidates.js.map +1 -0
- package/dist/maintenance/housekeeping.d.ts +81 -0
- package/dist/maintenance/housekeeping.d.ts.map +1 -0
- package/dist/maintenance/housekeeping.js +281 -0
- package/dist/maintenance/housekeeping.js.map +1 -0
- package/dist/maintenance/link-repairs.d.ts +58 -0
- package/dist/maintenance/link-repairs.d.ts.map +1 -0
- package/dist/maintenance/link-repairs.js +281 -0
- package/dist/maintenance/link-repairs.js.map +1 -0
- package/dist/maintenance/log.d.ts +41 -0
- package/dist/maintenance/log.d.ts.map +1 -0
- package/dist/maintenance/log.js +72 -0
- package/dist/maintenance/log.js.map +1 -0
- package/dist/maintenance/managed-item-routing.d.ts +48 -0
- package/dist/maintenance/managed-item-routing.d.ts.map +1 -0
- package/dist/maintenance/managed-item-routing.js +281 -0
- package/dist/maintenance/managed-item-routing.js.map +1 -0
- package/dist/maintenance/managed-item-sources.d.ts +38 -0
- package/dist/maintenance/managed-item-sources.d.ts.map +1 -0
- package/dist/maintenance/managed-item-sources.js +324 -0
- package/dist/maintenance/managed-item-sources.js.map +1 -0
- package/dist/maintenance/managed-items.d.ts +162 -0
- package/dist/maintenance/managed-items.d.ts.map +1 -0
- package/dist/maintenance/managed-items.js +1329 -0
- package/dist/maintenance/managed-items.js.map +1 -0
- package/dist/maintenance/merge-classifier.d.ts +19 -0
- package/dist/maintenance/merge-classifier.d.ts.map +1 -0
- package/dist/maintenance/merge-classifier.js +49 -0
- package/dist/maintenance/merge-classifier.js.map +1 -0
- package/dist/maintenance/model-telemetry.d.ts +45 -0
- package/dist/maintenance/model-telemetry.d.ts.map +1 -0
- package/dist/maintenance/model-telemetry.js +107 -0
- package/dist/maintenance/model-telemetry.js.map +1 -0
- package/dist/maintenance/observe.d.ts +72 -0
- package/dist/maintenance/observe.d.ts.map +1 -0
- package/dist/maintenance/observe.js +265 -0
- package/dist/maintenance/observe.js.map +1 -0
- package/dist/maintenance/path-policy.d.ts +83 -0
- package/dist/maintenance/path-policy.d.ts.map +1 -0
- package/dist/maintenance/path-policy.js +360 -0
- package/dist/maintenance/path-policy.js.map +1 -0
- package/dist/maintenance/plans.d.ts +366 -0
- package/dist/maintenance/plans.d.ts.map +1 -0
- package/dist/maintenance/plans.js +4060 -0
- package/dist/maintenance/plans.js.map +1 -0
- package/dist/maintenance/profile.d.ts +33 -0
- package/dist/maintenance/profile.d.ts.map +1 -0
- package/dist/maintenance/profile.js +99 -0
- package/dist/maintenance/profile.js.map +1 -0
- package/dist/maintenance/recovery.d.ts +38 -0
- package/dist/maintenance/recovery.d.ts.map +1 -0
- package/dist/maintenance/recovery.js +217 -0
- package/dist/maintenance/recovery.js.map +1 -0
- package/dist/maintenance/repair.d.ts +37 -0
- package/dist/maintenance/repair.d.ts.map +1 -0
- package/dist/maintenance/repair.js +183 -0
- package/dist/maintenance/repair.js.map +1 -0
- package/dist/maintenance/rule-drift.d.ts +104 -0
- package/dist/maintenance/rule-drift.d.ts.map +1 -0
- package/dist/maintenance/rule-drift.js +507 -0
- package/dist/maintenance/rule-drift.js.map +1 -0
- package/dist/maintenance/run-verification.d.ts +44 -0
- package/dist/maintenance/run-verification.d.ts.map +1 -0
- package/dist/maintenance/run-verification.js +253 -0
- package/dist/maintenance/run-verification.js.map +1 -0
- package/dist/maintenance/runs.d.ts +142 -0
- package/dist/maintenance/runs.d.ts.map +1 -0
- package/dist/maintenance/runs.js +439 -0
- package/dist/maintenance/runs.js.map +1 -0
- package/dist/maintenance/semantic-merge-discovery.d.ts +54 -0
- package/dist/maintenance/semantic-merge-discovery.d.ts.map +1 -0
- package/dist/maintenance/semantic-merge-discovery.js +308 -0
- package/dist/maintenance/semantic-merge-discovery.js.map +1 -0
- package/dist/maintenance/temporal.d.ts +44 -0
- package/dist/maintenance/temporal.d.ts.map +1 -0
- package/dist/maintenance/temporal.js +295 -0
- package/dist/maintenance/temporal.js.map +1 -0
- package/dist/models/client.d.ts +214 -0
- package/dist/models/client.d.ts.map +1 -0
- package/dist/models/client.js +904 -0
- package/dist/models/client.js.map +1 -0
- package/dist/models/provider-api.d.ts +28 -0
- package/dist/models/provider-api.d.ts.map +1 -0
- package/dist/models/provider-api.js +320 -0
- package/dist/models/provider-api.js.map +1 -0
- package/dist/open.d.ts +163 -0
- package/dist/open.d.ts.map +1 -0
- package/dist/open.js +382 -0
- package/dist/open.js.map +1 -0
- package/dist/ops/adopt.d.ts +12 -0
- package/dist/ops/adopt.d.ts.map +1 -0
- package/dist/ops/adopt.js +138 -0
- package/dist/ops/adopt.js.map +1 -0
- package/dist/ops/answer.d.ts +29 -0
- package/dist/ops/answer.d.ts.map +1 -0
- package/dist/ops/answer.js +557 -0
- package/dist/ops/answer.js.map +1 -0
- package/dist/ops/context.d.ts +18 -0
- package/dist/ops/context.d.ts.map +1 -0
- package/dist/ops/context.js +713 -0
- package/dist/ops/context.js.map +1 -0
- package/dist/ops/folder.d.ts +23 -0
- package/dist/ops/folder.d.ts.map +1 -0
- package/dist/ops/folder.js +130 -0
- package/dist/ops/folder.js.map +1 -0
- package/dist/ops/forget.d.ts +14 -0
- package/dist/ops/forget.d.ts.map +1 -0
- package/dist/ops/forget.js +212 -0
- package/dist/ops/forget.js.map +1 -0
- package/dist/ops/graph.d.ts +10 -0
- package/dist/ops/graph.d.ts.map +1 -0
- package/dist/ops/graph.js +480 -0
- package/dist/ops/graph.js.map +1 -0
- package/dist/ops/ingest.d.ts +40 -0
- package/dist/ops/ingest.d.ts.map +1 -0
- package/dist/ops/ingest.js +434 -0
- package/dist/ops/ingest.js.map +1 -0
- package/dist/ops/list.d.ts +9 -0
- package/dist/ops/list.d.ts.map +1 -0
- package/dist/ops/list.js +217 -0
- package/dist/ops/list.js.map +1 -0
- package/dist/ops/move.d.ts +20 -0
- package/dist/ops/move.d.ts.map +1 -0
- package/dist/ops/move.js +173 -0
- package/dist/ops/move.js.map +1 -0
- package/dist/ops/read.d.ts +9 -0
- package/dist/ops/read.d.ts.map +1 -0
- package/dist/ops/read.js +271 -0
- package/dist/ops/read.js.map +1 -0
- package/dist/ops/recall.d.ts +13 -0
- package/dist/ops/recall.d.ts.map +1 -0
- package/dist/ops/recall.js +297 -0
- package/dist/ops/recall.js.map +1 -0
- package/dist/ops/remember.d.ts +34 -0
- package/dist/ops/remember.d.ts.map +1 -0
- package/dist/ops/remember.js +660 -0
- package/dist/ops/remember.js.map +1 -0
- package/dist/ops/timeline.d.ts +11 -0
- package/dist/ops/timeline.d.ts.map +1 -0
- package/dist/ops/timeline.js +111 -0
- package/dist/ops/timeline.js.map +1 -0
- package/dist/ops/undo.d.ts +9 -0
- package/dist/ops/undo.d.ts.map +1 -0
- package/dist/ops/undo.js +38 -0
- package/dist/ops/undo.js.map +1 -0
- package/dist/ops/write.d.ts +55 -0
- package/dist/ops/write.d.ts.map +1 -0
- package/dist/ops/write.js +463 -0
- package/dist/ops/write.js.map +1 -0
- package/dist/recall/assemble.d.ts +81 -0
- package/dist/recall/assemble.d.ts.map +1 -0
- package/dist/recall/assemble.js +603 -0
- package/dist/recall/assemble.js.map +1 -0
- package/dist/recall/expand.d.ts +55 -0
- package/dist/recall/expand.d.ts.map +1 -0
- package/dist/recall/expand.js +282 -0
- package/dist/recall/expand.js.map +1 -0
- package/dist/recall/graph-arm.d.ts +17 -0
- package/dist/recall/graph-arm.d.ts.map +1 -0
- package/dist/recall/graph-arm.js +227 -0
- package/dist/recall/graph-arm.js.map +1 -0
- package/dist/recall/llm-rerank.d.ts +55 -0
- package/dist/recall/llm-rerank.d.ts.map +1 -0
- package/dist/recall/llm-rerank.js +213 -0
- package/dist/recall/llm-rerank.js.map +1 -0
- package/dist/recall/reranker-calibration.d.ts +23 -0
- package/dist/recall/reranker-calibration.d.ts.map +1 -0
- package/dist/recall/reranker-calibration.js +161 -0
- package/dist/recall/reranker-calibration.js.map +1 -0
- package/dist/recall/search.d.ts +107 -0
- package/dist/recall/search.d.ts.map +1 -0
- package/dist/recall/search.js +530 -0
- package/dist/recall/search.js.map +1 -0
- package/dist/reserved.d.ts +39 -0
- package/dist/reserved.d.ts.map +1 -0
- package/dist/reserved.js +63 -0
- package/dist/reserved.js.map +1 -0
- package/dist/rules/compile.d.ts +27 -0
- package/dist/rules/compile.d.ts.map +1 -0
- package/dist/rules/compile.js +105 -0
- package/dist/rules/compile.js.map +1 -0
- package/dist/setup/model-free.d.ts +15 -0
- package/dist/setup/model-free.d.ts.map +1 -0
- package/dist/setup/model-free.js +26 -0
- package/dist/setup/model-free.js.map +1 -0
- package/dist/setup/openai.d.ts +46 -0
- package/dist/setup/openai.d.ts.map +1 -0
- package/dist/setup/openai.js +165 -0
- package/dist/setup/openai.js.map +1 -0
- package/dist/store/db.d.ts +61 -0
- package/dist/store/db.d.ts.map +1 -0
- package/dist/store/db.js +265 -0
- package/dist/store/db.js.map +1 -0
- package/dist/store/ids.d.ts +29 -0
- package/dist/store/ids.d.ts.map +1 -0
- package/dist/store/ids.js +0 -0
- package/dist/store/ids.js.map +1 -0
- package/dist/store/migrations.d.ts +54 -0
- package/dist/store/migrations.d.ts.map +1 -0
- package/dist/store/migrations.js +923 -0
- package/dist/store/migrations.js.map +1 -0
- package/dist/store/vectors.d.ts +34 -0
- package/dist/store/vectors.d.ts.map +1 -0
- package/dist/store/vectors.js +158 -0
- package/dist/store/vectors.js.map +1 -0
- package/dist/timeline/documents.d.ts +23 -0
- package/dist/timeline/documents.d.ts.map +1 -0
- package/dist/timeline/documents.js +262 -0
- package/dist/timeline/documents.js.map +1 -0
- package/dist/watch/watcher.d.ts +43 -0
- package/dist/watch/watcher.d.ts.map +1 -0
- package/dist/watch/watcher.js +143 -0
- package/dist/watch/watcher.js.map +1 -0
- package/dist/write/atomic.d.ts +34 -0
- package/dist/write/atomic.d.ts.map +1 -0
- package/dist/write/atomic.js +58 -0
- package/dist/write/atomic.js.map +1 -0
- package/dist/write/conflict.d.ts +43 -0
- package/dist/write/conflict.d.ts.map +1 -0
- package/dist/write/conflict.js +149 -0
- package/dist/write/conflict.js.map +1 -0
- package/dist/write/edit.d.ts +59 -0
- package/dist/write/edit.d.ts.map +1 -0
- package/dist/write/edit.js +231 -0
- package/dist/write/edit.js.map +1 -0
- package/dist/write/gate.d.ts +59 -0
- package/dist/write/gate.d.ts.map +1 -0
- package/dist/write/gate.js +99 -0
- package/dist/write/gate.js.map +1 -0
- package/dist/write/journal.d.ts +90 -0
- package/dist/write/journal.d.ts.map +1 -0
- package/dist/write/journal.js +187 -0
- package/dist/write/journal.js.map +1 -0
- package/dist/write/ledger.d.ts +28 -0
- package/dist/write/ledger.d.ts.map +1 -0
- package/dist/write/ledger.js +141 -0
- package/dist/write/ledger.js.map +1 -0
- package/dist/write/placement.d.ts +29 -0
- package/dist/write/placement.d.ts.map +1 -0
- package/dist/write/placement.js +140 -0
- package/dist/write/placement.js.map +1 -0
- package/dist/write/remember-fallback.d.ts +18 -0
- package/dist/write/remember-fallback.d.ts.map +1 -0
- package/dist/write/remember-fallback.js +48 -0
- package/dist/write/remember-fallback.js.map +1 -0
- package/dist/write/retain.d.ts +61 -0
- package/dist/write/retain.d.ts.map +1 -0
- package/dist/write/retain.js +272 -0
- package/dist/write/retain.js.map +1 -0
- package/package.json +50 -0
- package/swift/extract.swift +232 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import YAML, { isMap, isPair, isScalar, isSeq } from 'yaml';
|
|
2
|
+
const FENCE = /^---\r?\n/;
|
|
3
|
+
export function parseFrontmatter(content) {
|
|
4
|
+
if (!FENCE.test(content)) {
|
|
5
|
+
return { data: {}, raw: '', present: false, bodyOffset: 0, bodyLine: 1 };
|
|
6
|
+
}
|
|
7
|
+
const firstFenceEnd = content.indexOf('\n') + 1;
|
|
8
|
+
// Find the closing fence: a line that is exactly `---`.
|
|
9
|
+
const closeMatch = /^---[ \t]*\r?$|^---[ \t]*$/m.exec(content.slice(firstFenceEnd));
|
|
10
|
+
if (!closeMatch || closeMatch.index === undefined) {
|
|
11
|
+
// An unterminated fence is not frontmatter; treat the whole file as body
|
|
12
|
+
// rather than swallowing it.
|
|
13
|
+
return { data: {}, raw: '', present: false, bodyOffset: 0, bodyLine: 1 };
|
|
14
|
+
}
|
|
15
|
+
const rawStart = firstFenceEnd;
|
|
16
|
+
const rawEnd = firstFenceEnd + closeMatch.index;
|
|
17
|
+
const raw = content.slice(rawStart, rawEnd);
|
|
18
|
+
let bodyOffset = rawEnd + closeMatch[0].length;
|
|
19
|
+
if (content[bodyOffset] === '\r')
|
|
20
|
+
bodyOffset++;
|
|
21
|
+
if (content[bodyOffset] === '\n')
|
|
22
|
+
bodyOffset++;
|
|
23
|
+
let data = {};
|
|
24
|
+
try {
|
|
25
|
+
const parsed = YAML.parse(raw, { logLevel: 'silent' });
|
|
26
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
27
|
+
data = parsed;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Malformed YAML in someone's notes is their business, not a reason to skip
|
|
32
|
+
// the page. The body still indexes; `doctor` reports the parse failure.
|
|
33
|
+
data = {};
|
|
34
|
+
}
|
|
35
|
+
const bodyLine = countLines(content.slice(0, bodyOffset)) + 1;
|
|
36
|
+
return { data, raw, present: true, bodyOffset, bodyLine };
|
|
37
|
+
}
|
|
38
|
+
function countLines(text) {
|
|
39
|
+
let count = 0;
|
|
40
|
+
for (let i = 0; i < text.length; i++)
|
|
41
|
+
if (text[i] === '\n')
|
|
42
|
+
count++;
|
|
43
|
+
return count;
|
|
44
|
+
}
|
|
45
|
+
/** `tags: [a, b]`, `tags:\n - a`, and `tags: a` all mean the same thing here. */
|
|
46
|
+
export function readTags(data) {
|
|
47
|
+
const value = data.tags;
|
|
48
|
+
if (Array.isArray(value))
|
|
49
|
+
return value.filter((t) => typeof t === 'string');
|
|
50
|
+
if (typeof value === 'string') {
|
|
51
|
+
return value
|
|
52
|
+
.split(',')
|
|
53
|
+
.map((t) => t.trim())
|
|
54
|
+
.filter(Boolean);
|
|
55
|
+
}
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
export function readString(data, key) {
|
|
59
|
+
const value = data[key];
|
|
60
|
+
return typeof value === 'string' && value.length > 0 ? value : null;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Replace one existing top-level YAML string without serializing any neighboring frontmatter.
|
|
64
|
+
* The parser supplies the exact scalar byte range, so quoted `#` characters, comments, ordering,
|
|
65
|
+
* line endings, and unknown keys survive untouched. Missing, duplicate, malformed, nested, or
|
|
66
|
+
* non-string keys are refused rather than guessed.
|
|
67
|
+
*/
|
|
68
|
+
export function replaceTopLevelString(content, key, value) {
|
|
69
|
+
const fm = parseFrontmatter(content);
|
|
70
|
+
if (!fm.present || typeof fm.data[key] !== 'string')
|
|
71
|
+
return null;
|
|
72
|
+
const document = YAML.parseDocument(fm.raw, { keepSourceTokens: true });
|
|
73
|
+
if (document.errors.length > 0 || !isMap(document.contents))
|
|
74
|
+
return null;
|
|
75
|
+
const matches = document.contents.items.filter((item) => isPair(item) && isScalar(item.key) && item.key.value === key);
|
|
76
|
+
if (matches.length !== 1)
|
|
77
|
+
return null;
|
|
78
|
+
const scalar = matches[0].value;
|
|
79
|
+
if (!isScalar(scalar) || typeof scalar.value !== 'string' || !scalar.range)
|
|
80
|
+
return null;
|
|
81
|
+
if (scalar.value === value)
|
|
82
|
+
return content;
|
|
83
|
+
const [start, end] = scalar.range;
|
|
84
|
+
if (start < 0 || end < start || end > fm.raw.length)
|
|
85
|
+
return null;
|
|
86
|
+
const rawStart = content.indexOf('\n') + 1;
|
|
87
|
+
return content.slice(0, rawStart + start) + JSON.stringify(value) + content.slice(rawStart + end);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Replace every exact string in one existing nested YAML sequence while preserving all other bytes.
|
|
91
|
+
* Used for identity references such as `akno.about`; malformed paths, aliases, non-string members,
|
|
92
|
+
* and absent values are refused rather than round-tripped through a serializer.
|
|
93
|
+
*/
|
|
94
|
+
export function replaceNestedStringArrayValue(content, keys, from, to) {
|
|
95
|
+
if (keys.length === 0)
|
|
96
|
+
return null;
|
|
97
|
+
const fm = parseFrontmatter(content);
|
|
98
|
+
if (!fm.present)
|
|
99
|
+
return null;
|
|
100
|
+
const document = YAML.parseDocument(fm.raw, { keepSourceTokens: true });
|
|
101
|
+
if (document.errors.length > 0 || !isMap(document.contents))
|
|
102
|
+
return null;
|
|
103
|
+
let current = document.contents;
|
|
104
|
+
for (const [index, key] of keys.entries()) {
|
|
105
|
+
const matches = current.items.filter((item) => isPair(item) && isScalar(item.key) && item.key.value === key);
|
|
106
|
+
if (matches.length !== 1)
|
|
107
|
+
return null;
|
|
108
|
+
const value = matches[0].value;
|
|
109
|
+
if (index === keys.length - 1) {
|
|
110
|
+
if (!isSeq(value))
|
|
111
|
+
return null;
|
|
112
|
+
const scalars = value.items;
|
|
113
|
+
if (scalars.some((item) => !isScalar(item) || typeof item.value !== 'string' || !item.range)) {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
const ranges = scalars
|
|
117
|
+
.filter((item) => isScalar(item) &&
|
|
118
|
+
typeof item.value === 'string' &&
|
|
119
|
+
item.value.toLowerCase() === from.toLowerCase())
|
|
120
|
+
.map((item) => item.range)
|
|
121
|
+
.sort((left, right) => right[0] - left[0]);
|
|
122
|
+
if (ranges.length === 0)
|
|
123
|
+
return null;
|
|
124
|
+
const rawStart = content.indexOf('\n') + 1;
|
|
125
|
+
let result = content;
|
|
126
|
+
for (const [start, end] of ranges) {
|
|
127
|
+
if (start < 0 || end < start || end > fm.raw.length)
|
|
128
|
+
return null;
|
|
129
|
+
result = result.slice(0, rawStart + start) + JSON.stringify(to) + result.slice(rawStart + end);
|
|
130
|
+
}
|
|
131
|
+
return result;
|
|
132
|
+
}
|
|
133
|
+
if (!isMap(value))
|
|
134
|
+
return null;
|
|
135
|
+
current = value;
|
|
136
|
+
}
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Splices `id: <value>` into an existing frontmatter block, or creates a
|
|
141
|
+
* minimal one. Only ever called when `write_ids` is on. Everything else in the
|
|
142
|
+
* file — including the byte-for-byte frontmatter of keys Akno does not know —
|
|
143
|
+
* is untouched.
|
|
144
|
+
*/
|
|
145
|
+
export function withId(content, id) {
|
|
146
|
+
const fm = parseFrontmatter(content);
|
|
147
|
+
if (!fm.present) {
|
|
148
|
+
return `---\nid: ${id}\n---\n\n${content}`;
|
|
149
|
+
}
|
|
150
|
+
if (typeof fm.data.id === 'string' && fm.data.id.length > 0)
|
|
151
|
+
return content;
|
|
152
|
+
return spliceAfterFence(content, [`id: ${id}`]);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Inserts lines immediately after the opening fence of an existing block, leaving
|
|
156
|
+
* every other byte alone. Immediately after, because that is where a human scanning
|
|
157
|
+
* frontmatter expects an identifier or a title to be.
|
|
158
|
+
*
|
|
159
|
+
* Splicing rather than parse-and-re-emit for the reason at the top of this file: the
|
|
160
|
+
* keys already there keep their exact quoting, ordering and comments.
|
|
161
|
+
*/
|
|
162
|
+
export function spliceAfterFence(content, lines) {
|
|
163
|
+
if (lines.length === 0)
|
|
164
|
+
return content;
|
|
165
|
+
const fm = parseFrontmatter(content);
|
|
166
|
+
if (!fm.present)
|
|
167
|
+
return `---\n${lines.join('\n')}\n---\n\n${content}`;
|
|
168
|
+
const head = content.slice(0, fm.bodyOffset);
|
|
169
|
+
const firstNewline = head.indexOf('\n') + 1;
|
|
170
|
+
return (head.slice(0, firstNewline) +
|
|
171
|
+
`${lines.join('\n')}\n` +
|
|
172
|
+
head.slice(firstNewline) +
|
|
173
|
+
content.slice(fm.bodyOffset));
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Adds identity aliases without round-tripping the rest of the frontmatter through YAML.
|
|
177
|
+
*
|
|
178
|
+
* Merge is allowed to retire one page identity, but the old title and slug must remain
|
|
179
|
+
* discoverable on the canonical page. Complex inline `akno` mappings are refused: silently
|
|
180
|
+
* reformatting an owner's unknown keys and comments would make a structural cleanup broader
|
|
181
|
+
* than the plan says it is.
|
|
182
|
+
*/
|
|
183
|
+
export function withAknoAliases(content, aliases) {
|
|
184
|
+
const additions = [...new Set(aliases.map((value) => value.trim()).filter(Boolean))];
|
|
185
|
+
if (additions.length === 0)
|
|
186
|
+
return content;
|
|
187
|
+
const fm = parseFrontmatter(content);
|
|
188
|
+
if (fm.present && fm.raw.trim().length > 0 && Object.keys(fm.data).length === 0)
|
|
189
|
+
return null;
|
|
190
|
+
const akno = fm.data.akno;
|
|
191
|
+
const record = akno && typeof akno === 'object' && !Array.isArray(akno) ? akno : null;
|
|
192
|
+
if (akno !== undefined && !record)
|
|
193
|
+
return null;
|
|
194
|
+
const existingValue = record?.aliases;
|
|
195
|
+
if (existingValue !== undefined && !Array.isArray(existingValue))
|
|
196
|
+
return null;
|
|
197
|
+
const existing = (existingValue ?? []).filter((value) => typeof value === 'string');
|
|
198
|
+
const wanted = [...new Set([...existing, ...additions])];
|
|
199
|
+
if (wanted.length === existing.length)
|
|
200
|
+
return content;
|
|
201
|
+
const missing = wanted.filter((value) => !existing.includes(value));
|
|
202
|
+
const rendered = wanted.map((value) => ` - ${JSON.stringify(value)}`);
|
|
203
|
+
if (!fm.present || !record) {
|
|
204
|
+
return spliceAfterFence(content, ['akno:', ' aliases:', ...rendered]);
|
|
205
|
+
}
|
|
206
|
+
const newline = fm.raw.includes('\r\n') ? '\r\n' : '\n';
|
|
207
|
+
if (newline === '\r\n' && fm.raw.replaceAll('\r\n', '').includes('\n'))
|
|
208
|
+
return null;
|
|
209
|
+
const lines = fm.raw.split(newline);
|
|
210
|
+
const aknoIndex = lines.findIndex((line) => /^akno:[ \t]*(?:#.*)?$/.test(line));
|
|
211
|
+
if (aknoIndex < 0)
|
|
212
|
+
return null;
|
|
213
|
+
let blockEnd = lines.length;
|
|
214
|
+
for (let index = aknoIndex + 1; index < lines.length; index++) {
|
|
215
|
+
const line = lines[index];
|
|
216
|
+
if (line.trim() && !/^[ \t]/.test(line)) {
|
|
217
|
+
blockEnd = index;
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
const aliasesIndex = lines.findIndex((line, index) => index > aknoIndex && index < blockEnd && /^ aliases:/.test(line));
|
|
222
|
+
if (aliasesIndex < 0) {
|
|
223
|
+
lines.splice(aknoIndex + 1, 0, ' aliases:', ...rendered);
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
const match = /^ aliases:[ \t]*(.*)$/.exec(lines[aliasesIndex]);
|
|
227
|
+
const tail = match?.[1]?.trim() ?? '';
|
|
228
|
+
if (tail.startsWith('[') && tail.endsWith(']')) {
|
|
229
|
+
lines[aliasesIndex] = ` aliases: ${JSON.stringify(wanted)}`;
|
|
230
|
+
}
|
|
231
|
+
else if (tail.length === 0) {
|
|
232
|
+
let insertAt = aliasesIndex + 1;
|
|
233
|
+
while (insertAt < blockEnd && (/^[ \t]{4,}/.test(lines[insertAt]) || !lines[insertAt].trim())) {
|
|
234
|
+
insertAt++;
|
|
235
|
+
}
|
|
236
|
+
lines.splice(insertAt, 0, ...missing.map((value) => ` - ${JSON.stringify(value)}`));
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
const firstFenceEnd = content.indexOf('\n') + 1;
|
|
243
|
+
const rawEnd = firstFenceEnd + fm.raw.length;
|
|
244
|
+
return content.slice(0, firstFenceEnd) + lines.join(newline) + content.slice(rawEnd);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Reads a frontmatter block off the front of text a *caller* supplied, rather than off a
|
|
248
|
+
* file on disk.
|
|
249
|
+
*
|
|
250
|
+
* This exists because `read` hands back the whole file, frontmatter included. A caller that
|
|
251
|
+
* read a page, revised it and sent the result back therefore carries a block with it, and
|
|
252
|
+
* treating that block as body text is how a page grows a second one — the head is preserved,
|
|
253
|
+
* the block lands underneath it, and nothing that reads frontmatter can see it. Rewriting the
|
|
254
|
+
* declaration is a legitimate thing for a caller to want: `role`, `management` and `temporal`
|
|
255
|
+
* live nowhere else in the write API.
|
|
256
|
+
*
|
|
257
|
+
* Returns `null` when there is nothing to adopt — no fence, an unterminated fence, or a fence
|
|
258
|
+
* pair whose contents are not a mapping. That last case is the guard that matters: a body
|
|
259
|
+
* opening with a `---` horizontal rule and containing another one looks exactly like a
|
|
260
|
+
* frontmatter block until you try to parse it, and a horizontal rule is not a declaration.
|
|
261
|
+
*/
|
|
262
|
+
export function declaredFrontmatter(text) {
|
|
263
|
+
// Leading blank lines are a formatting accident, not a statement that the block is body.
|
|
264
|
+
const trimmed = text.replace(/^(?:[ \t]*\r?\n)*/, '');
|
|
265
|
+
const fm = parseFrontmatter(trimmed);
|
|
266
|
+
if (!fm.present || Object.keys(fm.data).length === 0)
|
|
267
|
+
return null;
|
|
268
|
+
return {
|
|
269
|
+
head: trimmed.slice(0, fm.bodyOffset),
|
|
270
|
+
body: trimmed.slice(fm.bodyOffset),
|
|
271
|
+
data: fm.data,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=frontmatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../../src/kb/frontmatter.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AA2B5D,MAAM,KAAK,GAAG,WAAW,CAAC;AAE1B,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,wDAAwD;IACxD,MAAM,UAAU,GAAG,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClD,yEAAyE;QACzE,6BAA6B;QAC7B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC;IAC/B,MAAM,MAAM,GAAG,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE5C,IAAI,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI;QAAE,UAAU,EAAE,CAAC;IAC/C,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI;QAAE,UAAU,EAAE,CAAC;IAE/C,IAAI,IAAI,GAA4B,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,IAAI,GAAG,MAAiC,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;QAC5E,wEAAwE;QACxE,IAAI,GAAG,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9D,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,KAAK,EAAE,CAAC;IACpE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,QAAQ,CAAC,IAA6B;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IACzF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK;aACT,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAA6B,EAAE,GAAW;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,GAAW,EAAE,KAAa;IAC/E,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEjE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAC5C,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CACvE,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;IACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxF,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,OAAO,CAAC;IAE3C,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IAClC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;AACpG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAe,EACf,IAAc,EACd,IAAY,EACZ,EAAU;IAEV,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzE,IAAI,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAChC,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAClC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CACvE,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;QAChC,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;YAC5B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7F,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,OAAO;iBACnB,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CACP,QAAQ,CAAC,IAAI,CAAC;gBACd,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAClD;iBACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAM,CAAC;iBAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,MAAM,GAAG,OAAO,CAAC;YACrB,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;gBAClC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBACjE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;YACjG,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/B,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,OAAe,EAAE,EAAU;IAChD,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;QAChB,OAAO,YAAY,EAAE,YAAY,OAAO,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5E,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,KAAe;IAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACvC,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,OAAO;QAAE,OAAO,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;QAC3B,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACvB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAiB;IAChE,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAC3C,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7F,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IAC1B,MAAM,MAAM,GACV,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAgC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtG,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,aAAa,GAAG,MAAM,EAAE,OAAO,CAAC;IACtC,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,MAAM,QAAQ,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;IACrG,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEzE,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,IAAI,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpF,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,KAAK,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,QAAQ,GAAG,KAAK,CAAC;YACjB,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAClC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,SAAS,IAAI,KAAK,GAAG,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CACnF,CAAC;IACF,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAE,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,KAAK,CAAC,YAAY,CAAC,GAAG,cAAc,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/D,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAC;YAChC,OAAO,QAAQ,GAAG,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAChG,QAAQ,EAAE,CAAC;YACb,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACvF,CAAC;AAWD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,yFAAyF;IACzF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;QACrC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC;QAClC,IAAI,EAAE,EAAE,CAAC,IAAI;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Line } from '@tenphi/akno-protocol';
|
|
2
|
+
/**
|
|
3
|
+
* What a line's facts add to it: a confidence, and a handle to retract by.
|
|
4
|
+
*
|
|
5
|
+
* Both `read` and `recall` return lines, and both had their own copy of this —
|
|
6
|
+
* which is how they came to disagree. Neither returned the fact's id, so
|
|
7
|
+
* `forget({fact})` could not be called by anything: the op's own error hint says
|
|
8
|
+
* "recall the page again" to obtain one, and recalling the page returned lines
|
|
9
|
+
* with no ids on them. A retraction therefore meant deleting the whole page.
|
|
10
|
+
*/
|
|
11
|
+
export interface LineFact {
|
|
12
|
+
id: string;
|
|
13
|
+
line_start: number;
|
|
14
|
+
confidence: number;
|
|
15
|
+
valid_to: string | null;
|
|
16
|
+
}
|
|
17
|
+
/** The columns {@link annotateLines} needs, for callers writing the query. */
|
|
18
|
+
export declare const LINE_FACT_COLUMNS = "id, claim, line_start, confidence, valid_to";
|
|
19
|
+
/**
|
|
20
|
+
* Attach each line's live fact.
|
|
21
|
+
*
|
|
22
|
+
* Superseded facts are skipped: their sentence has already been replaced, so
|
|
23
|
+
* offering an id to retract would point at something no longer on the line. When
|
|
24
|
+
* a line carries several live facts — one sentence can state two things — the
|
|
25
|
+
* most confident one wins, so the id and the confidence describe the same fact
|
|
26
|
+
* rather than being taken from two different ones.
|
|
27
|
+
*/
|
|
28
|
+
export declare function annotateLines<T extends Line>(lines: T[], facts: LineFact[]): T[];
|
|
29
|
+
//# sourceMappingURL=line-facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line-facts.d.ts","sourceRoot":"","sources":["../../src/kb/line-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,gDAAgD,CAAC;AAE/E;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,CAQhF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** The columns {@link annotateLines} needs, for callers writing the query. */
|
|
2
|
+
export const LINE_FACT_COLUMNS = 'id, claim, line_start, confidence, valid_to';
|
|
3
|
+
/**
|
|
4
|
+
* Attach each line's live fact.
|
|
5
|
+
*
|
|
6
|
+
* Superseded facts are skipped: their sentence has already been replaced, so
|
|
7
|
+
* offering an id to retract would point at something no longer on the line. When
|
|
8
|
+
* a line carries several live facts — one sentence can state two things — the
|
|
9
|
+
* most confident one wins, so the id and the confidence describe the same fact
|
|
10
|
+
* rather than being taken from two different ones.
|
|
11
|
+
*/
|
|
12
|
+
export function annotateLines(lines, facts) {
|
|
13
|
+
if (facts.length === 0)
|
|
14
|
+
return lines;
|
|
15
|
+
return lines.map((line) => {
|
|
16
|
+
const live = facts.filter((fact) => fact.line_start === line.n && fact.valid_to === null);
|
|
17
|
+
if (live.length === 0)
|
|
18
|
+
return line;
|
|
19
|
+
const best = live.reduce((a, b) => (b.confidence > a.confidence ? b : a));
|
|
20
|
+
return { ...line, confidence: best.confidence, fact: best.id };
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=line-facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line-facts.js","sourceRoot":"","sources":["../../src/kb/line-facts.ts"],"names":[],"mappings":"AAkBA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAAG,6CAA6C,CAAC;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAiB,KAAU,EAAE,KAAiB;IACzE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QAC1F,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { DreamManagement, PageRole, RememberManagement } from '@tenphi/akno-protocol';
|
|
2
|
+
import { type Frontmatter } from './frontmatter.ts';
|
|
3
|
+
export declare const AKNO_ITEM: RegExp;
|
|
4
|
+
export declare function aknoItemId(line: string): string | null;
|
|
5
|
+
/** `<page-basename>-<8 hex>.<ext>` is read as an attachment of that page. */
|
|
6
|
+
export declare const ATTACHMENT_NAME: RegExp;
|
|
7
|
+
interface ParsedEvent {
|
|
8
|
+
date: string;
|
|
9
|
+
summary: string;
|
|
10
|
+
/** The first wikilink on the line, if any. Plenty of events never have one. */
|
|
11
|
+
targetSlug: string | null;
|
|
12
|
+
line: number;
|
|
13
|
+
}
|
|
14
|
+
interface ParsedLink {
|
|
15
|
+
toSlug: string;
|
|
16
|
+
/**
|
|
17
|
+
* `embed` is `[[receipt-3f8c1a2b.pdf]]` — a pointer at a *file*, not at a page.
|
|
18
|
+
*
|
|
19
|
+
* Worth its own kind for two reasons: an embed can never be a broken page link, and it is
|
|
20
|
+
* the page's author saying which file belongs to this page, which is a better statement of
|
|
21
|
+
* ownership than any filename convention can be.
|
|
22
|
+
*/
|
|
23
|
+
kind: 'wikilink' | 'markdown' | 'embed';
|
|
24
|
+
line: number;
|
|
25
|
+
}
|
|
26
|
+
export interface ParsedPage {
|
|
27
|
+
slug: string;
|
|
28
|
+
relPath: string;
|
|
29
|
+
frontmatter: Frontmatter;
|
|
30
|
+
title: string;
|
|
31
|
+
type: string | null;
|
|
32
|
+
tags: string[];
|
|
33
|
+
/** Declared in frontmatter. Rules and defaults fill in when absent. */
|
|
34
|
+
declaredRole: PageRole | null;
|
|
35
|
+
declaredManagement: {
|
|
36
|
+
remember?: RememberManagement;
|
|
37
|
+
dream?: DreamManagement;
|
|
38
|
+
};
|
|
39
|
+
about: string[];
|
|
40
|
+
aliases: string[];
|
|
41
|
+
/** The whole file, unchanged. */
|
|
42
|
+
content: string;
|
|
43
|
+
/** Body only, after the frontmatter. */
|
|
44
|
+
body: string;
|
|
45
|
+
/** Every body line, 1-indexed by `bodyLine + i`. */
|
|
46
|
+
lines: string[];
|
|
47
|
+
/** Absolute (file-relative) line number of the first body line. */
|
|
48
|
+
bodyLine: number;
|
|
49
|
+
bodyHash: string;
|
|
50
|
+
/**
|
|
51
|
+
* Where `<!-- source -->` switches a knowledge page to source material. Above the
|
|
52
|
+
* fence: canonical, mined, quotable in full. Below: indexed for search, never
|
|
53
|
+
* mined, never returned whole. Null when the page has no fence.
|
|
54
|
+
*/
|
|
55
|
+
sourceFenceLine: number | null;
|
|
56
|
+
events: ParsedEvent[];
|
|
57
|
+
links: ParsedLink[];
|
|
58
|
+
frontmatterId: string | null;
|
|
59
|
+
}
|
|
60
|
+
export declare function parsePage(relPath: string, content: string): ParsedPage;
|
|
61
|
+
export declare function normalizeLinkTarget(target: string, fromSlug?: string): string;
|
|
62
|
+
/**
|
|
63
|
+
* Resolution order, most specific first: **page frontmatter → rules file →
|
|
64
|
+
* provenance → default.** `akno rules <path>` prints which one won and why.
|
|
65
|
+
*/
|
|
66
|
+
export interface RoleResolution {
|
|
67
|
+
role: PageRole;
|
|
68
|
+
source: 'frontmatter' | 'rule' | 'provenance' | 'default';
|
|
69
|
+
/** The glob, when a rule won. */
|
|
70
|
+
via?: string;
|
|
71
|
+
}
|
|
72
|
+
export declare function resolveRole(page: Pick<ParsedPage, 'declaredRole' | 'slug'>, rule: {
|
|
73
|
+
role?: PageRole;
|
|
74
|
+
glob?: string;
|
|
75
|
+
} | null, observationsPath: string): RoleResolution;
|
|
76
|
+
export interface ResolvedPagePolicy {
|
|
77
|
+
role: PageRole;
|
|
78
|
+
remember: RememberManagement;
|
|
79
|
+
dream: DreamManagement;
|
|
80
|
+
about: string[];
|
|
81
|
+
aliases: string[];
|
|
82
|
+
}
|
|
83
|
+
export declare function resolvePagePolicy(page: Pick<ParsedPage, 'declaredRole' | 'declaredManagement' | 'about' | 'aliases' | 'slug'>, rule: {
|
|
84
|
+
role?: PageRole;
|
|
85
|
+
remember?: RememberManagement;
|
|
86
|
+
about?: string[];
|
|
87
|
+
glob?: string;
|
|
88
|
+
} | null, observationsPath: string): ResolvedPagePolicy;
|
|
89
|
+
/** True for a page written by the observe tier — ranked below authored pages. */
|
|
90
|
+
export declare function isObservation(slug: string, observationsPath: string): boolean;
|
|
91
|
+
export {};
|
|
92
|
+
//# sourceMappingURL=page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../src/kb/page.ts"],"names":[],"mappings":"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"}
|