@hawkeyexl/manni 4.3.1 → 4.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.
Files changed (224) hide show
  1. package/README.md +9 -1
  2. package/dist/batch-DFRCLY77.js +36 -0
  3. package/dist/build-Q5C6SX5J.js +31 -0
  4. package/dist/calibrate-XQILKXS3.js +31 -0
  5. package/dist/capture-JQMOC3BW.js +32 -0
  6. package/dist/check-HYNGXYJV.js +18 -0
  7. package/dist/check-HYNGXYJV.js.map +1 -0
  8. package/dist/check-NFZQLJKN.js +27 -0
  9. package/dist/check-NFZQLJKN.js.map +1 -0
  10. package/dist/check-U54XV6BP.js +40 -0
  11. package/dist/check-U54XV6BP.js.map +1 -0
  12. package/dist/chunk-252LNOEG.js +622 -0
  13. package/dist/chunk-252LNOEG.js.map +1 -0
  14. package/dist/chunk-2H7UOFLK.js +11 -0
  15. package/dist/chunk-2H7UOFLK.js.map +1 -0
  16. package/dist/chunk-2U3ORT6D.js +230 -0
  17. package/dist/chunk-2U3ORT6D.js.map +1 -0
  18. package/dist/chunk-3AFUD75K.js +23 -0
  19. package/dist/chunk-3AFUD75K.js.map +1 -0
  20. package/dist/{chunk-3R23C5DT.js → chunk-4TSWU2SU.js} +2 -14
  21. package/dist/chunk-4TSWU2SU.js.map +1 -0
  22. package/dist/chunk-5KHIFVD2.js +1192 -0
  23. package/dist/chunk-5KHIFVD2.js.map +1 -0
  24. package/dist/chunk-5YXBLLAC.js +2165 -0
  25. package/dist/chunk-5YXBLLAC.js.map +1 -0
  26. package/dist/chunk-644JVKJ4.js +3872 -0
  27. package/dist/chunk-644JVKJ4.js.map +1 -0
  28. package/dist/chunk-6OYEI2VV.js +88 -0
  29. package/dist/chunk-6OYEI2VV.js.map +1 -0
  30. package/dist/chunk-77AINBYM.js +19 -0
  31. package/dist/chunk-77AINBYM.js.map +1 -0
  32. package/dist/chunk-77HX34KD.js +1287 -0
  33. package/dist/chunk-77HX34KD.js.map +1 -0
  34. package/dist/{chunk-CFDUZRM2.js → chunk-7QMCHA4N.js} +32 -240
  35. package/dist/chunk-7QMCHA4N.js.map +1 -0
  36. package/dist/chunk-BUXDLRDT.js +455 -0
  37. package/dist/chunk-BUXDLRDT.js.map +1 -0
  38. package/dist/chunk-C6OH6CNF.js +388 -0
  39. package/dist/chunk-C6OH6CNF.js.map +1 -0
  40. package/dist/chunk-CK7SKVHR.js +1042 -0
  41. package/dist/chunk-CK7SKVHR.js.map +1 -0
  42. package/dist/chunk-CYWHFSRT.js +6737 -0
  43. package/dist/chunk-CYWHFSRT.js.map +1 -0
  44. package/dist/chunk-ERMSO34F.js +17 -0
  45. package/dist/chunk-ERMSO34F.js.map +1 -0
  46. package/dist/{chunk-IOYXPBCL.js → chunk-G3T47CFV.js} +1 -7
  47. package/dist/{chunk-IOYXPBCL.js.map → chunk-G3T47CFV.js.map} +1 -1
  48. package/dist/chunk-G7NJSREW.js +979 -0
  49. package/dist/chunk-G7NJSREW.js.map +1 -0
  50. package/dist/chunk-GLP5PSXB.js +72 -0
  51. package/dist/chunk-GLP5PSXB.js.map +1 -0
  52. package/dist/chunk-H2DLH2JI.js +198 -0
  53. package/dist/chunk-H2DLH2JI.js.map +1 -0
  54. package/dist/chunk-H6FZ66XR.js +634 -0
  55. package/dist/chunk-H6FZ66XR.js.map +1 -0
  56. package/dist/{chunk-KJR7OVDX.js → chunk-IEQHSCZG.js} +56 -137
  57. package/dist/chunk-IEQHSCZG.js.map +1 -0
  58. package/dist/chunk-IKEWBMCN.js +98 -0
  59. package/dist/chunk-IKEWBMCN.js.map +1 -0
  60. package/dist/chunk-JOHKIAVH.js +5440 -0
  61. package/dist/chunk-JOHKIAVH.js.map +1 -0
  62. package/dist/chunk-JVTNMVYU.js +10921 -0
  63. package/dist/chunk-JVTNMVYU.js.map +1 -0
  64. package/dist/chunk-K3D6FPV6.js +164 -0
  65. package/dist/chunk-K3D6FPV6.js.map +1 -0
  66. package/dist/{chunk-UBMMXS2Y.js → chunk-KCGV52AM.js} +69 -48
  67. package/dist/{chunk-UBMMXS2Y.js.map → chunk-KCGV52AM.js.map} +1 -1
  68. package/dist/chunk-LAKAWRV5.js +1651 -0
  69. package/dist/chunk-LAKAWRV5.js.map +1 -0
  70. package/dist/chunk-LJ2RDH3F.js +49 -0
  71. package/dist/chunk-LJ2RDH3F.js.map +1 -0
  72. package/dist/chunk-M2JCK5F6.js +805 -0
  73. package/dist/chunk-M2JCK5F6.js.map +1 -0
  74. package/dist/chunk-MNH7QO4Z.js +15 -0
  75. package/dist/chunk-MNH7QO4Z.js.map +1 -0
  76. package/dist/{chunk-HAPTXWU2.js → chunk-MYC3O5EJ.js} +4 -4
  77. package/dist/chunk-MYMBCTDE.js +387 -0
  78. package/dist/chunk-MYMBCTDE.js.map +1 -0
  79. package/dist/chunk-NCPWXHDO.js +683 -0
  80. package/dist/chunk-NCPWXHDO.js.map +1 -0
  81. package/dist/chunk-NWZ2SLYL.js +2957 -0
  82. package/dist/chunk-NWZ2SLYL.js.map +1 -0
  83. package/dist/chunk-OBFENF3U.js +934 -0
  84. package/dist/chunk-OBFENF3U.js.map +1 -0
  85. package/dist/chunk-OWBRDNRZ.js +16 -0
  86. package/dist/chunk-OWBRDNRZ.js.map +1 -0
  87. package/dist/{chunk-KTSJ2ZHA.js → chunk-PAU352SV.js} +5 -3
  88. package/dist/{chunk-KTSJ2ZHA.js.map → chunk-PAU352SV.js.map} +1 -1
  89. package/dist/chunk-PCE7QHXJ.js +68 -0
  90. package/dist/chunk-PCE7QHXJ.js.map +1 -0
  91. package/dist/chunk-PCHZY2I7.js +299 -0
  92. package/dist/chunk-PCHZY2I7.js.map +1 -0
  93. package/dist/chunk-PHF3D7ER.js +1042 -0
  94. package/dist/chunk-PHF3D7ER.js.map +1 -0
  95. package/dist/chunk-Q35YIDBV.js +1202 -0
  96. package/dist/chunk-Q35YIDBV.js.map +1 -0
  97. package/dist/chunk-RLR4TKUZ.js +4398 -0
  98. package/dist/chunk-RLR4TKUZ.js.map +1 -0
  99. package/dist/chunk-RNVYGWIC.js +30 -0
  100. package/dist/chunk-RNVYGWIC.js.map +1 -0
  101. package/dist/chunk-SE4JN5XN.js +19 -0
  102. package/dist/chunk-SE4JN5XN.js.map +1 -0
  103. package/dist/chunk-TIUTIOFB.js +25 -0
  104. package/dist/chunk-TIUTIOFB.js.map +1 -0
  105. package/dist/chunk-TU2WUBVZ.js +2 -0
  106. package/dist/chunk-TU2WUBVZ.js.map +1 -0
  107. package/dist/chunk-TZOYZK2E.js +98 -0
  108. package/dist/chunk-TZOYZK2E.js.map +1 -0
  109. package/dist/chunk-UKZNLVJW.js +17 -0
  110. package/dist/chunk-UKZNLVJW.js.map +1 -0
  111. package/dist/chunk-UZC7LDAQ.js +178 -0
  112. package/dist/chunk-UZC7LDAQ.js.map +1 -0
  113. package/dist/chunk-V46OILVC.js +3090 -0
  114. package/dist/chunk-V46OILVC.js.map +1 -0
  115. package/dist/chunk-WQE54PNH.js +1975 -0
  116. package/dist/chunk-WQE54PNH.js.map +1 -0
  117. package/dist/chunk-X3BPBDGQ.js +52 -0
  118. package/dist/chunk-X3BPBDGQ.js.map +1 -0
  119. package/dist/chunk-XSLV76YK.js +54 -0
  120. package/dist/chunk-XSLV76YK.js.map +1 -0
  121. package/dist/{chunk-5HNHEUD5.js → chunk-XYLUCIKQ.js} +3 -3
  122. package/dist/chunk-YEUYKR62.js +72 -0
  123. package/dist/chunk-YEUYKR62.js.map +1 -0
  124. package/dist/{chunk-G5CM2VGQ.js → chunk-YFQBFNQS.js} +8 -94
  125. package/dist/chunk-YFQBFNQS.js.map +1 -0
  126. package/dist/chunk-YIL4XLLJ.js +1661 -0
  127. package/dist/chunk-YIL4XLLJ.js.map +1 -0
  128. package/dist/chunk-YNHZHSSM.js +41 -0
  129. package/dist/chunk-YNHZHSSM.js.map +1 -0
  130. package/dist/chunk-YTCZRLTU.js +96 -0
  131. package/dist/chunk-YTCZRLTU.js.map +1 -0
  132. package/dist/chunk-YYBFZLAJ.js +374 -0
  133. package/dist/chunk-YYBFZLAJ.js.map +1 -0
  134. package/dist/chunk-ZXRAE55H.js +31 -0
  135. package/dist/chunk-ZXRAE55H.js.map +1 -0
  136. package/dist/cli-2QPR2OZG.js +232 -0
  137. package/dist/cli-2QPR2OZG.js.map +1 -0
  138. package/dist/cli-4IOPGZHR.js +1203 -0
  139. package/dist/cli-4IOPGZHR.js.map +1 -0
  140. package/dist/cli-5FL73WHA.js +346 -0
  141. package/dist/cli-5FL73WHA.js.map +1 -0
  142. package/dist/cli-C262QOWM.js +739 -0
  143. package/dist/cli-C262QOWM.js.map +1 -0
  144. package/dist/cli-LJLLIQB2.js +423 -0
  145. package/dist/cli-LJLLIQB2.js.map +1 -0
  146. package/dist/cli-OFPZ5MAS.js +626 -0
  147. package/dist/cli-OFPZ5MAS.js.map +1 -0
  148. package/dist/cli-SHSMSRQY.js +28 -0
  149. package/dist/cli-SHSMSRQY.js.map +1 -0
  150. package/dist/cli-SRHFUZHA.js +473 -0
  151. package/dist/cli-SRHFUZHA.js.map +1 -0
  152. package/dist/cli-URZQXL4K.js +552 -0
  153. package/dist/cli-URZQXL4K.js.map +1 -0
  154. package/dist/cli.d.ts +12 -2
  155. package/dist/cli.js +109 -7661
  156. package/dist/cli.js.map +1 -1
  157. package/dist/docmeta.js +15 -3
  158. package/dist/docmeta.js.map +1 -1
  159. package/dist/github-FE6KCNYJ.js +27 -0
  160. package/dist/github-FE6KCNYJ.js.map +1 -0
  161. package/dist/github-QXL3VMK2.js +32 -0
  162. package/dist/github-QXL3VMK2.js.map +1 -0
  163. package/dist/index.d.ts +65 -3
  164. package/dist/index.js +407 -337
  165. package/dist/index.js.map +1 -1
  166. package/dist/json-7WV7KL6H.js +17 -0
  167. package/dist/json-7WV7KL6H.js.map +1 -0
  168. package/dist/json-SGZ6ZRFD.js +35 -0
  169. package/dist/json-SGZ6ZRFD.js.map +1 -0
  170. package/dist/lint-DL4LJRAY.js +28 -0
  171. package/dist/lint-DL4LJRAY.js.map +1 -0
  172. package/dist/list-6BAXTZUM.js +29 -0
  173. package/dist/list-6BAXTZUM.js.map +1 -0
  174. package/dist/list-7BKNYPSB.js +31 -0
  175. package/dist/list-7BKNYPSB.js.map +1 -0
  176. package/dist/page-3U2GCFNE.js +41 -0
  177. package/dist/page-3U2GCFNE.js.map +1 -0
  178. package/dist/picker-3XF36MJF.js +14 -0
  179. package/dist/picker-3XF36MJF.js.map +1 -0
  180. package/dist/pretty-2H57QVTY.js +43 -0
  181. package/dist/pretty-2H57QVTY.js.map +1 -0
  182. package/dist/pretty-N6DO4OOL.js +37 -0
  183. package/dist/pretty-N6DO4OOL.js.map +1 -0
  184. package/dist/reporters-M6LJ2IYU.js +21 -0
  185. package/dist/reporters-M6LJ2IYU.js.map +1 -0
  186. package/dist/reporters-N6GHXSS7.js +42 -0
  187. package/dist/reporters-N6GHXSS7.js.map +1 -0
  188. package/dist/reporters-UCNEV7PH.js +71 -0
  189. package/dist/reporters-UCNEV7PH.js.map +1 -0
  190. package/dist/run-XZDAREJE.js +33 -0
  191. package/dist/run-XZDAREJE.js.map +1 -0
  192. package/dist/term-5ICGKPC3.js +1592 -0
  193. package/dist/term-5ICGKPC3.js.map +1 -0
  194. package/dist/types-Y6TXHM7M.js +10 -0
  195. package/dist/types-Y6TXHM7M.js.map +1 -0
  196. package/dist/validate-GQRM77YN.js +16 -0
  197. package/dist/validate-GQRM77YN.js.map +1 -0
  198. package/package.json +1 -1
  199. package/plugin/manni/.claude-plugin/plugin.json +9 -0
  200. package/plugin/manni/hooks/hooks.json +52 -0
  201. package/plugin/manni/skills/check/SKILL.md +20 -0
  202. package/plugin/manni/skills/evals/SKILL.md +27 -0
  203. package/plugin/manni/skills/fix/SKILL.md +56 -0
  204. package/plugin/manni/skills/setup/SKILL.md +41 -0
  205. package/dist/batch-A5HZKYIW.js +0 -18
  206. package/dist/calibrate-S5K6QHUY.js +0 -13
  207. package/dist/capture-OZEZDABQ.js +0 -15
  208. package/dist/chunk-3R23C5DT.js.map +0 -1
  209. package/dist/chunk-CFDUZRM2.js.map +0 -1
  210. package/dist/chunk-G5CM2VGQ.js.map +0 -1
  211. package/dist/chunk-KJR7OVDX.js.map +0 -1
  212. package/dist/chunk-V4KUVE47.js +0 -27170
  213. package/dist/chunk-V4KUVE47.js.map +0 -1
  214. package/dist/chunk-ZQBTK3DO.js +0 -26518
  215. package/dist/chunk-ZQBTK3DO.js.map +0 -1
  216. package/dist/picker-6HRMETE7.js +0 -12
  217. package/plugin/tracevals/.claude-plugin/plugin.json +0 -9
  218. package/plugin/tracevals/hooks/hooks.json +0 -17
  219. /package/dist/{batch-A5HZKYIW.js.map → batch-DFRCLY77.js.map} +0 -0
  220. /package/dist/{calibrate-S5K6QHUY.js.map → build-Q5C6SX5J.js.map} +0 -0
  221. /package/dist/{capture-OZEZDABQ.js.map → calibrate-XQILKXS3.js.map} +0 -0
  222. /package/dist/{picker-6HRMETE7.js.map → capture-JQMOC3BW.js.map} +0 -0
  223. /package/dist/{chunk-HAPTXWU2.js.map → chunk-MYC3O5EJ.js.map} +0 -0
  224. /package/dist/{chunk-5HNHEUD5.js.map → chunk-XYLUCIKQ.js.map} +0 -0
