@hawkeyexl/manni 4.4.0 → 4.5.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 (169) hide show
  1. package/README.md +1 -1
  2. package/dist/{batch-DFRCLY77.js → batch-GOE3UXOD.js} +11 -11
  3. package/dist/{build-Q5C6SX5J.js → build-M7BMEHL2.js} +13 -11
  4. package/dist/{calibrate-XQILKXS3.js → calibrate-6RRAILUY.js} +12 -12
  5. package/dist/{capture-JQMOC3BW.js → capture-RJPQ6B4N.js} +12 -12
  6. package/dist/{check-NFZQLJKN.js → check-BQD64X3N.js} +11 -11
  7. package/dist/{check-HYNGXYJV.js → check-ESNS7ZBC.js} +4 -4
  8. package/dist/{check-U54XV6BP.js → check-RQIIIURI.js} +12 -12
  9. package/dist/{chunk-7QMCHA4N.js → chunk-3R5Y3XOL.js} +3 -3
  10. package/dist/{chunk-K3D6FPV6.js → chunk-3YHAYXBC.js} +2 -2
  11. package/dist/{chunk-JVTNMVYU.js → chunk-527HHQPS.js} +4 -4
  12. package/dist/{chunk-JVTNMVYU.js.map → chunk-527HHQPS.js.map} +1 -1
  13. package/dist/{chunk-6OYEI2VV.js → chunk-52PDIZKV.js} +3 -3
  14. package/dist/{chunk-UZC7LDAQ.js → chunk-6XTQDFGP.js} +2 -2
  15. package/dist/{chunk-UZC7LDAQ.js.map → chunk-6XTQDFGP.js.map} +1 -1
  16. package/dist/{chunk-NWZ2SLYL.js → chunk-7OQAU4EA.js} +5 -5
  17. package/dist/{chunk-5YXBLLAC.js → chunk-7ZUCEMCY.js} +8 -8
  18. package/dist/{chunk-M2JCK5F6.js → chunk-B7XUEQF3.js} +13 -2
  19. package/dist/chunk-B7XUEQF3.js.map +1 -0
  20. package/dist/{chunk-MYMBCTDE.js → chunk-BOIF2XGG.js} +2 -2
  21. package/dist/{chunk-H6FZ66XR.js → chunk-C3KI45RF.js} +8 -6
  22. package/dist/{chunk-H6FZ66XR.js.map → chunk-C3KI45RF.js.map} +1 -1
  23. package/dist/{chunk-3AFUD75K.js → chunk-C6HZ6C5T.js} +2 -2
  24. package/dist/{chunk-XYLUCIKQ.js → chunk-CP4ZM43V.js} +2 -2
  25. package/dist/chunk-DE7JSWXV.js +2462 -0
  26. package/dist/chunk-DE7JSWXV.js.map +1 -0
  27. package/dist/{chunk-YTCZRLTU.js → chunk-DX32P2DT.js} +2 -2
  28. package/dist/{chunk-644JVKJ4.js → chunk-EL2BZTDL.js} +137 -50
  29. package/dist/chunk-EL2BZTDL.js.map +1 -0
  30. package/dist/{chunk-JOHKIAVH.js → chunk-ELZ2IIOF.js} +332 -2522
  31. package/dist/chunk-ELZ2IIOF.js.map +1 -0
  32. package/dist/{chunk-OBFENF3U.js → chunk-F2OVHJNC.js} +10 -10
  33. package/dist/{chunk-5KHIFVD2.js → chunk-FLF6AECQ.js} +7 -7
  34. package/dist/{chunk-77HX34KD.js → chunk-GAZFKZHM.js} +4 -4
  35. package/dist/{chunk-KCGV52AM.js → chunk-HQFVJDEN.js} +7 -7
  36. package/dist/{chunk-RLR4TKUZ.js → chunk-HVFR66GQ.js} +2 -2
  37. package/dist/{chunk-2U3ORT6D.js → chunk-IA7BMIPE.js} +2 -2
  38. package/dist/{chunk-LAKAWRV5.js → chunk-JQU7FHYH.js} +6 -6
  39. package/dist/{chunk-YIL4XLLJ.js → chunk-K3U5F2QT.js} +183 -31
  40. package/dist/chunk-K3U5F2QT.js.map +1 -0
  41. package/dist/{chunk-X3BPBDGQ.js → chunk-MZC62HPZ.js} +2 -2
  42. package/dist/{chunk-V46OILVC.js → chunk-NAZRLJAK.js} +3 -3
  43. package/dist/{chunk-BUXDLRDT.js → chunk-NGK3N6F2.js} +3 -3
  44. package/dist/{chunk-WQE54PNH.js → chunk-NN4ASVTY.js} +3 -3
  45. package/dist/{chunk-PCHZY2I7.js → chunk-OIZ3XMKB.js} +13 -11
  46. package/dist/chunk-OIZ3XMKB.js.map +1 -0
  47. package/dist/{chunk-CYWHFSRT.js → chunk-QCBICNKC.js} +6 -6
  48. package/dist/chunk-QCBICNKC.js.map +1 -0
  49. package/dist/{chunk-YFQBFNQS.js → chunk-QLUMKWQQ.js} +3 -3
  50. package/dist/{chunk-YYBFZLAJ.js → chunk-QY3DOZMS.js} +4 -4
  51. package/dist/{chunk-IEQHSCZG.js → chunk-SJO2FTPG.js} +6 -6
  52. package/dist/{chunk-ERMSO34F.js → chunk-SNEHX4VE.js} +2 -2
  53. package/dist/{chunk-252LNOEG.js → chunk-TA42STP7.js} +4 -4
  54. package/dist/{chunk-CK7SKVHR.js → chunk-TBAMBLF3.js} +3 -12
  55. package/dist/chunk-TBAMBLF3.js.map +1 -0
  56. package/dist/{chunk-C6OH6CNF.js → chunk-TCC737IS.js} +3 -3
  57. package/dist/{chunk-H2DLH2JI.js → chunk-TVIX653Q.js} +3 -3
  58. package/dist/{chunk-G7NJSREW.js → chunk-UK2I3ACY.js} +3 -3
  59. package/dist/{chunk-XSLV76YK.js → chunk-XWFNO5PO.js} +3 -3
  60. package/dist/{chunk-PHF3D7ER.js → chunk-YA63PVWI.js} +5 -5
  61. package/dist/chunk-YGFIQ6Y5.js +17 -0
  62. package/dist/chunk-YGFIQ6Y5.js.map +1 -0
  63. package/dist/{chunk-MYC3O5EJ.js → chunk-ZX43SRZR.js} +3 -3
  64. package/dist/{cli-URZQXL4K.js → cli-6PGVHP7Y.js} +15 -15
  65. package/dist/{cli-2QPR2OZG.js → cli-AAG3N4NB.js} +16 -16
  66. package/dist/{cli-4IOPGZHR.js → cli-E3H6ZP4I.js} +2 -2
  67. package/dist/{cli-OFPZ5MAS.js → cli-HUIMNJT6.js} +20 -15
  68. package/dist/cli-HUIMNJT6.js.map +1 -0
  69. package/dist/{cli-LJLLIQB2.js → cli-MHTYPVOD.js} +16 -16
  70. package/dist/{cli-5FL73WHA.js → cli-PRZHQ3QB.js} +15 -13
  71. package/dist/{cli-5FL73WHA.js.map → cli-PRZHQ3QB.js.map} +1 -1
  72. package/dist/{cli-SRHFUZHA.js → cli-QKIJOXGW.js} +13 -13
  73. package/dist/{cli-C262QOWM.js → cli-TYGOHJOJ.js} +25 -25
  74. package/dist/{cli-SHSMSRQY.js → cli-YW6VWBHX.js} +9 -9
  75. package/dist/cli.js +11 -11
  76. package/dist/docmeta.js +8 -8
  77. package/dist/{github-QXL3VMK2.js → github-3WMSTNTK.js} +13 -13
  78. package/dist/{github-FE6KCNYJ.js → github-OXSJQ4PS.js} +11 -11
  79. package/dist/index.d.ts +30 -8
  80. package/dist/index.js +42 -38
  81. package/dist/index.js.map +1 -1
  82. package/dist/{json-SGZ6ZRFD.js → json-4DCKDGUV.js} +11 -11
  83. package/dist/lint-YDHVVZHT.js +30 -0
  84. package/dist/{list-7BKNYPSB.js → list-3ZO2NIYO.js} +11 -11
  85. package/dist/{list-6BAXTZUM.js → list-EJH6VAOW.js} +11 -11
  86. package/dist/{page-3U2GCFNE.js → page-QEDB7EVU.js} +10 -10
  87. package/dist/{pretty-N6DO4OOL.js → pretty-5DGEBZSV.js} +11 -11
  88. package/dist/{pretty-2H57QVTY.js → pretty-SQX33UM2.js} +12 -12
  89. package/dist/{reporters-N6GHXSS7.js → reporters-OHSI3RMV.js} +12 -11
  90. package/dist/{reporters-UCNEV7PH.js → reporters-YELDDYJD.js} +4 -4
  91. package/dist/{run-XZDAREJE.js → run-IP6NZHAG.js} +11 -11
  92. package/dist/{term-5ICGKPC3.js → term-2WMDZ4PY.js} +15 -15
  93. package/dist/{validate-GQRM77YN.js → validate-G6HH3YXL.js} +5 -5
  94. package/package.json +1 -1
  95. package/plugin/manni/.claude-plugin/plugin.json +1 -1
  96. package/plugin/manni/hooks/hooks.json +21 -4
  97. package/plugin/manni/hooks/manni.mjs +157 -0
  98. package/plugin/manni/skills/check/SKILL.md +3 -3
  99. package/plugin/manni/skills/evals/SKILL.md +2 -2
  100. package/plugin/manni/skills/fix/SKILL.md +3 -3
  101. package/plugin/manni/skills/setup/SKILL.md +3 -3
  102. package/dist/chunk-644JVKJ4.js.map +0 -1
  103. package/dist/chunk-CK7SKVHR.js.map +0 -1
  104. package/dist/chunk-CYWHFSRT.js.map +0 -1
  105. package/dist/chunk-JOHKIAVH.js.map +0 -1
  106. package/dist/chunk-M2JCK5F6.js.map +0 -1
  107. package/dist/chunk-PCHZY2I7.js.map +0 -1
  108. package/dist/chunk-YIL4XLLJ.js.map +0 -1
  109. package/dist/cli-OFPZ5MAS.js.map +0 -1
  110. package/dist/lint-DL4LJRAY.js +0 -28
  111. /package/dist/{batch-DFRCLY77.js.map → batch-GOE3UXOD.js.map} +0 -0
  112. /package/dist/{build-Q5C6SX5J.js.map → build-M7BMEHL2.js.map} +0 -0
  113. /package/dist/{calibrate-XQILKXS3.js.map → calibrate-6RRAILUY.js.map} +0 -0
  114. /package/dist/{capture-JQMOC3BW.js.map → capture-RJPQ6B4N.js.map} +0 -0
  115. /package/dist/{check-HYNGXYJV.js.map → check-BQD64X3N.js.map} +0 -0
  116. /package/dist/{check-NFZQLJKN.js.map → check-ESNS7ZBC.js.map} +0 -0
  117. /package/dist/{check-U54XV6BP.js.map → check-RQIIIURI.js.map} +0 -0
  118. /package/dist/{chunk-7QMCHA4N.js.map → chunk-3R5Y3XOL.js.map} +0 -0
  119. /package/dist/{chunk-K3D6FPV6.js.map → chunk-3YHAYXBC.js.map} +0 -0
  120. /package/dist/{chunk-6OYEI2VV.js.map → chunk-52PDIZKV.js.map} +0 -0
  121. /package/dist/{chunk-NWZ2SLYL.js.map → chunk-7OQAU4EA.js.map} +0 -0
  122. /package/dist/{chunk-5YXBLLAC.js.map → chunk-7ZUCEMCY.js.map} +0 -0
  123. /package/dist/{chunk-MYMBCTDE.js.map → chunk-BOIF2XGG.js.map} +0 -0
  124. /package/dist/{chunk-3AFUD75K.js.map → chunk-C6HZ6C5T.js.map} +0 -0
  125. /package/dist/{chunk-XYLUCIKQ.js.map → chunk-CP4ZM43V.js.map} +0 -0
  126. /package/dist/{chunk-YTCZRLTU.js.map → chunk-DX32P2DT.js.map} +0 -0
  127. /package/dist/{chunk-OBFENF3U.js.map → chunk-F2OVHJNC.js.map} +0 -0
  128. /package/dist/{chunk-5KHIFVD2.js.map → chunk-FLF6AECQ.js.map} +0 -0
  129. /package/dist/{chunk-77HX34KD.js.map → chunk-GAZFKZHM.js.map} +0 -0
  130. /package/dist/{chunk-KCGV52AM.js.map → chunk-HQFVJDEN.js.map} +0 -0
  131. /package/dist/{chunk-RLR4TKUZ.js.map → chunk-HVFR66GQ.js.map} +0 -0
  132. /package/dist/{chunk-2U3ORT6D.js.map → chunk-IA7BMIPE.js.map} +0 -0
  133. /package/dist/{chunk-LAKAWRV5.js.map → chunk-JQU7FHYH.js.map} +0 -0
  134. /package/dist/{chunk-X3BPBDGQ.js.map → chunk-MZC62HPZ.js.map} +0 -0
  135. /package/dist/{chunk-V46OILVC.js.map → chunk-NAZRLJAK.js.map} +0 -0
  136. /package/dist/{chunk-BUXDLRDT.js.map → chunk-NGK3N6F2.js.map} +0 -0
  137. /package/dist/{chunk-WQE54PNH.js.map → chunk-NN4ASVTY.js.map} +0 -0
  138. /package/dist/{chunk-YFQBFNQS.js.map → chunk-QLUMKWQQ.js.map} +0 -0
  139. /package/dist/{chunk-YYBFZLAJ.js.map → chunk-QY3DOZMS.js.map} +0 -0
  140. /package/dist/{chunk-IEQHSCZG.js.map → chunk-SJO2FTPG.js.map} +0 -0
  141. /package/dist/{chunk-ERMSO34F.js.map → chunk-SNEHX4VE.js.map} +0 -0
  142. /package/dist/{chunk-252LNOEG.js.map → chunk-TA42STP7.js.map} +0 -0
  143. /package/dist/{chunk-C6OH6CNF.js.map → chunk-TCC737IS.js.map} +0 -0
  144. /package/dist/{chunk-H2DLH2JI.js.map → chunk-TVIX653Q.js.map} +0 -0
  145. /package/dist/{chunk-G7NJSREW.js.map → chunk-UK2I3ACY.js.map} +0 -0
  146. /package/dist/{chunk-XSLV76YK.js.map → chunk-XWFNO5PO.js.map} +0 -0
  147. /package/dist/{chunk-PHF3D7ER.js.map → chunk-YA63PVWI.js.map} +0 -0
  148. /package/dist/{chunk-MYC3O5EJ.js.map → chunk-ZX43SRZR.js.map} +0 -0
  149. /package/dist/{cli-URZQXL4K.js.map → cli-6PGVHP7Y.js.map} +0 -0
  150. /package/dist/{cli-2QPR2OZG.js.map → cli-AAG3N4NB.js.map} +0 -0
  151. /package/dist/{cli-4IOPGZHR.js.map → cli-E3H6ZP4I.js.map} +0 -0
  152. /package/dist/{cli-LJLLIQB2.js.map → cli-MHTYPVOD.js.map} +0 -0
  153. /package/dist/{cli-SRHFUZHA.js.map → cli-QKIJOXGW.js.map} +0 -0
  154. /package/dist/{cli-C262QOWM.js.map → cli-TYGOHJOJ.js.map} +0 -0
  155. /package/dist/{cli-SHSMSRQY.js.map → cli-YW6VWBHX.js.map} +0 -0
  156. /package/dist/{github-FE6KCNYJ.js.map → github-3WMSTNTK.js.map} +0 -0
  157. /package/dist/{github-QXL3VMK2.js.map → github-OXSJQ4PS.js.map} +0 -0
  158. /package/dist/{json-SGZ6ZRFD.js.map → json-4DCKDGUV.js.map} +0 -0
  159. /package/dist/{lint-DL4LJRAY.js.map → lint-YDHVVZHT.js.map} +0 -0
  160. /package/dist/{list-6BAXTZUM.js.map → list-3ZO2NIYO.js.map} +0 -0
  161. /package/dist/{list-7BKNYPSB.js.map → list-EJH6VAOW.js.map} +0 -0
  162. /package/dist/{page-3U2GCFNE.js.map → page-QEDB7EVU.js.map} +0 -0
  163. /package/dist/{pretty-2H57QVTY.js.map → pretty-5DGEBZSV.js.map} +0 -0
  164. /package/dist/{pretty-N6DO4OOL.js.map → pretty-SQX33UM2.js.map} +0 -0
  165. /package/dist/{reporters-N6GHXSS7.js.map → reporters-OHSI3RMV.js.map} +0 -0
  166. /package/dist/{reporters-UCNEV7PH.js.map → reporters-YELDDYJD.js.map} +0 -0
  167. /package/dist/{run-XZDAREJE.js.map → run-IP6NZHAG.js.map} +0 -0
  168. /package/dist/{term-5ICGKPC3.js.map → term-2WMDZ4PY.js.map} +0 -0
  169. /package/dist/{validate-GQRM77YN.js.map → validate-G6HH3YXL.js.map} +0 -0
