@hawkeyexl/manni 4.11.0 → 4.12.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 (238) hide show
  1. package/README.md +1 -1
  2. package/dist/{batch-UAULUMGH.js → batch-KMGZMIAQ.js} +20 -19
  3. package/dist/build-NO4AWCYG.js +36 -0
  4. package/dist/calibrate-XQUG5XAK.js +41 -0
  5. package/dist/capture-5XE3ZMXK.js +38 -0
  6. package/dist/{check-YEOYBFST.js → check-HTNPLWOV.js} +19 -18
  7. package/dist/check-RJ45IBA6.js +34 -0
  8. package/dist/{check-VELUQAUW.js → check-W24BQNCT.js} +35 -34
  9. package/dist/{check-VELUQAUW.js.map → check-W24BQNCT.js.map} +1 -1
  10. package/dist/check-WFXSXICD.js +30 -0
  11. package/dist/{chunk-IGSHYP74.js → chunk-23P7KMJM.js} +4 -4
  12. package/dist/{chunk-HA6MQMOY.js → chunk-24J7TYPU.js} +6 -6
  13. package/dist/{chunk-PCS4VJBV.js → chunk-37QJLVS3.js} +9 -9
  14. package/dist/{chunk-4CK6ZSOK.js → chunk-3P6KCU36.js} +3 -3
  15. package/dist/{chunk-54F74XR3.js → chunk-5JBVFWVP.js} +19 -19
  16. package/dist/{chunk-B7XYNRJQ.js → chunk-6KIYVVKL.js} +2 -2
  17. package/dist/{chunk-J6IDQGJL.js → chunk-6TVH4FI7.js} +469 -85
  18. package/dist/chunk-6TVH4FI7.js.map +1 -0
  19. package/dist/{chunk-GDVZ5VII.js → chunk-7A452BPZ.js} +4 -4
  20. package/dist/{chunk-M42DZCOU.js → chunk-7FCLXEAQ.js} +2 -2
  21. package/dist/{chunk-2MJ62AYQ.js → chunk-7MCQHTQ5.js} +4 -3
  22. package/dist/chunk-7MCQHTQ5.js.map +1 -0
  23. package/dist/{chunk-LBSCW232.js → chunk-7NXPQKSB.js} +7 -7
  24. package/dist/{chunk-OPXWPJDA.js → chunk-A3TEDWBZ.js} +14 -14
  25. package/dist/{chunk-BBT6AVUG.js → chunk-BHHXU2D2.js} +2 -2
  26. package/dist/{chunk-D4N2V43Z.js → chunk-CEI2J42X.js} +13 -7
  27. package/dist/chunk-CEI2J42X.js.map +1 -0
  28. package/dist/{chunk-FQXWVS6J.js → chunk-CMMBWHT2.js} +9 -9
  29. package/dist/{chunk-EIFCP6CZ.js → chunk-CO47QJKZ.js} +2 -2
  30. package/dist/{chunk-2DRHT73U.js → chunk-CVZMKWZ5.js} +913 -1398
  31. package/dist/chunk-CVZMKWZ5.js.map +1 -0
  32. package/dist/{chunk-ADMEPUBT.js → chunk-CXWTNT2O.js} +3 -3
  33. package/dist/{chunk-LKP7QDFN.js → chunk-DAQTRAP5.js} +4 -4
  34. package/dist/chunk-DSWKBZWW.js +16 -0
  35. package/dist/chunk-DSWKBZWW.js.map +1 -0
  36. package/dist/{chunk-PWBH7DCQ.js → chunk-EESH6COU.js} +4 -4
  37. package/dist/{chunk-JPQDNYXH.js → chunk-EM67O2ET.js} +8 -2
  38. package/dist/chunk-EM67O2ET.js.map +1 -0
  39. package/dist/{chunk-HQR2ZBHW.js → chunk-I2XQRRP7.js} +36 -7
  40. package/dist/chunk-I2XQRRP7.js.map +1 -0
  41. package/dist/{chunk-NCPWXHDO.js → chunk-JEUFYSFQ.js} +4 -4
  42. package/dist/{chunk-2IR4T5PO.js → chunk-JJ4RSDSY.js} +2 -2
  43. package/dist/chunk-KCB5JCK4.js +2272 -0
  44. package/dist/chunk-KCB5JCK4.js.map +1 -0
  45. package/dist/{chunk-VSEBFHAY.js → chunk-KFKL4VTL.js} +11369 -10218
  46. package/dist/chunk-KFKL4VTL.js.map +1 -0
  47. package/dist/{chunk-PCQ7ELJH.js → chunk-L2TD7DZB.js} +109 -5
  48. package/dist/chunk-L2TD7DZB.js.map +1 -0
  49. package/dist/{chunk-WDWXAYVH.js → chunk-L3RLGGRK.js} +4 -4
  50. package/dist/{chunk-T7JAOYE5.js → chunk-L75CAZG4.js} +6 -6
  51. package/dist/{chunk-U7CTFN2J.js → chunk-MYRPMSOX.js} +7 -7
  52. package/dist/{chunk-Y6DOMTQD.js → chunk-NCF5NQV5.js} +27 -27
  53. package/dist/chunk-NCF5NQV5.js.map +1 -0
  54. package/dist/{chunk-WQWKYAAK.js → chunk-NUQF5F5J.js} +2 -2
  55. package/dist/{chunk-FUCPZVRY.js → chunk-OEN6FBUW.js} +2 -2
  56. package/dist/{chunk-FBMZJEB3.js → chunk-OKMTUAWO.js} +4 -4
  57. package/dist/{chunk-QLWC7MKD.js → chunk-OTJOBZJ5.js} +135 -135
  58. package/dist/chunk-OTJOBZJ5.js.map +1 -0
  59. package/dist/{chunk-R4WXQIOZ.js → chunk-PCEM5FOZ.js} +3 -3
  60. package/dist/{chunk-4D5IZSXM.js → chunk-PXNCRGUL.js} +3 -3
  61. package/dist/chunk-Q2QC5AZB.js +1868 -0
  62. package/dist/chunk-Q2QC5AZB.js.map +1 -0
  63. package/dist/{chunk-ODRPL3WB.js → chunk-Q3ODX5PF.js} +2 -2
  64. package/dist/{chunk-KGEQJ5CC.js → chunk-RRFFUWDL.js} +8 -8
  65. package/dist/{chunk-NSBXVPZL.js → chunk-S3XUYW5K.js} +17 -17
  66. package/dist/{chunk-LPIF5LIE.js → chunk-SAU2WQFC.js} +2 -2
  67. package/dist/{chunk-MSRU4D4P.js → chunk-SFLICIQV.js} +2 -2
  68. package/dist/{chunk-NGTVREIH.js → chunk-U6IHLEWT.js} +2 -2
  69. package/dist/{chunk-QCHVR4ZM.js → chunk-VM7VAFJW.js} +33 -7
  70. package/dist/chunk-VM7VAFJW.js.map +1 -0
  71. package/dist/{chunk-6HWBRZIN.js → chunk-VQYGLU4C.js} +252 -193
  72. package/dist/chunk-VQYGLU4C.js.map +1 -0
  73. package/dist/{chunk-2IAZEB45.js → chunk-WGMFDG6U.js} +229 -821
  74. package/dist/chunk-WGMFDG6U.js.map +1 -0
  75. package/dist/{chunk-GV56WGL2.js → chunk-WO4JYWZK.js} +1036 -883
  76. package/dist/chunk-WO4JYWZK.js.map +1 -0
  77. package/dist/chunk-XYRUDFKS.js +685 -0
  78. package/dist/chunk-XYRUDFKS.js.map +1 -0
  79. package/dist/{chunk-VQK4VHLF.js → chunk-YQV75FIL.js} +2 -2
  80. package/dist/chunk-YUTVAMWW.js +2 -0
  81. package/dist/{chunk-RLT5SEML.js → chunk-Z5MZCCTT.js} +6 -6
  82. package/dist/{chunk-BKVHX6FU.js → chunk-ZIRBFXDW.js} +5 -10
  83. package/dist/chunk-ZIRBFXDW.js.map +1 -0
  84. package/dist/{cli-O4ABTN4Z.js → cli-236TGVJG.js} +31 -30
  85. package/dist/{cli-O4ABTN4Z.js.map → cli-236TGVJG.js.map} +1 -1
  86. package/dist/{cli-3BTCK4AB.js → cli-3FAPJBEY.js} +27 -26
  87. package/dist/{cli-3BTCK4AB.js.map → cli-3FAPJBEY.js.map} +1 -1
  88. package/dist/{cli-JJMOVIKS.js → cli-BS43EVCD.js} +14 -14
  89. package/dist/{cli-RORDPAPE.js → cli-CMR4FYF6.js} +59 -38
  90. package/dist/cli-CMR4FYF6.js.map +1 -0
  91. package/dist/{cli-ONTC5PKT.js → cli-FX53PBQ3.js} +9 -9
  92. package/dist/{cli-6KZTHWGP.js → cli-IQNJLKSN.js} +37 -36
  93. package/dist/{cli-6KZTHWGP.js.map → cli-IQNJLKSN.js.map} +1 -1
  94. package/dist/{cli-4MF37HAQ.js → cli-KOMXVPXX.js} +26 -25
  95. package/dist/{cli-4MF37HAQ.js.map → cli-KOMXVPXX.js.map} +1 -1
  96. package/dist/{cli-I62SRH3R.js → cli-NGL63E53.js} +14 -13
  97. package/dist/{cli-DRMZBZLB.js → cli-QPGS2MR5.js} +43 -42
  98. package/dist/{cli-DRMZBZLB.js.map → cli-QPGS2MR5.js.map} +1 -1
  99. package/dist/{cli-VID7PJS3.js → cli-RKQX4TI3.js} +23 -22
  100. package/dist/{cli-VID7PJS3.js.map → cli-RKQX4TI3.js.map} +1 -1
  101. package/dist/{cli-VUKMWSSF.js → cli-WNEI5L7P.js} +4 -4
  102. package/dist/cli.js +19 -13
  103. package/dist/cli.js.map +1 -1
  104. package/dist/{config-XDA42RJL.js → config-JJW75SBX.js} +5 -5
  105. package/dist/docmeta.js +13 -12
  106. package/dist/docmeta.js.map +1 -1
  107. package/dist/github-4UR67MEN.js +35 -0
  108. package/dist/github-UPGKMVVF.js +30 -0
  109. package/dist/graph/runtime.d.ts +4 -1
  110. package/dist/graph/runtime.js +20 -9
  111. package/dist/graph/runtime.js.map +1 -1
  112. package/dist/{host-6GURH5HE.js → host-YSTYO5DX.js} +3 -3
  113. package/dist/index.d.ts +192 -26
  114. package/dist/index.js +129 -124
  115. package/dist/index.js.map +1 -1
  116. package/dist/{json-BXY44ED7.js → json-DQIELR36.js} +18 -17
  117. package/dist/labels-XSTJJMSG.js +73 -0
  118. package/dist/labels-XSTJJMSG.js.map +1 -0
  119. package/dist/lint-BLBGGOYM.js +34 -0
  120. package/dist/list-B3RRRWFQ.js +32 -0
  121. package/dist/list-ZFRT3JQH.js +35 -0
  122. package/dist/{page-EV7OUBAU.js → page-5ISEVJR5.js} +18 -16
  123. package/dist/{prepare-JHJDJB6I.js → prepare-KFXXG2CJ.js} +22 -21
  124. package/dist/{prepare-JHJDJB6I.js.map → prepare-KFXXG2CJ.js.map} +1 -1
  125. package/dist/{pretty-Q5Y2PA64.js → pretty-Y7CGQLAF.js} +18 -17
  126. package/dist/{pretty-SCRK66M5.js → pretty-ZISH3Q4F.js} +18 -17
  127. package/dist/{provider-527CO4DM.js → provider-LBX4IXGX.js} +3 -3
  128. package/dist/{release-3D5PK6M7.js → release-VV3UTKE5.js} +3 -3
  129. package/dist/{reporters-M6LJ2IYU.js → reporters-26H3N2KW.js} +3 -3
  130. package/dist/{reporters-A5ADKDYR.js → reporters-4STXJJE2.js} +16 -15
  131. package/dist/{reporters-RBYTASMI.js → reporters-74B4U2GZ.js} +7 -7
  132. package/dist/run-DVGTKM52.js +37 -0
  133. package/dist/{term-CQAGNG3Q.js → term-PLJEYJQV.js} +981 -141
  134. package/dist/term-PLJEYJQV.js.map +1 -0
  135. package/dist/validate-CJNFQHMD.js +19 -0
  136. package/package.json +3 -2
  137. package/plugin/manni/.claude-plugin/plugin.json +1 -1
  138. package/shapes/graph/shapes-1.1.0.ttl +785 -0
  139. package/dist/build-QSPNK5AL.js +0 -35
  140. package/dist/calibrate-KXN4URPM.js +0 -40
  141. package/dist/capture-JHTSUPUC.js +0 -37
  142. package/dist/check-MDGXEUWL.js +0 -20
  143. package/dist/check-WOQRKNZK.js +0 -29
  144. package/dist/chunk-2DRHT73U.js.map +0 -1
  145. package/dist/chunk-2IAZEB45.js.map +0 -1
  146. package/dist/chunk-2MJ62AYQ.js.map +0 -1
  147. package/dist/chunk-4VBSTXN6.js +0 -392
  148. package/dist/chunk-4VBSTXN6.js.map +0 -1
  149. package/dist/chunk-6HWBRZIN.js.map +0 -1
  150. package/dist/chunk-BKVHX6FU.js.map +0 -1
  151. package/dist/chunk-D4N2V43Z.js.map +0 -1
  152. package/dist/chunk-EFW7CAG4.js +0 -387
  153. package/dist/chunk-EFW7CAG4.js.map +0 -1
  154. package/dist/chunk-GV56WGL2.js.map +0 -1
  155. package/dist/chunk-HQR2ZBHW.js.map +0 -1
  156. package/dist/chunk-J6IDQGJL.js.map +0 -1
  157. package/dist/chunk-JPQDNYXH.js.map +0 -1
  158. package/dist/chunk-JROBZ7JA.js +0 -818
  159. package/dist/chunk-JROBZ7JA.js.map +0 -1
  160. package/dist/chunk-PCQ7ELJH.js.map +0 -1
  161. package/dist/chunk-QCHVR4ZM.js.map +0 -1
  162. package/dist/chunk-QLWC7MKD.js.map +0 -1
  163. package/dist/chunk-TU2WUBVZ.js +0 -2
  164. package/dist/chunk-VSEBFHAY.js.map +0 -1
  165. package/dist/chunk-Y6DOMTQD.js.map +0 -1
  166. package/dist/cli-RORDPAPE.js.map +0 -1
  167. package/dist/github-RY3FRA6P.js +0 -29
  168. package/dist/github-YKQSH7FS.js +0 -34
  169. package/dist/lint-YJ2L22BW.js +0 -33
  170. package/dist/list-NSG24VVX.js +0 -31
  171. package/dist/list-V6EGCSHX.js +0 -34
  172. package/dist/run-BUE2DDXN.js +0 -36
  173. package/dist/term-CQAGNG3Q.js.map +0 -1
  174. package/dist/validate-ZBW44RHT.js +0 -18
  175. /package/dist/{batch-UAULUMGH.js.map → batch-KMGZMIAQ.js.map} +0 -0
  176. /package/dist/{build-QSPNK5AL.js.map → build-NO4AWCYG.js.map} +0 -0
  177. /package/dist/{calibrate-KXN4URPM.js.map → calibrate-XQUG5XAK.js.map} +0 -0
  178. /package/dist/{capture-JHTSUPUC.js.map → capture-5XE3ZMXK.js.map} +0 -0
  179. /package/dist/{check-MDGXEUWL.js.map → check-HTNPLWOV.js.map} +0 -0
  180. /package/dist/{check-WOQRKNZK.js.map → check-RJ45IBA6.js.map} +0 -0
  181. /package/dist/{check-YEOYBFST.js.map → check-WFXSXICD.js.map} +0 -0
  182. /package/dist/{chunk-IGSHYP74.js.map → chunk-23P7KMJM.js.map} +0 -0
  183. /package/dist/{chunk-HA6MQMOY.js.map → chunk-24J7TYPU.js.map} +0 -0
  184. /package/dist/{chunk-PCS4VJBV.js.map → chunk-37QJLVS3.js.map} +0 -0
  185. /package/dist/{chunk-4CK6ZSOK.js.map → chunk-3P6KCU36.js.map} +0 -0
  186. /package/dist/{chunk-54F74XR3.js.map → chunk-5JBVFWVP.js.map} +0 -0
  187. /package/dist/{chunk-B7XYNRJQ.js.map → chunk-6KIYVVKL.js.map} +0 -0
  188. /package/dist/{chunk-GDVZ5VII.js.map → chunk-7A452BPZ.js.map} +0 -0
  189. /package/dist/{chunk-M42DZCOU.js.map → chunk-7FCLXEAQ.js.map} +0 -0
  190. /package/dist/{chunk-LBSCW232.js.map → chunk-7NXPQKSB.js.map} +0 -0
  191. /package/dist/{chunk-OPXWPJDA.js.map → chunk-A3TEDWBZ.js.map} +0 -0
  192. /package/dist/{chunk-BBT6AVUG.js.map → chunk-BHHXU2D2.js.map} +0 -0
  193. /package/dist/{chunk-FQXWVS6J.js.map → chunk-CMMBWHT2.js.map} +0 -0
  194. /package/dist/{chunk-EIFCP6CZ.js.map → chunk-CO47QJKZ.js.map} +0 -0
  195. /package/dist/{chunk-ADMEPUBT.js.map → chunk-CXWTNT2O.js.map} +0 -0
  196. /package/dist/{chunk-LKP7QDFN.js.map → chunk-DAQTRAP5.js.map} +0 -0
  197. /package/dist/{chunk-PWBH7DCQ.js.map → chunk-EESH6COU.js.map} +0 -0
  198. /package/dist/{chunk-NCPWXHDO.js.map → chunk-JEUFYSFQ.js.map} +0 -0
  199. /package/dist/{chunk-2IR4T5PO.js.map → chunk-JJ4RSDSY.js.map} +0 -0
  200. /package/dist/{chunk-WDWXAYVH.js.map → chunk-L3RLGGRK.js.map} +0 -0
  201. /package/dist/{chunk-T7JAOYE5.js.map → chunk-L75CAZG4.js.map} +0 -0
  202. /package/dist/{chunk-U7CTFN2J.js.map → chunk-MYRPMSOX.js.map} +0 -0
  203. /package/dist/{chunk-WQWKYAAK.js.map → chunk-NUQF5F5J.js.map} +0 -0
  204. /package/dist/{chunk-FUCPZVRY.js.map → chunk-OEN6FBUW.js.map} +0 -0
  205. /package/dist/{chunk-FBMZJEB3.js.map → chunk-OKMTUAWO.js.map} +0 -0
  206. /package/dist/{chunk-R4WXQIOZ.js.map → chunk-PCEM5FOZ.js.map} +0 -0
  207. /package/dist/{chunk-4D5IZSXM.js.map → chunk-PXNCRGUL.js.map} +0 -0
  208. /package/dist/{chunk-ODRPL3WB.js.map → chunk-Q3ODX5PF.js.map} +0 -0
  209. /package/dist/{chunk-KGEQJ5CC.js.map → chunk-RRFFUWDL.js.map} +0 -0
  210. /package/dist/{chunk-NSBXVPZL.js.map → chunk-S3XUYW5K.js.map} +0 -0
  211. /package/dist/{chunk-LPIF5LIE.js.map → chunk-SAU2WQFC.js.map} +0 -0
  212. /package/dist/{chunk-MSRU4D4P.js.map → chunk-SFLICIQV.js.map} +0 -0
  213. /package/dist/{chunk-NGTVREIH.js.map → chunk-U6IHLEWT.js.map} +0 -0
  214. /package/dist/{chunk-VQK4VHLF.js.map → chunk-YQV75FIL.js.map} +0 -0
  215. /package/dist/{chunk-TU2WUBVZ.js.map → chunk-YUTVAMWW.js.map} +0 -0
  216. /package/dist/{chunk-RLT5SEML.js.map → chunk-Z5MZCCTT.js.map} +0 -0
  217. /package/dist/{cli-JJMOVIKS.js.map → cli-BS43EVCD.js.map} +0 -0
  218. /package/dist/{cli-ONTC5PKT.js.map → cli-FX53PBQ3.js.map} +0 -0
  219. /package/dist/{cli-I62SRH3R.js.map → cli-NGL63E53.js.map} +0 -0
  220. /package/dist/{cli-VUKMWSSF.js.map → cli-WNEI5L7P.js.map} +0 -0
  221. /package/dist/{config-XDA42RJL.js.map → config-JJW75SBX.js.map} +0 -0
  222. /package/dist/{github-RY3FRA6P.js.map → github-4UR67MEN.js.map} +0 -0
  223. /package/dist/{github-YKQSH7FS.js.map → github-UPGKMVVF.js.map} +0 -0
  224. /package/dist/{host-6GURH5HE.js.map → host-YSTYO5DX.js.map} +0 -0
  225. /package/dist/{json-BXY44ED7.js.map → json-DQIELR36.js.map} +0 -0
  226. /package/dist/{lint-YJ2L22BW.js.map → lint-BLBGGOYM.js.map} +0 -0
  227. /package/dist/{list-NSG24VVX.js.map → list-B3RRRWFQ.js.map} +0 -0
  228. /package/dist/{list-V6EGCSHX.js.map → list-ZFRT3JQH.js.map} +0 -0
  229. /package/dist/{page-EV7OUBAU.js.map → page-5ISEVJR5.js.map} +0 -0
  230. /package/dist/{pretty-Q5Y2PA64.js.map → pretty-Y7CGQLAF.js.map} +0 -0
  231. /package/dist/{pretty-SCRK66M5.js.map → pretty-ZISH3Q4F.js.map} +0 -0
  232. /package/dist/{provider-527CO4DM.js.map → provider-LBX4IXGX.js.map} +0 -0
  233. /package/dist/{release-3D5PK6M7.js.map → release-VV3UTKE5.js.map} +0 -0
  234. /package/dist/{reporters-A5ADKDYR.js.map → reporters-26H3N2KW.js.map} +0 -0
  235. /package/dist/{reporters-M6LJ2IYU.js.map → reporters-4STXJJE2.js.map} +0 -0
  236. /package/dist/{reporters-RBYTASMI.js.map → reporters-74B4U2GZ.js.map} +0 -0
  237. /package/dist/{run-BUE2DDXN.js.map → run-DVGTKM52.js.map} +0 -0
  238. /package/dist/{validate-ZBW44RHT.js.map → validate-CJNFQHMD.js.map} +0 -0
