@hawkeyexl/manni 4.4.0 → 4.4.1

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 (144) hide show
  1. package/README.md +1 -1
  2. package/dist/{batch-DFRCLY77.js → batch-GFNLTGOH.js} +11 -11
  3. package/dist/{build-Q5C6SX5J.js → build-COYIQ25L.js} +10 -10
  4. package/dist/{calibrate-XQILKXS3.js → calibrate-MDBLJKEE.js} +12 -12
  5. package/dist/{capture-JQMOC3BW.js → capture-LRML2PKV.js} +12 -12
  6. package/dist/{check-U54XV6BP.js → check-ASPIHA6B.js} +12 -12
  7. package/dist/{check-NFZQLJKN.js → check-EDLBYL5N.js} +11 -11
  8. package/dist/{chunk-2U3ORT6D.js → chunk-2B7ZNTPV.js} +2 -2
  9. package/dist/{chunk-PHF3D7ER.js → chunk-37LP5HMZ.js} +5 -5
  10. package/dist/{chunk-NWZ2SLYL.js → chunk-3VK37OR2.js} +5 -5
  11. package/dist/{chunk-5YXBLLAC.js → chunk-4IUC2MNL.js} +8 -8
  12. package/dist/{chunk-JVTNMVYU.js → chunk-57NEQRVO.js} +2 -2
  13. package/dist/{chunk-CYWHFSRT.js → chunk-6JSSEWBG.js} +6 -6
  14. package/dist/{chunk-XSLV76YK.js → chunk-7UKO3ASZ.js} +3 -3
  15. package/dist/{chunk-K3D6FPV6.js → chunk-A5ULMVHQ.js} +2 -2
  16. package/dist/{chunk-PCHZY2I7.js → chunk-C4SQM22E.js} +3 -3
  17. package/dist/{chunk-YFQBFNQS.js → chunk-DXNZS72W.js} +3 -3
  18. package/dist/{chunk-YYBFZLAJ.js → chunk-EPH54CAY.js} +4 -4
  19. package/dist/{chunk-IEQHSCZG.js → chunk-FBEQCK47.js} +6 -6
  20. package/dist/{chunk-77HX34KD.js → chunk-GCQRPUSB.js} +4 -4
  21. package/dist/{chunk-5KHIFVD2.js → chunk-I2AH3CJJ.js} +7 -7
  22. package/dist/{chunk-C6OH6CNF.js → chunk-IDV6HJCB.js} +3 -3
  23. package/dist/{chunk-X3BPBDGQ.js → chunk-JCDXE76J.js} +2 -2
  24. package/dist/{chunk-BUXDLRDT.js → chunk-JXLTXMJ7.js} +3 -3
  25. package/dist/{chunk-RLR4TKUZ.js → chunk-M3W7J6MU.js} +2 -2
  26. package/dist/{chunk-3AFUD75K.js → chunk-MMTSSTG7.js} +2 -2
  27. package/dist/{chunk-OBFENF3U.js → chunk-MWJLZMBL.js} +10 -10
  28. package/dist/{chunk-YIL4XLLJ.js → chunk-NLXTXE5Y.js} +6 -6
  29. package/dist/{chunk-7QMCHA4N.js → chunk-NXV7WE2D.js} +3 -3
  30. package/dist/{chunk-LAKAWRV5.js → chunk-PIKOVN6W.js} +6 -6
  31. package/dist/{chunk-ERMSO34F.js → chunk-PNPQTHBT.js} +2 -2
  32. package/dist/{chunk-WQE54PNH.js → chunk-PU6DFJMY.js} +3 -3
  33. package/dist/{chunk-XYLUCIKQ.js → chunk-QQUKGCAJ.js} +2 -2
  34. package/dist/{chunk-H2DLH2JI.js → chunk-QRWGPQKO.js} +3 -3
  35. package/dist/{chunk-KCGV52AM.js → chunk-QZ6LRSNV.js} +7 -7
  36. package/dist/{chunk-644JVKJ4.js → chunk-RL5XWQOL.js} +5 -5
  37. package/dist/{chunk-252LNOEG.js → chunk-SKSDRUUK.js} +4 -4
  38. package/dist/{chunk-V46OILVC.js → chunk-TK3FC4RF.js} +3 -3
  39. package/dist/{chunk-UZC7LDAQ.js → chunk-UJCVAWP7.js} +2 -2
  40. package/dist/{chunk-UZC7LDAQ.js.map → chunk-UJCVAWP7.js.map} +1 -1
  41. package/dist/{chunk-MYC3O5EJ.js → chunk-UQISLDAV.js} +3 -3
  42. package/dist/{chunk-JOHKIAVH.js → chunk-WB3QM6PP.js} +3 -3
  43. package/dist/{chunk-YTCZRLTU.js → chunk-YB4IBW3M.js} +2 -2
  44. package/dist/{chunk-H6FZ66XR.js → chunk-YJOGUXGP.js} +4 -4
  45. package/dist/{chunk-G7NJSREW.js → chunk-YTURO7SI.js} +3 -3
  46. package/dist/{cli-SRHFUZHA.js → cli-3BIBYHFK.js} +13 -13
  47. package/dist/{cli-SHSMSRQY.js → cli-673OTRGE.js} +9 -9
  48. package/dist/{cli-4IOPGZHR.js → cli-6HIDIFVT.js} +2 -2
  49. package/dist/{cli-2QPR2OZG.js → cli-6UB5N6CU.js} +16 -16
  50. package/dist/{cli-5FL73WHA.js → cli-LFP5ZGYS.js} +12 -12
  51. package/dist/{cli-URZQXL4K.js → cli-MN7PYMBI.js} +15 -15
  52. package/dist/{cli-C262QOWM.js → cli-PYPX6O6E.js} +24 -24
  53. package/dist/{cli-OFPZ5MAS.js → cli-RPM5PELX.js} +11 -11
  54. package/dist/{cli-LJLLIQB2.js → cli-VI7VHWNZ.js} +16 -16
  55. package/dist/cli.js +11 -11
  56. package/dist/docmeta.js +8 -8
  57. package/dist/{github-FE6KCNYJ.js → github-6QMYOHC3.js} +11 -11
  58. package/dist/{github-QXL3VMK2.js → github-SXPGP5DB.js} +13 -13
  59. package/dist/index.js +30 -30
  60. package/dist/{json-SGZ6ZRFD.js → json-SY7KLNC7.js} +11 -11
  61. package/dist/{lint-DL4LJRAY.js → lint-ASMJLLPA.js} +10 -10
  62. package/dist/{list-7BKNYPSB.js → list-KZNVTNVC.js} +11 -11
  63. package/dist/{list-6BAXTZUM.js → list-Q57YTFUQ.js} +11 -11
  64. package/dist/{page-3U2GCFNE.js → page-KSGV5RD4.js} +10 -10
  65. package/dist/{pretty-N6DO4OOL.js → pretty-A5EGTN35.js} +11 -11
  66. package/dist/{pretty-2H57QVTY.js → pretty-CXSDXNAS.js} +12 -12
  67. package/dist/{reporters-N6GHXSS7.js → reporters-HUY7UXFS.js} +10 -10
  68. package/dist/{reporters-UCNEV7PH.js → reporters-K2VUKSAK.js} +4 -4
  69. package/dist/{run-XZDAREJE.js → run-3DYJNRIG.js} +11 -11
  70. package/dist/{term-5ICGKPC3.js → term-BIQUPMOR.js} +15 -15
  71. package/dist/{validate-GQRM77YN.js → validate-53RKM2XG.js} +5 -5
  72. package/package.json +1 -1
  73. package/plugin/manni/.claude-plugin/plugin.json +1 -1
  74. package/plugin/manni/hooks/hooks.json +21 -4
  75. package/plugin/manni/hooks/manni.mjs +157 -0
  76. package/plugin/manni/skills/check/SKILL.md +3 -3
  77. package/plugin/manni/skills/evals/SKILL.md +2 -2
  78. package/plugin/manni/skills/fix/SKILL.md +3 -3
  79. package/plugin/manni/skills/setup/SKILL.md +3 -3
  80. /package/dist/{batch-DFRCLY77.js.map → batch-GFNLTGOH.js.map} +0 -0
  81. /package/dist/{build-Q5C6SX5J.js.map → build-COYIQ25L.js.map} +0 -0
  82. /package/dist/{calibrate-XQILKXS3.js.map → calibrate-MDBLJKEE.js.map} +0 -0
  83. /package/dist/{capture-JQMOC3BW.js.map → capture-LRML2PKV.js.map} +0 -0
  84. /package/dist/{check-NFZQLJKN.js.map → check-ASPIHA6B.js.map} +0 -0
  85. /package/dist/{check-U54XV6BP.js.map → check-EDLBYL5N.js.map} +0 -0
  86. /package/dist/{chunk-2U3ORT6D.js.map → chunk-2B7ZNTPV.js.map} +0 -0
  87. /package/dist/{chunk-PHF3D7ER.js.map → chunk-37LP5HMZ.js.map} +0 -0
  88. /package/dist/{chunk-NWZ2SLYL.js.map → chunk-3VK37OR2.js.map} +0 -0
  89. /package/dist/{chunk-5YXBLLAC.js.map → chunk-4IUC2MNL.js.map} +0 -0
  90. /package/dist/{chunk-JVTNMVYU.js.map → chunk-57NEQRVO.js.map} +0 -0
  91. /package/dist/{chunk-CYWHFSRT.js.map → chunk-6JSSEWBG.js.map} +0 -0
  92. /package/dist/{chunk-XSLV76YK.js.map → chunk-7UKO3ASZ.js.map} +0 -0
  93. /package/dist/{chunk-K3D6FPV6.js.map → chunk-A5ULMVHQ.js.map} +0 -0
  94. /package/dist/{chunk-PCHZY2I7.js.map → chunk-C4SQM22E.js.map} +0 -0
  95. /package/dist/{chunk-YFQBFNQS.js.map → chunk-DXNZS72W.js.map} +0 -0
  96. /package/dist/{chunk-YYBFZLAJ.js.map → chunk-EPH54CAY.js.map} +0 -0
  97. /package/dist/{chunk-IEQHSCZG.js.map → chunk-FBEQCK47.js.map} +0 -0
  98. /package/dist/{chunk-77HX34KD.js.map → chunk-GCQRPUSB.js.map} +0 -0
  99. /package/dist/{chunk-5KHIFVD2.js.map → chunk-I2AH3CJJ.js.map} +0 -0
  100. /package/dist/{chunk-C6OH6CNF.js.map → chunk-IDV6HJCB.js.map} +0 -0
  101. /package/dist/{chunk-X3BPBDGQ.js.map → chunk-JCDXE76J.js.map} +0 -0
  102. /package/dist/{chunk-BUXDLRDT.js.map → chunk-JXLTXMJ7.js.map} +0 -0
  103. /package/dist/{chunk-RLR4TKUZ.js.map → chunk-M3W7J6MU.js.map} +0 -0
  104. /package/dist/{chunk-3AFUD75K.js.map → chunk-MMTSSTG7.js.map} +0 -0
  105. /package/dist/{chunk-OBFENF3U.js.map → chunk-MWJLZMBL.js.map} +0 -0
  106. /package/dist/{chunk-YIL4XLLJ.js.map → chunk-NLXTXE5Y.js.map} +0 -0
  107. /package/dist/{chunk-7QMCHA4N.js.map → chunk-NXV7WE2D.js.map} +0 -0
  108. /package/dist/{chunk-LAKAWRV5.js.map → chunk-PIKOVN6W.js.map} +0 -0
  109. /package/dist/{chunk-ERMSO34F.js.map → chunk-PNPQTHBT.js.map} +0 -0
  110. /package/dist/{chunk-WQE54PNH.js.map → chunk-PU6DFJMY.js.map} +0 -0
  111. /package/dist/{chunk-XYLUCIKQ.js.map → chunk-QQUKGCAJ.js.map} +0 -0
  112. /package/dist/{chunk-H2DLH2JI.js.map → chunk-QRWGPQKO.js.map} +0 -0
  113. /package/dist/{chunk-KCGV52AM.js.map → chunk-QZ6LRSNV.js.map} +0 -0
  114. /package/dist/{chunk-644JVKJ4.js.map → chunk-RL5XWQOL.js.map} +0 -0
  115. /package/dist/{chunk-252LNOEG.js.map → chunk-SKSDRUUK.js.map} +0 -0
  116. /package/dist/{chunk-V46OILVC.js.map → chunk-TK3FC4RF.js.map} +0 -0
  117. /package/dist/{chunk-MYC3O5EJ.js.map → chunk-UQISLDAV.js.map} +0 -0
  118. /package/dist/{chunk-JOHKIAVH.js.map → chunk-WB3QM6PP.js.map} +0 -0
  119. /package/dist/{chunk-YTCZRLTU.js.map → chunk-YB4IBW3M.js.map} +0 -0
  120. /package/dist/{chunk-H6FZ66XR.js.map → chunk-YJOGUXGP.js.map} +0 -0
  121. /package/dist/{chunk-G7NJSREW.js.map → chunk-YTURO7SI.js.map} +0 -0
  122. /package/dist/{cli-SRHFUZHA.js.map → cli-3BIBYHFK.js.map} +0 -0
  123. /package/dist/{cli-SHSMSRQY.js.map → cli-673OTRGE.js.map} +0 -0
  124. /package/dist/{cli-4IOPGZHR.js.map → cli-6HIDIFVT.js.map} +0 -0
  125. /package/dist/{cli-2QPR2OZG.js.map → cli-6UB5N6CU.js.map} +0 -0
  126. /package/dist/{cli-5FL73WHA.js.map → cli-LFP5ZGYS.js.map} +0 -0
  127. /package/dist/{cli-URZQXL4K.js.map → cli-MN7PYMBI.js.map} +0 -0
  128. /package/dist/{cli-C262QOWM.js.map → cli-PYPX6O6E.js.map} +0 -0
  129. /package/dist/{cli-OFPZ5MAS.js.map → cli-RPM5PELX.js.map} +0 -0
  130. /package/dist/{cli-LJLLIQB2.js.map → cli-VI7VHWNZ.js.map} +0 -0
  131. /package/dist/{github-FE6KCNYJ.js.map → github-6QMYOHC3.js.map} +0 -0
  132. /package/dist/{github-QXL3VMK2.js.map → github-SXPGP5DB.js.map} +0 -0
  133. /package/dist/{json-SGZ6ZRFD.js.map → json-SY7KLNC7.js.map} +0 -0
  134. /package/dist/{lint-DL4LJRAY.js.map → lint-ASMJLLPA.js.map} +0 -0
  135. /package/dist/{list-6BAXTZUM.js.map → list-KZNVTNVC.js.map} +0 -0
  136. /package/dist/{list-7BKNYPSB.js.map → list-Q57YTFUQ.js.map} +0 -0
  137. /package/dist/{page-3U2GCFNE.js.map → page-KSGV5RD4.js.map} +0 -0
  138. /package/dist/{pretty-2H57QVTY.js.map → pretty-A5EGTN35.js.map} +0 -0
  139. /package/dist/{pretty-N6DO4OOL.js.map → pretty-CXSDXNAS.js.map} +0 -0
  140. /package/dist/{reporters-N6GHXSS7.js.map → reporters-HUY7UXFS.js.map} +0 -0
  141. /package/dist/{reporters-UCNEV7PH.js.map → reporters-K2VUKSAK.js.map} +0 -0
  142. /package/dist/{run-XZDAREJE.js.map → run-3DYJNRIG.js.map} +0 -0
  143. /package/dist/{term-5ICGKPC3.js.map → term-BIQUPMOR.js.map} +0 -0
  144. /package/dist/{validate-GQRM77YN.js.map → validate-53RKM2XG.js.map} +0 -0