package/dist/docmeta.js CHANGED
@@ -1,11 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  buildProgram
4
- } from "./chunk-UBMMXS2Y.js";
4
+ } from "./chunk-KCGV52AM.js";
5
+ import "./chunk-CYWHFSRT.js";
6
+ import "./chunk-K3D6FPV6.js";
7
+ import "./chunk-V46OILVC.js";
8
+ import "./chunk-RLR4TKUZ.js";
9
+ import "./chunk-C6OH6CNF.js";
10
+ import "./chunk-JVTNMVYU.js";
5
11
  import {
6
12
  runIfMain
7
- } from "./chunk-ZQBTK3DO.js";
8
- import "./chunk-IOYXPBCL.js";
13
+ } from "./chunk-YEUYKR62.js";
14
+ import "./chunk-RNVYGWIC.js";
15
+ import "./chunk-MNH7QO4Z.js";
16
+ import "./chunk-Q35YIDBV.js";
17
+ import "./chunk-UZC7LDAQ.js";
18
+ import "./chunk-OWBRDNRZ.js";
19
+ import "./chunk-G3T47CFV.js";
20
+ import "./chunk-2H7UOFLK.js";
9
21
 
10
22
  // src/docmeta.ts
11
23
  runIfMain(import.meta.url, () => buildProgram().name("docmeta"));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/docmeta.ts"],"sourcesContent":["/**\n * The `docmeta` bin: the metadata tool under the name it had before it became\n * `manni meta`. Same program, same options, same exit codes, so a script or\n * workflow written against `docmeta …` keeps working. Only the usage line and\n * the stderr prefix say `docmeta`.\n */\nimport { buildProgram } from \"./meta/cli.js\";\nimport { runIfMain } from \"./shared/run.js\";\n\nrunIfMain(import.meta.url, () => buildProgram().name(\"docmeta\"));\n"],"mappings":";;;;;;;;;;AASA,UAAU,YAAY,KAAK,MAAM,aAAa,EAAE,KAAK,SAAS,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/docmeta.ts"],"sourcesContent":["/**\n * The `docmeta` bin: the metadata tool under the name it had before it became\n * `manni meta`. Same program, same options, same exit codes, so a script or\n * workflow written against `docmeta …` keeps working. Only the usage line and\n * the stderr prefix say `docmeta`.\n */\nimport { buildProgram } from \"./meta/cli.js\";\nimport { runIfMain } from \"./shared/run.js\";\n\nrunIfMain(import.meta.url, () => buildProgram().name(\"docmeta\"));\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AASA,UAAU,YAAY,KAAK,MAAM,aAAa,EAAE,KAAK,SAAS,CAAC;","names":[]}
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ renderFindingsGithub
4
+ } from "./chunk-3AFUD75K.js";
5
+ import "./chunk-WQE54PNH.js";
6
+ import "./chunk-77AINBYM.js";
7
+ import "./chunk-IKEWBMCN.js";
8
+ import "./chunk-TU2WUBVZ.js";
9
+ import "./chunk-H2DLH2JI.js";
10
+ import "./chunk-CYWHFSRT.js";
11
+ import "./chunk-K3D6FPV6.js";
12
+ import "./chunk-V46OILVC.js";
13
+ import "./chunk-RLR4TKUZ.js";
14
+ import "./chunk-C6OH6CNF.js";
15
+ import "./chunk-JVTNMVYU.js";
16
+ import "./chunk-YEUYKR62.js";
17
+ import "./chunk-RNVYGWIC.js";
18
+ import "./chunk-MNH7QO4Z.js";
19
+ import "./chunk-Q35YIDBV.js";
20
+ import "./chunk-UZC7LDAQ.js";
21
+ import "./chunk-OWBRDNRZ.js";
22
+ import "./chunk-G3T47CFV.js";
23
+ import "./chunk-2H7UOFLK.js";
24
+ export {
25
+ renderFindingsGithub
26
+ };
27
+ //# sourceMappingURL=github-FE6KCNYJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ NAMES_ITS_SUBJECT,
4
+ findingMessage,
5
+ renderCheckGithub
6
+ } from "./chunk-XSLV76YK.js";
7
+ import "./chunk-BUXDLRDT.js";
8
+ import "./chunk-252LNOEG.js";
9
+ import "./chunk-G7NJSREW.js";
10
+ import "./chunk-IKEWBMCN.js";
11
+ import "./chunk-TU2WUBVZ.js";
12
+ import "./chunk-H2DLH2JI.js";
13
+ import "./chunk-CYWHFSRT.js";
14
+ import "./chunk-K3D6FPV6.js";
15
+ import "./chunk-V46OILVC.js";
16
+ import "./chunk-RLR4TKUZ.js";
17
+ import "./chunk-C6OH6CNF.js";
18
+ import "./chunk-JVTNMVYU.js";
19
+ import "./chunk-YEUYKR62.js";
20
+ import "./chunk-RNVYGWIC.js";
21
+ import "./chunk-MNH7QO4Z.js";
22
+ import "./chunk-Q35YIDBV.js";
23
+ import "./chunk-UZC7LDAQ.js";
24
+ import "./chunk-OWBRDNRZ.js";
25
+ import "./chunk-G3T47CFV.js";
26
+ import "./chunk-2H7UOFLK.js";
27
+ export {
28
+ NAMES_ITS_SUBJECT,
29
+ findingMessage,
30
+ renderCheckGithub
31
+ };
32
+ //# sourceMappingURL=github-QXL3VMK2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/index.d.ts CHANGED
@@ -1564,6 +1564,13 @@ interface ValidateOptions$1 {
1564
1564
  derive?: boolean;
1565
1565
  /** The clock an uncommitted body change is dated by. Test seam; default `new Date()`. */
1566
1566
  now?: () => Date;
1567
+ /**
1568
+ * Leave out a file judged by the built-in default set alone: no `$schema`
1569
+ * of its own, and no `schemas:` or `overrides:` entry covering it. Such a
1570
+ * file gets no result and is not counted. `manni check` sets this, because
1571
+ * a default it would apply is not something the project set up.
1572
+ */
1573
+ skipDefaultOnly?: boolean;
1567
1574
  }