@@ -5,7 +5,11 @@ import {
5
5
  manifestKeyLine,
6
6
  mergeMetaProvenance,
7
7
  offerExternalHomes
8
- } from "./chunk-M42DZCOU.js";
8
+ } from "./chunk-7FCLXEAQ.js";
9
+ import {
10
+ formatList,
11
+ render
12
+ } from "./chunk-CEI2J42X.js";
9
13
  import {
10
14
  DERIVED_ROWS,
11
15
  DERIVED_VIEW,
@@ -28,7 +32,7 @@ import {
28
32
  readerManifests,
29
33
  readerPlace,
30
34
  stampManifests
31
- } from "./chunk-PCQ7ELJH.js";
35
+ } from "./chunk-L2TD7DZB.js";
32
36
  import {
33
37
  ENCRYPTED_PLACEHOLDER,
34
38
  ENCRYPTION_KEY_ENV,
@@ -38,6 +42,7 @@ import {
38
42
  RESERVED,
39
43
  STDIN_REQUIRES_AS,
40
44
  SYSTEM_COLUMNS,
45
+ TERM_KEYWORD,
41
46
  Validator,
42
47
  applyRelocation,
43
48
  assertSingleStatement,
@@ -57,6 +62,7 @@ import {
57
62
  isAtOrUnder,
58
63
  isIgnoredByGit,
59
64
  isMissing,
65
+ isTermMark,
60
66
  keyHome,
61
67
  lazyKey,
62
68
  lineSpec,
@@ -100,17 +106,17 @@ import {
100
106
  startsStringOrIdent,
101
107
  stringFormatNames,
102
108
  stripLeadingTrivia,
109
+ termScheme,
103
110
  topLevelKeyOf,
104
111
  unreadableMessage,
105
112
  validatesFormat,
106
113
  valueAt,
107
114
  withValueAt,
108
115
  writeEncryptionKey
109
- } from "./chunk-GV56WGL2.js";
116
+ } from "./chunk-WO4JYWZK.js";
110
117
  import {
111
- formatList,
112
- render
113
- } from "./chunk-D4N2V43Z.js";
118
+ termLabelSource
119
+ } from "./chunk-DSWKBZWW.js";
114
120
  import {
115
121
  DERIVABLE_FIELDS,
116
122
  DERIVE_SOURCES,
@@ -164,21 +170,21 @@ import {
164
170
  urlManifestMessage,
165
171
  urlManifestOwning,
166
172
  writeFileAtomic
167
- } from "./chunk-VSEBFHAY.js";
168
- import {
169
- palette
170
- } from "./chunk-RNVYGWIC.js";
173
+ } from "./chunk-KFKL4VTL.js";
171
174
  import {
172
175
  escapeWorkflowCommandMessage,
173
176
  escapeWorkflowCommandProperty
174
177
  } from "./chunk-MNH7QO4Z.js";
178
+ import {
179
+ palette
180
+ } from "./chunk-RNVYGWIC.js";
175
181
  import {
176
182
  decryptValue,
177
183
  encryptValue,
178
184
  generateEncryptionKey,
179
185
  isEncryptedValue,
180
186
  isMember
181
- } from "./chunk-QLWC7MKD.js";
187
+ } from "./chunk-OTJOBZJ5.js";
182
188
  import {
183
189
  warn
184
190
  } from "./chunk-HX44GB4Z.js";