@@ -9,21 +9,21 @@ import {
9
9
  pickExtractor,
10
10
  readPage,
11
11
  validateEntry
12
- } from "./chunk-G7NJSREW.js";
12
+ } from "./chunk-YTURO7SI.js";
13
13
  import "./chunk-IKEWBMCN.js";
14
14
  import "./chunk-TU2WUBVZ.js";
15
- import "./chunk-H2DLH2JI.js";
16
- import "./chunk-CYWHFSRT.js";
17
- import "./chunk-K3D6FPV6.js";
18
- import "./chunk-V46OILVC.js";
19
- import "./chunk-RLR4TKUZ.js";
20
- import "./chunk-C6OH6CNF.js";
21
- import "./chunk-JVTNMVYU.js";
15
+ import "./chunk-QRWGPQKO.js";
16
+ import "./chunk-6JSSEWBG.js";
17
+ import "./chunk-A5ULMVHQ.js";
18
+ import "./chunk-TK3FC4RF.js";
19
+ import "./chunk-M3W7J6MU.js";
20
+ import "./chunk-IDV6HJCB.js";
21
+ import "./chunk-57NEQRVO.js";
22
22
  import "./chunk-YEUYKR62.js";
23
23
  import "./chunk-RNVYGWIC.js";
24
24
  import "./chunk-MNH7QO4Z.js";