1568
1575
  interface ValidateRun {
1569
1576
  results: ValidationResult[];
@@ -4070,6 +4077,17 @@ interface SourceIndex {
4070
4077
  /** Whether `path` is a tracked file under the root. An encrypted source is decrypted first, then asked here. */
4071
4078
  has(path: string): boolean;
4072
4079
  }
4080
+ /**
4081
+ * What one run has read so far: each tracked file once, with its lines split
4082
+ * once. A run makes one with `createSourceCache` and passes it to every
4083
+ * `readSource` it makes, so a source cited a hundred times is read once. It
4084
+ * holds whatever the files said when first read, so a run that rewrites files
4085
+ * it may later read as sources makes none.
4086
+ */
4087
+ type SourceCache = Map<string, Promise<{
4088
+ text: string;
4089
+ lines: readonly string[];
4090
+ } | undefined>>;
4073
4091
  interface CheckPageOptions {
4074
4092
  /** Absolute directory source paths resolve from. */
4075
4093
  root: string;
@@ -4098,6 +4116,8 @@ interface CheckPageOptions {
4098
4116
  /** How many commits the claim history walk reads. Defaults to `MAX_PAGE_COMMITS`. */
4099
4117
  pageCommitCap?: number;
4100
4118
  sourceIndex?: SourceIndex;
4119
+ /** Source files already read this run (`createSourceCache`); absent, each citation reads its own. */
4120
+ sourceCache?: SourceCache;
4101
4121
  /**
4102
4122
  * The page's citations as merged from a manifest, each with where it sits.
4103
4123
  * Given, the page's own frontmatter `citations` is not read. Without it, a
@@ -4667,6 +4687,7 @@ type ReadSourceResult = {
4667
4687
  kind: "ok";
4668
4688
  resolvedPath: string;
4669
4689
  text: string;
4690
+ lines?: readonly string[];
4670
4691
  } | {
4671
4692
  kind: "missing";
4672
4693
  reason: MissingReason;
@@ -4676,7 +4697,7 @@ type ReadSourceResult = {
4676
4697
  * first: with no key it is `no-key`, under another key `undecryptable`. Never
4677
4698
  * reads a path the index does not hold.
4678
4699
  */
4679
- declare function readSource(root: string, index: SourceIndex, range: SourceRange, key?: string): Promise<ReadSourceResult>;
4700
+ declare function readSource(root: string, index: SourceIndex, range: SourceRange, key?: string, cache?: SourceCache): Promise<ReadSourceResult>;
4680
4701
 
4681
4702
  /**
4682
4703
  * Misplaced markers, and what to do about them. Proposal 0054 is the record.
@@ -5165,6 +5186,8 @@ interface ClassifyOptions {
5165
5186
  key?: string;
5166
5187
  /** Hashing budget for the blind move search, in bytes. Default `MOVE_BUDGET_BYTES`. */
5167
5188
  budget?: number;
5189
+ /** Source files already read this run, so a source cited many times is read once. */
5190
+ cache?: SourceCache;
5168
5191
  }
5169
5192
  /**
5170
5193
  * What git could say about the pin at the recorded commit. `unknown` is a
@@ -5208,6 +5231,11 @@ interface ReadPageOptions {
5208
5231
  file: string;
5209
5232
  collection: string;
5210
5233
  };
5234
+ /**
5235
+ * `false` reads the entries alone, for a caller that only counts them: no
5236
+ * marker is parsed, so no marker finding is raised and none is anchored.
5237
+ */
5238
+ markers?: boolean;
5211
5239
  }
5212
5240
  /** Meta's `external:owned` sentence, said by `cite check` under `entry-invalid`. */
5213
5241
  declare function ownedMessage(owner: {
@@ -5951,6 +5979,7 @@ declare const index$5_SRC_PATTERN: typeof SRC_PATTERN;
5951
5979
  type index$5_ShiftOptions = ShiftOptions;
5952
5980
  type index$5_Shifted = Shifted;
5953
5981
  type index$5_ShownFile = ShownFile;
5982
+ type index$5_SourceCache = SourceCache;
5954
5983
  type index$5_SourceEnd = SourceEnd;
5955
5984
  type index$5_SourceIndex = SourceIndex;
5956
5985
  type index$5_SourceRange = SourceRange;
@@ -6083,7 +6112,7 @@ declare const index$5_urlManifestRefusal: typeof urlManifestRefusal;
6083
6112
  declare const index$5_validateEntry: typeof validateEntry;
6084
6113
  declare const index$5_withClaimLines: typeof withClaimLines;
6085
6114
  declare namespace index$5 {
6086
- export { type index$5_AddOptions as AddOptions, type index$5_AddResult as AddResult, type index$5_BuildIndexOptions as BuildIndexOptions, index$5_CITATIONS_KEY as CITATIONS_KEY, index$5_CITE_RULES as CITE_RULES, index$5_CITE_SECTION as CITE_SECTION, type index$5_CheckOptions as CheckOptions, type index$5_CheckPageOptions as CheckPageOptions, type index$5_CheckRun as CheckRun, type Citation$1 as Citation, type index$5_CitationAnchor as CitationAnchor, type index$5_CitationClaim as CitationClaim, type index$5_CitationFinding as CitationFinding, type index$5_CitationInput as CitationInput, type index$5_CitationManifest as CitationManifest, type index$5_CitationOrigin as CitationOrigin, type index$5_CitationResult as CitationResult, type index$5_CitationSidecars as CitationSidecars, type index$5_CitationSource as CitationSource, type index$5_CiteConfig as CiteConfig, index$5_CiteError as CiteError, type index$5_CiteRule as CiteRule, type index$5_CiteRun as CiteRun, type index$5_CiteRunOptions as CiteRunOptions, type index$5_CiteSeverity as CiteSeverity, type index$5_ClaimEnd as ClaimEnd, type index$5_ClaimHistory as ClaimHistory, type index$5_ClaimHistoryInput as ClaimHistoryInput, type index$5_ClaimStatus as ClaimStatus, type index$5_ClaimUnit as ClaimUnit, type index$5_ClassifyOptions as ClassifyOptions, index$5_DEFAULT_CITE_BASELINE_PATH as DEFAULT_CITE_BASELINE_PATH, index$5_DEFAULT_SEVERITY as DEFAULT_SEVERITY, type index$5_EntryPath as EntryPath, index$5_FILE_PATTERN as FILE_PATTERN, type index$5_FindWindowsOptions as FindWindowsOptions, index$5_GIT_UNAVAILABLE_COMMIT as GIT_UNAVAILABLE_COMMIT, index$5_GIT_UNAVAILABLE_HISTORY as GIT_UNAVAILABLE_HISTORY, type index$5_GitClient as GitClient, type index$5_HeldManifest as HeldManifest, type index$5_History as History, type index$5_InlineStatement as InlineStatement, type index$5_LineSpec as LineSpec, type index$5_LoadSidecarOptions as LoadSidecarOptions, type index$5_LoadedCiteConfig as LoadedCiteConfig, index$5_MARKER_JSON as MARKER_JSON, index$5_MAX_MARKERS_PER_PAGE as MAX_MARKERS_PER_PAGE, index$5_MAX_PAGE_COMMITS as MAX_PAGE_COMMITS, index$5_MAX_RANGE_LINES as MAX_RANGE_LINES, index$5_MOVE_BUDGET_BYTES as MOVE_BUDGET_BYTES, index$5_MOVE_WINDOW_LINES as MOVE_WINDOW_LINES, type ManifestChange$1 as ManifestChange, index$5_ManifestSet as ManifestSet, type index$5_ManifestWrite as ManifestWrite, type index$5_MarkerEnd as MarkerEnd, type index$5_MintOptions as MintOptions, type index$5_MisplacedMarker as MisplacedMarker, type index$5_MisplacedMarkerReport as MisplacedMarkerReport, type index$5_MissingReason as MissingReason, type index$5_NoUnit as NoUnit, type index$5_OriginKind as OriginKind, index$5_PAGE_HISTORY_UNAVAILABLE as PAGE_HISTORY_UNAVAILABLE, type index$5_PageCitation as PageCitation, type index$5_PageCitationReport as PageCitationReport, type index$5_PageCitations as PageCitations, type index$5_PageCommit as PageCommit, type index$5_PageHistory as PageHistory, type index$5_PageLines as PageLines, type index$5_PageSidecar as PageSidecar, type index$5_PrettyOptions as PrettyOptions, RULE_ID_PREFIX$1 as RULE_ID_PREFIX, type index$5_ReadPageOptions as ReadPageOptions, type index$5_ReadSourceResult as ReadSourceResult, type index$5_RecommitReason as RecommitReason, type index$5_ReencryptCitationsResult as ReencryptCitationsResult, type index$5_ReencryptEntriesResult as ReencryptEntriesResult, type index$5_ReencryptOptions as ReencryptOptions, type index$5_ReencryptedCitation as ReencryptedCitation, type index$5_RefineClaimInput as RefineClaimInput, type index$5_Removal as Removal, type index$5_RemoveOptions as RemoveOptions, type index$5_RemovePage as RemovePage, type index$5_RemoveRun as RemoveRun, index$5_SRC_PATTERN as SRC_PATTERN, type index$5_ShiftOptions as ShiftOptions, type index$5_Shifted as Shifted, type index$5_ShownFile as ShownFile, type index$5_SourceEnd as SourceEnd, type index$5_SourceIndex as SourceIndex, type index$5_SourceRange as SourceRange, type index$5_SourceStatus as SourceStatus, type index$5_StatementForm as StatementForm, type index$5_TextEdit as TextEdit, type index$5_UpdateOptions as UpdateOptions, type index$5_UpdatePage as UpdatePage, type index$5_UpdateRewrite as UpdateRewrite, type index$5_UpdateRun as UpdateRun, index$5_anchoredLines as anchoredLines, index$5_appendFrontmatterCitation as appendFrontmatterCitation, index$5_blockMatches as blockMatches, index$5_bodyLineOf as bodyLineOf, index$5_buildSourceIndex as buildSourceIndex, index$5_checkCitations as checkCitations, index$5_citationInputs as citationInputs, index$5_claimDiff as claimDiff, index$5_claimEnd as claimEnd, index$5_claimHistory as claimHistory, index$5_claimLine as claimLine, index$5_claimMessageFor as claimMessageFor, index$5_claimWords as claimWords, index$5_classifyCitation as classifyCitation, index$5_detectEol as detectEol, index$5_duplicateJoinRefusal as duplicateJoinRefusal, index$5_entryObject as entryObject, index$5_errorSite as errorSite, index$5_fenceSpanAt as fenceSpanAt, index$5_fencedBlockAfter as fencedBlockAfter, index$5_fencedBlockAt as fencedBlockAt, index$5_fencedBlocks as fencedBlocks, index$5_findWindows as findWindows, index$5_findingsFor as findingsFor, index$5_formatSrc as formatSrc, index$5_formatStatement as formatStatement, index$5_gitClient as gitClient, index$5_hashLines as hashLines, index$5_hashRange as hashRange, index$5_historyOf as historyOf, index$5_holdsWords as holdsWords, index$5_insertStatementBefore as insertStatementBefore, index$5_insideFence as insideFence, index$5_isBoundLine as isBoundLine, index$5_isCiteRule as isCiteRule, index$5_isKeyedPin as isKeyedPin, index$5_isTableRow as isTableRow, index$5_isUnitText as isUnitText, index$5_itemLine as itemLine, index$5_lineAt as lineAt, index$5_lineSpec as lineSpec, index$5_loadCitationSidecars as loadCitationSidecars, index$5_loadCiteConfig as loadCiteConfig, index$5_markerClaimEnd as markerClaimEnd, index$5_markerRunAt as markerRunAt, index$5_markerUnit as markerUnit, index$5_messageFor as messageFor, index$5_mintCitation as mintCitation, index$5_misplacedMarkerAt as misplacedMarkerAt, index$5_misplacedMarkers as misplacedMarkers, index$5_misplacedMessageFor as misplacedMessageFor, index$5_movedUnit as movedUnit, index$5_noGit as noGit, index$5_noUnitAt as noUnitAt, index$5_normalizeText as normalizeText, index$5_normalizeWhitespace as normalizeWhitespace, index$5_offsetOfLine as offsetOfLine, index$5_orphanRefusal as orphanRefusal, index$5_ownedMessage as ownedMessage, index$5_paragraphAfter as paragraphAfter, index$5_parseCiteConfig as parseCiteConfig, index$5_parseLines as parseLines, index$5_parseSrc as parseSrc, index$5_parseStatements as parseStatements, index$5_pickExtractor as pickExtractor, index$5_pinOfLines as pinOfLines, index$5_pre43Span as pre43Span, index$5_rangeLines as rangeLines, index$5_readCiteConfigFile as readCiteConfigFile, readPage$1 as readPage, index$5_readSource as readSource, index$5_reencryptCitationEntries as reencryptCitationEntries, index$5_reencryptCitations as reencryptCitations, index$5_refineClaim as refineClaim, index$5_refusalLine as refusalLine, index$5_removalLine as removalLine, index$5_removeFrontmatterCitations as removeFrontmatterCitations, index$5_removeLine as removeLine, index$5_renderCheckGithub as renderCheckGithub, index$5_renderCheckJson as renderCheckJson, index$5_renderCheckPretty as renderCheckPretty, index$5_renderRemoveJson as renderRemoveJson, index$5_renderRemovePretty as renderRemovePretty, index$5_renderUpdateJson as renderUpdateJson, index$5_renderUpdatePretty as renderUpdatePretty, index$5_resolveCiteRun as resolveCiteRun, index$5_resolveSeverity as resolveSeverity, index$5_rewriteLine as rewriteLine, ruleId$1 as ruleId, index$5_runAdd as runAdd, index$5_runCheck as runCheck, index$5_runRemove as runRemove, index$5_runUpdate as runUpdate, index$5_runsHolding as runsHolding, index$5_sentencesOf as sentencesOf, index$5_sharesSentence as sharesSentence, index$5_shiftedEntries as shiftedEntries, index$5_shortCommit as shortCommit, index$5_shortLine as shortLine, index$5_shortPin as shortPin, index$5_shortSrc as shortSrc, index$5_sidecarsFor as sidecarsFor, index$5_sliceLines as sliceLines, index$5_sourceRange as sourceRange, index$5_spellAt as spellAt, index$5_spellLines as spellLines, index$5_spellSource as spellSource, index$5_splice as splice, index$5_spliceEntryField as spliceEntryField, index$5_splitLines as splitLines, index$5_splitUnit as splitUnit, index$5_statementForms as statementForms, index$5_stripMarkers as stripMarkers, index$5_toBodyLines as toBodyLines, index$5_toFileLines as toFileLines, index$5_toValidationResult as toValidationResult, index$5_twoManifestsRefusal as twoManifestsRefusal, index$5_unifiedDiff as unifiedDiff, index$5_unitAt as unitAt, index$5_unitText as unitText, index$5_urlManifestRefusal as urlManifestRefusal, index$5_validateEntry as validateEntry, index$5_withClaimLines as withClaimLines };
6115
+ export { type index$5_AddOptions as AddOptions, type index$5_AddResult as AddResult, type index$5_BuildIndexOptions as BuildIndexOptions, index$5_CITATIONS_KEY as CITATIONS_KEY, index$5_CITE_RULES as CITE_RULES, index$5_CITE_SECTION as CITE_SECTION, type index$5_CheckOptions as CheckOptions, type index$5_CheckPageOptions as CheckPageOptions, type index$5_CheckRun as CheckRun, type Citation$1 as Citation, type index$5_CitationAnchor as CitationAnchor, type index$5_CitationClaim as CitationClaim, type index$5_CitationFinding as CitationFinding, type index$5_CitationInput as CitationInput, type index$5_CitationManifest as CitationManifest, type index$5_CitationOrigin as CitationOrigin, type index$5_CitationResult as CitationResult, type index$5_CitationSidecars as CitationSidecars, type index$5_CitationSource as CitationSource, type index$5_CiteConfig as CiteConfig, index$5_CiteError as CiteError, type index$5_CiteRule as CiteRule, type index$5_CiteRun as CiteRun, type index$5_CiteRunOptions as CiteRunOptions, type index$5_CiteSeverity as CiteSeverity, type index$5_ClaimEnd as ClaimEnd, type index$5_ClaimHistory as ClaimHistory, type index$5_ClaimHistoryInput as ClaimHistoryInput, type index$5_ClaimStatus as ClaimStatus, type index$5_ClaimUnit as ClaimUnit, type index$5_ClassifyOptions as ClassifyOptions, index$5_DEFAULT_CITE_BASELINE_PATH as DEFAULT_CITE_BASELINE_PATH, index$5_DEFAULT_SEVERITY as DEFAULT_SEVERITY, type index$5_EntryPath as EntryPath, index$5_FILE_PATTERN as FILE_PATTERN, type index$5_FindWindowsOptions as FindWindowsOptions, index$5_GIT_UNAVAILABLE_COMMIT as GIT_UNAVAILABLE_COMMIT, index$5_GIT_UNAVAILABLE_HISTORY as GIT_UNAVAILABLE_HISTORY, type index$5_GitClient as GitClient, type index$5_HeldManifest as HeldManifest, type index$5_History as History, type index$5_InlineStatement as InlineStatement, type index$5_LineSpec as LineSpec, type index$5_LoadSidecarOptions as LoadSidecarOptions, type index$5_LoadedCiteConfig as LoadedCiteConfig, index$5_MARKER_JSON as MARKER_JSON, index$5_MAX_MARKERS_PER_PAGE as MAX_MARKERS_PER_PAGE, index$5_MAX_PAGE_COMMITS as MAX_PAGE_COMMITS, index$5_MAX_RANGE_LINES as MAX_RANGE_LINES, index$5_MOVE_BUDGET_BYTES as MOVE_BUDGET_BYTES, index$5_MOVE_WINDOW_LINES as MOVE_WINDOW_LINES, type ManifestChange$1 as ManifestChange, index$5_ManifestSet as ManifestSet, type index$5_ManifestWrite as ManifestWrite, type index$5_MarkerEnd as MarkerEnd, type index$5_MintOptions as MintOptions, type index$5_MisplacedMarker as MisplacedMarker, type index$5_MisplacedMarkerReport as MisplacedMarkerReport, type index$5_MissingReason as MissingReason, type index$5_NoUnit as NoUnit, type index$5_OriginKind as OriginKind, index$5_PAGE_HISTORY_UNAVAILABLE as PAGE_HISTORY_UNAVAILABLE, type index$5_PageCitation as PageCitation, type index$5_PageCitationReport as PageCitationReport, type index$5_PageCitations as PageCitations, type index$5_PageCommit as PageCommit, type index$5_PageHistory as PageHistory, type index$5_PageLines as PageLines, type index$5_PageSidecar as PageSidecar, type index$5_PrettyOptions as PrettyOptions, RULE_ID_PREFIX$1 as RULE_ID_PREFIX, type index$5_ReadPageOptions as ReadPageOptions, type index$5_ReadSourceResult as ReadSourceResult, type index$5_RecommitReason as RecommitReason, type index$5_ReencryptCitationsResult as ReencryptCitationsResult, type index$5_ReencryptEntriesResult as ReencryptEntriesResult, type index$5_ReencryptOptions as ReencryptOptions, type index$5_ReencryptedCitation as ReencryptedCitation, type index$5_RefineClaimInput as RefineClaimInput, type index$5_Removal as Removal, type index$5_RemoveOptions as RemoveOptions, type index$5_RemovePage as RemovePage, type index$5_RemoveRun as RemoveRun, index$5_SRC_PATTERN as SRC_PATTERN, type index$5_ShiftOptions as ShiftOptions, type index$5_Shifted as Shifted, type index$5_ShownFile as ShownFile, type index$5_SourceCache as SourceCache, type index$5_SourceEnd as SourceEnd, type index$5_SourceIndex as SourceIndex, type index$5_SourceRange as SourceRange, type index$5_SourceStatus as SourceStatus, type index$5_StatementForm as StatementForm, type index$5_TextEdit as TextEdit, type index$5_UpdateOptions as UpdateOptions, type index$5_UpdatePage as UpdatePage, type index$5_UpdateRewrite as UpdateRewrite, type index$5_UpdateRun as UpdateRun, index$5_anchoredLines as anchoredLines, index$5_appendFrontmatterCitation as appendFrontmatterCitation, index$5_blockMatches as blockMatches, index$5_bodyLineOf as bodyLineOf, index$5_buildSourceIndex as buildSourceIndex, index$5_checkCitations as checkCitations, index$5_citationInputs as citationInputs, index$5_claimDiff as claimDiff, index$5_claimEnd as claimEnd, index$5_claimHistory as claimHistory, index$5_claimLine as claimLine, index$5_claimMessageFor as claimMessageFor, index$5_claimWords as claimWords, index$5_classifyCitation as classifyCitation, index$5_detectEol as detectEol, index$5_duplicateJoinRefusal as duplicateJoinRefusal, index$5_entryObject as entryObject, index$5_errorSite as errorSite, index$5_fenceSpanAt as fenceSpanAt, index$5_fencedBlockAfter as fencedBlockAfter, index$5_fencedBlockAt as fencedBlockAt, index$5_fencedBlocks as fencedBlocks, index$5_findWindows as findWindows, index$5_findingsFor as findingsFor, index$5_formatSrc as formatSrc, index$5_formatStatement as formatStatement, index$5_gitClient as gitClient, index$5_hashLines as hashLines, index$5_hashRange as hashRange, index$5_historyOf as historyOf, index$5_holdsWords as holdsWords, index$5_insertStatementBefore as insertStatementBefore, index$5_insideFence as insideFence, index$5_isBoundLine as isBoundLine, index$5_isCiteRule as isCiteRule, index$5_isKeyedPin as isKeyedPin, index$5_isTableRow as isTableRow, index$5_isUnitText as isUnitText, index$5_itemLine as itemLine, index$5_lineAt as lineAt, index$5_lineSpec as lineSpec, index$5_loadCitationSidecars as loadCitationSidecars, index$5_loadCiteConfig as loadCiteConfig, index$5_markerClaimEnd as markerClaimEnd, index$5_markerRunAt as markerRunAt, index$5_markerUnit as markerUnit, index$5_messageFor as messageFor, index$5_mintCitation as mintCitation, index$5_misplacedMarkerAt as misplacedMarkerAt, index$5_misplacedMarkers as misplacedMarkers, index$5_misplacedMessageFor as misplacedMessageFor, index$5_movedUnit as movedUnit, index$5_noGit as noGit, index$5_noUnitAt as noUnitAt, index$5_normalizeText as normalizeText, index$5_normalizeWhitespace as normalizeWhitespace, index$5_offsetOfLine as offsetOfLine, index$5_orphanRefusal as orphanRefusal, index$5_ownedMessage as ownedMessage, index$5_paragraphAfter as paragraphAfter, index$5_parseCiteConfig as parseCiteConfig, index$5_parseLines as parseLines, index$5_parseSrc as parseSrc, index$5_parseStatements as parseStatements, index$5_pickExtractor as pickExtractor, index$5_pinOfLines as pinOfLines, index$5_pre43Span as pre43Span, index$5_rangeLines as rangeLines, index$5_readCiteConfigFile as readCiteConfigFile, readPage$1 as readPage, index$5_readSource as readSource, index$5_reencryptCitationEntries as reencryptCitationEntries, index$5_reencryptCitations as reencryptCitations, index$5_refineClaim as refineClaim, index$5_refusalLine as refusalLine, index$5_removalLine as removalLine, index$5_removeFrontmatterCitations as removeFrontmatterCitations, index$5_removeLine as removeLine, index$5_renderCheckGithub as renderCheckGithub, index$5_renderCheckJson as renderCheckJson, index$5_renderCheckPretty as renderCheckPretty, index$5_renderRemoveJson as renderRemoveJson, index$5_renderRemovePretty as renderRemovePretty, index$5_renderUpdateJson as renderUpdateJson, index$5_renderUpdatePretty as renderUpdatePretty, index$5_resolveCiteRun as resolveCiteRun, index$5_resolveSeverity as resolveSeverity, index$5_rewriteLine as rewriteLine, ruleId$1 as ruleId, index$5_runAdd as runAdd, index$5_runCheck as runCheck, index$5_runRemove as runRemove, index$5_runUpdate as runUpdate, index$5_runsHolding as runsHolding, index$5_sentencesOf as sentencesOf, index$5_sharesSentence as sharesSentence, index$5_shiftedEntries as shiftedEntries, index$5_shortCommit as shortCommit, index$5_shortLine as shortLine, index$5_shortPin as shortPin, index$5_shortSrc as shortSrc, index$5_sidecarsFor as sidecarsFor, index$5_sliceLines as sliceLines, index$5_sourceRange as sourceRange, index$5_spellAt as spellAt, index$5_spellLines as spellLines, index$5_spellSource as spellSource, index$5_splice as splice, index$5_spliceEntryField as spliceEntryField, index$5_splitLines as splitLines, index$5_splitUnit as splitUnit, index$5_statementForms as statementForms, index$5_stripMarkers as stripMarkers, index$5_toBodyLines as toBodyLines, index$5_toFileLines as toFileLines, index$5_toValidationResult as toValidationResult, index$5_twoManifestsRefusal as twoManifestsRefusal, index$5_unifiedDiff as unifiedDiff, index$5_unitAt as unitAt, index$5_unitText as unitText, index$5_urlManifestRefusal as urlManifestRefusal, index$5_validateEntry as validateEntry, index$5_withClaimLines as withClaimLines };
6087
6116
  }
6088
6117
 
6089
6118
  /**
@@ -6255,7 +6284,17 @@ interface RunReport$1 {
6255
6284
  }
6256
6285
  /** Operational/usage error → exit code 2. */
6257
6286
  declare class DocevalsError extends ToolError {
6258
- constructor(message: string);
6287
+ /**
6288
+ * Set where a caller acts on the kind of error rather than reporting it.
6289
+ * `nothing-resolved`: no page this run would check resolves an eval.
6290
+ */
6291
+ readonly code?: "nothing-resolved" | undefined;
6292
+ constructor(message: string,
6293
+ /**
6294
+ * Set where a caller acts on the kind of error rather than reporting it.
6295
+ * `nothing-resolved`: no page this run would check resolves an eval.
6296
+ */
6297
+ code?: "nothing-resolved" | undefined);
6259
6298
  }
6260
6299
 
6261
6300
  /**
@@ -9128,6 +9167,29 @@ interface AnalyzeOptions {
9128
9167
  * path is MDX and anything else is markdown.
9129
9168
  */
9130
9169
  format?: DocFormat;
9170
+ /**
9171
+ * How the body is parsed. Absent, `parseBody`. `graph build` passes a cache's
9172
+ * `parse` here, which returns what `parseBody` would (`analyze-cache.ts`).
9173
+ */
9174
+ parse?: (content: string, path: string, format: DocFormat) => DocBody;
9175
+ }
9176
+ /**
9177
+ * What a page's body yields before anything else in the corpus is consulted:
9178
+ * headings, and link and image targets as written, in document order.
9179
+ *
9180
+ * A pure function of the bytes and the format, so it can be cached across
9181
+ * runs. Resolving a target needs the rest of the corpus and the routes, so
9182
+ * that happens after, in `analyzeDoc`.
9183
+ */
9184
+ interface DocBody {
9185
+ firstH1?: string;
9186
+ sections: Section[];
9187
+ /** Raw link targets: links, resolved link references, and JSX `href`s. */
9188
+ linkTargets: string[];
9189
+ /** Raw image targets: images, resolved image references, and JSX `src`s. */
9190
+ imageTargets: string[];
9191
+ /** Code fence languages, sorted and distinct. */
9192
+ codeLanguages: string[];
9131
9193
  }
9132
9194
  /** Analyze one Markdown file. `allPaths` is the discovered corpus for link resolution. */
9133
9195
  declare function analyzeDoc(content: string, relPath: string, allPaths: ReadonlySet<string>, options?: AnalyzeOptions): DocModel;