@bitcobblers/wod-wiki-tools 0.45.2167 → 0.47.2169

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 (634) hide show
  1. package/dist/bin/wod.cjs +145 -117
  2. package/dist/bin/wod.cjs.map +1 -1
  3. package/dist/bin/wod.mjs +5 -5
  4. package/dist/{chunk-52NLI2DL.mjs → chunk-7YB2FIVW.mjs} +3 -3
  5. package/dist/chunk-7YB2FIVW.mjs.map +1 -0
  6. package/dist/{chunk-LZW3XW5N.mjs → chunk-IXHMHSAQ.mjs} +14 -14
  7. package/dist/chunk-IXHMHSAQ.mjs.map +1 -0
  8. package/dist/{chunk-EAFF2GVB.mjs → chunk-MKGVKC2X.mjs} +77 -79
  9. package/dist/chunk-MKGVKC2X.mjs.map +1 -0
  10. package/dist/chunk-QUUX6NX2.mjs +28 -0
  11. package/dist/{chunk-6L5ZDZJ7.mjs.map → chunk-QUUX6NX2.mjs.map} +1 -1
  12. package/dist/{chunk-FSOBPDUC.mjs → chunk-Z2IQPTDI.mjs} +3 -3
  13. package/dist/{chunk-FSOBPDUC.mjs.map → chunk-Z2IQPTDI.mjs.map} +1 -1
  14. package/dist/{chunk-F7IXIJ4I.mjs → chunk-ZUZMRH3G.mjs} +3 -3
  15. package/dist/{chunk-F7IXIJ4I.mjs.map → chunk-ZUZMRH3G.mjs.map} +1 -1
  16. package/dist/compiler-Z6VNF53G.mjs +9 -0
  17. package/dist/{compiler-ZMG22VH4.mjs.map → compiler-Z6VNF53G.mjs.map} +1 -1
  18. package/dist/index.cjs +145 -117
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.mjs +6 -6
  21. package/dist/{scaffoldFeed-UD66SCQX.mjs → scaffoldFeed-NJNGKY34.mjs} +4 -4
  22. package/dist/{scaffoldFeed-UD66SCQX.mjs.map → scaffoldFeed-NJNGKY34.mjs.map} +1 -1
  23. package/dist/server/app.mjs +1 -1
  24. package/dist/server-QK2CXCDJ.mjs +11 -0
  25. package/dist/{server-5XDT7ITA.mjs.map → server-QK2CXCDJ.mjs.map} +1 -1
  26. package/dist/{skills-CZDOAQUB.mjs → skills-5F737S2K.mjs} +3 -3
  27. package/dist/{skills-CZDOAQUB.mjs.map → skills-5F737S2K.mjs.map} +1 -1
  28. package/dist/web/playground/assets/{feedSync.worker-CEbxagtY.js → feedSync.worker-BKsDG4P0.js} +4 -4
  29. package/dist/web/playground/assets/main-BR96XKhv.css +2 -0
  30. package/dist/web/playground/assets/main-BTktzUR_.js +494 -0
  31. package/dist/web/playground/assets/{statementBuilderFlow-krzOPRPk.js → statementBuilderFlow-_FHugHe-.js} +2 -2
  32. package/dist/web/playground/assets/{vendor-DKhA8bPd.js → vendor-D0x8W9No.js} +19 -19
  33. package/dist/web/{server/assets/vendor-codemirror-CnY0iCTs.js → playground/assets/vendor-codemirror-Bw_t2lTd.js} +7 -7
  34. package/dist/web/playground/index.html +4 -4
  35. package/dist/web/playground/robots.txt +2 -0
  36. package/dist/web/playground/seed/core/chunks/canvas.6e90a042.json +1 -0
  37. package/dist/web/playground/seed/core/chunks/{dashboards.44097ca1.json → dashboards.243cd89a.json} +1 -1
  38. package/dist/web/playground/seed/core/chunks/efforts.d60d4fd9.json +1 -0
  39. package/dist/web/playground/seed/core/chunks/{equipment.d90bd3bc.json → equipment.d0da7cb0.json} +1 -1
  40. package/dist/web/playground/seed/core/indexes/notebooks/canvas.json +197 -174
  41. package/dist/web/playground/seed/core/indexes/notebooks/dashboards.json +18 -13
  42. package/dist/web/playground/seed/core/indexes/notebooks/efforts.json +328 -323
  43. package/dist/web/playground/seed/core/indexes/notebooks/equipment.json +52 -47
  44. package/dist/web/playground/seed/core/manifest.json +42 -2514
  45. package/dist/web/playground/seed/core/markdown/canvas/ai-first/README.json +1 -1
  46. package/dist/web/playground/seed/core/markdown/canvas/guide/README.json +4 -4
  47. package/dist/web/playground/seed/core/markdown/canvas/guide/clock.json +1 -1
  48. package/dist/web/playground/seed/core/markdown/canvas/guide/dashboards.json +2 -2
  49. package/dist/web/playground/seed/core/markdown/canvas/guide/metrics-summaries.json +39 -0
  50. package/dist/web/playground/seed/core/markdown/canvas/guide/metrics.json +13 -13
  51. package/dist/web/playground/seed/core/markdown/canvas/guide/protocols.json +20 -20
  52. package/dist/web/playground/seed/core/markdown/canvas/guide/sessions.json +30 -30
  53. package/dist/web/playground/seed/core/markdown/canvas/guide/start.json +10 -10
  54. package/dist/web/playground/seed/core/markdown/canvas/guide/structure.json +24 -24
  55. package/dist/web/playground/seed/core/markdown/canvas/guide/wql.json +5 -5
  56. package/dist/web/playground/seed/core/markdown/canvas/home/sample-script.json +4 -4
  57. package/dist/web/playground/seed/core/markdown/canvas/home/welcome-1.json +2 -2
  58. package/dist/web/playground/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
  59. package/dist/web/playground/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
  60. package/dist/web/playground/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
  61. package/dist/web/playground/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
  62. package/dist/web/playground/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
  63. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
  64. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-full-session.json +9 -9
  65. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
  66. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
  67. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-swimming.json +3 -3
  68. package/dist/web/playground/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
  69. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +5 -52
  70. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
  71. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
  72. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
  73. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-3.json +2 -2
  74. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
  75. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
  76. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
  77. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
  78. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
  79. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
  80. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
  81. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
  82. package/dist/web/playground/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
  83. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-1.json +4 -4
  84. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-2.json +5 -5
  85. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-3.json +10 -10
  86. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-4.json +4 -4
  87. package/dist/web/playground/seed/core/markdown/canvas/syntax/effort-notes.json +4 -4
  88. package/dist/web/playground/seed/core/markdown/canvas/syntax/frontmatter-summaries.json +62 -0
  89. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
  90. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
  91. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
  92. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
  93. package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
  94. package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
  95. package/dist/web/playground/seed/core/markdown/canvas/syntax/measurements.json +4 -4
  96. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
  97. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
  98. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
  99. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-4.json +5 -5
  100. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
  101. package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-sections.json +8 -8
  102. package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
  103. package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
  104. package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
  105. package/dist/web/playground/seed/core/markdown/canvas/syntax/named-groups.json +5 -5
  106. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
  107. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
  108. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
  109. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
  110. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
  111. package/dist/web/playground/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
  112. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
  113. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
  114. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
  115. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
  116. package/dist/web/playground/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
  117. package/dist/web/playground/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
  118. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
  119. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
  120. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-3.json +3 -3
  121. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
  122. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
  123. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
  124. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
  125. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
  126. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
  127. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
  128. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
  129. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
  130. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
  131. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
  132. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
  133. package/dist/web/playground/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
  134. package/dist/web/playground/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
  135. package/dist/web/playground/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
  136. package/dist/web/playground/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
  137. package/dist/web/playground/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
  138. package/dist/web/playground/seed/core/markdown/dashboards/training-block-review.json +11 -11
  139. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/air-squat.json +2 -2
  140. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/box-jump.json +2 -2
  141. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/broad-jump.json +2 -2
  142. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +2 -2
  143. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +2 -2
  144. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee.json +2 -2
  145. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +2 -2
  146. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +2 -2
  147. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ground-kong.json +2 -2
  148. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/jumping-jack.json +2 -2
  149. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/kong-walk.json +2 -2
  150. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/lunge.json +2 -2
  151. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/overhead-squat.json +2 -2
  152. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-roll.json +2 -2
  153. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-squat.json +2 -2
  154. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/pistol-squat.json +2 -2
  155. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/plank.json +2 -2
  156. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-burpee.json +2 -2
  157. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-jump.json +2 -2
  158. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +2 -2
  159. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/russian-twist.json +2 -2
  160. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/sit-up.json +2 -2
  161. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-clean.json +2 -2
  162. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-hold.json +2 -2
  163. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-snatch.json +2 -2
  164. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/tuck-jump.json +2 -2
  165. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-ball.json +2 -2
  166. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-burpee.json +2 -2
  167. package/dist/web/playground/seed/core/markdown/efforts/cycling/assault-bike.json +2 -2
  168. package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-moderate.json +2 -2
  169. package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-vigorous.json +2 -2
  170. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +2 -2
  171. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +2 -2
  172. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +2 -2
  173. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/dip.json +2 -2
  174. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/double-under.json +2 -2
  175. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-hold.json +2 -2
  176. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +2 -2
  177. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-walk.json +2 -2
  178. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jump-rope.json +2 -2
  179. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +2 -2
  180. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +2 -2
  181. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +2 -2
  182. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/muscle-up.json +2 -2
  183. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/pull-up.json +2 -2
  184. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/push-up.json +2 -2
  185. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +2 -2
  186. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/rope-climb.json +2 -2
  187. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +2 -2
  188. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +2 -2
  189. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +2 -2
  190. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +2 -2
  191. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +2 -2
  192. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +2 -2
  193. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +2 -2
  194. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +2 -2
  195. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +2 -2
  196. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +2 -2
  197. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +2 -2
  198. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +2 -2
  199. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +2 -2
  200. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +2 -2
  201. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +2 -2
  202. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +2 -2
  203. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +2 -2
  204. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +2 -2
  205. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +2 -2
  206. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +2 -2
  207. package/dist/web/playground/seed/core/markdown/efforts/recovery/rest.json +2 -2
  208. package/dist/web/playground/seed/core/markdown/efforts/recovery/stretching.json +2 -2
  209. package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing-sprint.json +2 -2
  210. package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing.json +2 -2
  211. package/dist/web/playground/seed/core/markdown/efforts/rowing/ski-erg.json +2 -2
  212. package/dist/web/playground/seed/core/markdown/efforts/running/backward-running.json +2 -2
  213. package/dist/web/playground/seed/core/markdown/efforts/running/running-6-mph.json +2 -2
  214. package/dist/web/playground/seed/core/markdown/efforts/running/running-8-mph.json +2 -2
  215. package/dist/web/playground/seed/core/markdown/efforts/running/running-sprint.json +2 -2
  216. package/dist/web/playground/seed/core/markdown/efforts/snatch.json +7 -7
  217. package/dist/web/playground/seed/core/markdown/efforts/strength/back-squat.json +2 -2
  218. package/dist/web/playground/seed/core/markdown/efforts/strength/bench-press.json +2 -2
  219. package/dist/web/playground/seed/core/markdown/efforts/strength/box-step-up.json +2 -2
  220. package/dist/web/playground/seed/core/markdown/efforts/strength/carioca.json +2 -2
  221. package/dist/web/playground/seed/core/markdown/efforts/strength/clean-and-jerk.json +2 -2
  222. package/dist/web/playground/seed/core/markdown/efforts/strength/cluster.json +2 -2
  223. package/dist/web/playground/seed/core/markdown/efforts/strength/dead-hang.json +2 -2
  224. package/dist/web/playground/seed/core/markdown/efforts/strength/deadlift.json +2 -2
  225. package/dist/web/playground/seed/core/markdown/efforts/strength/devils-press.json +2 -2
  226. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +2 -2
  227. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-clean.json +2 -2
  228. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-fly.json +2 -2
  229. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-row.json +2 -2
  230. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-snatch.json +2 -2
  231. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-thruster.json +2 -2
  232. package/dist/web/playground/seed/core/markdown/efforts/strength/elbows-to-knees.json +2 -2
  233. package/dist/web/playground/seed/core/markdown/efforts/strength/farmer-carry.json +2 -2
  234. package/dist/web/playground/seed/core/markdown/efforts/strength/frog-stand.json +2 -2
  235. package/dist/web/playground/seed/core/markdown/efforts/strength/front-squat.json +2 -2
  236. package/dist/web/playground/seed/core/markdown/efforts/strength/good-morning.json +2 -2
  237. package/dist/web/playground/seed/core/markdown/efforts/strength/hanging-leg-raise.json +2 -2
  238. package/dist/web/playground/seed/core/markdown/efforts/strength/hollow-rock.json +2 -2
  239. package/dist/web/playground/seed/core/markdown/efforts/strength/knees-to-elbows.json +2 -2
  240. package/dist/web/playground/seed/core/markdown/efforts/strength/l-sit.json +2 -2
  241. package/dist/web/playground/seed/core/markdown/efforts/strength/man-maker.json +2 -2
  242. package/dist/web/playground/seed/core/markdown/efforts/strength/medicine-ball-clean.json +2 -2
  243. package/dist/web/playground/seed/core/markdown/efforts/strength/overhead-press.json +2 -2
  244. package/dist/web/playground/seed/core/markdown/efforts/strength/parkour-vault.json +2 -2
  245. package/dist/web/playground/seed/core/markdown/efforts/strength/pig-flip.json +2 -2
  246. package/dist/web/playground/seed/core/markdown/efforts/strength/power-clean.json +2 -2
  247. package/dist/web/playground/seed/core/markdown/efforts/strength/power-snatch.json +2 -2
  248. package/dist/web/playground/seed/core/markdown/efforts/strength/push-jerk.json +2 -2
  249. package/dist/web/playground/seed/core/markdown/efforts/strength/push-press.json +2 -2
  250. package/dist/web/playground/seed/core/markdown/efforts/strength/romanian-deadlift.json +2 -2
  251. package/dist/web/playground/seed/core/markdown/efforts/strength/single-leg-deadlift.json +2 -2
  252. package/dist/web/playground/seed/core/markdown/efforts/strength/skull-crusher.json +2 -2
  253. package/dist/web/playground/seed/core/markdown/efforts/strength/slam-ball.json +2 -2
  254. package/dist/web/playground/seed/core/markdown/efforts/strength/sled-pull.json +2 -2
  255. package/dist/web/playground/seed/core/markdown/efforts/strength/sled-push.json +2 -2
  256. package/dist/web/playground/seed/core/markdown/efforts/strength/sumo-deadlift.json +2 -2
  257. package/dist/web/playground/seed/core/markdown/efforts/strength/thruster.json +2 -2
  258. package/dist/web/playground/seed/core/markdown/efforts/strength/triceps-extension.json +2 -2
  259. package/dist/web/playground/seed/core/markdown/efforts/strength/v-sit-hold.json +2 -2
  260. package/dist/web/playground/seed/core/markdown/efforts/strength/wall-walk.json +2 -2
  261. package/dist/web/playground/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +2 -2
  262. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +2 -2
  263. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-backstroke.json +2 -2
  264. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +2 -2
  265. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +2 -2
  266. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-butterfly.json +2 -2
  267. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +2 -2
  268. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +2 -2
  269. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dive-start.json +2 -2
  270. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +2 -2
  271. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-drafting.json +2 -2
  272. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +2 -2
  273. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-freestyle.json +2 -2
  274. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +2 -2
  275. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-kick.json +2 -2
  276. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-pull.json +2 -2
  277. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +2 -2
  278. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +2 -2
  279. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-sighting.json +2 -2
  280. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +2 -2
  281. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +2 -2
  282. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +2 -2
  283. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-vigorous.json +2 -2
  284. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming.json +2 -2
  285. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +2 -2
  286. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-circles.json +2 -2
  287. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-mill.json +2 -2
  288. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +2 -2
  289. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +2 -2
  290. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +2 -2
  291. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +2 -2
  292. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +2 -2
  293. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-flow.json +2 -2
  294. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +2 -2
  295. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +2 -2
  296. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +2 -2
  297. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +2 -2
  298. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +2 -2
  299. package/dist/web/playground/seed/core/markdown/efforts/walking/walking-3-mph.json +2 -2
  300. package/dist/web/playground/seed/core/markdown/equipment/air-bike.json +1 -1
  301. package/dist/web/playground/seed/core/markdown/equipment/barbell.json +1 -1
  302. package/dist/web/playground/seed/core/markdown/equipment/bench.json +1 -1
  303. package/dist/web/playground/seed/core/markdown/equipment/bike-erg.json +1 -1
  304. package/dist/web/playground/seed/core/markdown/equipment/climbing-rope.json +1 -1
  305. package/dist/web/playground/seed/core/markdown/equipment/clubs.json +1 -1
  306. package/dist/web/playground/seed/core/markdown/equipment/dumbbell.json +1 -1
  307. package/dist/web/playground/seed/core/markdown/equipment/ghd.json +1 -1
  308. package/dist/web/playground/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
  309. package/dist/web/playground/seed/core/markdown/equipment/jump-rope.json +1 -1
  310. package/dist/web/playground/seed/core/markdown/equipment/kettlebell.json +1 -1
  311. package/dist/web/playground/seed/core/markdown/equipment/macebell.json +1 -1
  312. package/dist/web/playground/seed/core/markdown/equipment/medicine-ball.json +1 -1
  313. package/dist/web/playground/seed/core/markdown/equipment/parallettes.json +1 -1
  314. package/dist/web/playground/seed/core/markdown/equipment/plyo-box.json +1 -1
  315. package/dist/web/playground/seed/core/markdown/equipment/pull-up-bar.json +1 -1
  316. package/dist/web/playground/seed/core/markdown/equipment/rower.json +1 -1
  317. package/dist/web/playground/seed/core/markdown/equipment/sandbag.json +1 -1
  318. package/dist/web/playground/seed/core/markdown/equipment/ski-erg.json +1 -1
  319. package/dist/web/playground/seed/core/markdown/equipment/slam-ball.json +1 -1
  320. package/dist/web/playground/seed/core/markdown/equipment/sled.json +1 -1
  321. package/dist/web/playground/seed/core/markdown/equipment/sledgehammer.json +1 -1
  322. package/dist/web/playground/seed/core/markdown/equipment/weight-vest.json +1 -1
  323. package/dist/web/playground/seed/core/report.html +14 -14
  324. package/dist/web/server/assets/{feedSync.worker-CEbxagtY.js → feedSync.worker-BKsDG4P0.js} +4 -4
  325. package/dist/web/server/assets/main-BR96XKhv.css +2 -0
  326. package/dist/web/server/assets/main-COQS-SoL.js +494 -0
  327. package/dist/web/server/assets/{statementBuilderFlow-Vjl3_h6f.js → statementBuilderFlow-BAYoPjLk.js} +2 -2
  328. package/dist/web/server/assets/{vendor-DKhA8bPd.js → vendor-D0x8W9No.js} +19 -19
  329. package/dist/web/{playground/assets/vendor-codemirror-CnY0iCTs.js → server/assets/vendor-codemirror-Bw_t2lTd.js} +7 -7
  330. package/dist/web/server/index.html +4 -4
  331. package/dist/web/server/robots.txt +2 -0
  332. package/dist/web/server/seed/core/chunks/canvas.6e90a042.json +1 -0
  333. package/dist/web/server/seed/core/chunks/{dashboards.44097ca1.json → dashboards.243cd89a.json} +1 -1
  334. package/dist/web/server/seed/core/chunks/efforts.d60d4fd9.json +1 -0
  335. package/dist/web/server/seed/core/chunks/{equipment.d90bd3bc.json → equipment.d0da7cb0.json} +1 -1
  336. package/dist/web/server/seed/core/indexes/notebooks/canvas.json +197 -174
  337. package/dist/web/server/seed/core/indexes/notebooks/dashboards.json +18 -13
  338. package/dist/web/server/seed/core/indexes/notebooks/efforts.json +328 -323
  339. package/dist/web/server/seed/core/indexes/notebooks/equipment.json +52 -47
  340. package/dist/web/server/seed/core/manifest.json +42 -2514
  341. package/dist/web/server/seed/core/markdown/canvas/ai-first/README.json +1 -1
  342. package/dist/web/server/seed/core/markdown/canvas/guide/README.json +4 -4
  343. package/dist/web/server/seed/core/markdown/canvas/guide/clock.json +1 -1
  344. package/dist/web/server/seed/core/markdown/canvas/guide/dashboards.json +2 -2
  345. package/dist/web/server/seed/core/markdown/canvas/guide/metrics-summaries.json +39 -0
  346. package/dist/web/server/seed/core/markdown/canvas/guide/metrics.json +13 -13
  347. package/dist/web/server/seed/core/markdown/canvas/guide/protocols.json +20 -20
  348. package/dist/web/server/seed/core/markdown/canvas/guide/sessions.json +30 -30
  349. package/dist/web/server/seed/core/markdown/canvas/guide/start.json +10 -10
  350. package/dist/web/server/seed/core/markdown/canvas/guide/structure.json +24 -24
  351. package/dist/web/server/seed/core/markdown/canvas/guide/wql.json +5 -5
  352. package/dist/web/server/seed/core/markdown/canvas/home/sample-script.json +4 -4
  353. package/dist/web/server/seed/core/markdown/canvas/home/welcome-1.json +2 -2
  354. package/dist/web/server/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
  355. package/dist/web/server/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
  356. package/dist/web/server/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
  357. package/dist/web/server/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
  358. package/dist/web/server/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
  359. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
  360. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-full-session.json +9 -9
  361. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
  362. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
  363. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-swimming.json +3 -3
  364. package/dist/web/server/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
  365. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +5 -52
  366. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
  367. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
  368. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
  369. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-3.json +2 -2
  370. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
  371. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
  372. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
  373. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
  374. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
  375. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
  376. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
  377. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
  378. package/dist/web/server/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
  379. package/dist/web/server/seed/core/markdown/canvas/syntax/document-1.json +4 -4
  380. package/dist/web/server/seed/core/markdown/canvas/syntax/document-2.json +5 -5
  381. package/dist/web/server/seed/core/markdown/canvas/syntax/document-3.json +10 -10
  382. package/dist/web/server/seed/core/markdown/canvas/syntax/document-4.json +4 -4
  383. package/dist/web/server/seed/core/markdown/canvas/syntax/effort-notes.json +4 -4
  384. package/dist/web/server/seed/core/markdown/canvas/syntax/frontmatter-summaries.json +62 -0
  385. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
  386. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
  387. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
  388. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
  389. package/dist/web/server/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
  390. package/dist/web/server/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
  391. package/dist/web/server/seed/core/markdown/canvas/syntax/measurements.json +4 -4
  392. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
  393. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
  394. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
  395. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-4.json +5 -5
  396. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
  397. package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-sections.json +8 -8
  398. package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
  399. package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
  400. package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
  401. package/dist/web/server/seed/core/markdown/canvas/syntax/named-groups.json +5 -5
  402. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
  403. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
  404. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
  405. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
  406. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
  407. package/dist/web/server/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
  408. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
  409. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
  410. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
  411. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
  412. package/dist/web/server/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
  413. package/dist/web/server/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
  414. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
  415. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
  416. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-3.json +3 -3
  417. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
  418. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
  419. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
  420. package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
  421. package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
  422. package/dist/web/server/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
  423. package/dist/web/server/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
  424. package/dist/web/server/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
  425. package/dist/web/server/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
  426. package/dist/web/server/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
  427. package/dist/web/server/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
  428. package/dist/web/server/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
  429. package/dist/web/server/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
  430. package/dist/web/server/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
  431. package/dist/web/server/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
  432. package/dist/web/server/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
  433. package/dist/web/server/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
  434. package/dist/web/server/seed/core/markdown/dashboards/training-block-review.json +11 -11
  435. package/dist/web/server/seed/core/markdown/efforts/bodyweight/air-squat.json +2 -2
  436. package/dist/web/server/seed/core/markdown/efforts/bodyweight/box-jump.json +2 -2
  437. package/dist/web/server/seed/core/markdown/efforts/bodyweight/broad-jump.json +2 -2
  438. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +2 -2
  439. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +2 -2
  440. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee.json +2 -2
  441. package/dist/web/server/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +2 -2
  442. package/dist/web/server/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +2 -2
  443. package/dist/web/server/seed/core/markdown/efforts/bodyweight/ground-kong.json +2 -2
  444. package/dist/web/server/seed/core/markdown/efforts/bodyweight/jumping-jack.json +2 -2
  445. package/dist/web/server/seed/core/markdown/efforts/bodyweight/kong-walk.json +2 -2
  446. package/dist/web/server/seed/core/markdown/efforts/bodyweight/lunge.json +2 -2
  447. package/dist/web/server/seed/core/markdown/efforts/bodyweight/overhead-squat.json +2 -2
  448. package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-roll.json +2 -2
  449. package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-squat.json +2 -2
  450. package/dist/web/server/seed/core/markdown/efforts/bodyweight/pistol-squat.json +2 -2
  451. package/dist/web/server/seed/core/markdown/efforts/bodyweight/plank.json +2 -2
  452. package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-burpee.json +2 -2
  453. package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-jump.json +2 -2
  454. package/dist/web/server/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +2 -2
  455. package/dist/web/server/seed/core/markdown/efforts/bodyweight/russian-twist.json +2 -2
  456. package/dist/web/server/seed/core/markdown/efforts/bodyweight/sit-up.json +2 -2
  457. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-clean.json +2 -2
  458. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-hold.json +2 -2
  459. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-snatch.json +2 -2
  460. package/dist/web/server/seed/core/markdown/efforts/bodyweight/tuck-jump.json +2 -2
  461. package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-ball.json +2 -2
  462. package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-burpee.json +2 -2
  463. package/dist/web/server/seed/core/markdown/efforts/cycling/assault-bike.json +2 -2
  464. package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-moderate.json +2 -2
  465. package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-vigorous.json +2 -2
  466. package/dist/web/server/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +2 -2
  467. package/dist/web/server/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +2 -2
  468. package/dist/web/server/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +2 -2
  469. package/dist/web/server/seed/core/markdown/efforts/gymnastics/dip.json +2 -2
  470. package/dist/web/server/seed/core/markdown/efforts/gymnastics/double-under.json +2 -2
  471. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-hold.json +2 -2
  472. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +2 -2
  473. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-walk.json +2 -2
  474. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jump-rope.json +2 -2
  475. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +2 -2
  476. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +2 -2
  477. package/dist/web/server/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +2 -2
  478. package/dist/web/server/seed/core/markdown/efforts/gymnastics/muscle-up.json +2 -2
  479. package/dist/web/server/seed/core/markdown/efforts/gymnastics/pull-up.json +2 -2
  480. package/dist/web/server/seed/core/markdown/efforts/gymnastics/push-up.json +2 -2
  481. package/dist/web/server/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +2 -2
  482. package/dist/web/server/seed/core/markdown/efforts/gymnastics/rope-climb.json +2 -2
  483. package/dist/web/server/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +2 -2
  484. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +2 -2
  485. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +2 -2
  486. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +2 -2
  487. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +2 -2
  488. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +2 -2
  489. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +2 -2
  490. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +2 -2
  491. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +2 -2
  492. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +2 -2
  493. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +2 -2
  494. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +2 -2
  495. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +2 -2
  496. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +2 -2
  497. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +2 -2
  498. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +2 -2
  499. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +2 -2
  500. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +2 -2
  501. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +2 -2
  502. package/dist/web/server/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +2 -2
  503. package/dist/web/server/seed/core/markdown/efforts/recovery/rest.json +2 -2
  504. package/dist/web/server/seed/core/markdown/efforts/recovery/stretching.json +2 -2
  505. package/dist/web/server/seed/core/markdown/efforts/rowing/rowing-sprint.json +2 -2
  506. package/dist/web/server/seed/core/markdown/efforts/rowing/rowing.json +2 -2
  507. package/dist/web/server/seed/core/markdown/efforts/rowing/ski-erg.json +2 -2
  508. package/dist/web/server/seed/core/markdown/efforts/running/backward-running.json +2 -2
  509. package/dist/web/server/seed/core/markdown/efforts/running/running-6-mph.json +2 -2
  510. package/dist/web/server/seed/core/markdown/efforts/running/running-8-mph.json +2 -2
  511. package/dist/web/server/seed/core/markdown/efforts/running/running-sprint.json +2 -2
  512. package/dist/web/server/seed/core/markdown/efforts/snatch.json +7 -7
  513. package/dist/web/server/seed/core/markdown/efforts/strength/back-squat.json +2 -2
  514. package/dist/web/server/seed/core/markdown/efforts/strength/bench-press.json +2 -2
  515. package/dist/web/server/seed/core/markdown/efforts/strength/box-step-up.json +2 -2
  516. package/dist/web/server/seed/core/markdown/efforts/strength/carioca.json +2 -2
  517. package/dist/web/server/seed/core/markdown/efforts/strength/clean-and-jerk.json +2 -2
  518. package/dist/web/server/seed/core/markdown/efforts/strength/cluster.json +2 -2
  519. package/dist/web/server/seed/core/markdown/efforts/strength/dead-hang.json +2 -2
  520. package/dist/web/server/seed/core/markdown/efforts/strength/deadlift.json +2 -2
  521. package/dist/web/server/seed/core/markdown/efforts/strength/devils-press.json +2 -2
  522. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +2 -2
  523. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-clean.json +2 -2
  524. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-fly.json +2 -2
  525. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-row.json +2 -2
  526. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-snatch.json +2 -2
  527. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-thruster.json +2 -2
  528. package/dist/web/server/seed/core/markdown/efforts/strength/elbows-to-knees.json +2 -2
  529. package/dist/web/server/seed/core/markdown/efforts/strength/farmer-carry.json +2 -2
  530. package/dist/web/server/seed/core/markdown/efforts/strength/frog-stand.json +2 -2
  531. package/dist/web/server/seed/core/markdown/efforts/strength/front-squat.json +2 -2
  532. package/dist/web/server/seed/core/markdown/efforts/strength/good-morning.json +2 -2
  533. package/dist/web/server/seed/core/markdown/efforts/strength/hanging-leg-raise.json +2 -2
  534. package/dist/web/server/seed/core/markdown/efforts/strength/hollow-rock.json +2 -2
  535. package/dist/web/server/seed/core/markdown/efforts/strength/knees-to-elbows.json +2 -2
  536. package/dist/web/server/seed/core/markdown/efforts/strength/l-sit.json +2 -2
  537. package/dist/web/server/seed/core/markdown/efforts/strength/man-maker.json +2 -2
  538. package/dist/web/server/seed/core/markdown/efforts/strength/medicine-ball-clean.json +2 -2
  539. package/dist/web/server/seed/core/markdown/efforts/strength/overhead-press.json +2 -2
  540. package/dist/web/server/seed/core/markdown/efforts/strength/parkour-vault.json +2 -2
  541. package/dist/web/server/seed/core/markdown/efforts/strength/pig-flip.json +2 -2
  542. package/dist/web/server/seed/core/markdown/efforts/strength/power-clean.json +2 -2
  543. package/dist/web/server/seed/core/markdown/efforts/strength/power-snatch.json +2 -2
  544. package/dist/web/server/seed/core/markdown/efforts/strength/push-jerk.json +2 -2
  545. package/dist/web/server/seed/core/markdown/efforts/strength/push-press.json +2 -2
  546. package/dist/web/server/seed/core/markdown/efforts/strength/romanian-deadlift.json +2 -2
  547. package/dist/web/server/seed/core/markdown/efforts/strength/single-leg-deadlift.json +2 -2
  548. package/dist/web/server/seed/core/markdown/efforts/strength/skull-crusher.json +2 -2
  549. package/dist/web/server/seed/core/markdown/efforts/strength/slam-ball.json +2 -2
  550. package/dist/web/server/seed/core/markdown/efforts/strength/sled-pull.json +2 -2
  551. package/dist/web/server/seed/core/markdown/efforts/strength/sled-push.json +2 -2
  552. package/dist/web/server/seed/core/markdown/efforts/strength/sumo-deadlift.json +2 -2
  553. package/dist/web/server/seed/core/markdown/efforts/strength/thruster.json +2 -2
  554. package/dist/web/server/seed/core/markdown/efforts/strength/triceps-extension.json +2 -2
  555. package/dist/web/server/seed/core/markdown/efforts/strength/v-sit-hold.json +2 -2
  556. package/dist/web/server/seed/core/markdown/efforts/strength/wall-walk.json +2 -2
  557. package/dist/web/server/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +2 -2
  558. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +2 -2
  559. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-backstroke.json +2 -2
  560. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +2 -2
  561. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +2 -2
  562. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-butterfly.json +2 -2
  563. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +2 -2
  564. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +2 -2
  565. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dive-start.json +2 -2
  566. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +2 -2
  567. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-drafting.json +2 -2
  568. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +2 -2
  569. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-freestyle.json +2 -2
  570. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +2 -2
  571. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-kick.json +2 -2
  572. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-pull.json +2 -2
  573. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +2 -2
  574. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +2 -2
  575. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-sighting.json +2 -2
  576. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +2 -2
  577. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +2 -2
  578. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +2 -2
  579. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-vigorous.json +2 -2
  580. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming.json +2 -2
  581. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +2 -2
  582. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-circles.json +2 -2
  583. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-mill.json +2 -2
  584. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +2 -2
  585. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +2 -2
  586. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +2 -2
  587. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +2 -2
  588. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +2 -2
  589. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-flow.json +2 -2
  590. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +2 -2
  591. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +2 -2
  592. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +2 -2
  593. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +2 -2
  594. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +2 -2
  595. package/dist/web/server/seed/core/markdown/efforts/walking/walking-3-mph.json +2 -2
  596. package/dist/web/server/seed/core/markdown/equipment/air-bike.json +1 -1
  597. package/dist/web/server/seed/core/markdown/equipment/barbell.json +1 -1
  598. package/dist/web/server/seed/core/markdown/equipment/bench.json +1 -1
  599. package/dist/web/server/seed/core/markdown/equipment/bike-erg.json +1 -1
  600. package/dist/web/server/seed/core/markdown/equipment/climbing-rope.json +1 -1
  601. package/dist/web/server/seed/core/markdown/equipment/clubs.json +1 -1
  602. package/dist/web/server/seed/core/markdown/equipment/dumbbell.json +1 -1
  603. package/dist/web/server/seed/core/markdown/equipment/ghd.json +1 -1
  604. package/dist/web/server/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
  605. package/dist/web/server/seed/core/markdown/equipment/jump-rope.json +1 -1
  606. package/dist/web/server/seed/core/markdown/equipment/kettlebell.json +1 -1
  607. package/dist/web/server/seed/core/markdown/equipment/macebell.json +1 -1
  608. package/dist/web/server/seed/core/markdown/equipment/medicine-ball.json +1 -1
  609. package/dist/web/server/seed/core/markdown/equipment/parallettes.json +1 -1
  610. package/dist/web/server/seed/core/markdown/equipment/plyo-box.json +1 -1
  611. package/dist/web/server/seed/core/markdown/equipment/pull-up-bar.json +1 -1
  612. package/dist/web/server/seed/core/markdown/equipment/rower.json +1 -1
  613. package/dist/web/server/seed/core/markdown/equipment/sandbag.json +1 -1
  614. package/dist/web/server/seed/core/markdown/equipment/ski-erg.json +1 -1
  615. package/dist/web/server/seed/core/markdown/equipment/slam-ball.json +1 -1
  616. package/dist/web/server/seed/core/markdown/equipment/sled.json +1 -1
  617. package/dist/web/server/seed/core/markdown/equipment/sledgehammer.json +1 -1
  618. package/dist/web/server/seed/core/markdown/equipment/weight-vest.json +1 -1
  619. package/dist/web/server/seed/core/report.html +14 -14
  620. package/package.json +6 -6
  621. package/dist/chunk-52NLI2DL.mjs.map +0 -1
  622. package/dist/chunk-6L5ZDZJ7.mjs +0 -15
  623. package/dist/chunk-EAFF2GVB.mjs.map +0 -1
  624. package/dist/chunk-LZW3XW5N.mjs.map +0 -1
  625. package/dist/compiler-ZMG22VH4.mjs +0 -9
  626. package/dist/server-5XDT7ITA.mjs +0 -11
  627. package/dist/web/playground/assets/main-BKDG9P36.css +0 -2
  628. package/dist/web/playground/assets/main-CUs3less.js +0 -491
  629. package/dist/web/playground/seed/core/chunks/canvas.0650818f.json +0 -1
  630. package/dist/web/playground/seed/core/chunks/efforts.4edf1983.json +0 -1
  631. package/dist/web/server/assets/main-BKDG9P36.css +0 -2
  632. package/dist/web/server/assets/main-DyBj7Ku9.js +0 -491
  633. package/dist/web/server/seed/core/chunks/canvas.0650818f.json +0 -1
  634. package/dist/web/server/seed/core/chunks/efforts.4edf1983.json +0 -1