25
25
  import "./chunk-Q35YIDBV.js";
26
- import "./chunk-UZC7LDAQ.js";
26
+ import "./chunk-UJCVAWP7.js";
27
27
  import "./chunk-OWBRDNRZ.js";
28
28
  import "./chunk-G3T47CFV.js";
29
29
  import "./chunk-2H7UOFLK.js";
@@ -38,4 +38,4 @@ export {
38
38
  readPage,
39
39
  validateEntry
40
40
  };
41
- //# sourceMappingURL=page-3U2GCFNE.js.map
41
+ //# sourceMappingURL=page-KSGV5RD4.js.map
@@ -6,23 +6,23 @@ import {
6
6
  renderListPretty,
7
7
  renderValeWiring,
8
8
  renderWritePretty
9
- } from "./chunk-2U3ORT6D.js";
10
- import "./chunk-WQE54PNH.js";
9
+ } from "./chunk-2B7ZNTPV.js";
10
+ import "./chunk-PU6DFJMY.js";
11
11
  import "./chunk-77AINBYM.js";
12
12
  import "./chunk-IKEWBMCN.js";
13
13
  import "./chunk-TU2WUBVZ.js";
14
- import "./chunk-H2DLH2JI.js";
15
- import "./chunk-CYWHFSRT.js";
16
- import "./chunk-K3D6FPV6.js";
17
- import "./chunk-V46OILVC.js";
18
- import "./chunk-RLR4TKUZ.js";
19
- import "./chunk-C6OH6CNF.js";
20
- import "./chunk-JVTNMVYU.js";
14
+ import "./chunk-QRWGPQKO.js";
15
+ import "./chunk-6JSSEWBG.js";
16
+ import "./chunk-A5ULMVHQ.js";
17
+ import "./chunk-TK3FC4RF.js";
18
+ import "./chunk-M3W7J6MU.js";
19
+ import "./chunk-IDV6HJCB.js";
20
+ import "./chunk-57NEQRVO.js";
21
21
  import "./chunk-YEUYKR62.js";