@@ -187,69 +193,16 @@ import {
187
193
  assertLocalFlag,
188
194
  assertModelHasProvider,
189
195
  localNotice,
196
+ noOfflineModel,
197
+ offlineIdentity,
190
198
  providerSpecFor,
191
199
  resolveIdentity,
192
200
  selectProvider
193
- } from "./chunk-QCHVR4ZM.js";
201
+ } from "./chunk-VM7VAFJW.js";
194
202
  import {
195
203
  errorMessage
196
204
  } from "./chunk-G3T47CFV.js";
197
205
 
198
- // src/shared/prompt.ts
199
- import { createInterface } from "node:readline";
200
- function readlineConfirm(input, output) {
201
- return (question) => new Promise((resolvePromise) => {
202
- const rl = createInterface({ input, output });
203
- let settled = false;
204
- const finish2 = (answer, endLine) => {
205
- if (settled) return;
206
- settled = true;
207
- if (endLine) output.write("\n");
208
- rl.close();
209
- resolvePromise(answer);
210
- };
211
- rl.on("close", () => {
212
- finish2(false, true);
213
- });
214
- rl.on("SIGINT", () => {
215
- finish2(false, true);
216
- });
217
- rl.question(`${question}[y/N] `, (answer) => {
218
- finish2(/^y(?:es)?$/i.test(answer.trim()), false);
219
- });
220
- });
221
- }
222
- function terminalConfirm() {
223
- if (!process.stdin.isTTY || !process.stderr.isTTY) {
224
- return void 0;
225
- }
226
- return readlineConfirm(process.stdin, process.stderr);
227
- }
228
- async function ensureEncryptionKey(opts) {
229
- const { subject, cwd, file, confirm, notice, toError } = opts;
230
- const resolved = resolveEncryptionKey({ env: opts.env, file, toError });
231
- if (resolved.key !== void 0) return { key: resolved.key };
232
- const missing = `${subject} must be encrypted, and no encryption key is available.`;
233
- const refusal = `${missing} Run \`manni key set\`, or set ${ENCRYPTION_KEY_ENV}.`;
234
- if (confirm === void 0) throw toError(refusal);
235
- notice(missing);
236
- const key = generateEncryptionKey();
237
- const target = await writeEncryptionKey({ file, key, cwd, toError, dryRun: true });
238
- if (isIgnoredByGit(target.path) === false) {
239
- notice(committedKeyWarning(target.source));
240
- }
241
- if (!await confirm(`Generate a key and write it to ${target.source}? `)) {
242
- throw toError(refusal);
243
- }
244
- const written = await writeEncryptionKey({ file, key, cwd, toError });
245
- process.stderr.write(
246
- written.created ? `Created ${written.source} with an encryption key.
247
- ` : `Encryption key written to ${written.source}.
248
- `
249
- );
250
- return { key, written: { source: written.source, created: written.created } };
251
- }
252
-
253
206
  // src/meta/commands/get.ts