@@ -2,23 +2,23 @@
2
2
  import {
3
3
  LIST_FORMATS,
4
4
  runList
5
- } from "./chunk-ERMSO34F.js";
6
- import "./chunk-WQE54PNH.js";
5
+ } from "./chunk-SNEHX4VE.js";
6
+ import "./chunk-NN4ASVTY.js";
7
7
  import "./chunk-77AINBYM.js";
8
8
  import "./chunk-IKEWBMCN.js";
9
9
  import "./chunk-TU2WUBVZ.js";
10
- import "./chunk-H2DLH2JI.js";
11
- import "./chunk-CYWHFSRT.js";
12
- import "./chunk-K3D6FPV6.js";
13
- import "./chunk-V46OILVC.js";
14
- import "./chunk-RLR4TKUZ.js";
15
- import "./chunk-C6OH6CNF.js";
16
- import "./chunk-JVTNMVYU.js";
10
+ import "./chunk-TVIX653Q.js";
11
+ import "./chunk-QCBICNKC.js";
12
+ import "./chunk-3YHAYXBC.js";
13
+ import "./chunk-NAZRLJAK.js";
14
+ import "./chunk-HVFR66GQ.js";
15
+ import "./chunk-TCC737IS.js";
16
+ import "./chunk-527HHQPS.js";
17
17
  import "./chunk-YEUYKR62.js";