22
22
  import "./chunk-RNVYGWIC.js";
23
23
  import "./chunk-MNH7QO4Z.js";
24
24
  import "./chunk-Q35YIDBV.js";
25
- import "./chunk-UZC7LDAQ.js";
25
+ import "./chunk-UJCVAWP7.js";
26
26
  import "./chunk-OWBRDNRZ.js";
27
27
  import "./chunk-G3T47CFV.js";
28
28
  import "./chunk-2H7UOFLK.js";
@@ -34,4 +34,4 @@ export {
34
34
  renderValeWiring,
35
35
  renderWritePretty
36
36
  };
37
- //# sourceMappingURL=pretty-N6DO4OOL.js.map
37
+ //# sourceMappingURL=pretty-A5EGTN35.js.map
@@ -9,23 +9,23 @@ import {
9
9
  resultFor,
10
10
  rewriteLine,
11
11
  splitBaselined
12
- } from "./chunk-BUXDLRDT.js";
13
- import "./chunk-252LNOEG.js";
14
- import "./chunk-G7NJSREW.js";
12
+ } from "./chunk-JXLTXMJ7.js";
13
+ import "./chunk-SKSDRUUK.js";
14
+ import "./chunk-YTURO7SI.js";
15
15
  import "./chunk-IKEWBMCN.js";
16
16
  import "./chunk-TU2WUBVZ.js";
17
- import "./chunk-H2DLH2JI.js";
18
- import "./chunk-CYWHFSRT.js";
19
- import "./chunk-K3D6FPV6.js";
20
- import "./chunk-V46OILVC.js";
21
- import "./chunk-RLR4TKUZ.js";
22
- import "./chunk-C6OH6CNF.js";
23
- import "./chunk-JVTNMVYU.js";
17
+ import "./chunk-QRWGPQKO.js";
18
+ import "./chunk-6JSSEWBG.js";
19
+ import "./chunk-A5ULMVHQ.js";
20
+ import "./chunk-TK3FC4RF.js";
21
+ import "./chunk-M3W7J6MU.js";
22
+ import "./chunk-IDV6HJCB.js";
23
+ import "./chunk-57NEQRVO.js";
24
24
  import "./chunk-YEUYKR62.js";
25
25
  import "./chunk-RNVYGWIC.js";
26
26
  import "./chunk-MNH7QO4Z.js";
27
27
  import "./chunk-Q35YIDBV.js";
28
- import "./chunk-UZC7LDAQ.js";
28
+ import "./chunk-UJCVAWP7.js";
29
29
  import "./chunk-OWBRDNRZ.js";
30
30
  import "./chunk-G3T47CFV.js";
31
31
  import "./chunk-2H7UOFLK.js";
@@ -40,4 +40,4 @@ export {
40
40
  rewriteLine,
41
41
  splitBaselined
42
42
  };
43
- //# sourceMappingURL=pretty-2H57QVTY.js.map
43
+ //# sourceMappingURL=pretty-CXSDXNAS.js.map
@@ -9,22 +9,22 @@ import {
9
9
  renderTemplates,
10
10
  renderTools,
11
11
  toValidationResults
12
- } from "./chunk-H6FZ66XR.js";
12
+ } from "./chunk-YJOGUXGP.js";
13
13
  import "./chunk-GLP5PSXB.js";
14
14
  import "./chunk-CK7SKVHR.js";
15
15
  import "./chunk-TU2WUBVZ.js";
16
- import "./chunk-H2DLH2JI.js";
17
- import "./chunk-CYWHFSRT.js";
18
- import "./chunk-K3D6FPV6.js";
19
- import "./chunk-V46OILVC.js";
20
- import "./chunk-RLR4TKUZ.js";
21
- import "./chunk-C6OH6CNF.js";
22
- import "./chunk-JVTNMVYU.js";
16
+ import "./chunk-QRWGPQKO.js";
17
+ import "./chunk-6JSSEWBG.js";
18
+ import "./chunk-A5ULMVHQ.js";
19
+ import "./chunk-TK3FC4RF.js";
20
+ import "./chunk-M3W7J6MU.js";
21
+ import "./chunk-IDV6HJCB.js";
22
+ import "./chunk-57NEQRVO.js";
23
23
  import "./chunk-YEUYKR62.js";
24
24
  import "./chunk-RNVYGWIC.js";