package/dist/bin/wod.cjs CHANGED
@@ -2,10 +2,11 @@
2
2
  'use strict';
3
3
 
4
4
  var wodWikiLang = require('@bitcobblers/wod-wiki-lang');
5
- var wodWikiCore = require('@bitcobblers/wod-wiki-core');
5
+ var wod_wiki_engine_star = require('@bitcobblers/wod-wiki-engine');
6
6
  var child_process = require('child_process');
7
7
  var fs = require('fs');
8
8
  var path = require('path');
9
+ var wodWikiCore = require('@bitcobblers/wod-wiki-core');
9
10
  var wodWikiWql = require('@bitcobblers/wod-wiki-wql');
10
11
  var crypto = require('crypto');
11
12
  var promises = require('fs/promises');
@@ -13,15 +14,35 @@ var stream = require('stream');
13
14
  var sql = require('@bitcobblers/wod-wiki-storage/sql');
14
15
  var wodWikiStorage = require('@bitcobblers/wod-wiki-storage');
15
16
  var http = require('http');
16
- var wodWikiEngine = require('@bitcobblers/wod-wiki-engine');
17
17
 
18
18
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
19
19
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
20
20
 
21
+ function _interopNamespace(e) {
22
+ if (e && e.__esModule) return e;
23
+ var n = Object.create(null);
24
+ if (e) {
25
+ Object.keys(e).forEach(function (k) {
26
+ if (k !== 'default') {
27
+ var d = Object.getOwnPropertyDescriptor(e, k);
28
+ Object.defineProperty(n, k, d.get ? d : {
29
+ enumerable: true,
30
+ get: function () { return e[k]; }
31
+ });
32
+ }
33
+ });
34
+ }
35
+ n.default = e;
36
+ return Object.freeze(n);
37
+ }
38
+
39
+ var wod_wiki_engine_star__namespace = /*#__PURE__*/_interopNamespace(wod_wiki_engine_star);
21
40
  var http__default = /*#__PURE__*/_interopDefault(http);
