@hawkeyexl/manni 4.8.1 → 4.10.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 (173) hide show
  1. package/README.md +1 -1
  2. package/dist/{batch-QMHYWGUA.js → batch-6NICDKRE.js} +12 -12
  3. package/dist/{build-ZGA3O3P4.js → build-3KP2K3XN.js} +11 -11
  4. package/dist/{calibrate-KBMFGKP3.js → calibrate-LUA3DWKD.js} +13 -13
  5. package/dist/{capture-C46UXFRK.js → capture-NETOHCB4.js} +12 -12
  6. package/dist/{check-UMI5ACCE.js → check-7B77ZD2N.js} +11 -11
  7. package/dist/{check-OAJWC3WD.js → check-E4QCB7LS.js} +5 -5
  8. package/dist/{check-CORYIW76.js → check-NLL4NRYA.js} +13 -13
  9. package/dist/{check-LLQ6PJV3.js → check-PTECPIIB.js} +10 -10
  10. package/dist/{chunk-N7J5C35C.js → chunk-2BV4FBC7.js} +2 -2
  11. package/dist/chunk-2BV4FBC7.js.map +1 -0
  12. package/dist/{chunk-PO5W6JAP.js → chunk-2JV7C4YV.js} +7 -7
  13. package/dist/{chunk-Z27GYQOY.js → chunk-2UCC26MO.js} +8 -8
  14. package/dist/{chunk-WBETAXO2.js → chunk-2W34HX2U.js} +5 -5
  15. package/dist/{chunk-ZIGIJBXG.js → chunk-2YJ5H5E6.js} +9 -9
  16. package/dist/{chunk-HWNSIEZK.js → chunk-3E2X2RBU.js} +6 -6
  17. package/dist/{chunk-Q3GFZJTY.js → chunk-4DLF5SA4.js} +35 -17
  18. package/dist/chunk-4DLF5SA4.js.map +1 -0
  19. package/dist/{chunk-BYVH727K.js → chunk-55GMOVKW.js} +2 -2
  20. package/dist/{chunk-C2JPBQCJ.js → chunk-5REEVKGH.js} +2 -2
  21. package/dist/{chunk-XXDXIIQ4.js → chunk-6AGESHHM.js} +2 -2
  22. package/dist/{chunk-GQBVZS5G.js → chunk-6LR73NMO.js} +6 -6
  23. package/dist/{chunk-XKBEHKWO.js → chunk-6M5VJOC2.js} +2 -1
  24. package/dist/{chunk-F734HIHT.js → chunk-7Y3N4Y72.js} +3 -3
  25. package/dist/{chunk-WUFP4V7B.js → chunk-ABHG6I3G.js} +1292 -126
  26. package/dist/chunk-ABHG6I3G.js.map +1 -0
  27. package/dist/{chunk-FEALEYSE.js → chunk-AO5TSDKT.js} +4 -4
  28. package/dist/{chunk-LF6FOF6U.js → chunk-BD7IXBWE.js} +15 -26
  29. package/dist/{chunk-LF6FOF6U.js.map → chunk-BD7IXBWE.js.map} +1 -1
  30. package/dist/{chunk-NB4ILZMQ.js → chunk-CCWMACJL.js} +8 -8
  31. package/dist/{chunk-K43X5VDR.js → chunk-D2UW3ZCK.js} +6 -6
  32. package/dist/{chunk-SV6UEQCU.js → chunk-DFCQ6BMI.js} +4 -4
  33. package/dist/{chunk-ECVQNGTH.js → chunk-DNZUBCGZ.js} +3 -3
  34. package/dist/{chunk-POGYWOJ2.js → chunk-EAUIQADY.js} +3 -3
  35. package/dist/{chunk-XDS3KQCK.js → chunk-G6FNWRAI.js} +4 -4
  36. package/dist/{chunk-6HMLYFEU.js → chunk-G7XD4QH5.js} +810 -5
  37. package/dist/chunk-G7XD4QH5.js.map +1 -0
  38. package/dist/{chunk-WUXD6VBD.js → chunk-GB2XPITA.js} +2 -2
  39. package/dist/{chunk-KPXOJMQ6.js → chunk-GCKHSBEN.js} +2 -2
  40. package/dist/{chunk-6QBJHRFC.js → chunk-GDLHTI5R.js} +129 -26
  41. package/dist/chunk-GDLHTI5R.js.map +1 -0
  42. package/dist/{chunk-NNFSIRVE.js → chunk-GXN7RRHR.js} +3 -3
  43. package/dist/{chunk-RCS5YFY2.js → chunk-H26VDFDS.js} +2 -2
  44. package/dist/{chunk-4VQBHTGA.js → chunk-IJ62BB2T.js} +5 -5
  45. package/dist/{chunk-WT6HMEEF.js → chunk-KBG463UK.js} +35 -8
  46. package/dist/{chunk-WT6HMEEF.js.map → chunk-KBG463UK.js.map} +1 -1
  47. package/dist/{chunk-UWY4B2PM.js → chunk-LQZQ5KGG.js} +4 -4
  48. package/dist/{chunk-VSOYZ7QH.js → chunk-PK7EKJ5T.js} +4 -4
  49. package/dist/{chunk-YVVMC4SZ.js → chunk-QBVP3SQP.js} +4 -4
  50. package/dist/{chunk-6MNOMHFI.js → chunk-QJRQ4BRC.js} +11 -11
  51. package/dist/{chunk-7LC4YJJ3.js → chunk-RODZ7MB7.js} +3 -3
  52. package/dist/{chunk-SXODK43S.js → chunk-RZVCWX5R.js} +4 -4
  53. package/dist/{chunk-5LAKRYXU.js → chunk-SUTMSDQ2.js} +3 -3
  54. package/dist/{chunk-6KKZXB2O.js → chunk-VVVKBUBO.js} +2 -2
  55. package/dist/{chunk-6ZR24A4S.js → chunk-VZVEP2OZ.js} +2 -2
  56. package/dist/{chunk-3FG2UU3H.js → chunk-WN47MNSK.js} +4 -4
  57. package/dist/{chunk-LAU6SVTJ.js → chunk-XU73V5XT.js} +7 -7
  58. package/dist/{chunk-77L5GNVO.js → chunk-Z5YHMRLF.js} +2 -2
  59. package/dist/{chunk-AO66Q66S.js → chunk-ZHRPH52H.js} +2 -2
  60. package/dist/chunk-ZMECS2IJ.js +27 -0
  61. package/dist/chunk-ZMECS2IJ.js.map +1 -0
  62. package/dist/{chunk-VD3EQSBI.js → chunk-ZXXFP2LA.js} +2 -2
  63. package/dist/{cli-SBJY2NQH.js → cli-4YYC6LCY.js} +15 -15
  64. package/dist/{cli-4B5RWL7P.js → cli-BIIUKPTE.js} +13 -12
  65. package/dist/{cli-4B5RWL7P.js.map → cli-BIIUKPTE.js.map} +1 -1
  66. package/dist/{cli-XIQKPNA7.js → cli-EH3I4IUX.js} +32 -32
  67. package/dist/cli-EH3I4IUX.js.map +1 -0
  68. package/dist/{cli-MNNOXWYU.js → cli-HO62TOM2.js} +8 -8
  69. package/dist/cli-LWST5FQH.js +839 -0
  70. package/dist/cli-LWST5FQH.js.map +1 -0
  71. package/dist/{cli-UB5W75GJ.js → cli-P2X7PNY6.js} +12 -12
  72. package/dist/{cli-QR3ZQZA4.js → cli-SGVFZOAW.js} +19 -19
  73. package/dist/{cli-5AML7QR2.js → cli-TELPAMJO.js} +14 -14
  74. package/dist/{cli-I4GBPLRM.js → cli-UETKXHJN.js} +3 -3
  75. package/dist/{cli-WWDARAWS.js → cli-V2DI3K2R.js} +14 -14
  76. package/dist/cli.js +18 -11
  77. package/dist/cli.js.map +1 -1
  78. package/dist/{config-YWSNBFEE.js → config-TYXYQK3I.js} +3 -3
  79. package/dist/docmeta.js +7 -7
  80. package/dist/{github-TIZ3ZR3D.js → github-ESK45CEZ.js} +10 -10
  81. package/dist/{github-WKOJRW7P.js → github-WER7JUTN.js} +12 -12
  82. package/dist/index.js +35 -34
  83. package/dist/index.js.map +1 -1
  84. package/dist/{json-4FUOZ3XX.js → json-QR4G35KA.js} +10 -10
  85. package/dist/{lint-7VQFESHK.js → lint-QTI7XK2A.js} +11 -10
  86. package/dist/{list-7U2MBDIM.js → list-JO4G3TS3.js} +10 -10
  87. package/dist/{list-W6EUAOBV.js → list-O2MJUP5V.js} +10 -10
  88. package/dist/{page-WZLBKSCD.js → page-FSXDXCDD.js} +9 -9
  89. package/dist/{prepare-FPEWAHJH.js → prepare-UPIBTFNS.js} +11 -11
  90. package/dist/{pretty-7M4X4TCY.js → pretty-4IONWSEP.js} +10 -10
  91. package/dist/{pretty-CUCMQU5R.js → pretty-R4BQD2VH.js} +11 -11
  92. package/dist/{reporters-DQVSDXV6.js → reporters-DHO2BXAD.js} +5 -5
  93. package/dist/{reporters-KYJE54JS.js → reporters-FPP6JNDP.js} +9 -9
  94. package/dist/{run-ABGXGOGQ.js → run-YH5Z7RJ7.js} +10 -10
  95. package/dist/{term-HTIG3YDC.js → term-ASM4LVYC.js} +279 -150
  96. package/dist/term-ASM4LVYC.js.map +1 -0
  97. package/dist/{validate-HWNU3MDY.js → validate-7JI3H57P.js} +5 -5
  98. package/package.json +1 -1
  99. package/plugin/manni/.claude-plugin/plugin.json +1 -1
  100. package/dist/chunk-6HMLYFEU.js.map +0 -1
  101. package/dist/chunk-6QBJHRFC.js.map +0 -1
  102. package/dist/chunk-N7J5C35C.js.map +0 -1
  103. package/dist/chunk-Q3GFZJTY.js.map +0 -1
  104. package/dist/chunk-WUFP4V7B.js.map +0 -1
  105. package/dist/cli-XIQKPNA7.js.map +0 -1
  106. package/dist/term-HTIG3YDC.js.map +0 -1
  107. /package/dist/{batch-QMHYWGUA.js.map → batch-6NICDKRE.js.map} +0 -0
  108. /package/dist/{build-ZGA3O3P4.js.map → build-3KP2K3XN.js.map} +0 -0
  109. /package/dist/{calibrate-KBMFGKP3.js.map → calibrate-LUA3DWKD.js.map} +0 -0
  110. /package/dist/{capture-C46UXFRK.js.map → capture-NETOHCB4.js.map} +0 -0
  111. /package/dist/{check-LLQ6PJV3.js.map → check-7B77ZD2N.js.map} +0 -0
  112. /package/dist/{check-OAJWC3WD.js.map → check-E4QCB7LS.js.map} +0 -0
  113. /package/dist/{check-CORYIW76.js.map → check-NLL4NRYA.js.map} +0 -0
  114. /package/dist/{check-UMI5ACCE.js.map → check-PTECPIIB.js.map} +0 -0
  115. /package/dist/{chunk-PO5W6JAP.js.map → chunk-2JV7C4YV.js.map} +0 -0
  116. /package/dist/{chunk-Z27GYQOY.js.map → chunk-2UCC26MO.js.map} +0 -0
  117. /package/dist/{chunk-WBETAXO2.js.map → chunk-2W34HX2U.js.map} +0 -0
  118. /package/dist/{chunk-ZIGIJBXG.js.map → chunk-2YJ5H5E6.js.map} +0 -0
  119. /package/dist/{chunk-HWNSIEZK.js.map → chunk-3E2X2RBU.js.map} +0 -0
  120. /package/dist/{chunk-BYVH727K.js.map → chunk-55GMOVKW.js.map} +0 -0
  121. /package/dist/{chunk-C2JPBQCJ.js.map → chunk-5REEVKGH.js.map} +0 -0
  122. /package/dist/{chunk-XXDXIIQ4.js.map → chunk-6AGESHHM.js.map} +0 -0
  123. /package/dist/{chunk-GQBVZS5G.js.map → chunk-6LR73NMO.js.map} +0 -0
  124. /package/dist/{chunk-XKBEHKWO.js.map → chunk-6M5VJOC2.js.map} +0 -0
  125. /package/dist/{chunk-F734HIHT.js.map → chunk-7Y3N4Y72.js.map} +0 -0
  126. /package/dist/{chunk-FEALEYSE.js.map → chunk-AO5TSDKT.js.map} +0 -0
  127. /package/dist/{chunk-NB4ILZMQ.js.map → chunk-CCWMACJL.js.map} +0 -0
  128. /package/dist/{chunk-K43X5VDR.js.map → chunk-D2UW3ZCK.js.map} +0 -0
  129. /package/dist/{chunk-SV6UEQCU.js.map → chunk-DFCQ6BMI.js.map} +0 -0
  130. /package/dist/{chunk-ECVQNGTH.js.map → chunk-DNZUBCGZ.js.map} +0 -0
  131. /package/dist/{chunk-POGYWOJ2.js.map → chunk-EAUIQADY.js.map} +0 -0
  132. /package/dist/{chunk-XDS3KQCK.js.map → chunk-G6FNWRAI.js.map} +0 -0
  133. /package/dist/{chunk-WUXD6VBD.js.map → chunk-GB2XPITA.js.map} +0 -0
  134. /package/dist/{chunk-KPXOJMQ6.js.map → chunk-GCKHSBEN.js.map} +0 -0
  135. /package/dist/{chunk-NNFSIRVE.js.map → chunk-GXN7RRHR.js.map} +0 -0
  136. /package/dist/{chunk-RCS5YFY2.js.map → chunk-H26VDFDS.js.map} +0 -0
  137. /package/dist/{chunk-4VQBHTGA.js.map → chunk-IJ62BB2T.js.map} +0 -0
  138. /package/dist/{chunk-UWY4B2PM.js.map → chunk-LQZQ5KGG.js.map} +0 -0
  139. /package/dist/{chunk-VSOYZ7QH.js.map → chunk-PK7EKJ5T.js.map} +0 -0
  140. /package/dist/{chunk-YVVMC4SZ.js.map → chunk-QBVP3SQP.js.map} +0 -0
  141. /package/dist/{chunk-6MNOMHFI.js.map → chunk-QJRQ4BRC.js.map} +0 -0
  142. /package/dist/{chunk-7LC4YJJ3.js.map → chunk-RODZ7MB7.js.map} +0 -0
  143. /package/dist/{chunk-SXODK43S.js.map → chunk-RZVCWX5R.js.map} +0 -0
  144. /package/dist/{chunk-5LAKRYXU.js.map → chunk-SUTMSDQ2.js.map} +0 -0
  145. /package/dist/{chunk-6KKZXB2O.js.map → chunk-VVVKBUBO.js.map} +0 -0
  146. /package/dist/{chunk-6ZR24A4S.js.map → chunk-VZVEP2OZ.js.map} +0 -0
  147. /package/dist/{chunk-3FG2UU3H.js.map → chunk-WN47MNSK.js.map} +0 -0
  148. /package/dist/{chunk-LAU6SVTJ.js.map → chunk-XU73V5XT.js.map} +0 -0
  149. /package/dist/{chunk-77L5GNVO.js.map → chunk-Z5YHMRLF.js.map} +0 -0
  150. /package/dist/{chunk-AO66Q66S.js.map → chunk-ZHRPH52H.js.map} +0 -0
  151. /package/dist/{chunk-VD3EQSBI.js.map → chunk-ZXXFP2LA.js.map} +0 -0
  152. /package/dist/{cli-SBJY2NQH.js.map → cli-4YYC6LCY.js.map} +0 -0
  153. /package/dist/{cli-MNNOXWYU.js.map → cli-HO62TOM2.js.map} +0 -0
  154. /package/dist/{cli-UB5W75GJ.js.map → cli-P2X7PNY6.js.map} +0 -0
  155. /package/dist/{cli-QR3ZQZA4.js.map → cli-SGVFZOAW.js.map} +0 -0
  156. /package/dist/{cli-5AML7QR2.js.map → cli-TELPAMJO.js.map} +0 -0
  157. /package/dist/{cli-I4GBPLRM.js.map → cli-UETKXHJN.js.map} +0 -0
  158. /package/dist/{cli-WWDARAWS.js.map → cli-V2DI3K2R.js.map} +0 -0
  159. /package/dist/{config-YWSNBFEE.js.map → config-TYXYQK3I.js.map} +0 -0
  160. /package/dist/{github-TIZ3ZR3D.js.map → github-ESK45CEZ.js.map} +0 -0
  161. /package/dist/{github-WKOJRW7P.js.map → github-WER7JUTN.js.map} +0 -0
  162. /package/dist/{json-4FUOZ3XX.js.map → json-QR4G35KA.js.map} +0 -0
  163. /package/dist/{lint-7VQFESHK.js.map → lint-QTI7XK2A.js.map} +0 -0
  164. /package/dist/{list-7U2MBDIM.js.map → list-JO4G3TS3.js.map} +0 -0
  165. /package/dist/{list-W6EUAOBV.js.map → list-O2MJUP5V.js.map} +0 -0
  166. /package/dist/{page-WZLBKSCD.js.map → page-FSXDXCDD.js.map} +0 -0
  167. /package/dist/{prepare-FPEWAHJH.js.map → prepare-UPIBTFNS.js.map} +0 -0
  168. /package/dist/{pretty-7M4X4TCY.js.map → pretty-4IONWSEP.js.map} +0 -0
  169. /package/dist/{pretty-CUCMQU5R.js.map → pretty-R4BQD2VH.js.map} +0 -0
  170. /package/dist/{reporters-DQVSDXV6.js.map → reporters-DHO2BXAD.js.map} +0 -0
  171. /package/dist/{reporters-KYJE54JS.js.map → reporters-FPP6JNDP.js.map} +0 -0
  172. /package/dist/{run-ABGXGOGQ.js.map → run-YH5Z7RJ7.js.map} +0 -0
  173. /package/dist/{validate-HWNU3MDY.js.map → validate-7JI3H57P.js.map} +0 -0
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["/**\n * The `manni` CLI: one bin, one subcommand per tool in the family.\n *\n * Each tool builds its own commander program and is mounted here under its\n * name, so `manni meta validate …` is the metadata tool's `validate` with\n * nothing in between. The umbrella owns only what is common to all of them:\n * the name, the version, and the exit-code contract in `runProgram`.\n *\n * Tools land here one at a time, on their own branches; until one merges its\n * subcommand does not exist.\n *\n * Every domain is imported on demand. A domain's module graph is its whole\n * dependency tree (Playwright, axe, Asciidoctor, the RDF stack, ajv), and a\n * hook runs `manni check` after every edit, so the bin mounts only the domain\n * argv names. `--version` mounts none. Anything else (`--help`, a bare\n * `manni`, a typo) mounts them all, so help and \"unknown command\" read as\n * they always did.\n */\nimport { Command } from \"commander\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { runIfMain } from \"./shared/run.js\";\n\ninterface Domain {\n /** The command names the loader mounts, known before it is loaded. */\n names: readonly string[];\n load: () => Promise<Command[]>;\n}\n\n// In the order `manni --help` lists them.\nconst DOMAINS: readonly Domain[] = [\n {\n names: [\"meta\"],\n load: async () => [\n (await import(\"./meta/cli.js\"))\n .buildProgram()\n .name(\"meta\")\n .description(\n \"Validate, read, query and fill document metadata against JSON Schema\",\n ),\n ],\n },\n {\n names: [\"a11y\"],\n load: async () => [\n (await import(\"./a11y/cli.js\"))\n .buildProgram()\n .name(\"a11y\")\n .description(\n \"Crawl a site and check every page for accessibility violations with axe-core\",\n ),\n ],\n },\n {\n names: [\"cite\"],\n load: async () => [\n (await import(\"./cite/cli.js\"))\n .buildProgram()\n .name(\"cite\")\n .description(\n \"Track citations from doc claims to source lines and check them for drift\",\n ),\n ],\n },\n {\n names: [\"lint\"],\n load: async () => [\n (await import(\"./lint/cli.js\"))\n .buildProgram()\n .name(\"lint\")\n .description(\n \"Validate document structure against doctype templates, routed by a page's type\",\n ),\n ],\n },\n {\n names: [\"docevals\"],\n load: async () => [\n (await import(\"./docevals/cli.js\"))\n .buildProgram()\n .name(\"docevals\")\n .description(\n \"Deterministic and LLM-as-judge evals for documentation pages, driven by frontmatter\",\n ),\n ],\n },\n {\n names: [\"term\"],\n load: async () => [\n (await import(\"./term/index.js\"))\n .buildProgram()\n .name(\"term\")\n .description(\"Check, lint and render a docset's terms and the references into them\"),\n ],\n },\n {\n names: [\"graph\"],\n load: async () => [\n (await import(\"./graph/cli.js\"))\n .buildProgram()\n .name(\"graph\")\n .description(\n \"Deterministic knowledge graphs derived from documentation frontmatter and formatting\",\n ),\n ],\n },\n {\n names: [\"tracevals\"],\n load: async () => [\n (await import(\"./tracevals/cli.js\"))\n .buildProgram()\n .name(\"tracevals\")\n .description(\n \"Deterministic and LLM-as-judge adherence evals for AI agent session traces\",\n ),\n ],\n },\n // Not a tool but a family resource with verbs (proposal 0045).\n {\n names: [\"key\"],\n load: async () => [\n (await import(\"./key/cli.js\"))\n .buildProgram()\n .name(\"key\")\n .description(\"Set and rotate the family key that encrypted values are encrypted with.\"),\n ],\n },\n // The two family verbs (proposal 0078), and the only verbs the umbrella\n // carries: each runs other domains' command cores and owns no checks.\n {\n names: [\"check\", \"status\"],\n load: async () => {\n const { buildCheck, buildStatus } = await import(\"./family/cli.js\");\n return [buildCheck(), buildStatus()];\n },\n },\n];\n\nconst VERSION_FLAGS = new Set([\"-V\", \"--version\"]);\n\n/**\n * The domains a run with these arguments (argv after the script) dispatches\n * to. The umbrella's only options are `--version` and `--help`, so the first\n * argument is one of them or the command commander will look up.\n */\nfunction domainsFor(args: readonly string[]): readonly Domain[] {\n const first = args[0];\n if (first === undefined) return DOMAINS;\n if (VERSION_FLAGS.has(first)) return [];\n const named = DOMAINS.find((d) => d.names.includes(first));\n return named === undefined ? DOMAINS : [named];\n}\n\nasync function mount(domains: readonly Domain[]): Promise<Command> {\n const mounted = (await Promise.all(domains.map((d) => d.load()))).flat();\n const metaCommands = new Set(\n mounted.find((c) => c.name() === \"meta\")?.commands.map((c) => c.name()),\n );\n\n const program = new Command();\n program\n .name(\"manni\")\n .description(\"Tools for documentation that is meant to be checked.\")\n .version(pkg.version, \"-V, --version\")\n // A pointer, not the whole help screen. Commander appends this after every\n // usage error, and the message that precedes it already names the problem.\n .showHelpAfterError(\"(add --help for usage)\")\n // MUST come before `addCommand`, which copies the exit callback into the\n // mounted program by value. See the same note in ./meta/cli.ts.\n .exitOverride()\n .configureOutput({\n outputError: (str, write) => {\n write(str);\n // `manni validate …` is the most likely thing a docmeta user types\n // first. Commander's \"unknown command\" is correct and unhelpful; say\n // where the command went.\n const m = /unknown command '([^']+)'/.exec(str);\n const name = m?.[1];\n if (name !== undefined && metaCommands.has(name)) {\n write(\n `(\\`${name}\\` is a metadata command: try \\`manni meta ${name}\\`)\\n`,\n );\n }\n },\n });\n\n for (const command of mounted) program.addCommand(command);\n return program;\n}\n\n/** The whole command tree, every domain mounted. */\nexport function buildProgram(): Promise<Command> {\n return mount(DOMAINS);\n}\n\n/** The tree a run with these arguments needs: the one domain they name, or all of them. */\nexport function buildProgramFor(args: readonly string[]): Promise<Command> {\n return mount(domainsFor(args));\n}\n\nrunIfMain(import.meta.url, () => buildProgramFor(process.argv.slice(2)));\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["/**\n * The `manni` CLI: one bin, one subcommand per tool in the family.\n *\n * Each tool builds its own commander program and is mounted here under its\n * name, so `manni meta validate …` is the metadata tool's `validate` with\n * nothing in between. The umbrella owns only what is common to all of them:\n * the name, the version, and the exit-code contract in `runProgram`.\n *\n * Tools land here one at a time, on their own branches; until one merges its\n * subcommand does not exist.\n *\n * Every domain is imported on demand. A domain's module graph is its whole\n * dependency tree (Playwright, axe, Asciidoctor, the RDF stack, ajv), and a\n * hook runs `manni check` after every edit, so the bin mounts only the domain\n * argv names. `--version` mounts none. Anything else (`--help`, a bare\n * `manni`, a typo) mounts them all, so help and \"unknown command\" read as\n * they always did.\n */\nimport { Command } from \"commander\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { runIfMain } from \"./shared/run.js\";\n\ninterface Domain {\n /** The command names the loader mounts, known before it is loaded. */\n names: readonly string[];\n load: () => Promise<Command[]>;\n}\n\n// In the order `manni --help` lists them.\nconst DOMAINS: readonly Domain[] = [\n {\n names: [\"meta\"],\n load: async () => [\n (await import(\"./meta/cli.js\"))\n .buildProgram()\n .name(\"meta\")\n .description(\n \"Validate, read, query and fill document metadata against JSON Schema\",\n ),\n ],\n },\n {\n names: [\"a11y\"],\n load: async () => [\n (await import(\"./a11y/cli.js\"))\n .buildProgram()\n .name(\"a11y\")\n .description(\n \"Crawl a site and check every page for accessibility violations with axe-core\",\n ),\n ],\n },\n {\n names: [\"cite\"],\n load: async () => [\n (await import(\"./cite/cli.js\"))\n .buildProgram()\n .name(\"cite\")\n .description(\n \"Track citations from doc claims to source lines and check them for drift\",\n ),\n ],\n },\n {\n names: [\"lint\"],\n load: async () => [\n (await import(\"./lint/cli.js\"))\n .buildProgram()\n .name(\"lint\")\n .description(\n \"Validate document structure against doctype templates, routed by a page's type\",\n ),\n ],\n },\n {\n names: [\"docevals\"],\n load: async () => [\n (await import(\"./docevals/cli.js\"))\n .buildProgram()\n .name(\"docevals\")\n .description(\n \"Deterministic and LLM-as-judge evals for documentation pages, driven by frontmatter\",\n ),\n ],\n },\n {\n names: [\"term\"],\n load: async () => [\n (await import(\"./term/index.js\"))\n .buildProgram()\n .name(\"term\")\n .description(\"Check, lint and render a docset's terms and the references into them\"),\n ],\n },\n {\n names: [\"graph\"],\n load: async () => [\n (await import(\"./graph/cli.js\"))\n .buildProgram()\n .name(\"graph\")\n .description(\n \"Deterministic knowledge graphs derived from documentation frontmatter and formatting\",\n ),\n ],\n },\n {\n names: [\"tracevals\"],\n load: async () => [\n (await import(\"./tracevals/cli.js\"))\n .buildProgram()\n .name(\"tracevals\")\n .description(\n \"Deterministic and LLM-as-judge adherence evals for AI agent session traces\",\n ),\n ],\n },\n // Not a tool but a family resource with verbs (proposal 0045).\n {\n names: [\"key\"],\n load: async () => [\n (await import(\"./key/cli.js\"))\n .buildProgram()\n .name(\"key\")\n .description(\"Set and rotate the family key that encrypted values are encrypted with.\"),\n ],\n },\n // The docs site, a family resource with verbs like `key` (proposal 0082).\n {\n names: [\"site\"],\n load: async () => [\n (await import(\"./site/cli.js\"))\n .buildProgram()\n .name(\"site\")\n .description(\"Start, build and preview the docs site\"),\n ],\n },\n // The two family verbs (proposal 0078), and the only verbs the umbrella\n // carries: each runs other domains' command cores and owns no checks.\n {\n names: [\"check\", \"status\"],\n load: async () => {\n const { buildCheck, buildStatus } = await import(\"./family/cli.js\");\n return [buildCheck(), buildStatus()];\n },\n },\n];\n\nconst VERSION_FLAGS = new Set([\"-V\", \"--version\"]);\n\n/**\n * The domains a run with these arguments (argv after the script) dispatches\n * to. The umbrella's only options are `--version` and `--help`, so the first\n * argument is one of them or the command commander will look up.\n */\nfunction domainsFor(args: readonly string[]): readonly Domain[] {\n const first = args[0];\n if (first === undefined) return DOMAINS;\n if (VERSION_FLAGS.has(first)) return [];\n const named = DOMAINS.find((d) => d.names.includes(first));\n return named === undefined ? DOMAINS : [named];\n}\n\nasync function mount(domains: readonly Domain[]): Promise<Command> {\n const mounted = (await Promise.all(domains.map((d) => d.load()))).flat();\n const metaCommands = new Set(\n mounted.find((c) => c.name() === \"meta\")?.commands.map((c) => c.name()),\n );\n\n const program = new Command();\n program\n .name(\"manni\")\n .description(\"Tools for documentation that is meant to be checked.\")\n .version(pkg.version, \"-V, --version\")\n // A pointer, not the whole help screen. Commander appends this after every\n // usage error, and the message that precedes it already names the problem.\n .showHelpAfterError(\"(add --help for usage)\")\n // MUST come before `addCommand`, which copies the exit callback into the\n // mounted program by value. See the same note in ./meta/cli.ts.\n .exitOverride()\n .configureOutput({\n outputError: (str, write) => {\n write(str);\n // `manni validate …` is the most likely thing a docmeta user types\n // first. Commander's \"unknown command\" is correct and unhelpful; say\n // where the command went.\n const m = /unknown command '([^']+)'/.exec(str);\n const name = m?.[1];\n if (name !== undefined && metaCommands.has(name)) {\n write(\n `(\\`${name}\\` is a metadata command: try \\`manni meta ${name}\\`)\\n`,\n );\n }\n },\n });\n\n for (const command of mounted) program.addCommand(command);\n return program;\n}\n\n/** The whole command tree, every domain mounted. */\nexport function buildProgram(): Promise<Command> {\n return mount(DOMAINS);\n}\n\n/** The tree a run with these arguments needs: the one domain they name, or all of them. */\nexport function buildProgramFor(args: readonly string[]): Promise<Command> {\n return mount(domainsFor(args));\n}\n\nrunIfMain(import.meta.url, () => buildProgramFor(process.argv.slice(2)));\n"],"mappings":"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","names":[]}
@@ -5,12 +5,12 @@ import {
5
5
  discoverConfig,
6
6
  loadConfig,
7
7
  parseConfig
8
- } from "./chunk-KPXOJMQ6.js";
8
+ } from "./chunk-GCKHSBEN.js";
9
9
  import "./chunk-CU57HT2E.js";