25
25
  import "./chunk-MNH7QO4Z.js";
26
26
  import "./chunk-Q35YIDBV.js";
27
- import "./chunk-UZC7LDAQ.js";
27
+ import "./chunk-UJCVAWP7.js";
28
28
  import "./chunk-OWBRDNRZ.js";
29
29
  import "./chunk-G3T47CFV.js";
30
30
  import "./chunk-2H7UOFLK.js";
@@ -39,4 +39,4 @@ export {
39
39
  renderTools,
40
40
  toValidationResults
41
41
  };
42
- //# sourceMappingURL=reporters-N6GHXSS7.js.map
42
+ //# sourceMappingURL=reporters-HUY7UXFS.js.map
@@ -26,15 +26,15 @@ import {
26
26
  renderSarif,
27
27
  ruleIdFor,
28
28
  xmlEscape
29
- } from "./chunk-C6OH6CNF.js";
30
- import "./chunk-JVTNMVYU.js";
29
+ } from "./chunk-IDV6HJCB.js";
30
+ import "./chunk-57NEQRVO.js";
31
31
  import "./chunk-RNVYGWIC.js";
32
32
  import {
33
33
  escapeWorkflowCommandMessage,
34
34
  escapeWorkflowCommandProperty
35
35
  } from "./chunk-MNH7QO4Z.js";
36
36
  import "./chunk-Q35YIDBV.js";
37
- import "./chunk-UZC7LDAQ.js";
37
+ import "./chunk-UJCVAWP7.js";
38
38
  import "./chunk-OWBRDNRZ.js";
39
39
  import "./chunk-G3T47CFV.js";
40
40
  import "./chunk-2H7UOFLK.js";
@@ -68,4 +68,4 @@ export {
68
68
  ruleIdFor,
69
69
  xmlEscape
70
70
  };
71
- //# sourceMappingURL=reporters-UCNEV7PH.js.map
71
+ //# sourceMappingURL=reporters-K2VUKSAK.js.map
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runRun
4
- } from "./chunk-PHF3D7ER.js";
5
- import "./chunk-NWZ2SLYL.js";
4
+ } from "./chunk-37LP5HMZ.js";
5
+ import "./chunk-3VK37OR2.js";
6
6
  import "./chunk-LJ2RDH3F.js";
7
7
  import "./chunk-YNHZHSSM.js";
8
8
  import {
@@ -11,18 +11,18 @@ import {
11
11
  import "./chunk-ZXRAE55H.js";
12
12
  import "./chunk-SE4JN5XN.js";
13
13
  import "./chunk-TU2WUBVZ.js";
14
- import "./chunk-H2DLH2JI.js";
15
- import "./chunk-CYWHFSRT.js";
16
- import "./chunk-K3D6FPV6.js";
17
- import "./chunk-V46OILVC.js";
18
- import "./chunk-RLR4TKUZ.js";
19
- import "./chunk-C6OH6CNF.js";
20
- import "./chunk-JVTNMVYU.js";
14
+ import "./chunk-QRWGPQKO.js";
15
+ import "./chunk-6JSSEWBG.js";
16
+ import "./chunk-A5ULMVHQ.js";
17
+ import "./chunk-TK3FC4RF.js";
18
+ import "./chunk-M3W7J6MU.js";
19
+ import "./chunk-IDV6HJCB.js";
20
+ import "./chunk-57NEQRVO.js";
21
21
  import "./chunk-YEUYKR62.js";
22
22
  import "./chunk-RNVYGWIC.js";
23
23
  import "./chunk-MNH7QO4Z.js";
24
24
  import "./chunk-Q35YIDBV.js";
25
- import "./chunk-UZC7LDAQ.js";
25
+ import "./chunk-UJCVAWP7.js";
26
26
  import "./chunk-OWBRDNRZ.js";
27
27
  import "./chunk-G3T47CFV.js";
28
28
  import "./chunk-2H7UOFLK.js";
@@ -30,4 +30,4 @@ export {
30
30
  render,
31
31
  runRun
32
32
  };
33
- //# sourceMappingURL=run-XZDAREJE.js.map
33
+ //# sourceMappingURL=run-3DYJNRIG.js.map
@@ -4,7 +4,7 @@ import {
4
4
  renderFormatsJson,
5
5
  renderGetJson,
6
6
  renderListJson
7
- } from "./chunk-X3BPBDGQ.js";
7
+ } from "./chunk-JCDXE76J.js";
8
8
  import {
9
9
  renderFindingsPretty,
10
10
  renderFormatsPretty,
@@ -12,7 +12,7 @@ import {
12
12
  renderListPretty,
13
13
  renderValeWiring,
14
14
  renderWritePretty
15
- } from "./chunk-2U3ORT6D.js";
15
+ } from "./chunk-2B7ZNTPV.js";
16
16
  import {
17
17
  FINDING_FORMATS,
18
18
  JUNIT_CLASSNAME,
@@ -24,14 +24,14 @@ import {
24
24
  runCheck,
25
25
  summarize,
26
26
  toResults
27
- } from "./chunk-YYBFZLAJ.js";
27
+ } from "./chunk-EPH54CAY.js";
28
28
  import {
29
29
  LIST_FORMATS,
30
30
  runList
31
- } from "./chunk-ERMSO34F.js";
31
+ } from "./chunk-PNPQTHBT.js";
32
32
  import {
33
33
  renderFindingsGithub
34
- } from "./chunk-3AFUD75K.js";
34
+ } from "./chunk-MMTSSTG7.js";
35
35
  import {
36
36
  DITA_HOLDS,
37
37
  DOCBOOK_HOLDS,
@@ -62,31 +62,31 @@ import {
62
62
  valeConfigFor,
63
63
  xmlAttribute,
64
64
  xmlText
65
- } from "./chunk-WQE54PNH.js";
65
+ } from "./chunk-PU6DFJMY.js";
66
66
  import "./chunk-77AINBYM.js";