254
207
  import { readFile } from "node:fs/promises";
255
208
  import { resolve, extname } from "node:path";
@@ -526,10 +479,10 @@ import { existsSync } from "node:fs";
526
479
  import { mkdir, readFile as readFile2 } from "node:fs/promises";
527
480
  import { dirname, extname as extname2, isAbsolute, join, relative, resolve as resolve2, sep } from "node:path";
528
481
  import { parseDocument, parse as parseYaml, stringify } from "yaml";
529
- function getSchemasInfo(registered2) {
482
+ function getSchemasInfo(registered) {
530
483
  return {
531
484
  builtins: listBuiltins(),
532
- registered: [...registered2?.values() ?? []].map(({ id, file }) => ({ id, file })),
485
+ registered: [...registered?.values() ?? []].map(({ id, file }) => ({ id, file })),
533
486
  formats: listFormats()
534
487
  };
535
488
  }
@@ -963,6 +916,61 @@ async function runInferSchema(opts) {
963
916
  };
964
917
  }
965
918
 
919
+ // src/shared/prompt.ts
920
+ import { createInterface } from "node:readline";
921
+ function readlineConfirm(input, output) {
922
+ return (question) => new Promise((resolvePromise) => {
923
+ const rl = createInterface({ input, output });
924
+ let settled = false;
925
+ const finish2 = (answer, endLine) => {
926
+ if (settled) return;
927
+ settled = true;
928
+ if (endLine) output.write("\n");
929
+ rl.close();
930
+ resolvePromise(answer);
931
+ };
932
+ rl.on("close", () => {
933
+ finish2(false, true);
934
+ });
935
+ rl.on("SIGINT", () => {
936
+ finish2(false, true);
937
+ });
938
+ rl.question(`${question}[y/N] `, (answer) => {
939
+ finish2(/^y(?:es)?$/i.test(answer.trim()), false);
940
+ });
941
+ });
942
+ }
943
+ function terminalConfirm() {
944
+ if (!process.stdin.isTTY || !process.stderr.isTTY) {
945
+ return void 0;
946
+ }
947
+ return readlineConfirm(process.stdin, process.stderr);
948
+ }
949
+ async function ensureEncryptionKey(opts) {
950
+ const { subject, cwd, file, confirm, notice, toError } = opts;
951
+ const resolved = resolveEncryptionKey({ env: opts.env, file, toError });
952
+ if (resolved.key !== void 0) return { key: resolved.key };
953
+ const missing = `${subject} must be encrypted, and no encryption key is available.`;
954
+ const refusal = `${missing} Run \`manni key set\`, or set ${ENCRYPTION_KEY_ENV}.`;
955
+ if (confirm === void 0) throw toError(refusal);
956
+ notice(missing);
957
+ const key = generateEncryptionKey();
958
+ const target = await writeEncryptionKey({ file, key, cwd, toError, dryRun: true });
959
+ if (isIgnoredByGit(target.path) === false) {
960
+ notice(committedKeyWarning(target.source));
961
+ }
962
+ if (!await confirm(`Generate a key and write it to ${target.source}? `)) {
963
+ throw toError(refusal);
964
+ }
965
+ const written = await writeEncryptionKey({ file, key, cwd, toError });
966
+ process.stderr.write(
967
+ written.created ? `Created ${written.source} with an encryption key.
968
+ ` : `Encryption key written to ${written.source}.
969
+ `
970
+ );
971
+ return { key, written: { source: written.source, created: written.created } };
972
+ }
973
+
966
974
  // src/meta/commands/query.ts