18
18
  import "./chunk-RNVYGWIC.js";
19
19
  import "./chunk-MNH7QO4Z.js";
20
20
  import "./chunk-Q35YIDBV.js";
21
- import "./chunk-UZC7LDAQ.js";
21
+ import "./chunk-6XTQDFGP.js";
22
22
  import "./chunk-OWBRDNRZ.js";
23
23
  import "./chunk-G3T47CFV.js";
24
24
  import "./chunk-2H7UOFLK.js";
@@ -26,4 +26,4 @@ export {
26
26
  LIST_FORMATS,
27
27
  runList
28
28
  };
29
- //# sourceMappingURL=list-6BAXTZUM.js.map
29
+ //# sourceMappingURL=list-EJH6VAOW.js.map
@@ -9,21 +9,21 @@ import {
9
9
  pickExtractor,
10
10
  readPage,
11
11
  validateEntry
12
- } from "./chunk-G7NJSREW.js";
12
+ } from "./chunk-UK2I3ACY.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-TVIX653Q.js";
16
+ import "./chunk-QCBICNKC.js";
17
+ import "./chunk-3YHAYXBC.js";
18
+ import "./chunk-NAZRLJAK.js";
19
+ import "./chunk-HVFR66GQ.js";
20
+ import "./chunk-TCC737IS.js";
21
+ import "./chunk-527HHQPS.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-6XTQDFGP.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-QEDB7EVU.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-IA7BMIPE.js";
10
+ import "./chunk-NN4ASVTY.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-TVIX653Q.js";
15
+ import "./chunk-QCBICNKC.js";
16
+ import "./chunk-3YHAYXBC.js";
17
+ import "./chunk-NAZRLJAK.js";
18
+ import "./chunk-HVFR66GQ.js";
19
+ import "./chunk-TCC737IS.js";
20
+ import "./chunk-527HHQPS.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-6XTQDFGP.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-5DGEBZSV.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-NGK3N6F2.js";
13
+ import "./chunk-TA42STP7.js";
14
+ import "./chunk-UK2I3ACY.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-TVIX653Q.js";
18
+ import "./chunk-QCBICNKC.js";
19
+ import "./chunk-3YHAYXBC.js";
20
+ import "./chunk-NAZRLJAK.js";
21
+ import "./chunk-HVFR66GQ.js";
22
+ import "./chunk-TCC737IS.js";
23
+ import "./chunk-527HHQPS.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-6XTQDFGP.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-SQX33UM2.js.map
@@ -9,22 +9,23 @@ import {
9
9
  renderTemplates,
10
10
  renderTools,
11
11
  toValidationResults
12
- } from "./chunk-H6FZ66XR.js";
12
+ } from "./chunk-C3KI45RF.js";
13
13
  import "./chunk-GLP5PSXB.js";