10
10
  import "./chunk-NGTVREIH.js";
11
11
  import "./chunk-UKZNLVJW.js";
12
12
  import "./chunk-YNHZHSSM.js";
13
- import "./chunk-XKBEHKWO.js";
13
+ import "./chunk-6M5VJOC2.js";
14
14
  import "./chunk-HX44GB4Z.js";
15
15
  import "./chunk-QCHVR4ZM.js";
16
16
  import "./chunk-OWBRDNRZ.js";
@@ -23,4 +23,4 @@ export {
23
23
  loadConfig,
24
24
  parseConfig
25
25
  };
26
- //# sourceMappingURL=config-YWSNBFEE.js.map
26
+ //# sourceMappingURL=config-TYXYQK3I.js.map
package/dist/docmeta.js CHANGED
@@ -1,20 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  buildProgram
4
- } from "./chunk-GQBVZS5G.js";
5
- import "./chunk-WBETAXO2.js";
6
- import "./chunk-WT6HMEEF.js";
7
- import "./chunk-YVVMC4SZ.js";
8
- import "./chunk-6HMLYFEU.js";
4
+ } from "./chunk-6LR73NMO.js";
5
+ import "./chunk-2W34HX2U.js";
6
+ import "./chunk-KBG463UK.js";
7
+ import "./chunk-QBVP3SQP.js";
8
+ import "./chunk-G7XD4QH5.js";
9
9
  import {
10
10
  runIfMain
11
11
  } from "./chunk-YEUYKR62.js";