967
975
  import { randomBytes } from "node:crypto";
968
976
  import { existsSync as existsSync2 } from "node:fs";
@@ -1799,8 +1807,8 @@ async function loadSetMembers(refs, ctx) {
1799
1807
  const seenFiles = /* @__PURE__ */ new Set();
1800
1808
  const seenBuiltins = /* @__PURE__ */ new Set();
1801
1809
  for (const ref of refs) {
1802
- const registered2 = ctx.config?.registered?.get(ref);
1803
- const { kind } = registered2 !== void 0 ? { kind: "file" } : classifyRef(ref);
1810
+ const registered = ctx.config?.registered?.get(ref);
1811
+ const { kind } = registered !== void 0 ? { kind: "file" } : classifyRef(ref);
1804
1812
  if (kind === "url" && !isPublishedBuiltinUrl(ref)) {
1805
1813
  throw new DocmetaError(
1806
1814
  `"${ref}" in the resolved schema set is a URL \u2014 DDL edits local schemas only. Vendor it first (manni meta schemas vendor), then evolve the local copy.`
@@ -1818,7 +1826,7 @@ async function loadSetMembers(refs, ctx) {
1818
1826
  });
1819
1827
  continue;
1820
1828
  }
1821
- const abs = registered2?.path ?? resolve3(ctx.cwd, ref);
1829
+ const abs = registered?.path ?? resolve3(ctx.cwd, ref);
1822
1830
  const canon = foldPath(abs);
1823
1831
  if (seenFiles.has(canon)) continue;
1824
1832
  seenFiles.add(canon);
@@ -3779,22 +3787,67 @@ function fieldHints(candidates, offer) {
3779
3787
  add(PAGE_FIELDS, "page", offer.pages);
3780
3788
  return hints;
3781
3789
  }
3790
+ function termMarksIn(candidate, defs) {
3791
+ const out = [];
3792
+ const marked = /* @__PURE__ */ new Set();
3793
+ const stack = /* @__PURE__ */ new Set();
3794
+ const walk = (node, path) => {
3795
+ if (typeof node !== "object" || node === null || Array.isArray(node) || stack.has(node)) return;
3796
+ stack.add(node);
3797
+ const schema = node;
3798
+ const mark = schema[TERM_KEYWORD];
3799
+ if (isTermMark(mark)) {
3800
+ const key = JSON.stringify([path, mark.under ?? null]);
3801
+ if (!marked.has(key)) {
3802
+ marked.add(key);
3803
+ out.push({ path, ...mark.under === void 0 ? {} : { under: mark.under } });
3804
+ }
3805
+ }
3806
+ if (typeof schema.$ref === "string") walk(resolvePointer(schema.$ref, defs), path);
3807
+ for (const keyword of ["allOf", "anyOf", "oneOf"]) {
3808
+ const branches = schema[keyword];
3809
+ if (Array.isArray(branches)) for (const branch of branches) walk(branch, path);
3810
+ }
3811
+ walk(schema.items, path);
3812
+ const properties = schema.properties;
3813
+ if (typeof properties === "object" && properties !== null) {
3814
+ for (const [key, sub] of Object.entries(properties)) walk(sub, [...path, key]);
3815
+ }
3816
+ stack.delete(node);
3817
+ };
3818
+ walk(candidate.subschema, [candidate.key]);
3819
+ return out;
3820
+ }
3821
+ function termMarkHints(marks, index, schemas) {
3822
+ return marks.flatMap(({ path, under }) => {
3823
+ const branch = under === void 0 ? void 0 : index.scheme.below(under);
3824
+ if (under !== void 0 && branch === void 0) {
3825
+ throw new DocmetaError(`${schemas}: ${TERM_KEYWORD} under "${under}" names no term.`);
3826
+ }
3827
+ const labels = branch === void 0 ? index.labels : index.scheme.labels(branch);
3828
+ const values = offered(labels);
3829
+ if (values === void 0) return [];
3830
+ const accepts = [...labels, ...branch === void 0 ? index.ids : branch];
3831
+ return [{ path, kind: "term", values, accepts, ...under === void 0 ? {} : { under } }];
3832
+ });
3833
+ }
3782
3834
  function termValueCheck(hints, index) {
3783
3835
  const fold = (value) => value.toLowerCase();
3784
3836
  const labels = new Set(index.labels.map(fold));
3785
3837
  const either = /* @__PURE__ */ new Set([...labels, ...index.ids.map(fold)]);
3786
3838
  const terms = hints.filter((hint) => hint.kind === "term");
3787
3839
  return (key, value) => terms.filter((hint) => hint.path[0] === key).flatMap((hint) => {
3788
- const accepted = CONCEPT_FIELDS.some((path) => samePath(path, hint.path)) ? labels : either;
3840
+ const accepted = hint.accepts !== void 0 ? new Set(hint.accepts.map(fold)) : CONCEPT_FIELDS.some((path) => samePath(path, hint.path)) ? labels : either;
3841
+ const refusal = hint.under === void 0 ? NOT_A_TERM : `${NOT_A_TERM} under "${hint.under}"`;
3789
3842
  const pointer = fieldPointer(hint.path);
3790
3843
  const held = valueAt2(value, hint.path.slice(1));
3791
3844
  if (typeof held === "string") {
3792
- return accepted.has(fold(held)) ? [] : [`${pointer}: ${NOT_A_TERM}`];
3845
+ return accepted.has(fold(held)) ? [] : [`${pointer}: ${refusal}`];
3793
3846
  }
3794
3847
  if (!Array.isArray(held)) return [];
3795
3848
  const items = held;
3796
3849
  return items.flatMap(
3797
- (item, i) => typeof item === "string" && !accepted.has(fold(item)) ? [`${pointer}/${String(i)}: ${NOT_A_TERM}`] : []
3850
+ (item, i) => typeof item === "string" && !accepted.has(fold(item)) ? [`${pointer}/${String(i)}: ${refusal}`] : []
3798
3851
  );
3799
3852
  });
3800
3853
  }
@@ -3845,15 +3898,6 @@ async function readIds(collection, opts) {
3845
3898
  return ids;
3846
3899
  }
3847
3900
 
3848
- // src/shared/term-labels.ts
3849
- var registered;
3850
- function registerTermLabelSource(source) {
3851
- registered = source;
3852
- }
3853
- function termLabelSource() {
3854
- return registered;
3855
- }
3856
-
3857
3901
  // src/meta/core/manifest-writes.ts
3858
3902
  import { readFile as readFile5 } from "node:fs/promises";
3859
3903
  var manifestCodec = {
@@ -4130,7 +4174,8 @@ async function runFill(opts) {
4130
4174
  const dryRun = Boolean(opts.dryRun);
4131
4175
  const only = opts.fields != null ? new Set(opts.fields) : void 0;
4132
4176
  const managed = new Set(managedFields(config?.derive));
4133
- const flags = { provider: opts.provider, model: opts.model, local: opts.local };
4177
+ const offline = opts.offline ?? config?.offline ?? false;
4178
+ const flags = { provider: opts.provider, model: opts.model, local: opts.local, offline };
4134
4179
  assertLocalFlag(flags, toDocmetaError);
4135
4180
  const family = configFile?.providers ?? {};
4136
4181
  const selection = selectProvider(flags, [
@@ -4140,7 +4185,7 @@ async function runFill(opts) {
4140
4185
  const { provider: providerName, model } = selection;
4141
4186
  assertKnownProvider2(providerName);
4142
4187
  assertModelHasProvider2(providerName, model);
4143
- const replaced = localNotice(selection);
4188
+ const replaced = localNotice(selection, flags);
4144
4189
  if (replaced !== void 0) opts.onNotice?.(replaced);
4145
4190
  const spec = providerSpecFor(family, { provider: providerName, model: model ?? null });
4146
4191
  const fileInputs = inputs.filter((i) => i !== STDIN_TOKEN);
@@ -4173,12 +4218,16 @@ async function runFill(opts) {
4173
4218
  });
4174
4219
  let identity;
4175
4220
  let construct;
4221
+ const offlineResolved = offline ? await offlineIdentity(spec, toDocmetaError) : void 0;
4222
+ if (offline && offlineResolved === void 0) {
4223
+ throw new DocmetaError(noOfflineModel("fill cannot propose values"));
4224
+ }
4176
4225
  if (opts.inferenceProvider) {
4177
4226
  const injected = opts.inferenceProvider;
4178
4227
  identity = { provider: injected.provider(), model: injected.modelName() };
4179
4228
  construct = () => injected;
4180
4229
  } else {
4181
- const resolved = await resolveIdentity2(spec);
4230
+ const resolved = offlineResolved ?? await resolveIdentity2(spec);
4182
4231
  identity = resolved;
4183
4232
  const concrete = providerSpecFor(family, resolved);
4184
4233
  construct = () => makeProvider(concrete);
@@ -4230,7 +4279,10 @@ async function runFill(opts) {
4230
4279
  let externalMetadata = await loadManifests();
4231
4280
  let termbase;
4232
4281
  const readTermbase = async () => {
4233
- if (opts.termLabels !== void 0) return { labels: [...opts.termLabels], ids: [] };
4282
+ if (opts.termLabels !== void 0) {
4283
+ const labels = [...opts.termLabels];
4284
+ return { labels, ids: [], scheme: termScheme(labels.map((label) => ({ label, id: label }))) };
4285
+ }
4234
4286
  const source = termLabelSource();
4235
4287
  if (source === void 0) return void 0;
4236
4288
  try {
@@ -4239,7 +4291,8 @@ async function runFill(opts) {
4239
4291
  ...opts.configPath === void 0 ? {} : { configPath: opts.configPath },
4240
4292
  ...opts.noConfig === true ? { noConfig: true } : {}
4241
4293
  });
4242
- return { labels: terms.map((t) => t.label), ids: terms.map((t) => t.id) };
4294
+ if (terms.length === 0) return void 0;
4295
+ return { labels: terms.map((t) => t.label), ids: terms.map((t) => t.id), scheme: termScheme(terms) };
4243
4296
  } catch (err) {
4244
4297
  opts.onNotice?.(
4245
4298
  `The termbase could not be read, so fill offers no glossary labels: ${errorMessage(err)}`
@@ -4253,15 +4306,20 @@ async function runFill(opts) {
4253
4306
  configDir: configDir ?? cwd,
4254
4307
  ...respectGitignore === void 0 ? {} : { respectGitignore }
4255
4308
  });
4256
- const hintsFor = async (label, candidates) => {
4309
+ const hintsFor = async (label, candidates, schemas, schemaSet) => {
4257
4310
  const keys = new Set(candidates.map((c) => c.key));
4258
4311
  const wants = (fields) => fields.some(([key]) => key !== void 0 && keys.has(key));
4259
- const termIndex = wants(TERM_FIELDS) ? await (termbase ??= readTermbase()) : void 0;
4312
+ const defs = collectDefs(schemas);
4313
+ const marks2 = candidates.flatMap((c) => termMarksIn(c, defs));
4314
+ const termIndex = wants(TERM_FIELDS) || marks2.length > 0 ? await (termbase ??= readTermbase()) : void 0;
4260
4315
  const pages = wants(PAGE_FIELDS) ? await pageIds(resolve5(base, label), mergeMembersFor(label)) : [];
4261
- const hints = fieldHints(candidates, {
4262
- terms: termIndex === void 0 ? void 0 : offered(termIndex.labels),
4263
- pages: offered(pages)
4264
- });
4316
+ const hints = [
4317
+ ...fieldHints(candidates, {
4318
+ terms: termIndex === void 0 ? void 0 : offered(termIndex.labels),
4319
+ pages: offered(pages)
4320
+ }),
4321
+ ...termIndex === void 0 ? [] : termMarkHints(marks2, termIndex, schemaSet.join(", "))
4322
+ ];
4265
4323
  return { hints, termIndex };
4266
4324
  };
4267
4325
  const noticed = /* @__PURE__ */ new Set();
@@ -4556,7 +4614,7 @@ async function runFill(opts) {
4556
4614
  } = ready;
4557
4615
  const firstSealed = inPlace[0]?.pointer ?? (sealedCandidates[0] === void 0 ? void 0 : pointerOf(sealedCandidates[0].key));
4558
4616
  if (firstSealed !== void 0 && !dryRun) await writeKey(firstSealed);
4559
- const { hints, termIndex } = candidates.length > 0 ? await hintsFor(label, candidates) : { hints: [], termIndex: void 0 };
4617
+ const { hints, termIndex } = candidates.length > 0 ? await hintsFor(label, candidates, schemas, schemaSet) : { hints: [], termIndex: void 0 };
4560
4618
  const cacheKey = buildCacheKey([
4561
4619
  identity.provider,
4562
4620
  identity.model,
@@ -6142,6 +6200,94 @@ function shiftEntries(entries, shift) {
6142
6200
  });
6143
6201
  }
6144
6202
 
6203
+ // src/meta/commands/relocate.ts
6204
+ async function runRelocate(opts) {
6205
+ const cwd = opts.cwd ?? process.cwd();
6206
+ if (opts.inputs.includes(STDIN_TOKEN)) {
6207
+ throw new DocmetaError(
6208
+ "relocate moves values between documents and a collection's manifest, and stdin is not a document on disk."
6209
+ );
6210
+ }
6211
+ if (opts.noConfig === true) {
6212
+ throw new DocmetaError(
6213
+ "relocate writes collections: and externalMetadata: to the config file, and --no-config rules one out."
6214
+ );
6215
+ }
6216
+ const run = await resolveRunConfig({
6217
+ cwd,
6218
+ ...opts.configPath !== void 0 ? { configPath: opts.configPath } : {},
6219
+ inputs: opts.inputs,
6220
+ ...opts.collections !== void 0 ? { collections: opts.collections } : {},
6221
+ ...opts.onConfigLoaded !== void 0 ? { onConfigLoaded: opts.onConfigLoaded } : {}
6222
+ });
6223
+ const { config, inputs, base, configDir, collections, fromCollections } = run;
6224
+ if (inputs.length === 0) {
6225
+ throw new DocmetaError(
6226
+ "No files to relocate. Pass paths/globs, or declare a collection under `collections:` in manni.config.yaml."
6227
+ );
6228
+ }
6229
+ const forced = opts.as !== void 0 ? extractorByName(opts.as) : void 0;
6230
+ if (opts.as !== void 0 && forced === void 0) {
6231
+ throw new DocmetaError(
6232
+ `Unknown format "${opts.as}". Known formats: ${listFormats().map((f) => f.name).join(", ")}.`
6233
+ );
6234
+ }
6235
+ const allowEmpty = opts.allowEmpty ?? config?.allowEmpty;
6236
+ const exts = opts.exts ?? forced?.extensions;
6237
+ const exclude = opts.exclude ?? [];
6238
+ const membersFor = (label) => memberOf(collections, configDir ?? cwd, base, label);
6239
+ const { files: walked, gitignoreSkipped } = await resolveTargetSet({
6240
+ inputs,
6241
+ ...exts !== void 0 ? { exts } : {},
6242
+ exclude,
6243
+ cwd: base,
6244
+ ...allowEmpty !== void 0 ? { allowEmpty } : {},
6245
+ ...gitignoreOptions({
6246
+ ...opts.respectGitignore !== void 0 ? { flag: opts.respectGitignore } : {},
6247
+ ...config?.respectGitignore !== void 0 ? { configured: config.respectGitignore } : {},
6248
+ ...opts.onNotice !== void 0 ? { onNotice: opts.onNotice } : {}
6249
+ })
6250
+ });
6251
+ const files = fromCollections ? retainMembers(walked, membersFor) : walked;
6252
+ assertNonEmpty({
6253
+ files,
6254
+ inputs,
6255
+ usingStdin: false,
6256
+ ...allowEmpty !== void 0 ? { allowEmpty } : {},
6257
+ exclude,
6258
+ ...exts !== void 0 ? { exts } : {},
6259
+ gitignoreSkipped,
6260
+ action: "relocated"
6261
+ });
6262
+ const validator = new Validator(
6263
+ schemaLoadOptions({
6264
+ root: configDir ?? cwd,
6265
+ fileBase: cwd,
6266
+ ttlHours: config?.schemaCache?.ttlHours,
6267
+ offline: config?.offline,
6268
+ pins: collectSchemaPins(config),
6269
+ registered: config?.registered
6270
+ })
6271
+ );
6272
+ const ctx = relocationContext(run, {
6273
+ cwd,
6274
+ // A config-fallback run named no targets: its pages are already members.
6275
+ targets: fromCollections ? [] : opts.inputs,
6276
+ validator,
6277
+ ...opts.cliSchemas !== void 0 && opts.cliSchemas.length > 0 ? { cliSchemas: opts.cliSchemas } : {},
6278
+ ...opts.as !== void 0 ? { as: opts.as } : {},
6279
+ ...opts.respectGitignore !== void 0 ? { respectGitignore: opts.respectGitignore } : {},
6280
+ ...opts.env !== void 0 ? { env: opts.env } : {},
6281
+ ...opts.onNotice !== void 0 ? { onNotice: opts.onNotice } : {}
6282
+ });
6283
+ const plan = await planRelocation(ctx, {
6284
+ files,
6285
+ ...opts.fields !== void 0 ? { fields: opts.fields } : {}
6286
+ });
6287
+ if (opts.dryRun === true) return plan.result;
6288
+ return applyRelocation(ctx, plan);
6289
+ }
6290
+
6145
6291
  // src/meta/reporters/fill.ts
6146
6292
  var FILL_FORMATS = ["pretty", "json", "github"];
6147
6293
  var FILL_FORMAT_LIST = formatList(FILL_FORMATS);
@@ -6454,94 +6600,6 @@ function fmt(value) {
6454
6600
  return toJsonText(value) ?? String(value);
6455
6601
  }
6456
6602
 
6457
- // src/meta/commands/relocate.ts
6458
- async function runRelocate(opts) {
6459
- const cwd = opts.cwd ?? process.cwd();
6460
- if (opts.inputs.includes(STDIN_TOKEN)) {
6461
- throw new DocmetaError(
6462
- "relocate moves values between documents and a collection's manifest, and stdin is not a document on disk."
6463
- );
6464
- }
6465
- if (opts.noConfig === true) {
6466
- throw new DocmetaError(
6467
- "relocate writes collections: and externalMetadata: to the config file, and --no-config rules one out."
6468
- );
6469
- }
6470
- const run = await resolveRunConfig({
6471
- cwd,
6472
- ...opts.configPath !== void 0 ? { configPath: opts.configPath } : {},
6473
- inputs: opts.inputs,
6474
- ...opts.collections !== void 0 ? { collections: opts.collections } : {},
6475
- ...opts.onConfigLoaded !== void 0 ? { onConfigLoaded: opts.onConfigLoaded } : {}
6476
- });
6477
- const { config, inputs, base, configDir, collections, fromCollections } = run;
6478
- if (inputs.length === 0) {
6479
- throw new DocmetaError(
6480
- "No files to relocate. Pass paths/globs, or declare a collection under `collections:` in manni.config.yaml."
6481
- );
6482
- }
6483
- const forced = opts.as !== void 0 ? extractorByName(opts.as) : void 0;
6484
- if (opts.as !== void 0 && forced === void 0) {
6485
- throw new DocmetaError(
6486
- `Unknown format "${opts.as}". Known formats: ${listFormats().map((f) => f.name).join(", ")}.`
6487
- );
6488
- }
6489
- const allowEmpty = opts.allowEmpty ?? config?.allowEmpty;
6490
- const exts = opts.exts ?? forced?.extensions;
6491
- const exclude = opts.exclude ?? [];
6492
- const membersFor = (label) => memberOf(collections, configDir ?? cwd, base, label);
6493
- const { files: walked, gitignoreSkipped } = await resolveTargetSet({
6494
- inputs,
6495
- ...exts !== void 0 ? { exts } : {},
6496
- exclude,
6497
- cwd: base,
6498
- ...allowEmpty !== void 0 ? { allowEmpty } : {},
6499
- ...gitignoreOptions({
6500
- ...opts.respectGitignore !== void 0 ? { flag: opts.respectGitignore } : {},
6501
- ...config?.respectGitignore !== void 0 ? { configured: config.respectGitignore } : {},
6502
- ...opts.onNotice !== void 0 ? { onNotice: opts.onNotice } : {}
6503
- })
6504
- });
6505
- const files = fromCollections ? retainMembers(walked, membersFor) : walked;
6506
- assertNonEmpty({
6507
- files,
6508
- inputs,
6509
- usingStdin: false,
6510
- ...allowEmpty !== void 0 ? { allowEmpty } : {},
6511
- exclude,
6512
- ...exts !== void 0 ? { exts } : {},
6513
- gitignoreSkipped,
6514
- action: "relocated"
6515
- });
6516
- const validator = new Validator(
6517
- schemaLoadOptions({
6518
- root: configDir ?? cwd,
6519
- fileBase: cwd,
6520
- ttlHours: config?.schemaCache?.ttlHours,
6521
- offline: config?.offline,
6522
- pins: collectSchemaPins(config),
6523
- registered: config?.registered
6524
- })
6525
- );
6526
- const ctx = relocationContext(run, {
6527
- cwd,
6528
- // A config-fallback run named no targets: its pages are already members.
6529
- targets: fromCollections ? [] : opts.inputs,
6530
- validator,
6531
- ...opts.cliSchemas !== void 0 && opts.cliSchemas.length > 0 ? { cliSchemas: opts.cliSchemas } : {},
6532
- ...opts.as !== void 0 ? { as: opts.as } : {},
6533
- ...opts.respectGitignore !== void 0 ? { respectGitignore: opts.respectGitignore } : {},
6534
- ...opts.env !== void 0 ? { env: opts.env } : {},
6535
- ...opts.onNotice !== void 0 ? { onNotice: opts.onNotice } : {}
6536
- });
6537
- const plan = await planRelocation(ctx, {
6538
- files,
6539
- ...opts.fields !== void 0 ? { fields: opts.fields } : {}
6540
- });
6541
- if (opts.dryRun === true) return plan.result;
6542
- return applyRelocation(ctx, plan);
6543
- }
6544
-
6545
6603
  // src/meta/reporters/get.ts
6546
6604
  function stringifyValue(value) {
6547
6605
  if (value === void 0) return "(unset)";
@@ -6706,23 +6764,25 @@ function cellFrom(value) {
6706
6764
  }
6707
6765
 
6708
6766
  export {
6709
- terminalConfirm,
6710
- ensureEncryptionKey,
6767
+ CONCEPT_FIELDS,
6768
+ TERM_RELATION_FIELDS,
6769
+ fieldPointer,
6770
+ valueAt2 as valueAt,
6711
6771
  runGet,
6712
6772
  getSchemasInfo,
6713
6773
  DEFAULT_VENDOR_DIR,
6714
6774
  vendorFileName,
6715
6775
  runVendorSchema,
6716
6776
  runInferSchema,
6777
+ terminalConfirm,
6778
+ ensureEncryptionKey,
6717
6779
  runQuery,
6718
- CONCEPT_FIELDS,
6719
- TERM_RELATION_FIELDS,
6720
- fieldPointer,
6721
- valueAt2 as valueAt,
6722
- registerTermLabelSource,
6780
+ DEFAULT_CHUNK_CHARS,
6781
+ splitBody,
6723
6782
  runFill,
6724
6783
  runDerive,
6725
6784
  deriveFailed,
6785
+ runRelocate,
6726
6786
  FILL_FORMATS,
6727
6787
  FILL_FORMAT_LIST,
6728
6788
  isFillFormat,
@@ -6732,10 +6792,9 @@ export {
6732
6792
  DERIVE_FORMAT_LIST,
6733
6793
  isDeriveFormat,
6734
6794
  renderDerive,
6735
- runRelocate,
6736
6795
  stringifyValue,
6737
6796
  renderGet,
6738
6797
  renderQuery,
6739
6798
  renderQueryCsv
6740
6799
  };
6741
- //# sourceMappingURL=chunk-6HWBRZIN.js.map
6800
+ //# sourceMappingURL=chunk-VQYGLU4C.js.map