@bitcobblers/wod-wiki-tools 0.45.2167 → 0.46.2168

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