12
12
  import "./chunk-RNVYGWIC.js";
13
13
  import "./chunk-MNH7QO4Z.js";
14
- import "./chunk-XKBEHKWO.js";
14
+ import "./chunk-6M5VJOC2.js";
15
15
  import "./chunk-HX44GB4Z.js";
16
16
  import "./chunk-QCHVR4ZM.js";
17
- import "./chunk-N7J5C35C.js";
17
+ import "./chunk-2BV4FBC7.js";
18
18
  import "./chunk-OWBRDNRZ.js";
19
19
  import "./chunk-G3T47CFV.js";
20
20
  import "./chunk-2H7UOFLK.js";
@@ -1,26 +1,26 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  renderFindingsGithub
4
- } from "./chunk-BYVH727K.js";
5
- import "./chunk-WUFP4V7B.js";
4
+ } from "./chunk-55GMOVKW.js";
5
+ import "./chunk-ABHG6I3G.js";
6
6
  import "./chunk-77AINBYM.js";
7
7
  import "./chunk-IKEWBMCN.js";
8
- import "./chunk-XDS3KQCK.js";
9
- import "./chunk-WBETAXO2.js";
10
- import "./chunk-WT6HMEEF.js";
11
- import "./chunk-YVVMC4SZ.js";
12
- import "./chunk-6HMLYFEU.js";
8
+ import "./chunk-G6FNWRAI.js";
9
+ import "./chunk-2W34HX2U.js";
10
+ import "./chunk-KBG463UK.js";
11
+ import "./chunk-QBVP3SQP.js";
12
+ import "./chunk-G7XD4QH5.js";
13
13
  import "./chunk-YEUYKR62.js";
14
14
  import "./chunk-RNVYGWIC.js";
15
15
  import "./chunk-MNH7QO4Z.js";
16
- import "./chunk-XKBEHKWO.js";
16
+ import "./chunk-6M5VJOC2.js";
17
17
  import "./chunk-HX44GB4Z.js";
18
18
  import "./chunk-QCHVR4ZM.js";
19
- import "./chunk-N7J5C35C.js";
19
+ import "./chunk-2BV4FBC7.js";
20
20
  import "./chunk-OWBRDNRZ.js";
21
21
  import "./chunk-G3T47CFV.js";
22
22
  import "./chunk-2H7UOFLK.js";
23
23
  export {
24
24
  renderFindingsGithub
25
25
  };
26
- //# sourceMappingURL=github-TIZ3ZR3D.js.map
26
+ //# sourceMappingURL=github-ESK45CEZ.js.map
@@ -3,23 +3,23 @@ import {
3
3
  NAMES_ITS_SUBJECT,
4
4
  findingMessage,
5
5
  renderCheckGithub
6
- } from "./chunk-5LAKRYXU.js";
7
- import "./chunk-F734HIHT.js";
8
- import "./chunk-SXODK43S.js";
9
- import "./chunk-VSOYZ7QH.js";
6
+ } from "./chunk-SUTMSDQ2.js";
7
+ import "./chunk-7Y3N4Y72.js";
8
+ import "./chunk-RZVCWX5R.js";
9
+ import "./chunk-PK7EKJ5T.js";
10
10
  import "./chunk-IKEWBMCN.js";
11
- import "./chunk-XDS3KQCK.js";
12
- import "./chunk-WBETAXO2.js";
13
- import "./chunk-WT6HMEEF.js";
14
- import "./chunk-YVVMC4SZ.js";
15
- import "./chunk-6HMLYFEU.js";
11
+ import "./chunk-G6FNWRAI.js";
12
+ import "./chunk-2W34HX2U.js";
13
+ import "./chunk-KBG463UK.js";
14
+ import "./chunk-QBVP3SQP.js";
15
+ import "./chunk-G7XD4QH5.js";
16
16
  import "./chunk-YEUYKR62.js";
17
17
  import "./chunk-RNVYGWIC.js";
18
18
  import "./chunk-MNH7QO4Z.js";
19
- import "./chunk-XKBEHKWO.js";
19
+ import "./chunk-6M5VJOC2.js";
20
20
  import "./chunk-HX44GB4Z.js";
21
21
  import "./chunk-QCHVR4ZM.js";
22
- import "./chunk-N7J5C35C.js";
22
+ import "./chunk-2BV4FBC7.js";
23
23
  import "./chunk-OWBRDNRZ.js";
24
24
  import "./chunk-G3T47CFV.js";
25
25
  import "./chunk-2H7UOFLK.js";
@@ -28,4 +28,4 @@ export {
28
28
  findingMessage,
29
29
  renderCheckGithub
30
30
  };
31
- //# sourceMappingURL=github-WKOJRW7P.js.map
31
+ //# sourceMappingURL=github-WER7JUTN.js.map
package/dist/index.js CHANGED
@@ -19,13 +19,13 @@ import {
19
19
  runFill as runFill4,
20
20
  runList as runList2,
21
21
  systemPromptFor
22
- } from "./chunk-LAU6SVTJ.js";
22
+ } from "./chunk-XU73V5XT.js";
23
23
  import {
24
24
  KeyError,
25
25
  cite_exports,
26
26
  runKeyRotate,
27
27
  runKeySet
28
- } from "./chunk-6MNOMHFI.js";
28
+ } from "./chunk-QJRQ4BRC.js";
29
29
  import {
30
30
  pickTrace
31
31
  } from "./chunk-PAU352SV.js";
@@ -35,7 +35,7 @@ import {
35
35
  rescore,
36
36
  runCalibrate as runCalibrate2,
37
37
  score
38
- } from "./chunk-NNFSIRVE.js";
38
+ } from "./chunk-GXN7RRHR.js";
39
39
  import {
40
40
  BUILTIN_GRADER_KINDS,
41
41
  IMPLICIT_EVAL_NAME,
@@ -74,7 +74,7 @@ import {
74
74
  runOne,
75
75
  runRun as runRun2,
76
76
  sha256
77
- } from "./chunk-ZIGIJBXG.js";
77
+ } from "./chunk-2YJ5H5E6.js";
78
78
  import {
79
79
  buildManifest,
80
80
  deviceId,
@@ -82,10 +82,10 @@ import {
82
82
  redactDeep,
83
83
  renderCapture,
84
84
  runCapture
85
- } from "./chunk-SV6UEQCU.js";
85
+ } from "./chunk-DFCQ6BMI.js";
86
86
  import {
87
87
  discoverArtifacts
88
- } from "./chunk-77L5GNVO.js";
88
+ } from "./chunk-Z5YHMRLF.js";
89
89
  import {
90
90
  parseHookPayload,
91
91
  readStdin
@@ -96,7 +96,7 @@ import {
96
96
  parseTraceContent,
97
97
  parseTraceFile,
98
98
  renderTrace
99
- } from "./chunk-C2JPBQCJ.js";
99
+ } from "./chunk-5REEVKGH.js";
100
100
  import {
101
101
  WHEN_CONDITIONS,
102
102
  evaluateWhen,
@@ -134,7 +134,7 @@ import {
134
134
  sha256Hex,
135
135
  siblingManifestPath,
136
136
  writeManifest
137
- } from "./chunk-POGYWOJ2.js";
137
+ } from "./chunk-EAUIQADY.js";
138
138
  import {
139
139
  configDir,
140
140
  discoverTraces,
@@ -200,7 +200,7 @@ import {
200
200
  splitFragment,
201
201
  traverse,
202
202
  writeZip
203
- } from "./chunk-PO5W6JAP.js";
203
+ } from "./chunk-2JV7C4YV.js";
204
204
  import {
205
205
  LOCALIZATIONS_FILENAME,
206
206
  UNDETERMINED,
@@ -215,13 +215,13 @@ import {
215
215
  runBuild,
216
216
  searchIndexFilename,
217
217
  vectorIndexFilename
218
- } from "./chunk-NB4ILZMQ.js";
218
+ } from "./chunk-CCWMACJL.js";
219
219
  import {
220
220
  compactIri,
221
221
  expandTerm,
222
222
  loadGraph,
223
223
  storeToQuads
224
- } from "./chunk-XXDXIIQ4.js";
224
+ } from "./chunk-6AGESHHM.js";
225
225
  import {
226
226
  COVERAGE_FIELDS,
227
227
  COVERAGE_FIELD_NAMES,
@@ -255,7 +255,7 @@ import {
255
255
  profileFor,
256
256
  resolveBaseIri,
257
257
  withPrefix
258
- } from "./chunk-6KKZXB2O.js";
258
+ } from "./chunk-VVVKBUBO.js";
259
259
  import {
260
260
  CONFIG_SECTION_KEY,
261
261
  DEFAULT_CONFIG_FILENAME as DEFAULT_CONFIG_FILENAME2,
@@ -265,7 +265,7 @@ import {
265
265
  loadLabels,
266
266
  parseConfig as parseConfig5,
267
267
  parseLabels
268
- } from "./chunk-KPXOJMQ6.js";
268
+ } from "./chunk-GCKHSBEN.js";
269
269
  import {
270
270
  CUSTOM_PLACEHOLDER,
271
271
  DEFAULT_CAPTURE_DIR,
@@ -308,11 +308,11 @@ import {
308
308
  runPromote,
309
309
  runReview,
310
310
  seedGoldenCases
311
- } from "./chunk-FEALEYSE.js";
311
+ } from "./chunk-AO5TSDKT.js";
312
312
  import {
313
313
  renderList,
314
314
  runList
315
- } from "./chunk-RCS5YFY2.js";
315
+ } from "./chunk-H26VDFDS.js";
316
316
  import {
317
317
  appendPageEvals,
318
318
  makeGenerateScripts,
@@ -324,7 +324,7 @@ import {
324
324
  scriptLocationFor,
325
325
  updateConfigEval,
326
326
  updatePageEval
327
- } from "./chunk-4VQBHTGA.js";
327
+ } from "./chunk-IJ62BB2T.js";
328
328
  import {
329
329
  DEFAULT_CONFIG_FILENAME,
330
330
  EVAL_KEYS,
@@ -347,7 +347,7 @@ import {
347
347
  runEvals,
348
348
  stripFrontmatterBlock,
349
349
  withExternalMetadata
350
- } from "./chunk-K43X5VDR.js";
350
+ } from "./chunk-D2UW3ZCK.js";
351
351
  import "./chunk-XG6PVB5S.js";
352
352
  import "./chunk-YNHZHSSM.js";
353
353
  import {
@@ -361,18 +361,18 @@ import {
361
361
  import {
362
362
  DocevalsError
363
363
  } from "./chunk-SE4JN5XN.js";
364
- import "./chunk-Z27GYQOY.js";
365
- import "./chunk-HWNSIEZK.js";
366
- import "./chunk-5LAKRYXU.js";
367
- import "./chunk-F734HIHT.js";
368
- import "./chunk-SXODK43S.js";
364
+ import "./chunk-2UCC26MO.js";
365
+ import "./chunk-3E2X2RBU.js";
366
+ import "./chunk-SUTMSDQ2.js";
367
+ import "./chunk-7Y3N4Y72.js";
368
+ import "./chunk-RZVCWX5R.js";
369
369
  import "./chunk-PCE7QHXJ.js";
370
370
  import {
371
371
  BUILTIN_SOURCE,
372
372
  BUILT_IN_DEFAULTS,
373
373
  runTemplates,
374
374
  runTools
375
- } from "./chunk-3FG2UU3H.js";
375
+ } from "./chunk-WN47MNSK.js";
376
376
  import {
377
377
  LINT_JOBS,
378
378
  LINT_TOOLS,
@@ -393,13 +393,14 @@ import {
393
393
  runLint,
394
394
  validateDocument,
395
395
  validateSections
396
- } from "./chunk-LF6FOF6U.js";
396
+ } from "./chunk-BD7IXBWE.js";
397
+ import "./chunk-ZMECS2IJ.js";
397
398
  import {
398
399
  listFormats,
399
400
  parserByName,
400
401
  parserForExtension,
401
402
  supportedExtensions as supportedExtensions2
402
- } from "./chunk-AO66Q66S.js";
403
+ } from "./chunk-ZHRPH52H.js";
403
404
  import "./chunk-TIUTIOFB.js";
404
405
  import {
405
406
  RULE_ID_PREFIX,
@@ -414,7 +415,7 @@ import {
414
415
  renderTools,
415
416
  ruleId,
416
417
  ruleName
417
- } from "./chunk-UWY4B2PM.js";
418
+ } from "./chunk-LQZQ5KGG.js";
418
419
  import "./chunk-GLP5PSXB.js";
419
420
  import {
420
421
  BLOCK_KINDS,
@@ -428,11 +429,11 @@ import {
428
429
  LintError
429
430
  } from "./chunk-YGFIQ6Y5.js";
430
431
  import "./chunk-77AINBYM.js";
431
- import "./chunk-VSOYZ7QH.js";
432
+ import "./chunk-PK7EKJ5T.js";
432
433
  import "./chunk-IKEWBMCN.js";
433
434
  import {
434
435
  reencryptMetadata
435
- } from "./chunk-XDS3KQCK.js";
436
+ } from "./chunk-G6FNWRAI.js";
436
437
  import {
437
438
  DEFAULT_VENDOR_DIR,
438
439
  DERIVE_FORMATS,
@@ -454,7 +455,7 @@ import {
454
455
  runVendorSchema,
455
456
  stringifyValue,
456
457
  vendorFileName
457
- } from "./chunk-WBETAXO2.js";
458
+ } from "./chunk-2W34HX2U.js";
458
459
  import {
459
460
  BinMissing,
460
461
  EXTERNAL_DUPLICATE_SCHEMA,
@@ -502,7 +503,7 @@ import {
502
503
  runValidate,
503
504
  sourcesFor,
504
505
  valueOf
505
- } from "./chunk-WT6HMEEF.js";
506
+ } from "./chunk-KBG463UK.js";
506
507
  import {
507
508
  COMMON_FORMATS,
508
509
  QUERY_FORMATS,
@@ -513,7 +514,7 @@ import {
513
514
  render,
514
515
  renderJunit,
515
516
  renderSarif
516
- } from "./chunk-YVVMC4SZ.js";
517
+ } from "./chunk-QBVP3SQP.js";
517
518
  import {
518
519
  DEFAULT_SCHEMAS,
519
520
  DEFAULT_TTL_HOURS,
@@ -556,7 +557,7 @@ import {
556
557
  staleFindings,
557
558
  supportedExtensions,
558
559
  writeFileAtomic
559
- } from "./chunk-6HMLYFEU.js";
560
+ } from "./chunk-G7XD4QH5.js";
560
561
  import "./chunk-YEUYKR62.js";
561
562
  import {
562
563
  palette,
@@ -571,10 +572,10 @@ import {
571
572
  isMember,
572
573
  parseCollections,
573
574
  selectCollections
574
- } from "./chunk-XKBEHKWO.js";
575
+ } from "./chunk-6M5VJOC2.js";
575
576
  import "./chunk-HX44GB4Z.js";