22
41
 
23
42
  var __defProp = Object.defineProperty;
43
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
24
44
  var __getOwnPropNames = Object.getOwnPropertyNames;
45
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
25
46
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
26
47
  get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
27
48
  }) : x)(function(x) {
@@ -35,6 +56,15 @@ var __export = (target, all) => {
35
56
  for (var name in all)
36
57
  __defProp(target, name, { get: all[name], enumerable: true });
37
58
  };
59
+ var __copyProps = (to, from, except, desc) => {
60
+ if (from && typeof from === "object" || typeof from === "function") {
61
+ for (let key of __getOwnPropNames(from))
62
+ if (!__hasOwnProp.call(to, key) && key !== except)
63
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
64
+ }
65
+ return to;
66
+ };
67
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget);
38
68
  function nodeRequire() {
39
69
  const g = globalThis;
40
70
  if (typeof g.process?.versions?.node === "undefined" && typeof g.Bun === "undefined") {
@@ -161,7 +191,7 @@ function sqliteEventStore(db) {
161
191
  getEventsByTimeRange: async (start, end) => (await all()).filter((r) => r.timestamp >= start && r.timestamp <= end),
162
192
  getEventsByResult: async (resultId) => (await all()).filter((r) => r.resultId === resultId),
163
193
  getEventsForNote: async (noteId) => (await all()).filter((r) => r.noteId === noteId),
164
- getEventsByContent: async (blockContentId5) => (await all()).filter((r) => r.blockContentId === blockContentId5),
194
+ getEventsByContent: async (blockContentId4) => (await all()).filter((r) => r.blockContentId === blockContentId4),
165
195
  scanAll: all,
166
196
  appendEvents: async (appended) => {
167
197
  const sql = await loadSql();
@@ -286,39 +316,12 @@ var init_db = __esm({
286
316
  CLI_UUID_NAMESPACE = "c0ffee00-8b1a-4e2c-9d3f-5a6b7c8d9e0f";
287
317
  }
288
318
  });
289
- function notebookSlugForChunkId(chunkId) {
290
- const value = /^notebook\.(.+)$/.exec(chunkId)?.[1];
291
- return value && value !== "_root" ? value : void 0;
292
- }
293
- function canvasRouteSlug(content) {
294
- const fm = /^---\r?\n([\s\S]*?)\r?\n---/.exec(content);
295
- if (fm?.[1] && !/^template:\s*canvas\s*$/m.test(fm[1])) return null;
296
- return fm?.[1]?.match(/^route:\s*(\S+)\s*$/m)?.[1]?.replace(/^\//, "") || null;
297
- }
298
- function seedNoteSourceId(path, content, chunkId) {
299
- const parts = path.split("/");
300
- const stem = (parts.at(-1) ?? "").replace(/\.md$/i, "");
301
- const under = parts.slice(2).map((p) => p.replace(/\.md$/i, "")).join("/");
302
- if (chunkId === CANVAS_CHUNK_ID2) return `guides:${canvasRouteSlug(content) ?? under}`;
303
- if (chunkId === DASHBOARDS_CHUNK_ID) return "dashboards";
304
- if (chunkId === EFFORTS_CHUNK_ID) return "efforts";
305
- if (chunkId === EQUIPMENT_CHUNK_ID) return "equipment";
306
- if (chunkId.startsWith("notebook.")) {
307
- const slug = notebookSlugForChunkId(chunkId);
308
- return !slug ? "notebook:_root" : stem.toLowerCase() === "readme" ? `notebook:${slug}` : `notebook:${under}`;
309
- }
310
- return void 0;
311
- }
312
- var SEED_SCHEMA2, SEED_REGISTERED_WIDGETS, SEED_NAMESPACE, EFFORTS_CHUNK_ID, EQUIPMENT_CHUNK_ID, CANVAS_CHUNK_ID2, DASHBOARDS_CHUNK_ID;
319
+
320
+ // src/seedbuild/contract.ts
321
+ var contract_exports = {};
313
322
  var init_contract = __esm({
314
323
  "src/seedbuild/contract.ts"() {
315
- SEED_SCHEMA2 = 9;
316
- SEED_REGISTERED_WIDGETS = wodWikiCore.KNOWN_SECTION_WIDGETS;
317
- SEED_NAMESPACE = "1b671a64-40d5-491e-99b0-da01ff1f3341";
318
- EFFORTS_CHUNK_ID = "efforts";
319
- EQUIPMENT_CHUNK_ID = "equipment";
320
- CANVAS_CHUNK_ID2 = "canvas";
321
- DASHBOARDS_CHUNK_ID = "dashboards";
324
+ __reExport(contract_exports, wod_wiki_engine_star__namespace);
322
325
  }
323
326
  });
324
327
 
@@ -502,37 +505,12 @@ var init_frontmatter = __esm({
502
505
  FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;
503
506
  }
504
507
  });
505
- function object(value) {
506
- return typeof value === "object" && value !== null && !Array.isArray(value);
507
- }
508
- function nonnegative(value) {
509
- return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
510
- }
511
- function assertSeedManifest2(value) {
512
- if (!object(value) || value.schema !== SEED_SCHEMA2) throw new Error("Incompatible seed schema; rebuild seed artifacts");
513
- if (!nonnegative(value.version) || typeof value.builtAt !== "string" || !Number.isFinite(Date.parse(value.builtAt)) || !Array.isArray(value.chunks)) throw new Error("seed manifest failed shape validation");
514
- for (const key of ["versionLabel", "commit", "name", "description"]) if (value[key] !== void 0 && typeof value[key] !== "string") throw new Error("invalid seed manifest metadata");
515
- if (value.repositoryUrl !== void 0 && (typeof value.repositoryUrl !== "string" || !/^https:\/\//.test(value.repositoryUrl) || new URL(value.repositoryUrl).username || new URL(value.repositoryUrl).password)) throw new Error("invalid seed repository URL");
516
- if (value.dirty !== void 0 && typeof value.dirty !== "boolean") throw new Error("invalid seed manifest metadata");
517
- const ids = /* @__PURE__ */ new Set(), paths = /* @__PURE__ */ new Set();
518
- for (const chunk of value.chunks) {
519
- if (!object(chunk) || typeof chunk.id !== "string" || !chunk.id || typeof chunk.path !== "string" || !/^chunks\/[a-zA-Z0-9._-]+\.json$/.test(chunk.path) || typeof chunk.sha256 !== "string" || !/^[0-9a-f]{64}$/.test(chunk.sha256) || !nonnegative(chunk.bytes) || !nonnegative(chunk.count) || chunk.kind !== void 0 && chunk.kind !== "notes" || ids.has(chunk.id) || paths.has(chunk.path)) throw new Error("seed manifest failed shape validation");
520
- ids.add(chunk.id);
521
- paths.add(chunk.path);
522
- }
523
- if (value.notebooks !== void 0) {
524
- if (!Array.isArray(value.notebooks)) throw new Error("seed manifest failed shape validation");
525
- for (const nb of value.notebooks) {
526
- if (!object(nb) || typeof nb.notebookId !== "string" || typeof nb.label !== "string" || !nonnegative(nb.count) || !Array.isArray(nb.records)) {
527
- throw new Error("seed manifest failed shape validation");
528
- }
529
- }
530
- }
531
- return value;
532
- }
508
+
509
+ // src/seedbuild/validation.ts
510
+ var validation_exports = {};
533
511
  var init_validation = __esm({
534
512
  "src/seedbuild/validation.ts"() {
535
- init_contract();
513
+ __reExport(validation_exports, wod_wiki_engine_star__namespace);
536
514
  }
537
515
  });
538
516
 
@@ -551,6 +529,10 @@ __export(compiler_exports, {
551
529
  generateSeed: () => generateSeed,
552
530
  getFileCommit: () => getFileCommit,
553
531
  getFileVersion: () => getFileVersion,
532
+ getPathCommit: () => getPathCommit,
533
+ getPathUpdatedAt: () => getPathUpdatedAt,
534
+ getPathVersion: () => getPathVersion,
535
+ groupCorpusPath: () => groupCorpusPath,
554
536
  loadCorpusReferenceCatalog: () => loadCorpusReferenceCatalog,
555
537
  partitionIntoChunks: () => partitionIntoChunks,
556
538
  scaffoldDiscoveredEfforts: () => scaffoldDiscoveredEfforts,
@@ -633,7 +615,7 @@ function validateDashboardNote(raw) {
633
615
  }
634
616
  function gateDashboards(groups, corpusRoot) {
635
617
  for (const group of groups) {
636
- if (group.id !== DASHBOARDS_CHUNK_ID) continue;
618
+ if (group.id !== contract_exports.DASHBOARDS_CHUNK_ID) continue;
637
619
  for (const p of group.files) {
638
620
  const problems = validateDashboardNote(fs.readFileSync(path.join(corpusRoot, p), "utf8"));
639
621
  if (problems.length > 0) {
@@ -653,7 +635,7 @@ function getFileCreatedAt(file, repoRoot) {
653
635
  }
654
636
  }
655
637
  function seedNoteIdSync(path) {
656
- const hash = crypto.createHash("sha1").update(`${SEED_NAMESPACE}:${path}`).digest();
638
+ const hash = crypto.createHash("sha1").update(`${contract_exports.SEED_NAMESPACE}:${path}`).digest();
657
639
  const bytes = new Uint8Array(hash.subarray(0, 16));
658
640
  bytes[6] = bytes[6] & 15 | 80;
659
641
  bytes[8] = bytes[8] & 63 | 128;
@@ -675,6 +657,37 @@ function getFileVersion(file, repoRoot) {
675
657
  return 1;
676
658
  }
677
659
  }
660
+ function getPathVersion(targetPath, repoRoot) {
661
+ try {
662
+ const out = child_process.execFileSync("git", ["rev-list", "--count", "HEAD", "--", targetPath], { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
663
+ const count = Number(out);
664
+ return Number.isFinite(count) && count > 0 ? count : 1;
665
+ } catch {
666
+ return 1;
667
+ }
668
+ }
669
+ function getPathCommit(targetPath, repoRoot) {
670
+ try {
671
+ return child_process.execFileSync("git", ["log", "-1", "--format=%H", "--", targetPath], { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
672
+ } catch {
673
+ return "";
674
+ }
675
+ }
676
+ function getPathUpdatedAt(targetPath, repoRoot) {
677
+ try {
678
+ const out = child_process.execFileSync("git", ["log", "-1", "--format=%cI", "--", targetPath], { cwd: repoRoot, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim();
679
+ return out || void 0;
680
+ } catch {
681
+ return void 0;
682
+ }
683
+ }
684
+ function groupCorpusPath(id) {
685
+ if (id.startsWith("notebook.")) {
686
+ const slug = id.slice("notebook.".length);
687
+ return slug === "_root" ? "markdown/notebooks" : `markdown/notebooks/${slug}`;
688
+ }
689
+ return `markdown/${id}`;
690
+ }
678
691
  function frontmatterDateToCreatedAt(raw, path) {
679
692
  const value = getScalar(parseFrontmatter(raw).meta, "date");
680
693
  if (value === void 0 || value === "") return void 0;
@@ -694,7 +707,7 @@ function dateKeyToCreatedAt(dateKey) {
694
707
  }
695
708
  function compileSeedRow(path, content, metadata = {}) {
696
709
  let ordinal = 0;
697
- const blocks = wodWikiCore.reconcileNoteBlocks(content, { sourceRevision: 1, registeredWidgets: SEED_REGISTERED_WIDGETS, createId: () => `seed:${path}:${ordinal++}` });
710
+ const blocks = wodWikiCore.reconcileNoteBlocks(content, { sourceRevision: 1, registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS, createId: () => `seed:${path}:${ordinal++}` });
698
711
  const noteId = metadata.routeId ?? path;
699
712
  const sections = wodWikiCore.parseDocumentSections(content);
700
713
  const blockIndex = Object.values(blocks).map((block, position) => {
@@ -712,8 +725,8 @@ function buildBlockIndexRows(markdownDir, corpusRoot, excludePaths = []) {
712
725
  const parts = path$1.split("/");
713
726
  const stem = (parts.at(-1) ?? "").replace(/\.md$/, "");
714
727
  const slug = parts[2];
715
- const routeId = chunkId === "canvas" ? canvasRouteSlug(content) ?? void 0 : chunkId.startsWith("notebook.") ? stem.toLowerCase() === "readme" ? slug : parts.slice(2).join("/").replace(/\.md$/, "") : void 0;
716
- const sourceId = seedNoteSourceId(path$1, content, chunkId);
728
+ const routeId = chunkId === "canvas" ? (0, contract_exports.canvasRouteSlug)(content) ?? void 0 : chunkId.startsWith("notebook.") ? stem.toLowerCase() === "readme" ? slug : parts.slice(2).join("/").replace(/\.md$/, "") : void 0;
729
+ const sourceId = (0, contract_exports.seedNoteSourceId)(path$1, content, chunkId);
717
730
  const createdAt = frontmatterDateToCreatedAt(content, path$1) ?? (chunkId.startsWith("notebook.") && /^\d{4}-\d{2}-\d{2}$/.test(parts.at(-2) ?? "") ? dateKeyToCreatedAt(parts.at(-2) ?? "") : getFileCreatedAt(path$1, corpusRoot));
718
731
  rows.push(...compileSeedRow(path$1, content, { routeId, sourceId, createdAt }).blockIndex);
719
732
  }
@@ -723,7 +736,7 @@ function validateWodBlockSyntax(blocks) {
723
736
  const problems = [];
724
737
  for (const block of blocks) {
725
738
  if (block.dataType !== "wod" || !block.rawContent?.trim()) continue;
726
- const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
739
+ const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
727
740
  const source = section?.scriptBlock?.content ?? block.rawContent;
728
741
  if (!source.trim()) continue;
729
742
  const where = block.sourcePath ?? block.noteId;
@@ -773,7 +786,7 @@ function discoverUncatalogedEfforts(markdownDir, corpusRoot, excludePaths = [])
773
786
  const discovered = /* @__PURE__ */ new Map();
774
787
  for (const block of blocks) {
775
788
  if (block.dataType !== "wod" || !block.rawContent) continue;
776
- const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
789
+ const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
777
790
  const script = wodWikiLang.parseScript(section?.scriptBlock?.content ?? block.rawContent, { references: index });
778
791
  for (const statement of script.statements) {
779
792
  const effortMetric = statement.metrics?.getMetric?.("effort");
@@ -834,7 +847,7 @@ function buildBlockEffortRows(markdownDir, corpusRoot, blocks = buildBlockIndexR
834
847
  const index = wodWikiLang.createReferenceIndex(loadCorpusReferenceCatalog(markdownDir));
835
848
  for (const block of blocks) {
836
849
  if (block.dataType !== "wod" || !block.rawContent) continue;
837
- const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
850
+ const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((section2) => section2.scriptBlock);
838
851
  const script = wodWikiLang.parseScript(section?.scriptBlock?.content ?? block.rawContent, { references: index });
839
852
  const linked = /* @__PURE__ */ new Set();
840
853
  for (const rawSlug of wodWikiLang.extractStatementRefs(script.statements).efforts) {
@@ -864,7 +877,7 @@ function buildBlockEquipmentRows(markdownDir, corpusRoot, blocks = buildBlockInd
864
877
  const index = wodWikiLang.createReferenceIndex(loadCorpusReferenceCatalog(markdownDir));
865
878
  for (const block of blocks) {
866
879
  if (block.dataType !== "wod" || !block.rawContent) continue;
867
- const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
880
+ const section = wodWikiCore.parseDocumentSections(block.rawContent, { registeredWidgets: contract_exports.SEED_REGISTERED_WIDGETS }).find((s) => s.scriptBlock);
868
881
  const script = wodWikiLang.parseScript(section?.scriptBlock?.content ?? block.rawContent, { references: index });
869
882
  const linked = /* @__PURE__ */ new Set();
870
883
  for (const rawSlug of wodWikiLang.extractStatementRefs(script.statements).equipment) {
@@ -954,6 +967,7 @@ ${shown}${more}`);
954
967
  }
955
968
  let totalFiles = 0;
956
969
  const manifestNotebooks = [];
970
+ const manifestBuiltAt = (/* @__PURE__ */ new Date()).toISOString();
957
971
  const tWrite = Date.now();
958
972
  for (const { id, files } of groups) {
959
973
  const records = [];
@@ -988,42 +1002,56 @@ ${shown}${more}`);
988
1002
  });
989
1003
  return compiled;
990
1004
  });
1005
+ (0, validation_exports.assertSeedRows)(rows);
991
1006
  const bytes = Buffer.from(JSON.stringify(rows), "utf8");
992
1007
  const sha = sha256Hex(bytes);
993
1008
  const file = `chunks/${id}.${sha.slice(0, 8)}.json`;
994
1009
  fs.writeFileSync(path.join(outDir, file), bytes);
995
1010
  manifestChunks.push({ id, path: file, sha256: sha, bytes: bytes.length, count: rows.length });
996
1011
  totalFiles += rows.length;
1012
+ const groupPath = groupCorpusPath(id);
1013
+ const groupVersion = getPathVersion(groupPath, corpusRoot);
1014
+ const groupCommit = getPathCommit(groupPath, corpusRoot) || gitVersion.commit || "";
1015
+ const groupUpdatedAt = getPathUpdatedAt(groupPath, corpusRoot);
997
1016
  const notebookIndexPath = `indexes/notebooks/${id}.json`;
998
- const notebookIndex = {
1017
+ const summary = {
999
1018
  notebookId: id,
1000
1019
  label: fileToDisplayName(id.split(".").at(-1) ?? id),
1001
- category: notebookSlugForChunkId(id),
1020
+ category: (0, contract_exports.notebookSlugForChunkId)(id),
1002
1021
  indexPath: notebookIndexPath,
1003
- commit: records.find((r) => r.commit)?.commit ?? gitVersion.commit,
1004
- count: rows.length,
1022
+ version: groupVersion,
1023
+ commit: groupCommit,
1024
+ updatedAt: groupUpdatedAt,
1025
+ builtAt: manifestBuiltAt,
1026
+ sha256: sha,
1027
+ bytes: bytes.length,
1028
+ count: rows.length
1029
+ };
1030
+ const notebookIndex = {
1031
+ ...summary,
1005
1032
  records
1006
1033
  };
1034
+ (0, validation_exports.assertNotebookIndex)(notebookIndex);
1007
1035
  const indexOutFile = path.join(outDir, notebookIndexPath);
1008
1036
  fs.mkdirSync(path.dirname(indexOutFile), { recursive: true });
1009
1037
  fs.writeFileSync(indexOutFile, JSON.stringify(notebookIndex, null, 2) + "\n");
1010
- manifestNotebooks.push(notebookIndex);
1038
+ manifestNotebooks.push(summary);
1011
1039
  }
1012
1040
  passMs.write = Date.now() - tWrite;
1013
1041
  const manifest = {
1014
1042
  name: "name" in metadata && typeof metadata.name === "string" ? metadata.name : void 0,
1015
1043
  description: "description" in metadata && typeof metadata.description === "string" ? metadata.description : void 0,
1016
1044
  repositoryUrl: repositoryLink?.protocol === "https:" && !repositoryLink.username && !repositoryLink.password ? repositoryLink.href : void 0,
1017
- schema: SEED_SCHEMA2,
1045
+ schema: contract_exports.SEED_SCHEMA,
1018
1046
  version: gitVersion.version,
1019
1047
  versionLabel: gitVersion.versionLabel,
1020
1048
  commit: gitVersion.commit,
1021
1049
  dirty: gitVersion.dirty,
1022
- builtAt: (/* @__PURE__ */ new Date()).toISOString(),
1050
+ builtAt: manifestBuiltAt,
1023
1051
  chunks: manifestChunks,
1024
1052
  notebooks: manifestNotebooks
1025
1053
  };
1026
- assertSeedManifest2(manifest);
1054
+ (0, validation_exports.assertSeedManifest)(manifest);
1027
1055
  fs.writeFileSync(path.join(outDir, "manifest.json"), JSON.stringify(manifest, null, 2) + "\n");
1028
1056
  const reportPath = writeBuildReport(outDir, {
1029
1057
  manifest,
@@ -1094,7 +1122,7 @@ var init_compiler = __esm({
1094
1122
  var VERSION;
1095
1123
  var init_version = __esm({
1096
1124
  "src/version.ts"() {
1097
- VERSION = "0.45.2167";
1125
+ VERSION = "0.47.2169";
1098
1126
  }
1099
1127
  });
1100
1128
 
@@ -1859,7 +1887,7 @@ async function loadLanguagePack(moduleSpec) {
1859
1887
  throw new Error(`Module "${moduleSpec}" does not export a valid LanguagePack object`);
1860
1888
  }
1861
1889
  const pack = candidate;
1862
- wodWikiEngine.registerLanguagePack(pack);
1890
+ wod_wiki_engine_star.registerLanguagePack(pack);
1863
1891
  return pack;
1864
1892
  } catch (error) {
1865
1893
  if (error instanceof PackLoadError) throw error;
@@ -1881,8 +1909,8 @@ function runParse(source, options = {}) {
1881
1909
  if (script.errors && script.errors.length > 0) {
1882
1910
  throw new ParseSyntaxError(script.errors);
1883
1911
  }
1884
- const tree = wodWikiEngine.buildStatementTree(script);
1885
- return wodWikiEngine.createIRFile("parse-tree", tree, { source: options.sourceLabel ?? "cli:wod parse" });
1912
+ const tree = wod_wiki_engine_star.buildStatementTree(script);
1913
+ return wod_wiki_engine_star.createIRFile("parse-tree", tree, { source: options.sourceLabel ?? "cli:wod parse" });
1886
1914
  }
1887
1915
  function buildWorkoutResults(outputs, options) {
1888
1916
  return {
@@ -1945,7 +1973,7 @@ async function runExecution(source, options = {}) {
1945
1973
  now
1946
1974
  });
1947
1975
  const logs = outputs.map(wodWikiLang.toStoredOutputStatement);
1948
- return wodWikiEngine.createIRFile(
1976
+ return wod_wiki_engine_star.createIRFile(
1949
1977
  "execution-log",
1950
1978
  {
1951
1979
  results: workoutResults,
@@ -1975,7 +2003,7 @@ var WqlSyntaxError = class extends Error {
1975
2003
  function extractPayload(rawJson) {
1976
2004
  try {
1977
2005
  const parsed = JSON.parse(rawJson);
1978
- if (wodWikiEngine.isIRFile(parsed)) {
2006
+ if (wod_wiki_engine_star.isIRFile(parsed)) {
1979
2007
  return parsed.data;
1980
2008
  }
1981
2009
  return parsed;
@@ -2007,7 +2035,7 @@ function buildStoresFromData(data) {
2007
2035
  blockVersion: f.blockVersion
2008
2036
  }))
2009
2037
  ];
2010
- const eventStore = wodWikiEngine.inMemoryEventStore(events);
2038
+ const eventStore = wod_wiki_engine_star.inMemoryEventStore(events);
2011
2039
  const noteStore = {
2012
2040
  getAllNotes: async () => [...data.notes],
2013
2041
  getNotesByIds: async (ids) => {
@@ -2186,17 +2214,17 @@ async function runQueryCli(wqlString, options = {}) {
2186
2214
  const result2 = await service.runPipeline(wqlString, {
2187
2215
  preferredUnit: options.preferredUnit
2188
2216
  });
2189
- return wodWikiEngine.createIRFile("pipeline-result", result2, { source: options.sourceLabel ?? "cli:wod query" });
2217
+ return wod_wiki_engine_star.createIRFile("pipeline-result", result2, { source: options.sourceLabel ?? "cli:wod query" });
2190
2218
  }
2191
2219
  if (wodWikiWql.isFindQuery(parsed)) {
2192
2220
  const result2 = await service.runFind(parsed);
2193
2221
  const kind = parsed.target === "session" ? "rows-result" : "find-result";
2194
- return wodWikiEngine.createIRFile(kind, result2, { source: options.sourceLabel ?? "cli:wod query" });
2222
+ return wod_wiki_engine_star.createIRFile(kind, result2, { source: options.sourceLabel ?? "cli:wod query" });
2195
2223
  }
2196
2224
  const result = await service.runQuery(wqlString, {
2197
2225
  preferredUnit: options.preferredUnit
2198
2226
  });
2199
- return wodWikiEngine.createIRFile("query-result", result, { source: options.sourceLabel ?? "cli:wod query" });
2227
+ return wod_wiki_engine_star.createIRFile("query-result", result, { source: options.sourceLabel ?? "cli:wod query" });
2200
2228
  }
2201
2229
 
2202
2230
  // src/cli/runner.ts
@@ -3384,7 +3412,7 @@ async function persistDefinitionNote(db, kind, source) {
3384
3412
  }
3385
3413
  const family = kind === "effort" ? "efforts" : "equipment";
3386
3414
  const prior = await db.storage.readonly(family).get(parsed.slug);
3387
- const stamped = wodWikiEngine.extractNoteIdentity(source)?.noteId;
3415
+ const stamped = wod_wiki_engine_star.extractNoteIdentity(source)?.noteId;
3388
3416
  const noteId = stamped ?? prior?.ownerNoteId ?? `${kind}/${parsed.slug}`;
3389
3417
  const now = Date.now();
3390
3418
  return db.storage.transaction(["notes", family, "tags", "note_tags"], "readwrite", async (tx) => {
@@ -3415,7 +3443,7 @@ async function persistDefinitionNote(db, kind, source) {
3415
3443
  createdAt: prior?.createdAt ?? isoNow,
3416
3444
  updatedAt: isoNow
3417
3445
  });
3418
- await saveTags(tx, noteId, wodWikiEngine.extractTypedTags(source), now);
3446
+ await saveTags(tx, noteId, wod_wiki_engine_star.extractTypedTags(source), now);
3419
3447
  return { slug: parsed.slug, noteId, createdNote: !previous };
3420
3448
  });
3421
3449
  }
@@ -3442,16 +3470,16 @@ init_db();
3442
3470
  async function importSeedDir(db, dir, sourceId) {
3443
3471
  const fs = nodeFs(), path = nodePath();
3444
3472
  const source = sourceId || path.basename(dir);
3445
- const manifest = wodWikiEngine.assertSeedManifest(JSON.parse(fs.readFileSync(path.resolve(dir, "manifest.json"), "utf-8")));
3446
- const key = wodWikiEngine.seedMetaKey(source);
3473
+ const manifest = wod_wiki_engine_star.assertSeedManifest(JSON.parse(fs.readFileSync(path.resolve(dir, "manifest.json"), "utf-8")));
3474
+ const key = wod_wiki_engine_star.seedMetaKey(source);
3447
3475
  const stored = await db.storage.readonly("meta").get(key);
3448
- let expected = stored?.schema === wodWikiEngine.SEED_SCHEMA ? stored : void 0;
3449
- let meta = expected ?? wodWikiEngine.emptySeedMeta(key);
3476
+ let expected = stored?.schema === wod_wiki_engine_star.SEED_SCHEMA ? stored : void 0;
3477
+ let meta = expected ?? wod_wiki_engine_star.emptySeedMeta(key);
3450
3478
  if (manifest.version < meta.seedVersion) throw new Error("Seed manifest is older than stored checkpoint");
3451
3479
  const summary = { sourceId: source, version: manifest.version, notes: 0, efforts: 0, equipment: 0, blocks: 0, blockEfforts: 0, deleted: 0, skippedUserOwned: 0 };
3452
3480
  const metadataChanged = manifest.version !== meta.seedVersion || manifest.builtAt !== meta.builtAt;
3453
3481
  const plan = manifest.chunks.filter((c) => metadataChanged || meta.chunks[c.id]?.sha256 !== c.sha256);
3454
- plan.sort((a, b) => Number(b.id === wodWikiEngine.CANVAS_CHUNK_ID) - Number(a.id === wodWikiEngine.CANVAS_CHUNK_ID));
3482
+ plan.sort((a, b) => Number(b.id === wod_wiki_engine_star.CANVAS_CHUNK_ID) - Number(a.id === wod_wiki_engine_star.CANVAS_CHUNK_ID));
3455
3483
  const accumulate = (result) => {
3456
3484
  summary.notes += result.totalNotes;
3457
3485
  summary.efforts += result.totalEfforts;
@@ -3461,10 +3489,10 @@ async function importSeedDir(db, dir, sourceId) {
3461
3489
  summary.skippedUserOwned += result.skippedUserOwned;
3462
3490
  };
3463
3491
  for (const chunk of plan) {
3464
- const rows = wodWikiEngine.assertSeedRows(JSON.parse(fs.readFileSync(path.resolve(dir, chunk.path), "utf-8")));
3492
+ const rows = wod_wiki_engine_star.assertSeedRows(JSON.parse(fs.readFileSync(path.resolve(dir, chunk.path), "utf-8")));
3465
3493
  if (rows.length !== chunk.count) throw new Error("Seed chunk count mismatch");
3466
- const next = { ...meta, chunks: { ...meta.chunks, [chunk.id]: { sha256: chunk.sha256, noteIds: await Promise.all(rows.map((r) => wodWikiEngine.seedNoteId(r.path))) } }, importedAt: Date.now() };
3467
- accumulate(await wodWikiEngine.applySeedChunk(db.storage, { chunkId: chunk.id, rows, manifest, expectedMeta: expected, meta: next }));
3494
+ const next = { ...meta, chunks: { ...meta.chunks, [chunk.id]: { sha256: chunk.sha256, noteIds: await Promise.all(rows.map((r) => wod_wiki_engine_star.seedNoteId(r.path))) } }, importedAt: Date.now() };
3495
+ accumulate(await wod_wiki_engine_star.applySeedChunk(db.storage, { chunkId: chunk.id, rows, manifest, expectedMeta: expected, meta: next }));
3468
3496
  summary.blockEfforts += rows.reduce((count, row) => count + row.blockEfforts.length, 0);
3469
3497
  meta = next;
3470
3498
  expected = next;
@@ -3474,13 +3502,13 @@ async function importSeedDir(db, dir, sourceId) {
3474
3502
  const chunks = { ...meta.chunks };
3475
3503
  delete chunks[chunkId];
3476
3504
  const next = { ...meta, chunks, importedAt: Date.now() };
3477
- accumulate(await wodWikiEngine.applySeedChunk(db.storage, { chunkId, rows: [], manifest, expectedMeta: expected, meta: next }));
3505
+ accumulate(await wod_wiki_engine_star.applySeedChunk(db.storage, { chunkId, rows: [], manifest, expectedMeta: expected, meta: next }));
3478
3506
  meta = next;
3479
3507
  expected = next;
3480
3508
  }
3481
3509
  if (plan.length || metadataChanged || Object.keys(meta.chunks).length !== Object.keys(expected?.chunks ?? {}).length) {
3482
- const next = { ...meta, schema: wodWikiEngine.SEED_SCHEMA, seedVersion: manifest.version, builtAt: manifest.builtAt, importedAt: Date.now() };
3483
- await wodWikiEngine.applySeedChunk(db.storage, { chunkId: null, rows: [], manifest, expectedMeta: expected, meta: next });
3510
+ const next = { ...meta, schema: wod_wiki_engine_star.SEED_SCHEMA, seedVersion: manifest.version, builtAt: manifest.builtAt, importedAt: Date.now() };
3511
+ await wod_wiki_engine_star.applySeedChunk(db.storage, { chunkId: null, rows: [], manifest, expectedMeta: expected, meta: next });
3484
3512
  }
3485
3513
  return summary;
3486
3514
  }
@@ -3613,7 +3641,7 @@ async function publishNotebookSeed(db, options) {
3613
3641
  totalNotes += chunkRows.length;
3614
3642
  }
3615
3643
  const manifest = {
3616
- schema: SEED_SCHEMA2,
3644
+ schema: contract_exports.SEED_SCHEMA,
3617
3645
  version: options.version ?? 1,
3618
3646
  versionLabel: `v${options.version ?? 1}`,
3619
3647
  builtAt: (/* @__PURE__ */ new Date()).toISOString(),
@@ -4472,8 +4500,8 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4472
4500
  }
4473
4501
  const noteSource = cliNoteSource(source, parsed.target, parsed.sport);
4474
4502
  const ir = runParse(source, { sport: parsed.sport, sourceLabel: `cli:wod parse ${parsed.target}` });
4475
- const identity = wodWikiEngine.extractNoteIdentity(source);
4476
- const tags = wodWikiEngine.extractTypedTags(source);
4503
+ const identity = wod_wiki_engine_star.extractNoteIdentity(source);
4504
+ const tags = wod_wiki_engine_star.extractTypedTags(source);
4477
4505
  const db = await openCliDb(cliDb());
4478
4506
  try {
4479
4507
  const persisted = await persistNote(db, {
@@ -4512,7 +4540,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4512
4540
  }
4513
4541
  source = fs.readFileSync(parsed.target, "utf-8");
4514
4542
  }
4515
- const identity = wodWikiEngine.extractNoteIdentity(source);
4543
+ const identity = wod_wiki_engine_star.extractNoteIdentity(source);
4516
4544
  const db = await openCliDb(cliDb());
4517
4545
  let ir;
4518
4546
  try {
@@ -4521,7 +4549,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4521
4549
  sourceLabel: parsed.target,
4522
4550
  noteId: identity?.noteId,
4523
4551
  title: identity?.title,
4524
- tags: wodWikiEngine.extractTypedTags(source)
4552
+ tags: wod_wiki_engine_star.extractTypedTags(source)
4525
4553
  });
4526
4554
  const section = wodWikiCore.parseDocumentSections(started.revision.rawContent).find((row) => row.scriptBlock);
4527
4555
  if (!section?.scriptBlock) throw new Error("[wod run] Captured workout source cannot be parsed");
@@ -4626,7 +4654,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4626
4654
  writeErr(`[wod ${verb}] Note not found in ${db.path}: ${id}`);
4627
4655
  return 1;
4628
4656
  }
4629
- const markdown = wodWikiEngine.composeNoteMarkdown(bundle.note);
4657
+ const markdown = wod_wiki_engine_star.composeNoteMarkdown(bundle.note);
4630
4658
  const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.md`;
4631
4659
  if (parsed.output === "-") {
4632
4660
  writeOut(markdown);
@@ -4640,7 +4668,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4640
4668
  writeErr(`[wod ${verb}] Session not found in ${db.path}: ${id}`);
4641
4669
  return 1;
4642
4670
  }
4643
- const csv = wodWikiEngine.sessionToCsv(bundle.session, bundle.events);
4671
+ const csv = wod_wiki_engine_star.sessionToCsv(bundle.session, bundle.events);
4644
4672
  const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.csv`;
4645
4673
  if (parsed.output === "-") {
4646
4674
  writeOut(csv);
@@ -4656,7 +4684,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4656
4684
  }
4657
4685
  const ownerNoteId = typeof effort.ownerNoteId === "string" ? effort.ownerNoteId : `effort/${effort.slug}`;
4658
4686
  const owner = await db.storage.readonly("notes").get(ownerNoteId);
4659
- const markdown = owner?.rawContent ?? wodWikiEngine.effortToMarkdown(effort);
4687
+ const markdown = owner?.rawContent ?? wod_wiki_engine_star.effortToMarkdown(effort);
4660
4688
  const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.md`;
4661
4689
  if (parsed.output === "-") {
4662
4690
  writeOut(markdown);
@@ -4669,7 +4697,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4669
4697
  if (equipment) {
4670
4698
  const ownerNoteId = typeof equipment.ownerNoteId === "string" ? equipment.ownerNoteId : `equipment/${equipment.slug}`;
4671
4699
  const owner = await db.storage.readonly("notes").get(ownerNoteId);
4672
- const markdown = owner?.rawContent ?? wodWikiEngine.equipmentToMarkdown(equipment);
4700
+ const markdown = owner?.rawContent ?? wod_wiki_engine_star.equipmentToMarkdown(equipment);
4673
4701
  const target = parsed.output && parsed.output !== "-" ? parsed.output : `${id}.md`;
4674
4702
  if (parsed.output === "-") {
4675
4703
  writeOut(markdown);
@@ -4679,7 +4707,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4679
4707
  writeOut(`[wod ${verb}] equipment ${id} \u2192 ${target}`);
4680
4708
  } else {
4681
4709
  const labels = (await listTagsByType(db.db, "equipment")).map((t) => t.label).sort();
4682
- const csv = wodWikiEngine.equipmentToCsv(labels);
4710
+ const csv = wod_wiki_engine_star.equipmentToCsv(labels);
4683
4711
  const target = parsed.output && parsed.output !== "-" ? parsed.output : "equipment.csv";
4684
4712
  if (parsed.output === "-") {
4685
4713
  writeOut(csv);
@@ -4709,8 +4737,8 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4709
4737
  }
4710
4738
  if (kind === "note" || kind === "playground") {
4711
4739
  const source = fs.readFileSync(file, "utf-8");
4712
- const identity = wodWikiEngine.extractNoteIdentity(source);
4713
- const tags = wodWikiEngine.extractTypedTags(source);
4740
+ const identity = wod_wiki_engine_star.extractNoteIdentity(source);
4741
+ const tags = wod_wiki_engine_star.extractTypedTags(source);
4714
4742
  const db2 = await openCliDb(cliDb());
4715
4743
  try {
4716
4744
  const persisted = await persistNote(db2, {
@@ -4751,7 +4779,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4751
4779
  return 0;
4752
4780
  }
4753
4781
  if (kind === "equipment") {
4754
- const labels = wodWikiEngine.csvToEquipmentLabels(fs.readFileSync(file, "utf-8"));
4782
+ const labels = wod_wiki_engine_star.csvToEquipmentLabels(fs.readFileSync(file, "utf-8"));
4755
4783
  if (labels.length === 0) {
4756
4784
  writeErr(`[wod import] No equipment labels found in ${file}`);
4757
4785
  return 1;
@@ -4765,7 +4793,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
4765
4793
  }
4766
4794
  return 0;
4767
4795
  }
4768
- const { session, events } = wodWikiEngine.csvToSessionRows(fs.readFileSync(file, "utf-8"));
4796
+ const { session, events } = wod_wiki_engine_star.csvToSessionRows(fs.readFileSync(file, "utf-8"));
4769
4797
  const db = await openCliDb(cliDb());
4770
4798
  try {
4771
4799
  const result = await persistSessionBundle(db, session, events);