14
- import "./chunk-CK7SKVHR.js";
14
+ import "./chunk-TBAMBLF3.js";
15
+ import "./chunk-YGFIQ6Y5.js";
15
16
  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";
17
+ import "./chunk-TVIX653Q.js";
18
+ import "./chunk-QCBICNKC.js";
19
+ import "./chunk-3YHAYXBC.js";
20
+ import "./chunk-NAZRLJAK.js";
21
+ import "./chunk-HVFR66GQ.js";
22
+ import "./chunk-TCC737IS.js";
23
+ import "./chunk-527HHQPS.js";
23
24
  import "./chunk-YEUYKR62.js";
24
25
  import "./chunk-RNVYGWIC.js";
25
26
  import "./chunk-MNH7QO4Z.js";
26
27
  import "./chunk-Q35YIDBV.js";
27
- import "./chunk-UZC7LDAQ.js";
28
+ import "./chunk-6XTQDFGP.js";
28
29
  import "./chunk-OWBRDNRZ.js";
29
30
  import "./chunk-G3T47CFV.js";
30
31
  import "./chunk-2H7UOFLK.js";
@@ -39,4 +40,4 @@ export {
39
40
  renderTools,
40
41
  toValidationResults
41
42
  };
42
- //# sourceMappingURL=reporters-N6GHXSS7.js.map
43
+ //# sourceMappingURL=reporters-OHSI3RMV.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-TCC737IS.js";
30
+ import "./chunk-527HHQPS.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-6XTQDFGP.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-YELDDYJD.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-YA63PVWI.js";
5
+ import "./chunk-7OQAU4EA.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-TVIX653Q.js";
15
+ import "./chunk-QCBICNKC.js";
16
+ import "./chunk-3YHAYXBC.js";
17
+ import "./chunk-NAZRLJAK.js";
18
+ import "./chunk-HVFR66GQ.js";
19
+ import "./chunk-TCC737IS.js";
20
+ import "./chunk-527HHQPS.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-6XTQDFGP.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-IP6NZHAG.js.map
@@ -4,7 +4,7 @@ import {
4
4
  renderFormatsJson,
5
5
  renderGetJson,
6
6
  renderListJson
7
- } from "./chunk-X3BPBDGQ.js";
7
+ } from "./chunk-MZC62HPZ.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-IA7BMIPE.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-QY3DOZMS.js";
28
28
  import {
29
29
  LIST_FORMATS,
30
30
  runList
31
- } from "./chunk-ERMSO34F.js";
31
+ } from "./chunk-SNEHX4VE.js";
32
32
  import {
33
33
  renderFindingsGithub
34
- } from "./chunk-3AFUD75K.js";
34
+ } from "./chunk-C6HZ6C5T.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-NN4ASVTY.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-TVIX653Q.js";
70
70
  import {
71
71
  registerTermLabelSource
72
- } from "./chunk-CYWHFSRT.js";
73
- import "./chunk-K3D6FPV6.js";
72
+ } from "./chunk-QCBICNKC.js";
73
+ import "./chunk-3YHAYXBC.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-NAZRLJAK.js";
79
+ import "./chunk-HVFR66GQ.js";
80
80
  import {
81
81
  OMITTED_WHEN_CLEAN,
82
82
  renderJunit,
83
83
  renderSarif
84
- } from "./chunk-C6OH6CNF.js";
84
+ } from "./chunk-TCC737IS.js";
85
85
  import {
86
86
  STDIN_TOKEN,
87
87
  extractorByName,
88
88
  extractorForExtension
89
- } from "./chunk-JVTNMVYU.js";
89
+ } from "./chunk-527HHQPS.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-6XTQDFGP.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-2WMDZ4PY.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-NAZRLJAK.js";
5
+ import "./chunk-HVFR66GQ.js";
6
+ import "./chunk-527HHQPS.js";
7
7
  import "./chunk-YEUYKR62.js";
8
8
  import "./chunk-Q35YIDBV.js";
9
- import "./chunk-UZC7LDAQ.js";
9
+ import "./chunk-6XTQDFGP.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-G6HH3YXL.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.5.0",
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.5.0",
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.