67
67
  import "./chunk-IKEWBMCN.js";
68
68
  import "./chunk-TU2WUBVZ.js";
69
- import "./chunk-H2DLH2JI.js";
69
+ import "./chunk-QRWGPQKO.js";
70
70
  import {
71
71
  registerTermLabelSource
72
- } from "./chunk-CYWHFSRT.js";
73
- import "./chunk-K3D6FPV6.js";
72
+ } from "./chunk-6JSSEWBG.js";
73
+ import "./chunk-A5ULMVHQ.js";
74
74
  import {
75
75
  collect,
76
76
  readStdin,
77
77
  splitList
78
- } from "./chunk-V46OILVC.js";
79
- import "./chunk-RLR4TKUZ.js";
78
+ } from "./chunk-TK3FC4RF.js";
79
+ import "./chunk-M3W7J6MU.js";
80
80
  import {
81
81
  OMITTED_WHEN_CLEAN,
82
82
  renderJunit,
83
83
  renderSarif
84
- } from "./chunk-C6OH6CNF.js";
84
+ } from "./chunk-IDV6HJCB.js";
85
85
  import {
86
86
  STDIN_TOKEN,
87
87
  extractorByName,
88
88
  extractorForExtension
89
- } from "./chunk-JVTNMVYU.js";
89
+ } from "./chunk-57NEQRVO.js";
90
90
  import {
91
91
  fail
92
92
  } from "./chunk-YEUYKR62.js";
@@ -99,7 +99,7 @@ import {
99
99
  } from "./chunk-Q35YIDBV.js";
100
100
  import {
101
101
  package_default
102
- } from "./chunk-UZC7LDAQ.js";
102
+ } from "./chunk-UJCVAWP7.js";
103
103
  import "./chunk-OWBRDNRZ.js";
104
104
  import {
105
105
  errorMessage
@@ -1589,4 +1589,4 @@ export {
1589
1589
  TermError,
1590
1590
  buildProgram
1591
1591
  };
1592
- //# sourceMappingURL=term-5ICGKPC3.js.map
1592
+ //# sourceMappingURL=term-BIQUPMOR.js.map
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runValidate
4
- } from "./chunk-V46OILVC.js";
5
- import "./chunk-RLR4TKUZ.js";
6
- import "./chunk-JVTNMVYU.js";
4
+ } from "./chunk-TK3FC4RF.js";
5
+ import "./chunk-M3W7J6MU.js";
6
+ import "./chunk-57NEQRVO.js";
7
7
  import "./chunk-YEUYKR62.js";
8
8
  import "./chunk-Q35YIDBV.js";
9
- import "./chunk-UZC7LDAQ.js";
9
+ import "./chunk-UJCVAWP7.js";
10
10
  import "./chunk-OWBRDNRZ.js";
11
11
  import "./chunk-G3T47CFV.js";
12
12
  import "./chunk-2H7UOFLK.js";
13
13
  export {
14
14
  runValidate
15
15
  };
16
- //# sourceMappingURL=validate-GQRM77YN.js.map
16
+ //# sourceMappingURL=validate-53RKM2XG.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hawkeyexl/manni",
3
- "version": "4.4.0",
3
+ "version": "4.4.1",
4
4
  "description": "One command line for documentation that is meant to be checked. `manni meta` validates the presence and format of document metadata (Markdown frontmatter and more) against JSON Schema, built for CI. Formerly docmeta.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "manni",
3
3
  "description": "Checks the docs an agent edits against everything the repository set up in manni, blocks on errors, and records the session manifest tracevals reads.",
4
- "version": "4.4.0",
4
+ "version": "4.4.1",
5
5
  "author": { "name": "hawkeyexl" },
6
6
  "homepage": "https://hawkeyexl.github.io/manni/",
7
7
  "repository": "https://github.com/hawkeyexl/manni",