576
577
  import "./chunk-QCHVR4ZM.js";
577
- import "./chunk-N7J5C35C.js";
578
+ import "./chunk-2BV4FBC7.js";
578
579
  import "./chunk-OWBRDNRZ.js";
579
580
  import "./chunk-G3T47CFV.js";
580
581
  import {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/docevals/index.ts","../src/lint/index.ts","../src/graph/index.ts","../src/graph/runtime/assemble.ts","../src/graph/runtime/rdfjs.ts","../src/graph/schema.ts","../src/key/index.ts","../src/tracevals/index.ts"],"sourcesContent":["/** Programmatic API for manni docevals. */\nexport { loadConfig, parseConfig, DEFAULT_CONFIG_FILENAME } from \"./core/config.js\";\nexport type { DocevalsConfig, EvalDef, SuiteDef, ProviderName } from \"./core/config.js\";\nexport { discoverPages, readPage, stripFrontmatterBlock } from \"./core/discover.js\";\nexport type { PageFile } from \"./core/discover.js\";\nexport {\n loadExternalReader,\n withExternalMetadata,\n EVAL_KEYS,\n EXTERNAL_KEYS,\n} from \"./core/external.js\";\nexport type { ExternalMetadataReader, PageExternal } from \"./core/external.js\";\nexport { resolvePage, resolvePages } from \"./core/resolve.js\";\nexport type {\n EvalLocation,\n ResolvedEval,\n ResolvedPagePlan,\n PageProblem,\n} from \"./core/resolve.js\";\nexport { runList, renderList } from \"./commands/list.js\";\nexport type { ListOptions, ListRun } from \"./commands/list.js\";\nexport { runEvals } from \"./core/engine.js\";\nexport type {\n EngineReport,\n JudgeFn,\n JudgeOptions,\n RunOptions,\n RunProblem,\n} from \"./core/engine.js\";\nexport { runRun } from \"./commands/run.js\";\nexport type { RunCommandOptions } from \"./commands/run.js\";\n// From the library, not local copies: judge.ts calls the library's versions,\n// so re-exporting a second implementation here would let a consumer's\n// computeConsensus() diverge from what the judge actually ran — the drift this\n// extraction exists to end.\nexport { computeConsensus, zoneFor } from \"@hawkeyexl/inference\";\nexport type { ZoneThresholds } from \"@hawkeyexl/inference\";\nexport { makeJudge } from \"./judge/judge.js\";\nexport {\n makeProvider,\n providerSpecFor,\n resolveProviderIdentity,\n} from \"./judge/provider.js\";\n// The provider contract and the offline test seam come from the shared\n// inference layer; re-exported so downstream code keeps one import site.\n// `InferenceProvider` is what this package used to call `JudgeProvider`.\nexport {\n MockProvider,\n mockVerdict,\n type CompleteJSONRequest,\n type CompleteJSONResponse,\n type InferenceProvider,\n type MockResponse,\n} from \"@hawkeyexl/inference\";\nexport {\n render,\n parseFormat,\n REPORT_FORMATS,\n SUMMARY_FORMATS,\n} from \"./reporters/index.js\";\nexport type { ColorOptions, ReportFormat, SummaryFormat } from \"./reporters/index.js\";\nexport {\n listReviews,\n renderReviews,\n runReview,\n} from \"./commands/review.js\";\nexport { runGenerate } from \"./commands/generate.js\";\nexport type { GenerateOptions, GenerateRun } from \"./commands/generate.js\";\nexport { runFill, renderFill } from \"./commands/fill.js\";\nexport type {\n FillOptions,\n FillReport,\n FillPageResult,\n FillStatus,\n ProposedEval,\n} from \"./commands/fill.js\";\nexport {\n FILL_PROMPT_VERSION,\n FILL_SYSTEM_PROMPT,\n PROPOSAL_SCHEMA,\n buildFillUser,\n isValidProposal,\n} from \"./fill/prompt.js\";\nexport { FillCache, fillCacheKey } from \"./fill/cache.js\";\nexport { runPromote } from \"./commands/promote.js\";\nexport type { PromoteOptions, PromoteProposal } from \"./commands/promote.js\";\nexport { makeGenerateScripts, scriptLocationFor } from \"./graders/scriptgen.js\";\nexport {\n runCalibrate,\n renderCalibration,\n loadGoldenCases,\n seedGoldenCases,\n GOLDEN_DIR,\n SEEDED_GOLDEN_FILE,\n} from \"./commands/calibrate.js\";\nexport type {\n CalibrateOptions,\n CalibrationReport,\n CalibrationCaseResult,\n GoldenCase,\n SeedResult,\n} from \"./commands/calibrate.js\";\nexport { runInit } from \"./commands/init.js\";\nexport { registerGrader, graderFor, listGraderKinds } from \"./graders/registry.js\";\nexport type { Grader, GraderContext, GraderTarget, ExecFn } from \"./graders/types.js\";\nexport {\n updatePageEval,\n updateConfigEval,\n appendPageEvals,\n} from \"./core/frontmatter-edit.js\";\nexport type { NewEvalEntry } from \"./core/frontmatter-edit.js\";\nexport { frontmatterSchema, FRONTMATTER_SCHEMA_ID } from \"./schema.js\";\n// The judge cache key and the exact body it hashes. Exported so that anything\n// asking \"is this verdict already cached?\" — `scripts/check-docs-cache.mjs`\n// above all — computes it with the judge's own code instead of reproducing the\n// composition by hand, which is how that script silently keyed on the raw page\n// body after the judge started prefixing the chunk budget.\nexport { cacheKey, judgeCacheBody } from \"./judge/cache.js\";\nexport type { JudgeCacheBody } from \"./judge/cache.js\";\nexport { readTarget } from \"./core/target.js\";\nexport * from \"./types.js\";\n","/** Programmatic API for manni lint. */\nimport { clearTemplateCaches } from \"./core/template-registry.js\";\nimport { clearMatcherCache } from \"./core/resolve-template.js\";\nimport { clearPatternCache } from \"./rules/index.js\";\n\n/**\n * Drop every process-lifetime cache: parsed built-ins, fetched template files,\n * compiled override globs, and compiled heading patterns.\n *\n * A CLI run never needs this - it lints one docset and exits, and the caches\n * are what stop a tree of one doctype from re-reading the same template per\n * page. A long-lived host is the different case: the maps grow with the number\n * of distinct refs and patterns seen, and a cached remote template is served\n * for the life of the process, so one republished upstream is never picked up.\n * Call this between runs, or when a template may have changed underneath.\n */\nexport function clearCaches(): void {\n clearTemplateCaches();\n clearMatcherCache();\n clearPatternCache();\n}\n\nexport { runLint, STDIN_LABEL } from \"./commands/lint.js\";\nexport type {\n LintOptions,\n LintRun,\n LintSummary,\n LintFileResult,\n} from \"./commands/lint.js\";\nexport { runTemplates, BUILTIN_SOURCE } from \"./commands/templates.js\";\nexport type {\n TemplateInfo,\n TemplatesInfo,\n TemplatesOptions,\n} from \"./commands/templates.js\";\nexport { runTools, BUILT_IN_DEFAULTS } from \"./commands/tools.js\";\nexport type { FormatInfo, ToolInfo, ToolsOptions } from \"./commands/tools.js\";\nexport {\n LINT_JOBS,\n LINT_TOOLS,\n TOOLS_BY_JOB,\n isLintTool,\n loadConfig,\n parseConfig,\n rebaseConfig,\n resolveLintRun,\n} from \"./core/config.js\";\nexport type {\n LintConfig,\n LintJob,\n LintJobConfig,\n LintRunOptions,\n LintTool,\n ResolvedLintRun,\n} from \"./core/config.js\";\nexport { validateDocument, validateSections } from \"./core/validator.js\";\nexport { matchSections } from \"./core/match.js\";\nexport type { Match, MatchResult } from \"./core/match.js\";\nexport {\n BLOCK_KINDS,\n headingMatches,\n isWildcard,\n occurrenceRange,\n} from \"./core/template.js\";\nexport type {\n AdmonitionsRule,\n AttributesRule,\n BlockKind,\n BlockRule,\n CodeBlocksRule,\n ElementsRule,\n HeadingRule,\n ImagesRule,\n ListItemsRule,\n ListsRule,\n Occurrences,\n ParagraphsRule,\n Rule,\n TablesRule,\n Template,\n TemplateFile,\n} from \"./core/template.js\";\nexport {\n listBuiltins,\n loadTemplate,\n loadTemplateFile,\n resolveExtends,\n classifyRef,\n} from \"./core/template-registry.js\";\nexport type {\n BuiltinInfo,\n LoadTemplateOptions,\n RefKind,\n TemplateResolver,\n} from \"./core/template-registry.js\";\n// Targets resolve through the family's walker (`src/meta/internal.ts`), which\n// is what makes `--ext`, `--exclude`, `.gitignore` handling and `--allow-empty`\n// mean the same thing here as they do for `meta` and `cite`.\nexport { STDIN_TOKEN } from \"../meta/internal.js\";\nexport {\n listFormats,\n parserByName,\n parserForExtension,\n supportedExtensions,\n} from \"./parsers/index.js\";\nexport {\n render,\n renderPretty,\n renderJson,\n renderGithub,\n renderJunit,\n renderTemplates,\n renderTools,\n} from \"./reporters/index.js\";\nexport type {\n ReportFormat,\n ReportOptions,\n ListFormat,\n} from \"./reporters/index.js\";\nexport { renderSarif } from \"./reporters/sarif.js\";\nexport type { SarifOptions } from \"./reporters/sarif.js\";\n// A finding's durable identity, so a caller filing or correlating findings\n// spells the id the same way every reporter does.\nexport { RULE_ID_PREFIX, TOOL_NAME, ruleId, ruleName } from \"./core/rule-id.js\";\n// Colour is the family's decision, made once in `src/shared/color.js`. These\n// are re-exported here so a library caller building lint's reports does not\n// have to reach for another tool's entry point to turn ANSI on or off.\nexport { palette, shouldColor } from \"../shared/color.js\";\nexport * from \"./types.js\";\n","/** The graph tool's public API. */\nexport * from \"./types.js\";\nexport {\n defaultConfig,\n loadConfig,\n loadRunConfig,\n parseConfig,\n type GraphConfig,\n type DeriveSource,\n type FillField,\n} from \"./core/config.js\";\nexport {\n COVERAGE_FIELDS,\n COVERAGE_FIELD_NAMES,\n // reference/library-api.mdx names this alongside the other two, so it has to\n // be reachable from the entry point that page tells consumers to import from.\n SECTION_COVERAGE_FIELDS,\n type CoverageField,\n} from \"./core/coverage.js\";\nexport {\n discoverFiles,\n resolveDocumentSet,\n type DocumentInputOptions,\n type DocumentSetOptions,\n} from \"./core/discover.js\";\nexport {\n GRAPH_NOT_APPLICABLE_TO_VARIANT,\n GRAPH_NOT_SOFTWARE_SUBJECT,\n SOFTWARE_LIFECYCLE_IRIS,\n SOFTWARE_SUBJECT_IRIS,\n TOPIC_TYPE_IRIS,\n} from \"./core/iirds.js\";\nexport {\n conceptSlug,\n encodeSegment,\n mintAgentIri,\n type AgentKind,\n mintBuildActivityIri,\n mintConceptIri,\n mintDocIri,\n mintGraphIri,\n mintProductIri,\n mintSchemeIri,\n mintSectionIri,\n normalizeDocPath,\n resolveBaseIri,\n} from \"./core/iri.js\";\nexport { analyzeDoc } from \"./core/analyze.js\";\nexport {\n deriveGraph,\n type DeriveOptions,\n type Quad,\n type Term,\n} from \"./core/derive.js\";\nexport {\n collectGitHistory,\n type GitFileHistory,\n type GitHistory,\n} from \"./core/git.js\";\nexport { emitTurtle } from \"./core/emit.js\";\nexport { emitJsonLd } from \"./core/emit-jsonld.js\";\nexport { emitRdfXml } from \"./core/emit-rdfxml.js\";\nexport { writeZip, type ZipEntry } from \"./core/zip.js\";\nexport {\n projectPackage,\n type IirdsPackageOptions,\n type PackageProjection,\n type ContentFile,\n} from \"./core/iirds-package.js\";\nexport {\n loadGraph,\n expandTerm,\n compactIri,\n storeToQuads,\n} from \"./core/load.js\";\n/**\n * The browser-native GraphRAG runtime is also published as the `@hawkeyexl/manni/graph/runtime`\n * subpath, which is the import to use in a browser: it has no `node:` imports\n * and no dependencies (ADR 01018).\n */\nexport * from \"./runtime/index.js\";\nexport {\n applyGraphFields,\n existingGraphFields,\n existingMetaProvenance,\n frontmatterKind,\n type GraphApplyOptions,\n type GraphApplyResult,\n} from \"./core/frontmatter-edit.js\";\nexport { NS, PREFIXES } from \"./core/vocab.js\";\nexport {\n runBuild,\n type BuildOptions,\n type BuildResult,\n} from \"./commands/build.js\";\nexport { frontmatterSchema, FRONTMATTER_SCHEMA_ID } from \"./schema.js\";\nexport {\n runExport,\n type ExportOptions,\n type ExportResult,\n type ExportFormat,\n} from \"./commands/export.js\";\nexport {\n runQuery,\n type QueryOptions,\n type QueryResult,\n} from \"./commands/query.js\";\nexport {\n runStats,\n type CoverageRow,\n type StatsOptions,\n type StatsReport,\n} from \"./commands/stats.js\";\nexport {\n runTraverse,\n renderTraverse,\n type TraverseOptions as TraverseCommandOptions,\n type TraverseReport,\n} from \"./commands/traverse.js\";\nexport {\n runSearch,\n renderSearch,\n type SearchHit,\n type SearchOptions,\n type SearchReport,\n} from \"./commands/search.js\";\nexport {\n runEmbed,\n renderEmbed,\n embedText,\n type EmbedOptions,\n type EmbedReport,\n} from \"./commands/embed.js\";\nexport {\n createLocalEmbedder,\n createMockEmbedder,\n EmbedderUnavailableError,\n DEFAULT_MODEL,\n MODEL_PROFILES,\n profileFor,\n withPrefix,\n type EmbedRole,\n type Embedder,\n type LocalEmbedderOptions,\n type MockEmbedderOptions,\n type ModelProfile,\n} from \"./embed/index.js\";\nexport {\n buildSearchIndex,\n documentsByLanguage,\n emitSearchIndex,\n partitionByLanguage,\n type SearchEntry,\n type SearchIndexDoc,\n type SearchIndexOptions,\n} from \"./core/search-index.js\";\nexport {\n emitLocalizations,\n LOCALIZATIONS_FILENAME,\n parseLocalizations,\n searchIndexFilename,\n UNDETERMINED,\n vectorIndexFilename,\n type LocalizationEntry,\n type LocalizationsDoc,\n type SearchArtifact,\n type VectorArtifact,\n} from \"./core/localizations.js\";\nexport {\n runFill,\n type FillOptions,\n type FillReport,\n type FillDocResult,\n} from \"./commands/fill.js\";\n// The inference layer is @hawkeyexl/inference; re-exported here so downstream\n// code that only depends on dockg can still construct providers and drive the\n// offline test seam without adding a second dependency.\nexport {\n MockProvider,\n type CompleteJSONRequest,\n type CompleteJSONResponse,\n type InferenceProvider,\n type MockResponse,\n} from \"@hawkeyexl/inference\";\nexport {\n assertProviderSelection,\n constructProvider,\n makeProvider,\n providerSpecFor,\n resolveProviderIdentity,\n selectProvider,\n type ProviderChoice,\n type ProviderFlags,\n type ProviderSelection,\n} from \"./llm/provider.js\";\n","/**\n * Context assembly (ADR 01018) — the runtime's terminal stage.\n *\n * Turns traversed nodes into the bundle an inference engine consumes:\n * `{ context, citations, trace, refusal? }`. **dockg stops here**: it never\n * calls a model. A different tool (an agent over MCP, a site backend) takes the\n * bundle onward, which keeps this runtime fully deterministic and keeps API\n * keys and inference cost outside dockg entirely.\n *\n * When nothing survives retrieval the result is a *structured refusal*, never\n * empty context — a caller must be able to tell \"no route exists\" apart from\n * \"here is nothing, proceed anyway\" (the disciplined-silence contract).\n *\n * Platform-neutral: no `node:` imports, no npm dependencies.\n */\nimport type { ContentResolver } from \"./resolve.js\";\nimport type { EntryCandidate, QueryTrace } from \"./trace.js\";\nimport { createTrace } from \"./trace.js\";\nimport type { TraversedNode } from \"./traverse.js\";\n\nexport interface ContextBlock {\n iri: string;\n title?: string;\n text: string;\n sourceUrl: string;\n /** Hops from the nearest seed — the relevance signal, carried through. */\n depth: number;\n}\n\nexport interface Citation {\n iri: string;\n title?: string;\n sourceUrl: string;\n}\n\nexport type RefusalReason = \"no-route\" | \"no-content\";\n\nexport interface Refusal {\n reason: RefusalReason;\n detail: string;\n}\n\n/**\n * The rankings that produced the seeds, carried through to the caller.\n *\n * Retrieval answers two different questions — \"what matched the query?\" and\n * \"what is the graph connected to it?\" — and a consumer needs both. Returning\n * only the graph result would make the match rankings inferrable solely from the\n * trace, which is diagnostic rather than a result surface (ADR 01020).\n */\nexport interface EntryRankings {\n /** The lexical leg's own ranking. */\n lexical: EntryCandidate[];\n /** The vector leg's own ranking; empty when no embedder was in play. */\n vector: EntryCandidate[];\n /** The fused ranking that actually seeded traversal. */\n merged: EntryCandidate[];\n}\n\nexport interface RetrievalBundle {\n /** What matched the query, per leg. Absent when seeds were given explicitly. */\n entry?: EntryRankings;\n context: ContextBlock[];\n citations: Citation[];\n trace: QueryTrace;\n /** Present when retrieval found nothing usable. `context` is then empty. */\n refusal?: Refusal;\n /** True when the character budget dropped otherwise-eligible blocks. */\n truncated: boolean;\n}\n\nexport interface AssembleOptions {\n /** Character budget across all blocks. Default: unbounded. */\n maxChars?: number;\n /** Append to an existing trace (normally the traversal's). */\n trace?: QueryTrace;\n /**\n * The entry rankings that produced these nodes, passed through to the bundle\n * so callers see matches and graph results side by side.\n */\n entry?: EntryRankings;\n}\n\n/**\n * Resolve traversed nodes to text and assemble the retrieval bundle. Nodes are\n * kept in traversal order (nearest-first), which is deterministic, and every\n * block carries the IRI it came from so citations are structural, not inferred.\n */\nexport async function assemble(\n resolver: ContentResolver,\n nodes: TraversedNode[],\n options: AssembleOptions = {},\n): Promise<RetrievalBundle> {\n const trace = options.trace ?? createTrace();\n const budget = options.maxChars ?? Infinity;\n\n if (nodes.length === 0) {\n return {\n ...(options.entry ? { entry: options.entry } : {}),\n context: [],\n citations: [],\n trace,\n truncated: false,\n refusal: {\n reason: \"no-route\",\n detail:\n \"No node in the graph was reachable for this query under the active scope filter.\",\n },\n };\n }\n\n const context: ContextBlock[] = [];\n let used = 0;\n let truncated = false;\n let resolvedAny = false;\n\n for (const node of nodes) {\n const resolved = await resolver.resolve(node.iri);\n if (!resolved) continue;\n resolvedAny = true;\n if (used + resolved.text.length > budget) {\n truncated = true;\n continue;\n }\n used += resolved.text.length;\n context.push({\n iri: resolved.iri,\n title: resolved.title,\n text: resolved.text,\n sourceUrl: resolved.sourceUrl,\n depth: node.depth,\n });\n }\n\n if (context.length === 0) {\n return {\n ...(options.entry ? { entry: options.entry } : {}),\n context: [],\n citations: [],\n trace,\n truncated,\n refusal: {\n reason: \"no-content\",\n detail: resolvedAny\n ? \"Every matching node's content exceeded the character budget.\"\n : \"Matching nodes were found, but none of them resolved to readable content.\",\n },\n };\n }\n\n return {\n ...(options.entry ? { entry: options.entry } : {}),\n context,\n citations: context.map((b) => ({\n iri: b.iri,\n title: b.title,\n sourceUrl: b.sourceUrl,\n })),\n trace,\n truncated,\n };\n}\n","/**\n * RDF/JS interop — the custom-SPARQL escape hatch (ADR 01018).\n *\n * The runtime's own walker is deliberately not a SPARQL engine: it is 0 KB and\n * it records a trace. But arbitrary user-authored SPARQL is a legitimate need,\n * so the index can hand out its contents as standard **RDF/JS quads**. Feed\n * them to any RDF/JS store and query with any engine:\n *\n * ```js\n * import { Store } from \"n3\";\n * import { QueryEngine } from \"@comunica/query-sparql-rdfjs-lite\";\n * const store = new Store(rdfjsQuads(graph));\n * const bindings = await new QueryEngine().queryBindings(sparql, { sources: [store] });\n * ```\n *\n * Quads are plain data rather than a hand-rolled `Source` stream on purpose:\n * every engine already accepts a store, stores accept quad arrays, and faking\n * Node's stream contract in a browser-safe module is fragile for no gain. At\n * docs scale materializing is trivial (the reference corpus is 172 quads).\n *\n * Honest caveat: engine results are bindings, not walker traces —\n * explainability lives in the walker API.\n *\n * The term shapes are structural, so they are hand-rolled here rather than\n * pulled from `@rdfjs/data-model`, keeping the runtime dependency-free and\n * browser-safe.\n */\nimport { byCodeUnit } from \"../core/sort.js\";\nimport type { GraphIndex, Value } from \"./graph.js\";\n\nconst XSD_STRING = \"http://www.w3.org/2001/XMLSchema#string\";\n\nexport interface RdfTerm {\n termType: \"NamedNode\" | \"Literal\" | \"DefaultGraph\";\n value: string;\n language?: string;\n datatype?: RdfTerm;\n equals(other?: RdfTerm | null): boolean;\n}\n\nexport interface RdfQuad {\n termType: \"Quad\";\n subject: RdfTerm;\n predicate: RdfTerm;\n object: RdfTerm;\n graph: RdfTerm;\n equals(other?: RdfQuad | null): boolean;\n}\n\nexport function namedNode(value: string): RdfTerm {\n return {\n termType: \"NamedNode\",\n value,\n equals(other) {\n return !!other && other.termType === \"NamedNode\" && other.value === value;\n },\n };\n}\n\nexport function defaultGraph(): RdfTerm {\n return {\n termType: \"DefaultGraph\",\n value: \"\",\n equals(other) {\n return !!other && other.termType === \"DefaultGraph\";\n },\n };\n}\n\nexport function literal(value: string, datatype?: string): RdfTerm {\n const dt = namedNode(datatype ?? XSD_STRING);\n return {\n termType: \"Literal\",\n value,\n language: \"\",\n datatype: dt,\n equals(other) {\n return (\n !!other &&\n other.termType === \"Literal\" &&\n other.value === value &&\n !!other.datatype &&\n other.datatype.value === dt.value\n );\n },\n };\n}\n\nfunction toTerm(v: Value): RdfTerm {\n return v.kind === \"iri\" ? namedNode(v.value) : literal(v.value, v.datatype);\n}\n\nfunction makeQuad(s: string, p: string, o: Value): RdfQuad {\n const subject = namedNode(s);\n const predicate = namedNode(p);\n const object = toTerm(o);\n const graph = defaultGraph();\n return {\n termType: \"Quad\",\n subject,\n predicate,\n object,\n graph,\n equals(other) {\n return (\n !!other &&\n subject.equals(other.subject) &&\n predicate.equals(other.predicate) &&\n object.equals(other.object)\n );\n },\n };\n}\n\n/**\n * The whole index as RDF/JS quads, in the index's deterministic order. Feed to\n * any RDF/JS store (`new Store(rdfjsQuads(graph))`) to run SPARQL.\n */\nexport function rdfjsQuads(graph: GraphIndex): RdfQuad[] {\n const quads: RdfQuad[] = [];\n for (const s of graph.ids()) {\n const node = graph.node(s);\n if (!node) continue;\n for (const p of [...node.props.keys()].sort(byCodeUnit)) {\n for (const v of node.props.get(p) ?? []) quads.push(makeQuad(s, p, v));\n }\n }\n return quads;\n}\n\n/**\n * Triple-pattern match returning RDF/JS quads. A null/undefined position is a\n * wildcard. Convenience for callers who want RDF/JS terms without pulling in a\n * store; the walker API is the richer (and traced) way to query.\n */\nexport function matchQuads(\n graph: GraphIndex,\n subject?: string | null,\n predicate?: string | null,\n object?: string | null,\n): RdfQuad[] {\n const quads: RdfQuad[] = [];\n const subjects = subject ? [subject] : graph.ids();\n for (const s of subjects) {\n const node = graph.node(s);\n if (!node) continue;\n const predicates = predicate\n ? [predicate]\n : [...node.props.keys()].sort(byCodeUnit);\n for (const p of predicates) {\n for (const v of node.props.get(p) ?? []) {\n if (object !== undefined && object !== null && v.value !== object) {\n continue;\n }\n quads.push(makeQuad(s, p, v));\n }\n }\n }\n return quads;\n}\n","/**\n * The page vocabulary manni graph implements: `manni:graph:1.0.0`, the built-in\n * schema the metadata tool publishes under `src/meta/schemas/`. It defines the\n * `graph:` block a page carries. Pages are validated against that schema\n * itself, imported and bundled into the build, so graph and `manni meta validate`\n * read the same bytes.\n *\n * graph ships no copy of the schema. A copy is a second artifact to keep in step,\n * with nothing but a test to say the two still match. A consumer who wants to\n * validate pages names `manni:graph:1.0.0` to `manni meta validate`, or\n * validates programmatically against the object below.\n */\nimport schema from \"../meta/schemas/graph/1.0.0.json\" with { type: \"json\" };\n\n/** The graph vocabulary, for validators that accept an inline schema. */\nexport const frontmatterSchema = schema as Record<string, unknown>;\n\n/** The vocabulary's `$id`: `manni:graph:1.0.0`. */\nexport const FRONTMATTER_SCHEMA_ID: string = schema.$id;\n","/**\n * The key domain's programmatic API, exported from the package as the `key`\n * namespace: `import { key } from \"@hawkeyexl/manni\"`. The command cores, and\n * the family's encryption primitives a caller needs beside them.\n */\nexport * from \"./types.js\";\nexport { KeyError } from \"./errors.js\";\nexport { runKeySet } from \"./commands/set.js\";\nexport { runKeyRotate } from \"./commands/rotate.js\";\nexport { decryptValue, encryptValue, isEncryptedValue } from \"../shared/encryption.js\";\nexport type { EncryptionContext } from \"../shared/encryption.js\";\nexport { resolveEncryptionKey } from \"../shared/encryption-key.js\";\nexport type { KeySource, ResolvedKey } from \"../shared/encryption-key.js\";\n","/** Programmatic API for manni tracevals. */\nexport * from \"./types.js\";\nexport * from \"./trace/types.js\";\nexport { detectFormat, detectContentFormat } from \"./trace/detect.js\";\nexport { parseTraceFile, parseTraceContent } from \"./trace/claude.js\";\nexport {\n availableAt,\n joinDescriptions,\n newAvailability,\n offeredNames,\n} from \"./trace/availability.js\";\nexport {\n configDir,\n discoverTraces,\n slugFor,\n type DiscoverOptions,\n type TraceListing,\n} from \"./trace/discover.js\";\nexport { renderList, runList, type ListOptions, type ListRun } from \"./commands/list.js\";\nexport * from \"./artifacts/types.js\";\nexport {\n PROJECT_RULES_FILENAMES,\n resolveArtifacts,\n type ResolveOptions,\n} from \"./artifacts/resolve.js\";\nexport {\n coverAvailability,\n type AvailabilityCoverage,\n type AvailabilityOptions,\n} from \"./artifacts/availability.js\";\nexport {\n discoverArtifacts,\n type DiscoverOptions as DiscoverArtifactsOptions,\n type DiscoveredArtifact,\n type DiscoveryResult,\n} from \"./artifacts/discover.js\";\nexport {\n PRUNED_DIRS,\n findGitRoot,\n findInTree,\n listInTree,\n safeMtime,\n safeRead,\n} from \"./artifacts/fs.js\";\nexport {\n ARTIFACT_EVALS_SCHEMA_ID,\n extractEvals,\n type EvalEntry,\n type EvalType,\n type ExtractedEvals,\n type Severity,\n} from \"./evals/extract.js\";\nexport {\n appendArtifactEvals,\n type EvalProvenance,\n type NewEvalEntry,\n} from \"./evals/write.js\";\nexport {\n IMPLICIT_EVAL_NAME,\n planEvals,\n type EvalLocation,\n type EvalPlan,\n type SuppliedMetadata,\n} from \"./core/plan.js\";\nexport * from \"./graders/types.js\";\nexport {\n BUILTIN_GRADER_KINDS,\n graderFor,\n listGraderKinds,\n registerGrader,\n} from \"./graders/registry.js\";\nexport {\n loadGraderPlugins,\n type GraderPluginApi,\n type GraderPluginRegister,\n type LoadGraderPluginsOptions,\n type LoadedGraderPlugins,\n} from \"./graders/plugins.js\";\nexport { skippedWindow, windowFor, type TraceWindow } from \"./graders/util.js\";\nexport { globToRegExp, matchesGlob } from \"./graders/glob.js\";\nexport {\n WHEN_CONDITIONS,\n evaluateWhen,\n validateWhen,\n type TriggerResult,\n type WhenCondition,\n} from \"./graders/when.js\";\nexport { renderTrace, type RenderOptions } from \"./judge/render.js\";\nexport {\n CUSTOM_PLACEHOLDER,\n REDACTION_PATTERNS,\n compileRedactPatterns,\n makeRedactor,\n type RedactionPattern,\n type Redactor,\n} from \"./judge/redact.js\";\nexport {\n JUDGE_SYSTEM_PROMPT,\n PROMPT_VERSION,\n buildUserContent,\n} from \"./judge/prompt.js\";\nexport { VerdictCache, cacheKey, sha256 } from \"./judge/cache.js\";\nexport {\n makeTraceJudge,\n type JudgedEval,\n type TraceJudge,\n type TraceJudgeOptions,\n} from \"./judge/trace-judge.js\";\nexport {\n announceSelection,\n assertProviderSelection,\n constructProvider,\n makeJudgeProvider,\n providerSpecFor,\n resolveProviderIdentity,\n selectProvider,\n type JudgeProviderOptions,\n type MockResponse,\n type ProviderChoice,\n type ProviderFlags,\n type ProviderSelection,\n} from \"./judge/provider.js\";\nexport {\n CONFIG_SECTION_KEY,\n DEFAULT_CONFIG_FILENAME,\n loadConfig,\n parseConfig,\n type ConfigFileContext,\n type TracevalsConfig,\n} from \"./core/config.js\";\nexport { runEvals, type EngineOptions } from \"./core/engine.js\";\nexport {\n render,\n renderBatch,\n renderCalibration,\n parseFormat,\n REPORT_FORMATS,\n SUMMARY_FORMATS,\n type ReportFormat,\n type SummaryFormat,\n} from \"./reporters/index.js\";\nexport { renderBatchPretty, renderBatchMarkdown } from \"./reporters/batch.js\";\nexport {\n renderCalibrationPretty,\n renderCalibrationMarkdown,\n} from \"./reporters/calibration.js\";\nexport { aggregate, type BatchOutcome } from \"./aggregate.js\";\nexport {\n prepareRun,\n runOne,\n runRun,\n type RunCommandOptions,\n type RunCommandResult,\n type RunContext,\n type RunSharedOptions,\n} from \"./commands/run.js\";\nexport {\n keepNewerThan,\n parseNewerThan,\n resolveBatchTraces,\n runBatch,\n type BatchCommandOptions,\n type BatchCommandResult,\n} from \"./commands/batch.js\";\nexport {\n runCalibrate,\n type CalibrateCommandOptions,\n type CalibrateCommandResult,\n} from \"./commands/calibrate.js\";\nexport * from \"./calibrate/types.js\";\nexport {\n DEFAULT_LABELS_FILE,\n labelKey,\n loadLabels,\n parseLabels,\n} from \"./calibrate/labels.js\";\nexport {\n classify,\n joinLabels,\n rescore,\n score,\n type JoinedLabel,\n type AmbiguousLabel,\n type JoinResult,\n type Rescored,\n type ScoreInput,\n type ScoreResult,\n} from \"./calibrate/score.js\";\nexport {\n renderFill,\n runFill,\n type FillArtifactResult,\n type FillOptions,\n type FillReport,\n type FillRun,\n type FillStatus,\n type SharpeningNote,\n} from \"./commands/fill.js\";\nexport {\n ALLOWED_GRADERS,\n gateProposals,\n type GateOptions,\n type GateResult,\n type ProposedEval,\n type Rejection,\n type RejectionReason,\n type Vocabulary,\n} from \"./fill/gate.js\";\nexport {\n FILL_PROMPT_VERSION,\n MAX_BODY_CHARS,\n PROPOSAL_SCHEMA,\n buildFillUser,\n isValidProposal,\n systemPromptFor,\n} from \"./fill/prompt.js\";\nexport { FillCache, fillCacheKey, type FillCacheKeyParts } from \"./fill/cache.js\";\nexport { artifactFacts, type ArtifactFacts } from \"./fill/facts.js\";\nexport { BUILTIN_TOOLS, buildVocabulary } from \"./fill/vocabulary.js\";\nexport { mockFillProposal } from \"./fill/mock.js\";\nexport { pickTrace, type PickerChoice, type PromptFn } from \"./trace/picker.js\";\nexport {\n appendHistory,\n compareToLast,\n entryFor,\n loadHistory,\n type HistoryComparison,\n type HistoryEntry,\n type HistoryEval,\n} from \"./history.js\";\nexport * from \"./capture/types.js\";\nexport {\n checkContent,\n findManifest,\n hashFile,\n manifestPathFor,\n readManifest,\n relPosix,\n safeSessionId,\n sha256Hex,\n siblingManifestPath,\n writeManifest,\n type FindManifestOptions,\n type FoundManifest,\n} from \"./capture/manifest.js\";\nexport {\n buildManifest,\n deviceId,\n readGit,\n redactDeep,\n type BuildManifestOptions,\n} from \"./capture/build.js\";\nexport { parseHookPayload, readStdin, type HookPayload } from \"./capture/hook.js\";\nexport {\n renderCapture,\n runCapture,\n type CaptureCommandOptions,\n type CaptureCommandResult,\n} from \"./commands/capture.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA,oBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmCA,SAAS,kBAAkB,eAAe;AAW1C;AAAA,EACE;AAAA,EACA;AAAA,OAKK;;;ACrDP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,sBAAAC;AAAA,EAAA;AAAA,oBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA,qBAAAC;AAAA,EAAA;AAAA,qBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAAC;AAAA,EAAA;AAAA;AAAA;AAgBO,SAAS,cAAoB;AAClC,sBAAoB;AACpB,oBAAkB;AAClB,oBAAkB;AACpB;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAAC;AAAA,EAAA;AAAA;AAAA,oBAAAC;AAAA,EAAA;AAAA;AAAA,sBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,yBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAAC;AAAA,EAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACwFA,eAAsB,SACpB,UACA,OACA,UAA2B,CAAC,GACF;AAC1B,QAAM,QAAQ,QAAQ,SAAS,YAAY;AAC3C,QAAM,SAAS,QAAQ,YAAY;AAEnC,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO;AAAA,MACL,GAAI,QAAQ,QAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AAAA,MAChD,SAAS,CAAC;AAAA,MACV,WAAW,CAAC;AAAA,MACZ;AAAA,MACA,WAAW;AAAA,MACX,SAAS;AAAA,QACP,QAAQ;AAAA,QACR,QACE;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AAEA,QAAM,UAA0B,CAAC;AACjC,MAAI,OAAO;AACX,MAAI,YAAY;AAChB,MAAI,cAAc;AAElB,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,MAAM,SAAS,QAAQ,KAAK,GAAG;AAChD,QAAI,CAAC,SAAU;AACf,kBAAc;AACd,QAAI,OAAO,SAAS,KAAK,SAAS,QAAQ;AACxC,kBAAY;AACZ;AAAA,IACF;AACA,YAAQ,SAAS,KAAK;AACtB,YAAQ,KAAK;AAAA,MACX,KAAK,SAAS;AAAA,MACd,OAAO,SAAS;AAAA,MAChB,MAAM,SAAS;AAAA,MACf,WAAW,SAAS;AAAA,MACpB,OAAO,KAAK;AAAA,IACd,CAAC;AAAA,EACH;AAEA,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,MACL,GAAI,QAAQ,QAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AAAA,MAChD,SAAS,CAAC;AAAA,MACV,WAAW,CAAC;AAAA,MACZ;AAAA,MACA;AAAA,MACA,SAAS;AAAA,QACP,QAAQ;AAAA,QACR,QAAQ,cACJ,iEACA;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL,GAAI,QAAQ,QAAQ,EAAE,OAAO,QAAQ,MAAM,IAAI,CAAC;AAAA,IAChD;AAAA,IACA,WAAW,QAAQ,IAAI,CAAC,OAAO;AAAA,MAC7B,KAAK,EAAE;AAAA,MACP,OAAO,EAAE;AAAA,MACT,WAAW,EAAE;AAAA,IACf,EAAE;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;;;ACnIA,IAAM,aAAa;AAmBZ,SAAS,UAAU,OAAwB;AAChD,SAAO;AAAA,IACL,UAAU;AAAA,IACV;AAAA,IACA,OAAO,OAAO;AACZ,aAAO,CAAC,CAAC,SAAS,MAAM,aAAa,eAAe,MAAM,UAAU;AAAA,IACtE;AAAA,EACF;AACF;AAEO,SAAS,eAAwB;AACtC,SAAO;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,IACP,OAAO,OAAO;AACZ,aAAO,CAAC,CAAC,SAAS,MAAM,aAAa;AAAA,IACvC;AAAA,EACF;AACF;AAEO,SAAS,QAAQ,OAAe,UAA4B;AACjE,QAAM,KAAK,UAAU,YAAY,UAAU;AAC3C,SAAO;AAAA,IACL,UAAU;AAAA,IACV;AAAA,IACA,UAAU;AAAA,IACV,UAAU;AAAA,IACV,OAAO,OAAO;AACZ,aACE,CAAC,CAAC,SACF,MAAM,aAAa,aACnB,MAAM,UAAU,SAChB,CAAC,CAAC,MAAM,YACR,MAAM,SAAS,UAAU,GAAG;AAAA,IAEhC;AAAA,EACF;AACF;AAEA,SAAS,OAAO,GAAmB;AACjC,SAAO,EAAE,SAAS,QAAQ,UAAU,EAAE,KAAK,IAAI,QAAQ,EAAE,OAAO,EAAE,QAAQ;AAC5E;AAEA,SAAS,SAAS,GAAW,GAAW,GAAmB;AACzD,QAAM,UAAU,UAAU,CAAC;AAC3B,QAAM,YAAY,UAAU,CAAC;AAC7B,QAAM,SAAS,OAAO,CAAC;AACvB,QAAM,QAAQ,aAAa;AAC3B,SAAO;AAAA,IACL,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,OAAO;AACZ,aACE,CAAC,CAAC,SACF,QAAQ,OAAO,MAAM,OAAO,KAC5B,UAAU,OAAO,MAAM,SAAS,KAChC,OAAO,OAAO,MAAM,MAAM;AAAA,IAE9B;AAAA,EACF;AACF;AAMO,SAAS,WAAW,OAA8B;AACvD,QAAM,QAAmB,CAAC;AAC1B,aAAW,KAAK,MAAM,IAAI,GAAG;AAC3B,UAAM,OAAO,MAAM,KAAK,CAAC;AACzB,QAAI,CAAC,KAAM;AACX,eAAW,KAAK,CAAC,GAAG,KAAK,MAAM,KAAK,CAAC,EAAE,KAAK,UAAU,GAAG;AACvD,iBAAW,KAAK,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,EAAG,OAAM,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,IACvE;AAAA,EACF;AACA,SAAO;AACT;AAOO,SAAS,WACd,OACA,SACA,WACA,QACW;AACX,QAAM,QAAmB,CAAC;AAC1B,QAAM,WAAW,UAAU,CAAC,OAAO,IAAI,MAAM,IAAI;AACjD,aAAW,KAAK,UAAU;AACxB,UAAM,OAAO,MAAM,KAAK,CAAC;AACzB,QAAI,CAAC,KAAM;AACX,UAAM,aAAa,YACf,CAAC,SAAS,IACV,CAAC,GAAG,KAAK,MAAM,KAAK,CAAC,EAAE,KAAK,UAAU;AAC1C,eAAW,KAAK,YAAY;AAC1B,iBAAW,KAAK,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG;AACvC,YAAI,WAAW,UAAa,WAAW,QAAQ,EAAE,UAAU,QAAQ;AACjE;AAAA,QACF;AACA,cAAM,KAAK,SAAS,GAAG,GAAG,CAAC,CAAC;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;;;AChJO,IAAMC,qBAAoB;AAG1B,IAAMC,yBAAgC,UAAO;;;AH+JpD;AAAA,EACE,gBAAAC;AAAA,OAKK;;;AIvLP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAAC;AAAA,EAAA;AAAA,6BAAAC;AAAA,EAAA,iBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAAC;AAAA,EAAA;AAAA;AAAA,wBAAAC;AAAA,EAAA,uBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAAAC;AAAA,EAAA;AAAA,uBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAAC;AAAA,EAAA;AAAA,yBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,yBAAAC;AAAA,EAAA;AAAA,oBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAAC;AAAA,EAAA,mBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,wBAAAC;AAAA,EAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,2BAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,oBAAAC;AAAA,EAAA,kBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,iCAAAC;AAAA,EAAA;AAAA,sBAAAC;AAAA,EAAA;AAAA,kBAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA,eAAAC;AAAA,EAAA;AAAA,gBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,wBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":["REPORT_FORMATS","loadConfig","parseConfig","render","renderFill","runFill","classifyRef","listBuiltins","loadConfig","parseConfig","render","renderJunit","renderSarif","supportedExtensions","FRONTMATTER_SCHEMA_ID","MockProvider","frontmatterSchema","loadConfig","makeProvider","parseConfig","providerSpecFor","resolveProviderIdentity","runFill","runQuery","frontmatterSchema","FRONTMATTER_SCHEMA_ID","MockProvider","DEFAULT_CONFIG_FILENAME","FILL_PROMPT_VERSION","FillCache","PROPOSAL_SCHEMA","REPORT_FORMATS","SUMMARY_FORMATS","assertProviderSelection","buildFillUser","cacheKey","constructProvider","fillCacheKey","graderFor","isValidProposal","listGraderKinds","loadConfig","parseConfig","parseFormat","providerSpecFor","registerGrader","render","renderCalibration","renderFill","renderList","resolveProviderIdentity","runCalibrate","runEvals","runFill","runList","runRun","selectProvider"]}