@@ -6,7 +6,12 @@
6
6
  "hooks": [
7
7
  {
8
8
  "type": "command",
9
- "command": "npx --no @hawkeyexl/manni tracevals capture",
9
+ "command": "node",
10
+ "args": [
11
+ "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs",
12
+ "tracevals",
13
+ "capture"
14
+ ],
10
15
  "timeout": 60,
11
16
  "statusMessage": "Recording the session manifest…"
12
17
  }
@@ -16,7 +21,11 @@
16
21
  "hooks": [
17
22
  {
18
23
  "type": "command",
19
- "command": "npx --no @hawkeyexl/manni status",
24
+ "command": "node",
25
+ "args": [
26
+ "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs",
27
+ "status"
28
+ ],
20
29
  "timeout": 30,
21
30
  "statusMessage": "Reading what manni checks here…"
22
31
  }
@@ -29,7 +38,11 @@
29
38
  "hooks": [
30
39
  {
31
40
  "type": "command",
32
- "command": "npx --no @hawkeyexl/manni check",
41
+ "command": "node",
42
+ "args": [
43
+ "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs",
44
+ "check"
45
+ ],
33
46
  "timeout": 120,
34
47
  "statusMessage": "Checking the edited file…"
35
48
  }
@@ -41,7 +54,11 @@
41
54
  "hooks": [
42
55
  {
43
56
  "type": "command",
44
- "command": "npx --no @hawkeyexl/manni check",
57
+ "command": "node",
58
+ "args": [
59
+ "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs",
60
+ "check"
61
+ ],
45
62
  "timeout": 600,
46
63
  "statusMessage": "Checking every file you changed…"
47
64
  }
@@ -0,0 +1,157 @@
1
+ // Runs the manni a hook should run, with the hook's arguments, stdin and
2
+ // exit code passed straight through.
3
+ //
4
+ // In order:
5
+ // 1. the project's own build when the project is @hawkeyexl/manni, since a
6
+ // package cannot depend on itself. Before it is built, nothing runs;
7
+ // 2. the copy the project installed, found the way Node finds a dependency,
8
+ // by walking up through node_modules;
9
+ // 3. a global install in npm's default global directory;
10
+ // and only where the project has a manni config:
11
+ // 4. a global install wherever `npm root -g` says, which costs an npm start;
12
+ // 5. `npx --yes` at the plugin's own version, which downloads it into npx's
13
+ // cache once.
14
+ // Otherwise it exits quietly. No step before 5 touches the network:
15
+ // `npx --no` would ask the registry on every hook in every repository
16
+ // without manni. Running node on a found bin also skips npx's start-up.
17
+ //
18
+ // Plain ESM with no dependencies: the plugin ships as files, not a package.
19
+ import { spawn, spawnSync } from "node:child_process";
20
+ import { existsSync, readFileSync } from "node:fs";
21
+ import { dirname, join, resolve } from "node:path";
22
+ import { fileURLToPath } from "node:url";
23
+
24
+ const PACKAGE = "@hawkeyexl/manni";
25
+ const project = resolve(process.env.CLAUDE_PROJECT_DIR ?? process.cwd());
26
+ const windows = process.platform === "win32";
27
+
28
+ function readJson(file) {
29
+ try {
30
+ return JSON.parse(readFileSync(file, "utf8"));
31
+ } catch {
32
+ return undefined;
33
+ }
34
+ }
35
+
36
+ /** The `manni` bin a package.json names, when that file exists. */
37
+ function binOf(manifest) {
38
+ const bin = readJson(manifest)?.bin;
39
+ const rel = typeof bin === "string" ? bin : bin?.manni;
40
+ if (typeof rel !== "string") return undefined;
41
+ const path = join(dirname(manifest), rel);
42
+ return existsSync(path) ? path : undefined;
43
+ }
44
+
45
+ /** Each directory from the project up to the root. */
46
+ function* upward(dir) {
47
+ for (let d = dir; ; d = dirname(d)) {
48
+ yield d;
49
+ if (dirname(d) === d) return;
50
+ }
51
+ }
52
+
53
+ /**
54
+ * In manni's own checkout, its bin once built and `false` before: the
55
+ * published release would check the branch with code it does not have.
56
+ * `undefined` anywhere else.
57
+ */
58
+ function ownBuild() {
59
+ for (const d of upward(project)) {
60
+ const manifest = join(d, "package.json");
61
+ if (!existsSync(manifest)) continue;
62
+ // The nearest package.json decides: this project is manni or it is not.
63
+ return readJson(manifest)?.name === PACKAGE ? (binOf(manifest) ?? false) : undefined;
64
+ }
65
+ return undefined;
66
+ }
67
+
68
+ function installed() {
69
+ for (const d of upward(project)) {
70
+ const manifest = join(d, "node_modules", PACKAGE, "package.json");
71
+ if (existsSync(manifest)) return binOf(manifest);
72
+ }
73
+ return undefined;
74
+ }
75
+
76
+ /** A global install in `root`, the directory global packages live in. */
77
+ function globalIn(root) {
78
+ const manifest = join(root, PACKAGE, "package.json");
79
+ return root !== "" && existsSync(manifest) ? binOf(manifest) : undefined;
80
+ }
81
+
82
+ /** Where npm puts global packages by default, worked out without starting npm. */
83
+ function defaultGlobalRoot() {
84
+ const prefix =
85
+ process.env.npm_config_prefix ?? (windows ? dirname(process.execPath) : dirname(dirname(process.execPath)));
86
+ return windows ? join(prefix, "node_modules") : join(prefix, "lib", "node_modules");
87
+ }
88
+
89
+ /** What `npm root -g` says, for a prefix set only in an npmrc. Costs an npm start-up. */
90
+ function npmGlobalRoot() {
91
+ // npm is a .cmd shim on Windows, which only a shell can start.
92
+ const out = spawnSync(windows ? "npm root -g" : "npm", windows ? [] : ["root", "-g"], {
93
+ encoding: "utf8",
94
+ shell: windows,
95
+ windowsHide: true,
96
+ });
97
+ return out.status === 0 ? out.stdout.trim() : "";
98
+ }
99
+
100
+ /**
101
+ * npx, with no shell between it and the arguments: a skill passes the
102
+ * agent's paths, which may hold a space or a cmd metacharacter. On Windows
103
+ * npx is a .cmd shim, so its own script runs under node instead.
104
+ */
105
+ function npx(words) {
106
+ const script = join(dirname(process.execPath), "node_modules", "npm", "bin", "npx-cli.js");
107
+ if (windows && existsSync(script)) return spawn(process.execPath, [script, ...words], { stdio: "inherit" });
108
+ if (!windows) return spawn("npx", words, { stdio: "inherit" });
109
+ // Last resort on an unusual Windows layout: each word quoted for cmd.
110
+ const quoted = words.map((w) => `"${w.replaceAll('"', '""')}"`).join(" ");
111
+ return spawn(`npx ${quoted}`, { stdio: "inherit", shell: true });
112
+ }
113
+
114
+ /** Whether the project has a manni config, found as manni finds one: up to the repository root. */
115
+ function configured() {
116
+ for (const d of upward(project)) {
117
+ if (existsSync(join(d, "manni.config.yaml")) || existsSync(join(d, "manni.config.yml"))) return true;
118
+ if (existsSync(join(d, ".git"))) return false;
119
+ }
120
+ return false;
121
+ }
122
+
123
+ /**
124
+ * The plugin's own version, which the release keeps equal to manni's. Every
125
+ * installed plugin carries its plugin.json; were it missing, the caller asks
126
+ * for the bare package, so npx fetches the latest release, not a match.
127
+ */
128
+ function pluginVersion() {
129
+ const manifest = join(dirname(fileURLToPath(import.meta.url)), "..", ".claude-plugin", "plugin.json");
130
+ const version = readJson(manifest)?.version;
131
+ return typeof version === "string" ? version : undefined;
132
+ }
133
+
134
+ function launch() {
135
+ const args = process.argv.slice(2);
136
+ const own = ownBuild();
137
+ if (own === false) return undefined;
138
+ const run = (cli) => spawn(process.execPath, [cli, ...args], { stdio: "inherit" });
139
+ const found = own ?? installed() ?? globalIn(defaultGlobalRoot());
140
+ if (found !== undefined) return run(found);
141
+ // Without a config manni has nothing to do here, so neither an npm
142
+ // start-up nor a download is worth paying for.
143
+ if (!configured()) return undefined;
144
+ const configuredGlobal = globalIn(npmGlobalRoot());
145
+ if (configuredGlobal !== undefined) return run(configuredGlobal);
146
+ const version = pluginVersion();
147
+ return npx(["--yes", version === undefined ? PACKAGE : `${PACKAGE}@${version}`, ...args]);
148
+ }
149
+
150
+ const child = launch();
151
+ if (child === undefined) process.exit(0);
152
+ child.on("error", () => {
153
+ process.exitCode = 1;
154
+ });
155
+ child.on("exit", (code) => {
156
+ process.exitCode = code ?? 1;
157
+ });
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  name: check
3
3
  description: Run manni check over the repository and walk the findings. Use when asked to check, verify or validate the docs, or when a hook reports manni errors.
4
- allowed-tools: Bash(npx manni *), Bash(npx --no @hawkeyexl/manni *)
4
+ allowed-tools: Bash(npx manni *), Bash(node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" *)
5
5
  ---
6
6
 
7
7
  # Check the docs with manni
8
8
 
9
9
  `manni check` runs every check the repository set up, and nothing else.
10
10
 
11
- 1. Run `npx --no @hawkeyexl/manni status`. It lists each domain as in play, not set up or not checked.
12
- 2. Run `npx --no @hawkeyexl/manni check`. Add paths to check only those files, as in `manni check docs/limits.md`.
11
+ 1. Run `node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" status`. It lists each domain as in play, not set up or not checked.
12
+ 2. Run `node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" check`. Add paths to check only those files, as in `manni check docs/limits.md`.
13
13
  3. Read the report. Each section names the check that found the problem, such as `meta validate` or `cite check`.
14
14
  4. Only errors fail the run. Warnings and notices are information.
15
15
  5. For each error, follow the `fix` skill. Do not guess a repair from the message alone.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: evals
3
3
  description: Author evals for docs pages or for agent artifacts such as CLAUDE.md, skills and subagents. Use when asked to add, propose or promote evals.
4
- allowed-tools: Bash(npx manni *), Bash(npx --no @hawkeyexl/manni *)
4
+ allowed-tools: Bash(npx manni *), Bash(node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" *)
5
5
  ---
6
6
 
7
7
  # Author evals
@@ -10,7 +10,7 @@ Evals declare what a page or an agent artifact must satisfy. Propose them, show
10
10
 
11
11
  ## Pages
12
12
 
13
- 1. Run `npx --no @hawkeyexl/manni docevals list` to see the evals each page resolves.
13
+ 1. Run `node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" docevals list` to see the evals each page resolves.
14
14
  2. Run `manni docevals fill <path>` to have the model propose frontmatter evals. It writes only proposals above the confidence threshold.
15
15
  3. Run `manni docevals generate <path>` to write check scripts for command evals that have an assertion but no command.
16
16
  4. Run `manni docevals promote` to find model-graded evals that a deterministic check can express. Add `--write` to convert them.
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: fix
3
3
  description: Repair manni findings in docs. Use after manni check or a hook reports errors in metadata, citations, terms, structure, evals or the graph.
4
- allowed-tools: Bash(npx manni *), Bash(npx --no @hawkeyexl/manni *)
4
+ allowed-tools: Bash(npx manni *), Bash(node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" *)
5
5
  ---
6
6
 
7
7
  # Repair manni findings
8
8
 
9
- Start from the report of `npx --no @hawkeyexl/manni check`. Each section names the check. Match it to a repair below.
9
+ Start from the report of `node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" check`. Each section names the check. Match it to a repair below.
10
10
 
11
11
  ## Guardrails
12
12
 
@@ -19,7 +19,7 @@ Start from the report of `npx --no @hawkeyexl/manni check`. Each section names t
19
19
 
20
20
  The finding names a field path, such as `/description`. Edit the page frontmatter so the field is present and valid.
21
21
 
22
- Some fields are managed. Stamp them from history with `npx --no @hawkeyexl/manni meta derive <path>`. Add `--check` to see which are stale without writing.
22
+ Some fields are managed. Stamp them from history with `node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" meta derive <path>`. Add `--check` to see which are stale without writing.
23
23
  Do not hand-edit a managed field. `derive` writes it.
24
24
 
25
25
  ## cite check
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: setup
3
3
  description: Set up manni in a repository. Use when there is no manni.config.yaml, when the user asks to add manni, or when manni check reports that nothing is set up.
4
- allowed-tools: Bash(npm *), Bash(npx manni *), Bash(npx --no @hawkeyexl/manni *)
4
+ allowed-tools: Bash(npm *), Bash(npx manni *), Bash(node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" *)
5
5
  ---
6
6
 
7
7
  # Set up manni
@@ -35,7 +35,7 @@ collections:
35
35
  Run `manni docevals init` only when no config file exists. It refuses an existing one. With a config in place, write the `docevals:` section by hand.
36
36
  Citations and terms need no section. They are in play when the pages carry them.
37
37
 
38
- 5. Run `npx --no @hawkeyexl/manni status` and show the user the table.
39
- 6. Run `npx --no @hawkeyexl/manni check`. Report the result and use the `fix` skill for any error.
38
+ 5. Run `node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" status` and show the user the table.
39
+ 6. Run `node "${CLAUDE_PLUGIN_ROOT}/hooks/manni.mjs" check`. Report the result and use the `fix` skill for any error.
40
40
 
41
41
  Do not add a section for a domain the user declined. A section that exists turns that domain's checks on.