1
+ {"version":3,"sources":["../src/docevals/index.ts","../src/lint/index.ts","../src/graph/index.ts","../src/graph/runtime/assemble.ts","../src/graph/runtime/rdfjs.ts","../src/graph/schema.ts","../src/key/index.ts","../src/tracevals/index.ts"],"sourcesContent":["/** Programmatic API for manni docevals. */\nexport { loadConfig, parseConfig, DEFAULT_CONFIG_FILENAME } from \"./core/config.js\";\nexport type { DocevalsConfig, EvalDef, SuiteDef, ProviderName } from \"./core/config.js\";\nexport { discoverPages, readPage, stripFrontmatterBlock } from \"./core/discover.js\";\nexport type { PageFile } from \"./core/discover.js\";\nexport {\n loadExternalReader,\n withExternalMetadata,\n EVAL_KEYS,\n EXTERNAL_KEYS,\n} from \"./core/external.js\";\nexport type { ExternalMetadataReader, PageExternal } from \"./core/external.js\";\nexport { resolvePage, resolvePages } from \"./core/resolve.js\";\nexport type {\n EvalLocation,\n ResolvedEval,\n ResolvedPagePlan,\n PageProblem,\n} from \"./core/resolve.js\";\nexport { runList, renderList } from \"./commands/list.js\";\nexport type { ListOptions, ListRun } from \"./commands/list.js\";\nexport { runEvals } from \"./core/engine.js\";\nexport type {\n EngineReport,\n JudgeFn,\n JudgeOptions,\n RunOptions,\n RunProblem,\n} from \"./core/engine.js\";\nexport { runRun } from \"./commands/run.js\";\nexport type { RunCommandOptions } from \"./commands/run.js\";\n// From the library, not local copies: judge.ts calls the library's versions,\n// so re-exporting a second implementation here would let a consumer's\n// computeConsensus() diverge from what the judge actually ran — the drift this\n// extraction exists to end.\nexport { computeConsensus, zoneFor } from \"@hawkeyexl/inference\";\nexport type { ZoneThresholds } from \"@hawkeyexl/inference\";\nexport { makeJudge } from \"./judge/judge.js\";\nexport {\n makeProvider,\n providerSpecFor,\n resolveProviderIdentity,\n} from \"./judge/provider.js\";\n// The provider contract and the offline test seam come from the shared\n// inference layer; re-exported so downstream code keeps one import site.\n// `InferenceProvider` is what this package used to call `JudgeProvider`.\nexport {\n MockProvider,\n mockVerdict,\n type CompleteJSONRequest,\n type CompleteJSONResponse,\n type InferenceProvider,\n type MockResponse,\n} from \"@hawkeyexl/inference\";\nexport {\n render,\n parseFormat,\n REPORT_FORMATS,\n SUMMARY_FORMATS,\n} from \"./reporters/index.js\";\nexport type { ColorOptions, ReportFormat, SummaryFormat } from \"./reporters/index.js\";\nexport {\n listReviews,\n renderReviews,\n runReview,\n} from \"./commands/review.js\";\nexport { runGenerate } from \"./commands/generate.js\";\nexport type { GenerateOptions, GenerateRun } from \"./commands/generate.js\";\nexport { runFill, renderFill } from \"./commands/fill.js\";\nexport type {\n FillOptions,\n FillReport,\n FillPageResult,\n FillStatus,\n ProposedEval,\n} from \"./commands/fill.js\";\nexport {\n FILL_PROMPT_VERSION,\n FILL_SYSTEM_PROMPT,\n PROPOSAL_SCHEMA,\n buildFillUser,\n isValidProposal,\n} from \"./fill/prompt.js\";\nexport { FillCache, fillCacheKey } from \"./fill/cache.js\";\nexport { runPromote } from \"./commands/promote.js\";\nexport type { PromoteOptions, PromoteProposal } from \"./commands/promote.js\";\nexport { makeGenerateScripts, scriptLocationFor } from \"./graders/scriptgen.js\";\nexport {\n runCalibrate,\n renderCalibration,\n loadGoldenCases,\n seedGoldenCases,\n GOLDEN_DIR,\n SEEDED_GOLDEN_FILE,\n} from \"./commands/calibrate.js\";\nexport type {\n CalibrateOptions,\n CalibrationReport,\n CalibrationCaseResult,\n GoldenCase,\n SeedResult,\n} from \"./commands/calibrate.js\";\nexport { runInit } from \"./commands/init.js\";\nexport { registerGrader, graderFor, listGraderKinds } from \"./graders/registry.js\";\nexport type { Grader, GraderContext, GraderTarget, ExecFn } from \"./graders/types.js\";\nexport {\n updatePageEval,\n updateConfigEval,\n appendPageEvals,\n} from \"./core/frontmatter-edit.js\";\nexport type { NewEvalEntry } from \"./core/frontmatter-edit.js\";\nexport { frontmatterSchema, FRONTMATTER_SCHEMA_ID } from \"./schema.js\";\n// The judge cache key and the exact body it hashes. Exported so that anything\n// asking \"is this verdict already cached?\" — `scripts/check-docs-cache.mjs`\n// above all — computes it with the judge's own code instead of reproducing the\n// composition by hand, which is how that script silently keyed on the raw page\n// body after the judge started prefixing the chunk budget.\nexport { cacheKey, judgeCacheBody } from \"./judge/cache.js\";\nexport type { JudgeCacheBody } from \"./judge/cache.js\";\nexport { readTarget } from \"./core/target.js\";\nexport * from \"./types.js\";\n","/** Programmatic API for manni lint. */\nimport { clearTemplateCaches } from \"./core/template-registry.js\";\nimport { clearMatcherCache } from \"./core/resolve-template.js\";\nimport { clearPatternCache } from \"./rules/index.js\";\n\n/**\n * Drop every process-lifetime cache: parsed built-ins, fetched template files,\n * compiled override globs, and compiled heading patterns.\n *\n * A CLI run never needs this - it lints one docset and exits, and the caches\n * are what stop a tree of one doctype from re-reading the same template per\n * page. A long-lived host is the different case: the maps grow with the number\n * of distinct refs and patterns seen, and a cached remote template is served\n * for the life of the process, so one republished upstream is never picked up.\n * Call this between runs, or when a template may have changed underneath.\n */\nexport function clearCaches(): void {\n clearTemplateCaches();\n clearMatcherCache();\n clearPatternCache();\n}\n\nexport { runLint, STDIN_LABEL } from \"./commands/lint.js\";\nexport type {\n LintOptions,\n LintRun,\n LintSummary,\n LintFileResult,\n} from \"./commands/lint.js\";\nexport { runTemplates, BUILTIN_SOURCE } from \"./commands/templates.js\";\nexport type {\n TemplateInfo,\n TemplatesInfo,\n TemplatesOptions,\n} from \"./commands/templates.js\";\nexport { runTools, BUILT_IN_DEFAULTS } from \"./commands/tools.js\";\nexport type { FormatInfo, ToolInfo, ToolsOptions } from \"./commands/tools.js\";\nexport {\n LINT_JOBS,\n LINT_TOOLS,\n TOOLS_BY_JOB,\n isLintTool,\n loadConfig,\n parseConfig,\n rebaseConfig,\n resolveLintRun,\n} from \"./core/config.js\";\nexport type {\n LintConfig,\n LintJob,\n LintJobConfig,\n LintRunOptions,\n LintTool,\n ResolvedLintRun,\n} from \"./core/config.js\";\nexport { validateDocument, validateSections } from \"./core/validator.js\";\nexport { matchSections } from \"./core/match.js\";\nexport type { Match, MatchResult } from \"./core/match.js\";\nexport {\n BLOCK_KINDS,\n headingMatches,\n isWildcard,\n occurrenceRange,\n} from \"./core/template.js\";\nexport type {\n AdmonitionsRule,\n AttributesRule,\n BlockKind,\n BlockRule,\n CodeBlocksRule,\n ElementsRule,\n HeadingRule,\n ImagesRule,\n ListItemsRule,\n ListsRule,\n Occurrences,\n ParagraphsRule,\n Rule,\n TablesRule,\n Template,\n TemplateFile,\n} from \"./core/template.js\";\nexport {\n listBuiltins,\n loadTemplate,\n loadTemplateFile,\n resolveExtends,\n classifyRef,\n} from \"./core/template-registry.js\";\nexport type {\n BuiltinInfo,\n LoadTemplateOptions,\n RefKind,\n TemplateResolver,\n} from \"./core/template-registry.js\";\n// Targets resolve through the family's walker (`src/meta/internal.ts`), which\n// is what makes `--ext`, `--exclude`, `.gitignore` handling and `--allow-empty`\n// mean the same thing here as they do for `meta` and `cite`.\nexport { STDIN_TOKEN } from \"../meta/internal.js\";\nexport {\n listFormats,\n parserByName,\n parserForExtension,\n supportedExtensions,\n} from \"./parsers/index.js\";\nexport {\n render,\n renderPretty,\n renderJson,\n renderGithub,\n renderJunit,\n renderTemplates,\n renderTools,\n} from \"./reporters/index.js\";\nexport type {\n ReportFormat,\n ReportOptions,\n ListFormat,\n} from \"./reporters/index.js\";\nexport { renderSarif } from \"./reporters/sarif.js\";\nexport type { SarifOptions } from \"./reporters/sarif.js\";\n// A finding's durable identity, so a caller filing or correlating findings\n// spells the id the same way every reporter does.\nexport { RULE_ID_PREFIX, TOOL_NAME, ruleId, ruleName } from \"./core/rule-id.js\";\n// Colour is the family's decision, made once in `src/shared/color.js`. These\n// are re-exported here so a library caller building lint's reports does not\n// have to reach for another tool's entry point to turn ANSI on or off.\nexport { palette, shouldColor } from \"../shared/color.js\";\nexport * from \"./types.js\";\n","/** The graph tool's public API. */\nexport * from \"./types.js\";\nexport {\n defaultConfig,\n loadConfig,\n loadRunConfig,\n parseConfig,\n type GraphConfig,\n type DeriveSource,\n type FillField,\n} from \"./core/config.js\";\nexport {\n COVERAGE_FIELDS,\n COVERAGE_FIELD_NAMES,\n // reference/library-api.mdx names this alongside the other two, so it has to\n // be reachable from the entry point that page tells consumers to import from.\n SECTION_COVERAGE_FIELDS,\n type CoverageField,\n} from \"./core/coverage.js\";\nexport {\n discoverFiles,\n resolveDocumentSet,\n type DocumentInputOptions,\n type DocumentSetOptions,\n} from \"./core/discover.js\";\nexport {\n GRAPH_NOT_APPLICABLE_TO_VARIANT,\n GRAPH_NOT_SOFTWARE_SUBJECT,\n SOFTWARE_LIFECYCLE_IRIS,\n SOFTWARE_SUBJECT_IRIS,\n TOPIC_TYPE_IRIS,\n} from \"./core/iirds.js\";\nexport {\n conceptSlug,\n encodeSegment,\n mintAgentIri,\n type AgentKind,\n mintBuildActivityIri,\n mintConceptIri,\n mintDocIri,\n mintGraphIri,\n mintProductIri,\n mintSchemeIri,\n mintSectionIri,\n normalizeDocPath,\n resolveBaseIri,\n} from \"./core/iri.js\";\nexport { analyzeDoc } from \"./core/analyze.js\";\nexport {\n deriveGraph,\n type DeriveOptions,\n type Quad,\n type Term,\n} from \"./core/derive.js\";\nexport {\n collectGitHistory,\n type GitFileHistory,\n type GitHistory,\n} from \"./core/git.js\";\nexport { emitTurtle } from \"./core/emit.js\";\nexport { emitJsonLd } from \"./core/emit-jsonld.js\";\nexport { emitRdfXml } from \"./core/emit-rdfxml.js\";\nexport { writeZip, type ZipEntry } from \"./core/zip.js\";\nexport {\n projectPackage,\n type IirdsPackageOptions,\n type PackageProjection,\n type ContentFile,\n} from \"./core/iirds-package.js\";\nexport {\n loadGraph,\n expandTerm,\n compactIri,\n storeToQuads,\n} from \"./core/load.js\";\n/**\n * The browser-native GraphRAG runtime is also published as the `@hawkeyexl/manni/graph/runtime`\n * subpath, which is the import to use in a browser: it has no `node:` imports\n * and no dependencies (ADR 01018).\n */\nexport * from \"./runtime/index.js\";\nexport {\n applyGraphFields,\n existingGraphFields,\n existingMetaProvenance,\n frontmatterKind,\n type GraphApplyOptions,\n type GraphApplyResult,\n} from \"./core/frontmatter-edit.js\";\nexport { NS, PREFIXES } from \"./core/vocab.js\";\nexport {\n runBuild,\n type BuildOptions,\n type BuildResult,\n} from \"./commands/build.js\";\nexport { frontmatterSchema, FRONTMATTER_SCHEMA_ID } from \"./schema.js\";\nexport {\n runExport,\n type ExportOptions,\n type ExportResult,\n type ExportFormat,\n} from \"./commands/export.js\";\nexport {\n runQuery,\n type QueryOptions,\n type QueryResult,\n} from \"./commands/query.js\";\nexport {\n runStats,\n type CoverageRow,\n type StatsOptions,\n type StatsReport,\n} from \"./commands/stats.js\";\nexport {\n runTraverse,\n renderTraverse,\n type TraverseOptions as TraverseCommandOptions,\n type TraverseReport,\n} from \"./commands/traverse.js\";\nexport {\n runSearch,\n renderSearch,\n type SearchHit,\n type SearchOptions,\n type SearchReport,\n} from \"./commands/search.js\";\nexport {\n runEmbed,\n renderEmbed,\n embedText,\n type EmbedOptions,\n type EmbedReport,\n} from \"./commands/embed.js\";\nexport {\n createLocalEmbedder,\n createMockEmbedder,\n EmbedderUnavailableError,\n DEFAULT_MODEL,\n MODEL_PROFILES,\n profileFor,\n withPrefix,\n type EmbedRole,\n type Embedder,\n type LocalEmbedderOptions,\n type MockEmbedderOptions,\n type ModelProfile,\n} from \"./embed/index.js\";\nexport {\n buildSearchIndex,\n documentsByLanguage,\n emitSearchIndex,\n partitionByLanguage,\n type SearchEntry,\n type SearchIndexDoc,\n type SearchIndexOptions,\n} from \"./core/search-index.js\";\nexport {\n emitLocalizations,\n LOCALIZATIONS_FILENAME,\n parseLocalizations,\n searchIndexFilename,\n UNDETERMINED,\n vectorIndexFilename,\n type LocalizationEntry,\n type LocalizationsDoc,\n type SearchArtifact,\n type VectorArtifact,\n} from \"./core/localizations.js\";\nexport {\n runFill,\n type FillOptions,\n type FillReport,\n type FillDocResult,\n} from \"./commands/fill.js\";\n// The inference layer is @hawkeyexl/inference; re-exported here so downstream\n// code that only depends on dockg can still construct providers and drive the\n// offline test seam without adding a second dependency.\nexport {\n MockProvider,\n type CompleteJSONRequest,\n type CompleteJSONResponse,\n type InferenceProvider,\n type MockResponse,\n} from \"@hawkeyexl/inference\";\nexport {\n assertProviderSelection,\n constructProvider,\n makeProvider,\n providerSpecFor,\n resolveProviderIdentity,\n selectProvider,\n type ProviderChoice,\n type ProviderFlags,\n type ProviderSelection,\n} from \"./llm/provider.js\";\n","/**\n * Context assembly (ADR 01018) — the runtime's terminal stage.\n *\n * Turns traversed nodes into the bundle an inference engine consumes:\n * `{ context, citations, trace, refusal? }`. **dockg stops here**: it never\n * calls a model. A different tool (an agent over MCP, a site backend) takes the\n * bundle onward, which keeps this runtime fully deterministic and keeps API\n * keys and inference cost outside dockg entirely.\n *\n * When nothing survives retrieval the result is a *structured refusal*, never\n * empty context — a caller must be able to tell \"no route exists\" apart from\n * \"here is nothing, proceed anyway\" (the disciplined-silence contract).\n *\n * Platform-neutral: no `node:` imports, no npm dependencies.\n */\nimport type { ContentResolver } from \"./resolve.js\";\nimport type { EntryCandidate, QueryTrace } from \"./trace.js\";\nimport { createTrace } from \"./trace.js\";\nimport type { TraversedNode } from \"./traverse.js\";\n\nexport interface ContextBlock {\n iri: string;\n title?: string;\n text: string;\n sourceUrl: string;\n /** Hops from the nearest seed — the relevance signal, carried through. */\n depth: number;\n}\n\nexport interface Citation {\n iri: string;\n title?: string;\n sourceUrl: string;\n}\n\nexport type RefusalReason = \"no-route\" | \"no-content\";\n\nexport interface Refusal {\n reason: RefusalReason;\n detail: string;\n}\n\n/**\n * The rankings that produced the seeds, carried through to the caller.\n *\n * Retrieval answers two different questions — \"what matched the query?\" and\n * \"what is the graph connected to it?\" — and a consumer needs both. Returning\n * only the graph result would make the match rankings inferrable solely from the\n * trace, which is diagnostic rather than a result surface (ADR 01020).\n */\nexport interface EntryRankings {\n /** The lexical leg's own ranking. */\n lexical: EntryCandidate[];\n /** The vector leg's own ranking; empty when no embedder was in play. */\n vector: EntryCandidate[];\n /** The fused ranking that actually seeded traversal. */\n merged: EntryCandidate[];\n}\n\nexport interface RetrievalBundle {\n /** What matched the query, per leg. Absent when seeds were given explicitly. */\n entry?: EntryRankings;\n context: ContextBlock[];\n citations: Citation[];\n trace: QueryTrace;\n /** Present when retrieval found nothing usable. `context` is then empty. */\n refusal?: Refusal;\n /** True when the character budget dropped otherwise-eligible blocks. */\n truncated: boolean;\n}\n\nexport interface AssembleOptions {\n /** Character budget across all blocks. Default: unbounded. */\n maxChars?: number;\n /** Append to an existing trace (normally the traversal's). */\n trace?: QueryTrace;\n /**\n * The entry rankings that produced these nodes, passed through to the bundle\n * so callers see matches and graph results side by side.\n */\n entry?: EntryRankings;\n}\n\n/**\n * Resolve traversed nodes to text and assemble the retrieval bundle. Nodes are\n * kept in traversal order (nearest-first), which is deterministic, and every\n * block carries the IRI it came from so citations are structural, not inferred.\n */\nexport async function assemble(\n resolver: ContentResolver,\n nodes: TraversedNode[],\n options: AssembleOptions = {},\n): Promise<RetrievalBundle> {\n const trace = options.trace ?? createTrace();\n const budget = options.maxChars ?? Infinity;\n\n if (nodes.length === 0) {\n return {\n ...(options.entry ? { entry: options.entry } : {}),\n context: [],\n citations: [],\n trace,\n truncated: false,\n refusal: {\n reason: \"no-route\",\n detail:\n \"No node in the graph was reachable for this query under the active scope filter.\",\n },\n };\n }\n\n const context: ContextBlock[] = [];\n let used = 0;\n let truncated = false;\n let resolvedAny = false;\n\n for (const node of nodes) {\n const resolved = await resolver.resolve(node.iri);\n if (!resolved) continue;\n resolvedAny = true;\n if (used + resolved.text.length > budget) {\n truncated = true;\n continue;\n }\n used += resolved.text.length;\n context.push({\n iri: resolved.iri,\n title: resolved.title,\n text: resolved.text,\n sourceUrl: resolved.sourceUrl,\n depth: node.depth,\n });\n }\n\n if (context.length === 0) {\n return {\n ...(options.entry ? { entry: options.entry } : {}),\n context: [],\n citations: [],\n trace,\n truncated,\n refusal: {\n reason: \"no-content\",\n detail: resolvedAny\n ? \"Every matching node's content exceeded the character budget.\"\n : \"Matching nodes were found, but none of them resolved to readable content.\",\n },\n };\n }\n\n return {\n ...(options.entry ? { entry: options.entry } : {}),\n context,\n citations: context.map((b) => ({\n iri: b.iri,\n title: b.title,\n sourceUrl: b.sourceUrl,\n })),\n trace,\n truncated,\n };\n}\n","/**\n * RDF/JS interop — the custom-SPARQL escape hatch (ADR 01018).\n *\n * The runtime's own walker is deliberately not a SPARQL engine: it is 0 KB and\n * it records a trace. But arbitrary user-authored SPARQL is a legitimate need,\n * so the index can hand out its contents as standard **RDF/JS quads**. Feed\n * them to any RDF/JS store and query with any engine:\n *\n * ```js\n * import { Store } from \"n3\";\n * import { QueryEngine } from \"@comunica/query-sparql-rdfjs-lite\";\n * const store = new Store(rdfjsQuads(graph));\n * const bindings = await new QueryEngine().queryBindings(sparql, { sources: [store] });\n * ```\n *\n * Quads are plain data rather than a hand-rolled `Source` stream on purpose:\n * every engine already accepts a store, stores accept quad arrays, and faking\n * Node's stream contract in a browser-safe module is fragile for no gain. At\n * docs scale materializing is trivial (the reference corpus is 172 quads).\n *\n * Honest caveat: engine results are bindings, not walker traces —\n * explainability lives in the walker API.\n *\n * The term shapes are structural, so they are hand-rolled here rather than\n * pulled from `@rdfjs/data-model`, keeping the runtime dependency-free and\n * browser-safe.\n */\nimport { byCodeUnit } from \"../core/sort.js\";\nimport type { GraphIndex, Value } from \"./graph.js\";\n\nconst XSD_STRING = \"http://www.w3.org/2001/XMLSchema#string\";\n\nexport interface RdfTerm {\n termType: \"NamedNode\" | \"Literal\" | \"DefaultGraph\";\n value: string;\n language?: string;\n datatype?: RdfTerm;\n equals(other?: RdfTerm | null): boolean;\n}\n\nexport interface RdfQuad {\n termType: \"Quad\";\n subject: RdfTerm;\n predicate: RdfTerm;\n object: RdfTerm;\n graph: RdfTerm;\n equals(other?: RdfQuad | null): boolean;\n}\n\nexport function namedNode(value: string): RdfTerm {\n return {\n termType: \"NamedNode\",\n value,\n equals(other) {\n return !!other && other.termType === \"NamedNode\" && other.value === value;\n },\n };\n}\n\nexport function defaultGraph(): RdfTerm {\n return {\n termType: \"DefaultGraph\",\n value: \"\",\n equals(other) {\n return !!other && other.termType === \"DefaultGraph\";\n },\n };\n}\n\nexport function literal(value: string, datatype?: string): RdfTerm {\n const dt = namedNode(datatype ?? XSD_STRING);\n return {\n termType: \"Literal\",\n value,\n language: \"\",\n datatype: dt,\n equals(other) {\n return (\n !!other &&\n other.termType === \"Literal\" &&\n other.value === value &&\n !!other.datatype &&\n other.datatype.value === dt.value\n );\n },\n };\n}\n\nfunction toTerm(v: Value): RdfTerm {\n return v.kind === \"iri\" ? namedNode(v.value) : literal(v.value, v.datatype);\n}\n\nfunction makeQuad(s: string, p: string, o: Value): RdfQuad {\n const subject = namedNode(s);\n const predicate = namedNode(p);\n const object = toTerm(o);\n const graph = defaultGraph();\n return {\n termType: \"Quad\",\n subject,\n predicate,\n object,\n graph,\n equals(other) {\n return (\n !!other &&\n subject.equals(other.subject) &&\n predicate.equals(other.predicate) &&\n object.equals(other.object)\n );\n },\n };\n}\n\n/**\n * The whole index as RDF/JS quads, in the index's deterministic order. Feed to\n * any RDF/JS store (`new Store(rdfjsQuads(graph))`) to run SPARQL.\n */\nexport function rdfjsQuads(graph: GraphIndex): RdfQuad[] {\n const quads: RdfQuad[] = [];\n for (const s of graph.ids()) {\n const node = graph.node(s);\n if (!node) continue;\n for (const p of [...node.props.keys()].sort(byCodeUnit)) {\n for (const v of node.props.get(p) ?? []) quads.push(makeQuad(s, p, v));\n }\n }\n return quads;\n}\n\n/**\n * Triple-pattern match returning RDF/JS quads. A null/undefined position is a\n * wildcard. Convenience for callers who want RDF/JS terms without pulling in a\n * store; the walker API is the richer (and traced) way to query.\n */\nexport function matchQuads(\n graph: GraphIndex,\n subject?: string | null,\n predicate?: string | null,\n object?: string | null,\n): RdfQuad[] {\n const quads: RdfQuad[] = [];\n const subjects = subject ? [subject] : graph.ids();\n for (const s of subjects) {\n const node = graph.node(s);\n if (!node) continue;\n const predicates = predicate\n ? [predicate]\n : [...node.props.keys()].sort(byCodeUnit);\n for (const p of predicates) {\n for (const v of node.props.get(p) ?? []) {\n if (object !== undefined && object !== null && v.value !== object) {\n continue;\n }\n quads.push(makeQuad(s, p, v));\n }\n }\n }\n return quads;\n}\n","/**\n * The page vocabulary manni graph implements: `manni:graph:1.0.0`, the built-in\n * schema the metadata tool publishes under `src/meta/schemas/`. It defines the\n * `graph:` block a page carries. Pages are validated against that schema\n * itself, imported and bundled into the build, so graph and `manni meta validate`\n * read the same bytes.\n *\n * graph ships no copy of the schema. A copy is a second artifact to keep in step,\n * with nothing but a test to say the two still match. A consumer who wants to\n * validate pages names `manni:graph:1.0.0` to `manni meta validate`, or\n * validates programmatically against the object below.\n */\nimport schema from \"../meta/schemas/graph/1.0.0.json\" with { type: \"json\" };\n\n/** The graph vocabulary, for validators that accept an inline schema. */\nexport const frontmatterSchema = schema as Record<string, unknown>;\n\n/** The vocabulary's `$id`: `manni:graph:1.0.0`. */\nexport const FRONTMATTER_SCHEMA_ID: string = schema.$id;\n","/**\n * The key domain's programmatic API, exported from the package as the `key`\n * namespace: `import { key } from \"@hawkeyexl/manni\"`. The command cores, and\n * the family's encryption primitives a caller needs beside them.\n */\nexport * from \"./types.js\";\nexport { KeyError } from \"./errors.js\";\nexport { runKeySet } from \"./commands/set.js\";\nexport { runKeyRotate } from \"./commands/rotate.js\";\nexport { decryptValue, encryptValue, isEncryptedValue } from \"../shared/encryption.js\";\nexport type { EncryptionContext } from \"../shared/encryption.js\";\nexport { resolveEncryptionKey } from \"../shared/encryption-key.js\";\nexport type { KeySource, ResolvedKey } from \"../shared/encryption-key.js\";\n","/** Programmatic API for manni tracevals. */\nexport * from \"./types.js\";\nexport * from \"./trace/types.js\";\nexport { detectFormat, detectContentFormat } from \"./trace/detect.js\";\nexport { parseTraceFile, parseTraceContent } from \"./trace/claude.js\";\nexport {\n availableAt,\n joinDescriptions,\n newAvailability,\n offeredNames,\n} from \"./trace/availability.js\";\nexport {\n configDir,\n discoverTraces,\n slugFor,\n type DiscoverOptions,\n type TraceListing,\n} from \"./trace/discover.js\";\nexport { renderList, runList, type ListOptions, type ListRun } from \"./commands/list.js\";\nexport * from \"./artifacts/types.js\";\nexport {\n PROJECT_RULES_FILENAMES,\n resolveArtifacts,\n type ResolveOptions,\n} from \"./artifacts/resolve.js\";\nexport {\n coverAvailability,\n type AvailabilityCoverage,\n type AvailabilityOptions,\n} from \"./artifacts/availability.js\";\nexport {\n discoverArtifacts,\n type DiscoverOptions as DiscoverArtifactsOptions,\n type DiscoveredArtifact,\n type DiscoveryResult,\n} from \"./artifacts/discover.js\";\nexport {\n PRUNED_DIRS,\n findGitRoot,\n findInTree,\n listInTree,\n safeMtime,\n safeRead,\n} from \"./artifacts/fs.js\";\nexport {\n ARTIFACT_EVALS_SCHEMA_ID,\n extractEvals,\n type EvalEntry,\n type EvalType,\n type ExtractedEvals,\n type Severity,\n} from \"./evals/extract.js\";\nexport {\n appendArtifactEvals,\n type EvalProvenance,\n type NewEvalEntry,\n} from \"./evals/write.js\";\nexport {\n IMPLICIT_EVAL_NAME,\n planEvals,\n type EvalLocation,\n type EvalPlan,\n type SuppliedMetadata,\n} from \"./core/plan.js\";\nexport * from \"./graders/types.js\";\nexport {\n BUILTIN_GRADER_KINDS,\n graderFor,\n listGraderKinds,\n registerGrader,\n} from \"./graders/registry.js\";\nexport {\n loadGraderPlugins,\n type GraderPluginApi,\n type GraderPluginRegister,\n type LoadGraderPluginsOptions,\n type LoadedGraderPlugins,\n} from \"./graders/plugins.js\";\nexport { skippedWindow, windowFor, type TraceWindow } from \"./graders/util.js\";\nexport { globToRegExp, matchesGlob } from \"./graders/glob.js\";\nexport {\n WHEN_CONDITIONS,\n evaluateWhen,\n validateWhen,\n type TriggerResult,\n type WhenCondition,\n} from \"./graders/when.js\";\nexport { renderTrace, type RenderOptions } from \"./judge/render.js\";\nexport {\n CUSTOM_PLACEHOLDER,\n REDACTION_PATTERNS,\n compileRedactPatterns,\n makeRedactor,\n type RedactionPattern,\n type Redactor,\n} from \"./judge/redact.js\";\nexport {\n JUDGE_SYSTEM_PROMPT,\n PROMPT_VERSION,\n buildUserContent,\n} from \"./judge/prompt.js\";\nexport { VerdictCache, cacheKey, sha256 } from \"./judge/cache.js\";\nexport {\n makeTraceJudge,\n type JudgedEval,\n type TraceJudge,\n type TraceJudgeOptions,\n} from \"./judge/trace-judge.js\";\nexport {\n announceSelection,\n assertProviderSelection,\n constructProvider,\n makeJudgeProvider,\n providerSpecFor,\n resolveProviderIdentity,\n selectProvider,\n type JudgeProviderOptions,\n type MockResponse,\n type ProviderChoice,\n type ProviderFlags,\n type ProviderSelection,\n} from \"./judge/provider.js\";\nexport {\n CONFIG_SECTION_KEY,\n DEFAULT_CONFIG_FILENAME,\n loadConfig,\n parseConfig,\n type ConfigFileContext,\n type TracevalsConfig,\n} from \"./core/config.js\";\nexport { runEvals, type EngineOptions } from \"./core/engine.js\";\nexport {\n render,\n renderBatch,\n renderCalibration,\n parseFormat,\n REPORT_FORMATS,\n SUMMARY_FORMATS,\n type ReportFormat,\n type SummaryFormat,\n} from \"./reporters/index.js\";\nexport { renderBatchPretty, renderBatchMarkdown } from \"./reporters/batch.js\";\nexport {\n renderCalibrationPretty,\n renderCalibrationMarkdown,\n} from \"./reporters/calibration.js\";\nexport { aggregate, type BatchOutcome } from \"./aggregate.js\";\nexport {\n prepareRun,\n runOne,\n runRun,\n type RunCommandOptions,\n type RunCommandResult,\n type RunContext,\n type RunSharedOptions,\n} from \"./commands/run.js\";\nexport {\n keepNewerThan,\n parseNewerThan,\n resolveBatchTraces,\n runBatch,\n type BatchCommandOptions,\n type BatchCommandResult,\n} from \"./commands/batch.js\";\nexport {\n runCalibrate,\n type CalibrateCommandOptions,\n type CalibrateCommandResult,\n} from \"./commands/calibrate.js\";\nexport * from \"./calibrate/types.js\";\nexport {\n DEFAULT_LABELS_FILE,\n labelKey,\n loadLabels,\n parseLabels,\n} from \"./calibrate/labels.js\";\nexport {\n classify,\n joinLabels,\n rescore,\n score,\n type JoinedLabel,\n type AmbiguousLabel,\n type JoinResult,\n type Rescored,\n type ScoreInput,\n type ScoreResult,\n} from \"./calibrate/score.js\";\nexport {\n renderFill,\n runFill,\n type FillArtifactResult,\n type FillOptions,\n type FillReport,\n type FillRun,\n type FillStatus,\n type SharpeningNote,\n} from \"./commands/fill.js\";\nexport {\n ALLOWED_GRADERS,\n gateProposals,\n type GateOptions,\n type GateResult,\n type ProposedEval,\n type Rejection,\n type RejectionReason,\n type Vocabulary,\n} from \"./fill/gate.js\";\nexport {\n FILL_PROMPT_VERSION,\n MAX_BODY_CHARS,\n PROPOSAL_SCHEMA,\n buildFillUser,\n isValidProposal,\n systemPromptFor,\n} from \"./fill/prompt.js\";\nexport { FillCache, fillCacheKey, type FillCacheKeyParts } from \"./fill/cache.js\";\nexport { artifactFacts, type ArtifactFacts } from \"./fill/facts.js\";\nexport { BUILTIN_TOOLS, buildVocabulary } from \"./fill/vocabulary.js\";\nexport { mockFillProposal } from \"./fill/mock.js\";\nexport { pickTrace, type PickerChoice, type PromptFn } from \"./trace/picker.js\";\nexport {\n appendHistory,\n compareToLast,\n entryFor,\n loadHistory,\n type HistoryComparison,\n type HistoryEntry,\n type HistoryEval,\n} from \"./history.js\";\nexport * from \"./capture/types.js\";\nexport {\n checkContent,\n findManifest,\n hashFile,\n manifestPathFor,\n readManifest,\n relPosix,\n safeSessionId,\n sha256Hex,\n siblingManifestPath,\n writeManifest,\n type FindManifestOptions,\n type FoundManifest,\n} from \"./capture/manifest.js\";\nexport {\n buildManifest,\n deviceId,\n readGit,\n redactDeep,\n type BuildManifestOptions,\n} from \"./capture/build.js\";\nexport { parseHookPayload, readStdin, type HookPayload } from \"./capture/hook.js\";\nexport {\n renderCapture,\n runCapture,\n type CaptureCommandOptions,\n type CaptureCommandResult,\n} from \"./commands/capture.js\";\n"],"mappings":"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","names":["REPORT_FORMATS","loadConfig","parseConfig","render","renderFill","runFill","classifyRef","listBuiltins","loadConfig","parseConfig","render","renderJunit","renderSarif","supportedExtensions","FRONTMATTER_SCHEMA_ID","MockProvider","frontmatterSchema","loadConfig","makeProvider","parseConfig","providerSpecFor","resolveProviderIdentity","runFill","runQuery","frontmatterSchema","FRONTMATTER_SCHEMA_ID","MockProvider","DEFAULT_CONFIG_FILENAME","FILL_PROMPT_VERSION","FillCache","PROPOSAL_SCHEMA","REPORT_FORMATS","SUMMARY_FORMATS","assertProviderSelection","buildFillUser","cacheKey","constructProvider","fillCacheKey","graderFor","isValidProposal","listGraderKinds","loadConfig","parseConfig","parseFormat","providerSpecFor","registerGrader","render","renderCalibration","renderFill","renderList","resolveProviderIdentity","runCalibrate","runEvals","runFill","runList","runRun","selectProvider"]}