@bitcobblers/wod-wiki-tools 0.53.2204 → 0.54.2205

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 (645) hide show
  1. package/dist/agentCommands-AMMASJPH.mjs +586 -0
  2. package/dist/agentCommands-AMMASJPH.mjs.map +1 -0
  3. package/dist/bin/wod.cjs +1071 -29
  4. package/dist/bin/wod.cjs.map +1 -1
  5. package/dist/bin/wod.mjs +2 -2
  6. package/dist/{chunk-LNBKPHEP.mjs → chunk-AS6OJRNH.mjs} +9 -4
  7. package/dist/chunk-AS6OJRNH.mjs.map +1 -0
  8. package/dist/{chunk-SLCRIGUR.mjs → chunk-KXNK4PIB.mjs} +168 -28
  9. package/dist/chunk-KXNK4PIB.mjs.map +1 -0
  10. package/dist/{chunk-5NNSHRMZ.mjs → chunk-T7VB7PPO.mjs} +3 -3
  11. package/dist/chunk-T7VB7PPO.mjs.map +1 -0
  12. package/dist/{chunk-2EWCEE6N.mjs → chunk-WLCUM7KO.mjs} +106 -6
  13. package/dist/chunk-WLCUM7KO.mjs.map +1 -0
  14. package/dist/chunk-ZZVL6UGV.mjs +144 -0
  15. package/dist/chunk-ZZVL6UGV.mjs.map +1 -0
  16. package/dist/index.cjs +1075 -29
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +68 -3
  19. package/dist/index.d.ts +68 -3
  20. package/dist/index.mjs +5 -4
  21. package/dist/mcp-D6QARYOG.mjs +73 -0
  22. package/dist/mcp-D6QARYOG.mjs.map +1 -0
  23. package/dist/{scaffoldFeed-TCRNXYQU.mjs → scaffoldFeed-D55NINVJ.mjs} +3 -3
  24. package/dist/{scaffoldFeed-TCRNXYQU.mjs.map → scaffoldFeed-D55NINVJ.mjs.map} +1 -1
  25. package/dist/server/app.cjs +239 -2
  26. package/dist/server/app.cjs.map +1 -1
  27. package/dist/server/app.d.cts +2 -0
  28. package/dist/server/app.d.ts +2 -0
  29. package/dist/server/app.mjs +3 -1
  30. package/dist/server-2GTVPJDA.mjs +13 -0
  31. package/dist/{server-SHNWCIIM.mjs.map → server-2GTVPJDA.mjs.map} +1 -1
  32. package/dist/skills/README.md +3 -0
  33. package/dist/skills/wod-agent-parity/SKILL.md +41 -0
  34. package/dist/skills/wod-cli/SKILL.md +127 -0
  35. package/dist/skills/wod-wql/SKILL.md +63 -0
  36. package/dist/web/playground/ai-skills/agent-parity.md +41 -0
  37. package/dist/web/playground/ai-skills/cli.md +127 -0
  38. package/dist/web/playground/ai-skills/wql.md +63 -0
  39. package/dist/web/playground/assets/main-BH_SMMzT.css +2 -0
  40. package/dist/web/playground/assets/main-vYMBKnsB.js +1152 -0
  41. package/dist/web/playground/assets/{statementBuilderFlow-CQWO7k9W.js → statementBuilderFlow-D8GG8Y7r.js} +2 -2
  42. package/dist/web/playground/assets/vendor-BUlwHBNF.js +255 -0
  43. package/dist/web/playground/assets/{vendor-codemirror-B4BeZarI.js → vendor-codemirror-Bh6hyz5v.js} +11 -11
  44. package/dist/web/playground/index.html +4 -4
  45. package/dist/web/playground/llms-full.txt +1444 -0
  46. package/dist/web/playground/llms.txt +67 -0
  47. package/dist/web/{server/seed/core/chunks/canvas.deac64e3.json → playground/seed/core/chunks/canvas.b0bc465b.json} +1 -1
  48. package/dist/web/playground/seed/core/chunks/{dashboards.08301ab4.json → dashboards.af9a29e4.json} +1 -1
  49. package/dist/web/playground/seed/core/chunks/{efforts.47f650fe.json → efforts.902271f9.json} +1 -1
  50. package/dist/web/playground/seed/core/chunks/{equipment.79146d31.json → equipment.dbdc1af3.json} +1 -1
  51. package/dist/web/playground/seed/core/indexes/notebooks/canvas.json +180 -180
  52. package/dist/web/playground/seed/core/indexes/notebooks/dashboards.json +16 -16
  53. package/dist/web/playground/seed/core/indexes/notebooks/efforts.json +326 -326
  54. package/dist/web/playground/seed/core/indexes/notebooks/equipment.json +50 -50
  55. package/dist/web/playground/seed/core/manifest.json +27 -27
  56. package/dist/web/playground/seed/core/markdown/canvas/ai-first/README.json +1 -1
  57. package/dist/web/playground/seed/core/markdown/canvas/guide/README.json +4 -4
  58. package/dist/web/playground/seed/core/markdown/canvas/guide/clock.json +1 -1
  59. package/dist/web/playground/seed/core/markdown/canvas/guide/dashboards.json +1 -1
  60. package/dist/web/playground/seed/core/markdown/canvas/guide/metrics-summaries.json +2 -2
  61. package/dist/web/playground/seed/core/markdown/canvas/guide/metrics.json +12 -12
  62. package/dist/web/playground/seed/core/markdown/canvas/guide/protocols.json +20 -20
  63. package/dist/web/playground/seed/core/markdown/canvas/guide/sessions.json +33 -33
  64. package/dist/web/playground/seed/core/markdown/canvas/guide/start.json +11 -11
  65. package/dist/web/playground/seed/core/markdown/canvas/guide/structure.json +25 -25
  66. package/dist/web/playground/seed/core/markdown/canvas/guide/wql.json +5 -5
  67. package/dist/web/playground/seed/core/markdown/canvas/home/sample-script.json +4 -4
  68. package/dist/web/playground/seed/core/markdown/canvas/home/welcome-1.json +2 -2
  69. package/dist/web/playground/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
  70. package/dist/web/playground/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
  71. package/dist/web/playground/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
  72. package/dist/web/playground/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
  73. package/dist/web/playground/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
  74. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
  75. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-full-session.json +10 -10
  76. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
  77. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
  78. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-swimming.json +5 -5
  79. package/dist/web/playground/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
  80. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +4 -4
  81. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
  82. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
  83. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
  84. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-3.json +3 -3
  85. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
  86. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
  87. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
  88. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
  89. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
  90. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
  91. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
  92. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
  93. package/dist/web/playground/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
  94. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-1.json +4 -4
  95. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-2.json +5 -5
  96. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-3.json +10 -10
  97. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-4.json +5 -5
  98. package/dist/web/playground/seed/core/markdown/canvas/syntax/effort-notes.json +5 -5
  99. package/dist/web/playground/seed/core/markdown/canvas/syntax/frontmatter-summaries.json +4 -4
  100. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
  101. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
  102. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
  103. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
  104. package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
  105. package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
  106. package/dist/web/playground/seed/core/markdown/canvas/syntax/measurements.json +7 -7
  107. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
  108. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
  109. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
  110. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-4.json +6 -6
  111. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
  112. package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-sections.json +10 -10
  113. package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
  114. package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
  115. package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
  116. package/dist/web/playground/seed/core/markdown/canvas/syntax/named-groups.json +6 -6
  117. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
  118. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
  119. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
  120. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
  121. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
  122. package/dist/web/playground/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
  123. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
  124. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
  125. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
  126. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
  127. package/dist/web/playground/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
  128. package/dist/web/playground/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
  129. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
  130. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
  131. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-3.json +4 -4
  132. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
  133. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
  134. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
  135. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
  136. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
  137. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
  138. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
  139. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
  140. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
  141. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
  142. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
  143. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
  144. package/dist/web/playground/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
  145. package/dist/web/playground/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
  146. package/dist/web/playground/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
  147. package/dist/web/playground/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
  148. package/dist/web/playground/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
  149. package/dist/web/playground/seed/core/markdown/dashboards/training-block-review.json +11 -11
  150. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/air-squat.json +1 -1
  151. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/box-jump.json +1 -1
  152. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/broad-jump.json +1 -1
  153. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +1 -1
  154. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +1 -1
  155. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee.json +1 -1
  156. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +1 -1
  157. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +1 -1
  158. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ground-kong.json +1 -1
  159. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/jumping-jack.json +1 -1
  160. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/kong-walk.json +1 -1
  161. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/lunge.json +1 -1
  162. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/overhead-squat.json +1 -1
  163. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-roll.json +1 -1
  164. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-squat.json +1 -1
  165. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/pistol-squat.json +1 -1
  166. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/plank.json +1 -1
  167. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-burpee.json +1 -1
  168. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-jump.json +1 -1
  169. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +1 -1
  170. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/russian-twist.json +1 -1
  171. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/sit-up.json +1 -1
  172. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-clean.json +1 -1
  173. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-hold.json +1 -1
  174. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-snatch.json +1 -1
  175. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/tuck-jump.json +1 -1
  176. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-ball.json +1 -1
  177. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-burpee.json +1 -1
  178. package/dist/web/playground/seed/core/markdown/efforts/cycling/assault-bike.json +1 -1
  179. package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-moderate.json +1 -1
  180. package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-vigorous.json +1 -1
  181. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +1 -1
  182. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +1 -1
  183. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +1 -1
  184. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/dip.json +1 -1
  185. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/double-under.json +1 -1
  186. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-hold.json +1 -1
  187. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +1 -1
  188. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-walk.json +1 -1
  189. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jump-rope.json +1 -1
  190. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +1 -1
  191. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +1 -1
  192. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +1 -1
  193. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/muscle-up.json +1 -1
  194. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/pull-up.json +1 -1
  195. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/push-up.json +1 -1
  196. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +1 -1
  197. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/rope-climb.json +1 -1
  198. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +1 -1
  199. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +1 -1
  200. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +1 -1
  201. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +1 -1
  202. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +1 -1
  203. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +1 -1
  204. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +1 -1
  205. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +1 -1
  206. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +1 -1
  207. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +1 -1
  208. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +1 -1
  209. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +1 -1
  210. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +1 -1
  211. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +1 -1
  212. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +1 -1
  213. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +1 -1
  214. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +1 -1
  215. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +1 -1
  216. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +1 -1
  217. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +1 -1
  218. package/dist/web/playground/seed/core/markdown/efforts/recovery/rest.json +1 -1
  219. package/dist/web/playground/seed/core/markdown/efforts/recovery/stretching.json +1 -1
  220. package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing-sprint.json +1 -1
  221. package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing.json +1 -1
  222. package/dist/web/playground/seed/core/markdown/efforts/rowing/ski-erg.json +1 -1
  223. package/dist/web/playground/seed/core/markdown/efforts/running/backward-running.json +1 -1
  224. package/dist/web/playground/seed/core/markdown/efforts/running/running-6-mph.json +1 -1
  225. package/dist/web/playground/seed/core/markdown/efforts/running/running-8-mph.json +1 -1
  226. package/dist/web/playground/seed/core/markdown/efforts/running/running-sprint.json +1 -1
  227. package/dist/web/playground/seed/core/markdown/efforts/snatch.json +2 -2
  228. package/dist/web/playground/seed/core/markdown/efforts/strength/back-squat.json +1 -1
  229. package/dist/web/playground/seed/core/markdown/efforts/strength/bench-press.json +1 -1
  230. package/dist/web/playground/seed/core/markdown/efforts/strength/box-step-up.json +1 -1
  231. package/dist/web/playground/seed/core/markdown/efforts/strength/carioca.json +1 -1
  232. package/dist/web/playground/seed/core/markdown/efforts/strength/clean-and-jerk.json +1 -1
  233. package/dist/web/playground/seed/core/markdown/efforts/strength/cluster.json +1 -1
  234. package/dist/web/playground/seed/core/markdown/efforts/strength/dead-hang.json +1 -1
  235. package/dist/web/playground/seed/core/markdown/efforts/strength/deadlift.json +1 -1
  236. package/dist/web/playground/seed/core/markdown/efforts/strength/devils-press.json +1 -1
  237. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +1 -1
  238. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-clean.json +1 -1
  239. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-fly.json +1 -1
  240. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-row.json +1 -1
  241. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-snatch.json +1 -1
  242. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-thruster.json +1 -1
  243. package/dist/web/playground/seed/core/markdown/efforts/strength/elbows-to-knees.json +1 -1
  244. package/dist/web/playground/seed/core/markdown/efforts/strength/farmer-carry.json +1 -1
  245. package/dist/web/playground/seed/core/markdown/efforts/strength/frog-stand.json +1 -1
  246. package/dist/web/playground/seed/core/markdown/efforts/strength/front-squat.json +1 -1
  247. package/dist/web/playground/seed/core/markdown/efforts/strength/good-morning.json +1 -1
  248. package/dist/web/playground/seed/core/markdown/efforts/strength/hanging-leg-raise.json +1 -1
  249. package/dist/web/playground/seed/core/markdown/efforts/strength/hollow-rock.json +1 -1
  250. package/dist/web/playground/seed/core/markdown/efforts/strength/knees-to-elbows.json +1 -1
  251. package/dist/web/playground/seed/core/markdown/efforts/strength/l-sit.json +1 -1
  252. package/dist/web/playground/seed/core/markdown/efforts/strength/man-maker.json +1 -1
  253. package/dist/web/playground/seed/core/markdown/efforts/strength/medicine-ball-clean.json +1 -1
  254. package/dist/web/playground/seed/core/markdown/efforts/strength/overhead-press.json +1 -1
  255. package/dist/web/playground/seed/core/markdown/efforts/strength/parkour-vault.json +1 -1
  256. package/dist/web/playground/seed/core/markdown/efforts/strength/pig-flip.json +1 -1
  257. package/dist/web/playground/seed/core/markdown/efforts/strength/power-clean.json +1 -1
  258. package/dist/web/playground/seed/core/markdown/efforts/strength/power-snatch.json +1 -1
  259. package/dist/web/playground/seed/core/markdown/efforts/strength/push-jerk.json +1 -1
  260. package/dist/web/playground/seed/core/markdown/efforts/strength/push-press.json +1 -1
  261. package/dist/web/playground/seed/core/markdown/efforts/strength/romanian-deadlift.json +1 -1
  262. package/dist/web/playground/seed/core/markdown/efforts/strength/single-leg-deadlift.json +1 -1
  263. package/dist/web/playground/seed/core/markdown/efforts/strength/skull-crusher.json +1 -1
  264. package/dist/web/playground/seed/core/markdown/efforts/strength/slam-ball.json +1 -1
  265. package/dist/web/playground/seed/core/markdown/efforts/strength/sled-pull.json +1 -1
  266. package/dist/web/playground/seed/core/markdown/efforts/strength/sled-push.json +1 -1
  267. package/dist/web/playground/seed/core/markdown/efforts/strength/sumo-deadlift.json +1 -1
  268. package/dist/web/playground/seed/core/markdown/efforts/strength/thruster.json +1 -1
  269. package/dist/web/playground/seed/core/markdown/efforts/strength/triceps-extension.json +1 -1
  270. package/dist/web/playground/seed/core/markdown/efforts/strength/v-sit-hold.json +1 -1
  271. package/dist/web/playground/seed/core/markdown/efforts/strength/wall-walk.json +1 -1
  272. package/dist/web/playground/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +1 -1
  273. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +1 -1
  274. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-backstroke.json +1 -1
  275. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +1 -1
  276. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +1 -1
  277. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-butterfly.json +1 -1
  278. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +1 -1
  279. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +1 -1
  280. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dive-start.json +1 -1
  281. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +1 -1
  282. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-drafting.json +1 -1
  283. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +1 -1
  284. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-freestyle.json +1 -1
  285. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +1 -1
  286. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-kick.json +1 -1
  287. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-pull.json +1 -1
  288. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +1 -1
  289. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +1 -1
  290. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-sighting.json +1 -1
  291. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +1 -1
  292. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +1 -1
  293. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +1 -1
  294. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-vigorous.json +1 -1
  295. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming.json +1 -1
  296. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +1 -1
  297. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-circles.json +1 -1
  298. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-mill.json +1 -1
  299. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +1 -1
  300. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +1 -1
  301. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +1 -1
  302. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +1 -1
  303. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +1 -1
  304. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-flow.json +1 -1
  305. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +1 -1
  306. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +1 -1
  307. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +1 -1
  308. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +1 -1
  309. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +1 -1
  310. package/dist/web/playground/seed/core/markdown/efforts/walking/walking-3-mph.json +1 -1
  311. package/dist/web/playground/seed/core/markdown/equipment/air-bike.json +1 -1
  312. package/dist/web/playground/seed/core/markdown/equipment/barbell.json +1 -1
  313. package/dist/web/playground/seed/core/markdown/equipment/bench.json +1 -1
  314. package/dist/web/playground/seed/core/markdown/equipment/bike-erg.json +1 -1
  315. package/dist/web/playground/seed/core/markdown/equipment/climbing-rope.json +1 -1
  316. package/dist/web/playground/seed/core/markdown/equipment/clubs.json +1 -1
  317. package/dist/web/playground/seed/core/markdown/equipment/dumbbell.json +1 -1
  318. package/dist/web/playground/seed/core/markdown/equipment/ghd.json +1 -1
  319. package/dist/web/playground/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
  320. package/dist/web/playground/seed/core/markdown/equipment/jump-rope.json +1 -1
  321. package/dist/web/playground/seed/core/markdown/equipment/kettlebell.json +1 -1
  322. package/dist/web/playground/seed/core/markdown/equipment/macebell.json +1 -1
  323. package/dist/web/playground/seed/core/markdown/equipment/medicine-ball.json +1 -1
  324. package/dist/web/playground/seed/core/markdown/equipment/parallettes.json +1 -1
  325. package/dist/web/playground/seed/core/markdown/equipment/plyo-box.json +1 -1
  326. package/dist/web/playground/seed/core/markdown/equipment/pull-up-bar.json +1 -1
  327. package/dist/web/playground/seed/core/markdown/equipment/rower.json +1 -1
  328. package/dist/web/playground/seed/core/markdown/equipment/sandbag.json +1 -1
  329. package/dist/web/playground/seed/core/markdown/equipment/ski-erg.json +1 -1
  330. package/dist/web/playground/seed/core/markdown/equipment/slam-ball.json +1 -1
  331. package/dist/web/playground/seed/core/markdown/equipment/sled.json +1 -1
  332. package/dist/web/playground/seed/core/markdown/equipment/sledgehammer.json +1 -1
  333. package/dist/web/playground/seed/core/markdown/equipment/weight-vest.json +1 -1
  334. package/dist/web/playground/seed/core/report.html +13 -13
  335. package/dist/web/server/ai-skills/agent-parity.md +41 -0
  336. package/dist/web/server/ai-skills/cli.md +127 -0
  337. package/dist/web/server/ai-skills/wql.md +63 -0
  338. package/dist/web/server/assets/main-BH_SMMzT.css +2 -0
  339. package/dist/web/server/assets/main-D0W-D5YL.js +1152 -0
  340. package/dist/web/server/assets/{statementBuilderFlow-C7x-7JGx.js → statementBuilderFlow-CtmmV_Yv.js} +2 -2
  341. package/dist/web/server/assets/vendor-BUlwHBNF.js +255 -0
  342. package/dist/web/server/assets/{vendor-codemirror-B4BeZarI.js → vendor-codemirror-Bh6hyz5v.js} +11 -11
  343. package/dist/web/server/index.html +4 -4
  344. package/dist/web/server/llms-full.txt +1444 -0
  345. package/dist/web/server/llms.txt +67 -0
  346. package/dist/web/{playground/seed/core/chunks/canvas.deac64e3.json → server/seed/core/chunks/canvas.b0bc465b.json} +1 -1
  347. package/dist/web/server/seed/core/chunks/{dashboards.08301ab4.json → dashboards.af9a29e4.json} +1 -1
  348. package/dist/web/server/seed/core/chunks/{efforts.47f650fe.json → efforts.902271f9.json} +1 -1
  349. package/dist/web/server/seed/core/chunks/{equipment.79146d31.json → equipment.dbdc1af3.json} +1 -1
  350. package/dist/web/server/seed/core/indexes/notebooks/canvas.json +180 -180
  351. package/dist/web/server/seed/core/indexes/notebooks/dashboards.json +16 -16
  352. package/dist/web/server/seed/core/indexes/notebooks/efforts.json +326 -326
  353. package/dist/web/server/seed/core/indexes/notebooks/equipment.json +50 -50
  354. package/dist/web/server/seed/core/manifest.json +27 -27
  355. package/dist/web/server/seed/core/markdown/canvas/ai-first/README.json +1 -1
  356. package/dist/web/server/seed/core/markdown/canvas/guide/README.json +4 -4
  357. package/dist/web/server/seed/core/markdown/canvas/guide/clock.json +1 -1
  358. package/dist/web/server/seed/core/markdown/canvas/guide/dashboards.json +1 -1
  359. package/dist/web/server/seed/core/markdown/canvas/guide/metrics-summaries.json +2 -2
  360. package/dist/web/server/seed/core/markdown/canvas/guide/metrics.json +12 -12
  361. package/dist/web/server/seed/core/markdown/canvas/guide/protocols.json +20 -20
  362. package/dist/web/server/seed/core/markdown/canvas/guide/sessions.json +33 -33
  363. package/dist/web/server/seed/core/markdown/canvas/guide/start.json +11 -11
  364. package/dist/web/server/seed/core/markdown/canvas/guide/structure.json +25 -25
  365. package/dist/web/server/seed/core/markdown/canvas/guide/wql.json +5 -5
  366. package/dist/web/server/seed/core/markdown/canvas/home/sample-script.json +4 -4
  367. package/dist/web/server/seed/core/markdown/canvas/home/welcome-1.json +2 -2
  368. package/dist/web/server/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
  369. package/dist/web/server/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
  370. package/dist/web/server/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
  371. package/dist/web/server/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
  372. package/dist/web/server/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
  373. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
  374. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-full-session.json +10 -10
  375. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
  376. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
  377. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-swimming.json +5 -5
  378. package/dist/web/server/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
  379. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +4 -4
  380. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
  381. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
  382. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
  383. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-3.json +3 -3
  384. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
  385. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
  386. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
  387. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
  388. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
  389. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
  390. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
  391. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
  392. package/dist/web/server/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
  393. package/dist/web/server/seed/core/markdown/canvas/syntax/document-1.json +4 -4
  394. package/dist/web/server/seed/core/markdown/canvas/syntax/document-2.json +5 -5
  395. package/dist/web/server/seed/core/markdown/canvas/syntax/document-3.json +10 -10
  396. package/dist/web/server/seed/core/markdown/canvas/syntax/document-4.json +5 -5
  397. package/dist/web/server/seed/core/markdown/canvas/syntax/effort-notes.json +5 -5
  398. package/dist/web/server/seed/core/markdown/canvas/syntax/frontmatter-summaries.json +4 -4
  399. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
  400. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
  401. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
  402. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
  403. package/dist/web/server/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
  404. package/dist/web/server/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
  405. package/dist/web/server/seed/core/markdown/canvas/syntax/measurements.json +7 -7
  406. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
  407. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
  408. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
  409. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-4.json +6 -6
  410. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
  411. package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-sections.json +10 -10
  412. package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
  413. package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
  414. package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
  415. package/dist/web/server/seed/core/markdown/canvas/syntax/named-groups.json +6 -6
  416. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
  417. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
  418. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
  419. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
  420. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
  421. package/dist/web/server/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
  422. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
  423. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
  424. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
  425. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
  426. package/dist/web/server/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
  427. package/dist/web/server/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
  428. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
  429. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
  430. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-3.json +4 -4
  431. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
  432. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
  433. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
  434. package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
  435. package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
  436. package/dist/web/server/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
  437. package/dist/web/server/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
  438. package/dist/web/server/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
  439. package/dist/web/server/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
  440. package/dist/web/server/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
  441. package/dist/web/server/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
  442. package/dist/web/server/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
  443. package/dist/web/server/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
  444. package/dist/web/server/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
  445. package/dist/web/server/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
  446. package/dist/web/server/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
  447. package/dist/web/server/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
  448. package/dist/web/server/seed/core/markdown/dashboards/training-block-review.json +11 -11
  449. package/dist/web/server/seed/core/markdown/efforts/bodyweight/air-squat.json +1 -1
  450. package/dist/web/server/seed/core/markdown/efforts/bodyweight/box-jump.json +1 -1
  451. package/dist/web/server/seed/core/markdown/efforts/bodyweight/broad-jump.json +1 -1
  452. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +1 -1
  453. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +1 -1
  454. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee.json +1 -1
  455. package/dist/web/server/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +1 -1
  456. package/dist/web/server/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +1 -1
  457. package/dist/web/server/seed/core/markdown/efforts/bodyweight/ground-kong.json +1 -1
  458. package/dist/web/server/seed/core/markdown/efforts/bodyweight/jumping-jack.json +1 -1
  459. package/dist/web/server/seed/core/markdown/efforts/bodyweight/kong-walk.json +1 -1
  460. package/dist/web/server/seed/core/markdown/efforts/bodyweight/lunge.json +1 -1
  461. package/dist/web/server/seed/core/markdown/efforts/bodyweight/overhead-squat.json +1 -1
  462. package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-roll.json +1 -1
  463. package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-squat.json +1 -1
  464. package/dist/web/server/seed/core/markdown/efforts/bodyweight/pistol-squat.json +1 -1
  465. package/dist/web/server/seed/core/markdown/efforts/bodyweight/plank.json +1 -1
  466. package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-burpee.json +1 -1
  467. package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-jump.json +1 -1
  468. package/dist/web/server/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +1 -1
  469. package/dist/web/server/seed/core/markdown/efforts/bodyweight/russian-twist.json +1 -1
  470. package/dist/web/server/seed/core/markdown/efforts/bodyweight/sit-up.json +1 -1
  471. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-clean.json +1 -1
  472. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-hold.json +1 -1
  473. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-snatch.json +1 -1
  474. package/dist/web/server/seed/core/markdown/efforts/bodyweight/tuck-jump.json +1 -1
  475. package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-ball.json +1 -1
  476. package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-burpee.json +1 -1
  477. package/dist/web/server/seed/core/markdown/efforts/cycling/assault-bike.json +1 -1
  478. package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-moderate.json +1 -1
  479. package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-vigorous.json +1 -1
  480. package/dist/web/server/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +1 -1
  481. package/dist/web/server/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +1 -1
  482. package/dist/web/server/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +1 -1
  483. package/dist/web/server/seed/core/markdown/efforts/gymnastics/dip.json +1 -1
  484. package/dist/web/server/seed/core/markdown/efforts/gymnastics/double-under.json +1 -1
  485. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-hold.json +1 -1
  486. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +1 -1
  487. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-walk.json +1 -1
  488. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jump-rope.json +1 -1
  489. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +1 -1
  490. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +1 -1
  491. package/dist/web/server/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +1 -1
  492. package/dist/web/server/seed/core/markdown/efforts/gymnastics/muscle-up.json +1 -1
  493. package/dist/web/server/seed/core/markdown/efforts/gymnastics/pull-up.json +1 -1
  494. package/dist/web/server/seed/core/markdown/efforts/gymnastics/push-up.json +1 -1
  495. package/dist/web/server/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +1 -1
  496. package/dist/web/server/seed/core/markdown/efforts/gymnastics/rope-climb.json +1 -1
  497. package/dist/web/server/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +1 -1
  498. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +1 -1
  499. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +1 -1
  500. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +1 -1
  501. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +1 -1
  502. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +1 -1
  503. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +1 -1
  504. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +1 -1
  505. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +1 -1
  506. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +1 -1
  507. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +1 -1
  508. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +1 -1
  509. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +1 -1
  510. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +1 -1
  511. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +1 -1
  512. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +1 -1
  513. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +1 -1
  514. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +1 -1
  515. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +1 -1
  516. package/dist/web/server/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +1 -1
  517. package/dist/web/server/seed/core/markdown/efforts/recovery/rest.json +1 -1
  518. package/dist/web/server/seed/core/markdown/efforts/recovery/stretching.json +1 -1
  519. package/dist/web/server/seed/core/markdown/efforts/rowing/rowing-sprint.json +1 -1
  520. package/dist/web/server/seed/core/markdown/efforts/rowing/rowing.json +1 -1
  521. package/dist/web/server/seed/core/markdown/efforts/rowing/ski-erg.json +1 -1
  522. package/dist/web/server/seed/core/markdown/efforts/running/backward-running.json +1 -1
  523. package/dist/web/server/seed/core/markdown/efforts/running/running-6-mph.json +1 -1
  524. package/dist/web/server/seed/core/markdown/efforts/running/running-8-mph.json +1 -1
  525. package/dist/web/server/seed/core/markdown/efforts/running/running-sprint.json +1 -1
  526. package/dist/web/server/seed/core/markdown/efforts/snatch.json +2 -2
  527. package/dist/web/server/seed/core/markdown/efforts/strength/back-squat.json +1 -1
  528. package/dist/web/server/seed/core/markdown/efforts/strength/bench-press.json +1 -1
  529. package/dist/web/server/seed/core/markdown/efforts/strength/box-step-up.json +1 -1
  530. package/dist/web/server/seed/core/markdown/efforts/strength/carioca.json +1 -1
  531. package/dist/web/server/seed/core/markdown/efforts/strength/clean-and-jerk.json +1 -1
  532. package/dist/web/server/seed/core/markdown/efforts/strength/cluster.json +1 -1
  533. package/dist/web/server/seed/core/markdown/efforts/strength/dead-hang.json +1 -1
  534. package/dist/web/server/seed/core/markdown/efforts/strength/deadlift.json +1 -1
  535. package/dist/web/server/seed/core/markdown/efforts/strength/devils-press.json +1 -1
  536. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +1 -1
  537. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-clean.json +1 -1
  538. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-fly.json +1 -1
  539. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-row.json +1 -1
  540. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-snatch.json +1 -1
  541. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-thruster.json +1 -1
  542. package/dist/web/server/seed/core/markdown/efforts/strength/elbows-to-knees.json +1 -1
  543. package/dist/web/server/seed/core/markdown/efforts/strength/farmer-carry.json +1 -1
  544. package/dist/web/server/seed/core/markdown/efforts/strength/frog-stand.json +1 -1
  545. package/dist/web/server/seed/core/markdown/efforts/strength/front-squat.json +1 -1
  546. package/dist/web/server/seed/core/markdown/efforts/strength/good-morning.json +1 -1
  547. package/dist/web/server/seed/core/markdown/efforts/strength/hanging-leg-raise.json +1 -1
  548. package/dist/web/server/seed/core/markdown/efforts/strength/hollow-rock.json +1 -1
  549. package/dist/web/server/seed/core/markdown/efforts/strength/knees-to-elbows.json +1 -1
  550. package/dist/web/server/seed/core/markdown/efforts/strength/l-sit.json +1 -1
  551. package/dist/web/server/seed/core/markdown/efforts/strength/man-maker.json +1 -1
  552. package/dist/web/server/seed/core/markdown/efforts/strength/medicine-ball-clean.json +1 -1
  553. package/dist/web/server/seed/core/markdown/efforts/strength/overhead-press.json +1 -1
  554. package/dist/web/server/seed/core/markdown/efforts/strength/parkour-vault.json +1 -1
  555. package/dist/web/server/seed/core/markdown/efforts/strength/pig-flip.json +1 -1
  556. package/dist/web/server/seed/core/markdown/efforts/strength/power-clean.json +1 -1
  557. package/dist/web/server/seed/core/markdown/efforts/strength/power-snatch.json +1 -1
  558. package/dist/web/server/seed/core/markdown/efforts/strength/push-jerk.json +1 -1
  559. package/dist/web/server/seed/core/markdown/efforts/strength/push-press.json +1 -1
  560. package/dist/web/server/seed/core/markdown/efforts/strength/romanian-deadlift.json +1 -1
  561. package/dist/web/server/seed/core/markdown/efforts/strength/single-leg-deadlift.json +1 -1
  562. package/dist/web/server/seed/core/markdown/efforts/strength/skull-crusher.json +1 -1
  563. package/dist/web/server/seed/core/markdown/efforts/strength/slam-ball.json +1 -1
  564. package/dist/web/server/seed/core/markdown/efforts/strength/sled-pull.json +1 -1
  565. package/dist/web/server/seed/core/markdown/efforts/strength/sled-push.json +1 -1
  566. package/dist/web/server/seed/core/markdown/efforts/strength/sumo-deadlift.json +1 -1
  567. package/dist/web/server/seed/core/markdown/efforts/strength/thruster.json +1 -1
  568. package/dist/web/server/seed/core/markdown/efforts/strength/triceps-extension.json +1 -1
  569. package/dist/web/server/seed/core/markdown/efforts/strength/v-sit-hold.json +1 -1
  570. package/dist/web/server/seed/core/markdown/efforts/strength/wall-walk.json +1 -1
  571. package/dist/web/server/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +1 -1
  572. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +1 -1
  573. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-backstroke.json +1 -1
  574. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +1 -1
  575. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +1 -1
  576. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-butterfly.json +1 -1
  577. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +1 -1
  578. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +1 -1
  579. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dive-start.json +1 -1
  580. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +1 -1
  581. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-drafting.json +1 -1
  582. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +1 -1
  583. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-freestyle.json +1 -1
  584. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +1 -1
  585. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-kick.json +1 -1
  586. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-pull.json +1 -1
  587. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +1 -1
  588. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +1 -1
  589. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-sighting.json +1 -1
  590. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +1 -1
  591. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +1 -1
  592. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +1 -1
  593. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-vigorous.json +1 -1
  594. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming.json +1 -1
  595. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +1 -1
  596. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-circles.json +1 -1
  597. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-mill.json +1 -1
  598. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +1 -1
  599. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +1 -1
  600. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +1 -1
  601. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +1 -1
  602. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +1 -1
  603. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-flow.json +1 -1
  604. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +1 -1
  605. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +1 -1
  606. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +1 -1
  607. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +1 -1
  608. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +1 -1
  609. package/dist/web/server/seed/core/markdown/efforts/walking/walking-3-mph.json +1 -1
  610. package/dist/web/server/seed/core/markdown/equipment/air-bike.json +1 -1
  611. package/dist/web/server/seed/core/markdown/equipment/barbell.json +1 -1
  612. package/dist/web/server/seed/core/markdown/equipment/bench.json +1 -1
  613. package/dist/web/server/seed/core/markdown/equipment/bike-erg.json +1 -1
  614. package/dist/web/server/seed/core/markdown/equipment/climbing-rope.json +1 -1
  615. package/dist/web/server/seed/core/markdown/equipment/clubs.json +1 -1
  616. package/dist/web/server/seed/core/markdown/equipment/dumbbell.json +1 -1
  617. package/dist/web/server/seed/core/markdown/equipment/ghd.json +1 -1
  618. package/dist/web/server/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
  619. package/dist/web/server/seed/core/markdown/equipment/jump-rope.json +1 -1
  620. package/dist/web/server/seed/core/markdown/equipment/kettlebell.json +1 -1
  621. package/dist/web/server/seed/core/markdown/equipment/macebell.json +1 -1
  622. package/dist/web/server/seed/core/markdown/equipment/medicine-ball.json +1 -1
  623. package/dist/web/server/seed/core/markdown/equipment/parallettes.json +1 -1
  624. package/dist/web/server/seed/core/markdown/equipment/plyo-box.json +1 -1
  625. package/dist/web/server/seed/core/markdown/equipment/pull-up-bar.json +1 -1
  626. package/dist/web/server/seed/core/markdown/equipment/rower.json +1 -1
  627. package/dist/web/server/seed/core/markdown/equipment/sandbag.json +1 -1
  628. package/dist/web/server/seed/core/markdown/equipment/ski-erg.json +1 -1
  629. package/dist/web/server/seed/core/markdown/equipment/slam-ball.json +1 -1
  630. package/dist/web/server/seed/core/markdown/equipment/sled.json +1 -1
  631. package/dist/web/server/seed/core/markdown/equipment/sledgehammer.json +1 -1
  632. package/dist/web/server/seed/core/markdown/equipment/weight-vest.json +1 -1
  633. package/dist/web/server/seed/core/report.html +13 -13
  634. package/package.json +10 -8
  635. package/dist/chunk-2EWCEE6N.mjs.map +0 -1
  636. package/dist/chunk-5NNSHRMZ.mjs.map +0 -1
  637. package/dist/chunk-LNBKPHEP.mjs.map +0 -1
  638. package/dist/chunk-SLCRIGUR.mjs.map +0 -1
  639. package/dist/server-SHNWCIIM.mjs +0 -11
  640. package/dist/web/playground/assets/main-DGz9PHS_.css +0 -2
  641. package/dist/web/playground/assets/main-DfHqNhwO.js +0 -1149
  642. package/dist/web/playground/assets/vendor-Dz-Azkoq.js +0 -198
  643. package/dist/web/server/assets/main-DGz9PHS_.css +0 -2
  644. package/dist/web/server/assets/main-VXFEU44Q.js +0 -1149
  645. package/dist/web/server/assets/vendor-Dz-Azkoq.js +0 -198
package/dist/bin/wod.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'module';
3
- import { cliMain } from '../chunk-SLCRIGUR.mjs';
4
- import '../chunk-5NNSHRMZ.mjs';
3
+ import { cliMain } from '../chunk-KXNK4PIB.mjs';
5
4
  import '../chunk-KGP6STLY.mjs';
6
5
  import '../chunk-FUISPA7A.mjs';
6
+ import '../chunk-T7VB7PPO.mjs';
7
7
  import '../chunk-QUUX6NX2.mjs';
8
8
 
9
9
  if (typeof globalThis.require === 'undefined') {
@@ -1,5 +1,5 @@
1
1
  import { createRequire } from 'module';
2
- import { createHandler } from './chunk-2EWCEE6N.mjs';
2
+ import { createHandler } from './chunk-WLCUM7KO.mjs';
3
3
  import { openCliDb, nodePath, nodeFs } from './chunk-FUISPA7A.mjs';
4
4
  import http from 'http';
5
5
  import { Readable } from 'stream';
@@ -129,7 +129,12 @@ async function runCliServer(mode, options, writeOut) {
129
129
  try {
130
130
  const dist = resolveDist(mode, options);
131
131
  const feedDir = mode === "server" && options.database?.kind === "sqlite" ? `${options.database.path}.feed` : void 0;
132
- const handler = createHandler(db?.db ?? null, { playgroundDist: dist, feedDir });
132
+ const handler = createHandler(db?.db ?? null, {
133
+ playgroundDist: dist,
134
+ feedDir,
135
+ mcpReadonly: options.mcpReadonly === true || options.env.WOD_MCP_READONLY === "1",
136
+ mcpToken: options.env.WOD_MCP_TOKEN?.trim()
137
+ });
133
138
  server = await startHttpServer(handler, host, port);
134
139
  if (mode === "server") {
135
140
  writeOut(`wod server: http://${host}:${port} \u2014 ${dbLabel} \xB7 dist ${dist}`);
@@ -162,5 +167,5 @@ async function runCliServer(mode, options, writeOut) {
162
167
  }
163
168
 
164
169
  export { runCliServer };
165
- //# sourceMappingURL=chunk-LNBKPHEP.mjs.map
166
- //# sourceMappingURL=chunk-LNBKPHEP.mjs.map
170
+ //# sourceMappingURL=chunk-AS6OJRNH.mjs.map
171
+ //# sourceMappingURL=chunk-AS6OJRNH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/server.ts"],"names":["dist"],"mappings":"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","file":"chunk-AS6OJRNH.mjs","sourcesContent":["/**\n * server.ts — `wod server` (alias `serve`) / `wod playground` (Bun-only front\n * door).\n *\n * Serves the packaged engine stack: the shared fetch handler shipped in this\n * package (the same code the Docker image serves) plus the frontend build\n * packaged under the engine's dist/web/ — no repository checkout, no runtime\n * build.\n *\n * server probes the configured database first (never creates schema —\n * that's `wod init`), then serves API + SPA.\n * playground serves the browser-storage SPA build and never opens a database\n * (every /api request answers 404).\n *\n * Retains the event loop until SIGINT/SIGTERM; shutdown drains in-flight\n * requests before closing the database.\n */\n\nimport http from 'node:http';\nimport { Readable } from 'node:stream';\nimport { openCliDb, nodeFs, nodePath } from './db';\nimport type { CliDatabaseConfig } from './config';\nimport type { CliDb } from './db';\nimport { createHandler } from '../server/app';\ntype WriteOut = (text: string) => void;\n\nexport type CliServerMode = 'server' | 'playground';\n\nexport interface CliServerOptions {\n /** Resolved database configuration. REQUIRED for 'server'; ignored — never\n * opened or validated — for 'playground'. */\n database?: CliDatabaseConfig;\n host?: string;\n port?: string;\n /** Explicit dist directory (flag or PLAYGROUND_DIST); must already exist. */\n dist?: string;\n /** Restrict `/api/mcp` to Tier 0 read-only tools. */\n mcpReadonly?: boolean;\n /** Merged CLI environment (process env + .env). */\n env: Record<string, string | undefined>;\n}\n\ninterface HttpServerLike {\n stop(): Promise<void>;\n}\n\nfunction withResolvers<T>() {\n let resolve!: (value: T | PromiseLike<T>) => void;\n let reject!: (reason?: unknown) => void;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n return { promise, resolve, reject };\n}\n\nfunction startHttpServer(\n handler: (request: Request) => Promise<Response>,\n host: string,\n port: number,\n): Promise<HttpServerLike> {\n const b = (globalThis as { Bun?: { serve(opts: { port: number; hostname: string; fetch: (req: Request) => Promise<Response> }): { stop(): Promise<void> } } }).Bun;\n if (b?.serve) {\n const s = b.serve({ port, hostname: host, fetch: handler });\n return Promise.resolve({ stop: () => s.stop() });\n }\n\n // ponytail: node:http adapter streams Web Request/Response in pure Node (v18+) without express/fastify dependencies\n const { promise, resolve, reject } = withResolvers<HttpServerLike>();\n const server = http.createServer(async (req, res) => {\n try {\n const url = new URL(req.url || '/', `http://${req.headers.host || `${host}:${port}`}`);\n const hasBody = req.method !== 'GET' && req.method !== 'HEAD';\n const webReq = new Request(url, {\n method: req.method,\n headers: req.headers as Record<string, string>,\n body: hasBody ? (Readable.toWeb(req) as unknown as BodyInit) : null,\n ...(hasBody ? { duplex: 'half' } : {}),\n } as RequestInit);\n const webRes = await handler(webReq);\n res.writeHead(webRes.status, Object.fromEntries(webRes.headers.entries()));\n if (webRes.body) {\n Readable.fromWeb(webRes.body as any).pipe(res);\n } else {\n res.end();\n }\n } catch {\n res.statusCode = 500;\n res.end('internal server error');\n }\n });\n\n server.once('error', reject);\n server.listen(port, host, () => {\n resolve({\n stop: () => {\n const close = withResolvers<void>();\n server.close(() => close.resolve());\n return close.promise;\n },\n });\n });\n return promise;\n}\n\n/**\n * This module's directory, robust across shipped layouts: ESM via\n * import.meta.url (works under node and Bun; esbuild shims it in CJS too) and\n * Bun's import.meta.dir. ESM code splitting may relocate this module to a\n * chunk at dist/ root, so never assume dist/cli.\n */\nfunction moduleDir(): string {\n const p = nodePath();\n const meta: { dir?: unknown; url?: unknown } = import.meta; // Bun adds `dir`; the TS lib knows neither.\n if (typeof meta.dir === 'string') return p.resolve(meta.dir);\n if (typeof meta.url === 'string' && meta.url.startsWith('file:')) {\n return p.resolve(p.dirname(decodeURIComponent(new URL('.', meta.url).pathname)));\n }\n throw new Error('wod server/playground: cannot determine the installed engine module directory');\n}\n\n/**\n * The installed engine package root: nearest enclosing package.json belonging\n * to this package, walking up from the executing module (dist/cli, a split\n * chunk at dist/ root, dist/bin, or src/cli in a checkout).\n */\nfunction engineRoot(): string {\n const p = nodePath();\n const fs = nodeFs();\n for (let dir = moduleDir(); ; dir = p.dirname(dir)) {\n try {\n if (JSON.parse(fs.readFileSync(p.resolve(dir, 'package.json'), 'utf8')).name === '@bitcobblers/wod-wiki-tools') return dir;\n } catch { /* no manifest here — keep walking */ }\n const parent = p.dirname(dir);\n if (parent === dir) break;\n }\n throw new Error('wod server/playground: cannot locate the installed @bitcobblers/wod-wiki-tools package');\n}\n\n/**\n * Resolve the frontend dist directory. The packaged default lives inside the\n * installed engine module (dist/web/server or dist/web/playground); an\n * explicit --dist/PLAYGROUND_DIST is cwd-relative and must already contain a\n * built SPA (index.html). Nothing is built at runtime.\n */\nfunction resolveDist(mode: CliServerMode, options: CliServerOptions): string {\n const p = nodePath();\n const explicit = options.dist?.trim() || options.env.PLAYGROUND_DIST?.trim() || undefined;\n if (explicit) {\n const dist = p.resolve(explicit); // cwd-relative override\n if (!nodeFs().existsSync(p.resolve(dist, 'index.html'))) {\n throw new Error(\n `wod ${mode}: no built frontend (index.html) at ${dist} — --dist/PLAYGROUND_DIST must `\n + 'point at an already-built directory (the CLI never builds frontends at runtime)',\n );\n }\n return dist;\n }\n const dist = p.resolve(engineRoot(), 'dist', 'web', mode === 'playground' ? 'playground' : 'server');\n if (!nodeFs().existsSync(p.resolve(dist, 'index.html'))) {\n throw new Error(\n `wod ${mode}: packaged frontend missing — expected ${dist}/index.html. `\n + 'Reinstall @bitcobblers/wod-wiki-tools (bun add @bitcobblers/wod-wiki-tools), '\n + 'or rebuild the release assets from a checkout (bun run build:cli) and reinstall the package.',\n );\n }\n return dist;\n}\n\n/** Validate bind address first: flag > HOST/PORT env > loopback:3000. */\nfunction resolveBind(mode: CliServerMode, options: CliServerOptions): { host: string; port: number } {\n const host = options.host?.trim() || options.env.HOST?.trim() || '127.0.0.1';\n const rawPort = options.port?.trim() || options.env.PORT?.trim() || '3000';\n const port = Number(rawPort);\n if (!Number.isInteger(port) || port < 1 || port > 65535) {\n throw new Error(`wod ${mode}: invalid port ${JSON.stringify(rawPort)} (need integer 1..65535)`);\n }\n return { host, port };\n}\n\n/**\n * Start the shared server for `wod server` / `wod playground`. Throws on any\n * startup failure; on success it never returns until SIGINT/SIGTERM (drain,\n * close database, exit 0).\n */\nexport async function runCliServer(\n mode: CliServerMode,\n options: CliServerOptions,\n writeOut: WriteOut,\n): Promise<void> {\n const { host, port } = resolveBind(mode, options); // Validate bind before opening anything.\n\n // Server probes the database BEFORE binding a socket: a missing/uninitialized\n // database refuses with `wod init` guidance.\n let db: CliDb | undefined;\n let dbLabel = 'no database';\n if (mode === 'server') {\n const database = options.database; // hoisted so the guard's narrowing sticks\n if (!database) {\n throw new Error('wod server: no database configuration resolved — this is a runner bug (expected resolveDatabaseConfig output)');\n }\n try {\n db = await openCliDb(database, { initialize: false });\n } catch (e) {\n const message = e instanceof Error ? e.message : String(e);\n throw new Error(`wod server: database not ready — run \\`wod init\\` first. ${message}`, { cause: e });\n }\n dbLabel = db.path;\n }\n\n let server: HttpServerLike;\n try {\n const dist = resolveDist(mode, options);\n // Bundled server handler; persist self-hosted published feed next to local SQLite DB when applicable\n const feedDir =\n mode === 'server' && options.database?.kind === 'sqlite'\n ? `${options.database.path}.feed`\n : undefined;\n const handler = createHandler(db?.db ?? null, {\n playgroundDist: dist,\n feedDir,\n mcpReadonly: options.mcpReadonly === true || options.env.WOD_MCP_READONLY === '1',\n mcpToken: options.env.WOD_MCP_TOKEN?.trim(),\n });\n server = await startHttpServer(handler, host, port);\n if (mode === 'server') {\n writeOut(`wod server: http://${host}:${port} — ${dbLabel} · dist ${dist}`);\n } else {\n writeOut(`wod playground: http://${host}:${port} — in-browser storage (no database) · dist ${dist}`);\n }\n } catch (e) {\n if (db) await db.close(); // never leak the probe connection when startup fails\n throw e;\n }\n\n let closing = false;\n const shutdown = async (): Promise<void> => {\n if (closing) process.exit(0); // second signal forces the exit\n closing = true;\n try {\n await server.stop();\n } finally {\n if (db) await db.close();\n process.exit(0);\n }\n };\n process.on('SIGINT', () => { void shutdown(); });\n process.on('SIGTERM', () => { void shutdown(); });\n\n // Park until a signal handler exits the process.\n await new Promise<never>(() => {});\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { createRequire } from 'module';
2
- import { VERSION } from './chunk-5NNSHRMZ.mjs';
3
2
  import { writeBuildReport } from './chunk-KGP6STLY.mjs';
4
3
  import { nodePath, openCliDb, nodeFs, sqliteIndexStore, sqliteEffortStore, sqliteBlockStore, sqliteNoteStore, sqliteEventStore, getNoteBundle, getSessionBundle, getEffortBySlug, getEquipmentBySlug, listTagsByType, uuid5, CLI_UUID_NAMESPACE, NodeFsFeedTree, stableNoteId, randomId, nodeCrypto } from './chunk-FUISPA7A.mjs';
4
+ import { VERSION } from './chunk-T7VB7PPO.mjs';
5
5
  import { __require } from './chunk-QUUX6NX2.mjs';
6
6
  import { createParser, frozenNow, createCompiler, createMockClock, RuntimeStack, EventBus, ScriptRuntime, createAnalyticsEngineForBlock, StartSessionAction, NextEvent, toStoredOutputStatement, bundledEfforts, parseEffortFile, parseEquipmentFile, createReferenceIndex, parseScript, extractStatementRefs } from '@bitcobblers/wod-wiki-lang';
7
7
  import { buildStatementTree, createIRFile, registerLanguagePack, extractNoteIdentity, extractTypedTags, composeNoteMarkdown, serializeNoteBundleToJsonl, sessionToCsv, effortToMarkdown, equipmentToMarkdown, equipmentToCsv, csvToEquipmentLabels, ingestPortableFilesIntoStorage, csvToSessionRows, isIRFile, inMemoryEventStore, publishFeedFromStorage, assertSeedManifest, seedMetaKey, SEED_SCHEMA, emptySeedMeta, CANVAS_CHUNK_ID, assertSeedRows, seedNoteId, applySeedChunk } from '@bitcobblers/wod-wiki-engine';
@@ -2024,7 +2024,23 @@ var VALUE_FLAGS = [
2024
2024
  ["--env-file", "envFile"],
2025
2025
  ["--host", "host"],
2026
2026
  ["--port", "port"],
2027
- ["--dist", "dist"]
2027
+ ["--dist", "dist"],
2028
+ ["--server", "serverUrl"],
2029
+ ["--note", "noteId"],
2030
+ ["--source-note", "sourceNoteId"],
2031
+ ["--block", "blockId"],
2032
+ ["--notebook", "notebook"],
2033
+ ["--date", "date"],
2034
+ ["--title", "title"],
2035
+ ["--description", "description"],
2036
+ ["--markdown", "markdown"],
2037
+ ["--search", "search"],
2038
+ ["--tag", "tag"],
2039
+ ["--slug", "slug"],
2040
+ ["--category", "category"],
2041
+ ["--type", "tagType"],
2042
+ ["--url", "url"],
2043
+ ["--feed-id", "feedId"]
2028
2044
  ];
2029
2045
  function readValueFlag(args, i, flag) {
2030
2046
  const inline = args[i].startsWith(`${flag}=`);
@@ -2041,7 +2057,10 @@ function parseCliArgs(args) {
2041
2057
  const result = {
2042
2058
  format: "json",
2043
2059
  packs: [],
2044
- sources: []
2060
+ sources: [],
2061
+ tags: [],
2062
+ aliases: [],
2063
+ setPairs: []
2045
2064
  };
2046
2065
  const valueArgs = result;
2047
2066
  let i = 0;
@@ -2149,8 +2168,50 @@ function parseCliArgs(args) {
2149
2168
  const v = Number(arg.slice("--seed-version=".length));
2150
2169
  if (Number.isSafeInteger(v) && v >= 0) result.seedVersion = v;
2151
2170
  i++;
2171
+ } else if (arg === "--json") {
2172
+ result.json = true;
2173
+ result.format = "json";
2174
+ i++;
2175
+ } else if (arg === "--no-save") {
2176
+ result.noSave = true;
2177
+ i++;
2178
+ } else if (arg === "--mcp-readonly" || arg === "--readonly") {
2179
+ result.mcpReadonly = true;
2180
+ i++;
2181
+ } else if (arg === "--validate-only") {
2182
+ result.validateOnly = true;
2183
+ i++;
2184
+ } else if (arg === "--limit") {
2185
+ const v = Number(args[++i]);
2186
+ if (Number.isSafeInteger(v) && v > 0) result.limit = v;
2187
+ i++;
2188
+ } else if (arg.startsWith("--limit=")) {
2189
+ const v = Number(arg.slice("--limit=".length));
2190
+ if (Number.isSafeInteger(v) && v > 0) result.limit = v;
2191
+ i++;
2192
+ } else if (arg === "--tags") {
2193
+ const raw = args[++i] ?? "";
2194
+ result.tags.push(...raw.split(",").map((t) => t.trim()).filter(Boolean));
2195
+ i++;
2196
+ } else if (arg.startsWith("--tags=")) {
2197
+ result.tags.push(...arg.slice("--tags=".length).split(",").map((t) => t.trim()).filter(Boolean));
2198
+ i++;
2199
+ } else if (arg === "--alias") {
2200
+ const raw = args[++i];
2201
+ if (raw) result.aliases.push(raw);
2202
+ i++;
2203
+ } else if (arg.startsWith("--alias=")) {
2204
+ result.aliases.push(arg.slice("--alias=".length));
2205
+ i++;
2206
+ } else if (arg === "--set") {
2207
+ const raw = args[++i];
2208
+ if (raw) result.setPairs.push(raw);
2209
+ i++;
2210
+ } else if (arg.startsWith("--set=")) {
2211
+ result.setPairs.push(arg.slice("--set=".length));
2212
+ i++;
2152
2213
  } else if (!result.subcommand) {
2153
- if (arg === "parse" || arg === "run" || arg === "query" || arg === "download" || arg === "export" || arg === "import" || arg === "publish" || arg === "build" || arg === "seed" || arg === "reset" || arg === "init" || arg === "db" || arg === "server" || arg === "serve" || arg === "playground" || arg === "init-feed" || arg === "skills" || arg === "help" || arg === "version") {
2214
+ if (arg === "parse" || arg === "run" || arg === "query" || arg === "download" || arg === "export" || arg === "import" || arg === "publish" || arg === "build" || arg === "seed" || arg === "reset" || arg === "init" || arg === "db" || arg === "server" || arg === "serve" || arg === "playground" || arg === "init-feed" || arg === "skills" || arg === "note" || arg === "journal" || arg === "notebook" || arg === "session" || arg === "catalog" || arg === "tag" || arg === "feed" || arg === "mcp" || arg === "tools" || arg === "doctor" || arg === "help" || arg === "version") {
2154
2215
  result.subcommand = arg;
2155
2216
  } else {
2156
2217
  result.target = arg;
@@ -2162,6 +2223,9 @@ function parseCliArgs(args) {
2162
2223
  } else if (!result.target2) {
2163
2224
  result.target2 = arg;
2164
2225
  i++;
2226
+ } else if (!result.target3) {
2227
+ result.target3 = arg;
2228
+ i++;
2165
2229
  } else {
2166
2230
  i++;
2167
2231
  }
@@ -2272,9 +2336,22 @@ DB OPTIONS (for 'wod db'):
2272
2336
  actions; credentials are never printed to stdout
2273
2337
 
2274
2338
  wod server [options]
2275
- Serve the app (HTTP API + packaged frontend; alias: serve)
2339
+ Serve the app (HTTP API + /api/mcp + packaged frontend; alias: serve)
2276
2340
  wod playground [options]
2277
- Serve the local playground (browser IndexedDB build)
2341
+ Serve the local playground (browser IndexedDB build + WebMCP)
2342
+ wod mcp [--readonly] [--server <url>]
2343
+ Start the official MCP server over stdio for Claude/Cursor/Codex
2344
+
2345
+ AGENT NOUN-VERB COMMANDS (all support --json and --server <url>):
2346
+ wod note <list|get|create|update|clone|delete> [args]
2347
+ wod journal <day|add> [date] [options]
2348
+ wod notebook <list|save|delete> [slug] [options]
2349
+ wod session <list|get|run|delete> [id] [options]
2350
+ wod catalog <lookup|get|upsert> [effort|equipment|tag|tag-type] [name]
2351
+ wod tag <list|upsert> [label] [--type <tagType>]
2352
+ wod feed <list|status|subscribe|sync|unsubscribe|publish> [options]
2353
+ wod tools <list|manifest> [--json]
2354
+ wod doctor [--json]
2278
2355
 
2279
2356
  SUBCOMMANDS:
2280
2357
  parse <file | -> Parse Whiteboard Script, create a note in the database
@@ -2405,6 +2482,7 @@ EXIT CODES:
2405
2482
  1 - General / Runtime error
2406
2483
  2 - Parse / Syntax error
2407
2484
  3 - Language Pack load error
2485
+ 4 - Destructive confirmation required (pass --yes <targetId>)
2408
2486
  `;
2409
2487
  }
2410
2488
  function printUsage(writer) {
@@ -2474,7 +2552,7 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
2474
2552
  writeErr("[wod init-feed] Error: Missing feed name (a single new directory name)");
2475
2553
  return 1;
2476
2554
  }
2477
- const { scaffoldFeed } = await import('./scaffoldFeed-TCRNXYQU.mjs');
2555
+ const { scaffoldFeed } = await import('./scaffoldFeed-D55NINVJ.mjs');
2478
2556
  try {
2479
2557
  const result = scaffoldFeed(parsed.target);
2480
2558
  writeOut(`[wod init-feed] Created ${result.dir} (${result.files.length} files)`);
@@ -2538,22 +2616,32 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
2538
2616
  }
2539
2617
  const noteSource = cliNoteSource(source, parsed.target, parsed.sport);
2540
2618
  const ir = runParse(source, { sport: parsed.sport, sourceLabel: `cli:wod parse ${parsed.target}` });
2541
- const identity = extractNoteIdentity(source);
2542
- const tags = extractTypedTags(source);
2543
- const db = await openCliDb(cliDb());
2544
- try {
2545
- const persisted = await persistNote(db, {
2546
- source: noteSource,
2547
- sourceLabel: parsed.target,
2548
- noteId: identity?.noteId,
2549
- title: identity?.title,
2550
- tags
2551
- });
2552
- writeOut(
2553
- `[wod parse] note ${persisted.noteId}${persisted.created ? "" : " (updated)"} \u2014 ${persisted.blocks} blocks, ${persisted.efforts} efforts${persisted.tags > 0 ? `, ${persisted.tags} tags` : ""} \u2192 ${db.path}`
2554
- );
2555
- } finally {
2556
- await db.close();
2619
+ if (!parsed.noSave) {
2620
+ const identity = extractNoteIdentity(source);
2621
+ const tags = extractTypedTags(source);
2622
+ const db = await openCliDb(cliDb());
2623
+ try {
2624
+ const persisted = await persistNote(db, {
2625
+ source: noteSource,
2626
+ sourceLabel: parsed.target,
2627
+ noteId: identity?.noteId,
2628
+ title: identity?.title,
2629
+ tags
2630
+ });
2631
+ if (!parsed.json) {
2632
+ writeOut(
2633
+ `[wod parse] note ${persisted.noteId}${persisted.created ? "" : " (updated)"} \u2014 ${persisted.blocks} blocks, ${persisted.efforts} efforts${persisted.tags > 0 ? `, ${persisted.tags} tags` : ""} \u2192 ${db.path}`
2634
+ );
2635
+ } else if (!parsed.output) {
2636
+ deliverOutput(JSON.stringify({ ok: true, persisted, ir }, null, 2));
2637
+ }
2638
+ } finally {
2639
+ await db.close();
2640
+ }
2641
+ } else if (parsed.json && !parsed.output) {
2642
+ deliverOutput(formatParseOutput(ir, "json", true));
2643
+ } else if (!parsed.output) {
2644
+ writeOut(`[wod parse] valid Whiteboard Script (--no-save)`);
2557
2645
  }
2558
2646
  if (parsed.output) {
2559
2647
  const pretty = Boolean(process.stdout.isTTY);
@@ -2563,8 +2651,18 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
2563
2651
  return 0;
2564
2652
  }
2565
2653
  if (parsed.subcommand === "run") {
2654
+ if (parsed.noteId && !parsed.target) {
2655
+ const { runAgentNounVerbCommand } = await import('./agentCommands-AMMASJPH.mjs');
2656
+ return runAgentNounVerbCommand({
2657
+ parsed: { ...parsed, subcommand: "session", target: "run", target2: parsed.noteId },
2658
+ resolveDbConfig: cliDb,
2659
+ readStdin: getStdin,
2660
+ writeOut,
2661
+ writeErr
2662
+ });
2663
+ }
2566
2664
  if (!parsed.target) {
2567
- writeErr('[wod run] Error: Missing input file or "-" for stdin');
2665
+ writeErr('[wod run] Error: Missing input file, "-" for stdin, or --note <noteId>');
2568
2666
  return 1;
2569
2667
  }
2570
2668
  let source;
@@ -2620,6 +2718,18 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
2620
2718
  writeErr("[wod query] Error: Missing WQL query argument");
2621
2719
  return 1;
2622
2720
  }
2721
+ if (parsed.validateOnly) {
2722
+ const { wodValidateWqlTool } = await import('@bitcobblers/wod-wiki-engine/agent');
2723
+ const validation = await wodValidateWqlTool.execute({ query: parsed.target }, {
2724
+ storage: void 0
2725
+ });
2726
+ if (parsed.json || parsed.format === "json") {
2727
+ deliverOutput(JSON.stringify(validation, null, 2));
2728
+ } else {
2729
+ writeOut(validation.valid ? `[wod query] valid (${validation.family ?? "wql"})` : `[wod query] invalid: ${validation.error}`);
2730
+ }
2731
+ return validation.valid ? 0 : 2;
2732
+ }
2623
2733
  const useDb = !parsed.corpus && !parsed.stdinLog && !parsed.stdinFacts;
2624
2734
  let stdinLogContent;
2625
2735
  let stdinFactsContent;
@@ -2947,10 +3057,20 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
2947
3057
  );
2948
3058
  return 1;
2949
3059
  }
3060
+ if (parsed.yes !== void 0 && parsed.yes !== "RESET") {
3061
+ writeErr("[wod reset] Invalid --yes value (expected: --yes RESET)");
3062
+ return 4;
3063
+ }
2950
3064
  const target = config.path;
2951
3065
  if (nodeFs().existsSync(target)) {
2952
3066
  nodeFs().unlinkSync(target);
2953
- writeOut(`[wod reset] removed ${target}`);
3067
+ if (parsed.json) {
3068
+ writeOut(JSON.stringify({ ok: true, removed: true, path: target }, null, 2));
3069
+ } else {
3070
+ writeOut(`[wod reset] removed ${target}`);
3071
+ }
3072
+ } else if (parsed.json) {
3073
+ writeOut(JSON.stringify({ ok: true, removed: false, path: target }, null, 2));
2954
3074
  } else {
2955
3075
  writeOut(`[wod reset] nothing to reset \u2014 ${target} does not exist`);
2956
3076
  }
@@ -2989,15 +3109,35 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
2989
3109
  }
2990
3110
  if (parsed.subcommand === "server" || parsed.subcommand === "serve" || parsed.subcommand === "playground") {
2991
3111
  const mode = parsed.subcommand === "playground" ? "playground" : "server";
2992
- const { runCliServer } = await import('./server-SHNWCIIM.mjs');
3112
+ const { runCliServer } = await import('./server-2GTVPJDA.mjs');
2993
3113
  const options = { env: cliEnv() };
2994
3114
  if (mode === "server") options.database = cliDb();
2995
3115
  if (parsed.host !== void 0) options.host = parsed.host;
2996
3116
  if (parsed.port !== void 0) options.port = parsed.port;
2997
3117
  if (parsed.dist !== void 0) options.dist = parsed.dist;
3118
+ if (parsed.mcpReadonly === true) options.mcpReadonly = true;
2998
3119
  await runCliServer(mode, options, writeOut);
2999
3120
  return 0;
3000
3121
  }
3122
+ if (parsed.subcommand === "mcp") {
3123
+ const { runMcpStdio } = await import('./mcp-D6QARYOG.mjs');
3124
+ return runMcpStdio({
3125
+ database: parsed.serverUrl ? void 0 : cliDb(),
3126
+ serverUrl: parsed.serverUrl,
3127
+ readonly: parsed.mcpReadonly === true || cliEnv().WOD_MCP_READONLY === "1",
3128
+ writeErr
3129
+ });
3130
+ }
3131
+ if (parsed.subcommand === "note" || parsed.subcommand === "journal" || parsed.subcommand === "notebook" || parsed.subcommand === "session" || parsed.subcommand === "catalog" || parsed.subcommand === "tag" || parsed.subcommand === "feed" || parsed.subcommand === "tools" || parsed.subcommand === "doctor") {
3132
+ const { runAgentNounVerbCommand } = await import('./agentCommands-AMMASJPH.mjs');
3133
+ return runAgentNounVerbCommand({
3134
+ parsed,
3135
+ resolveDbConfig: cliDb,
3136
+ readStdin: getStdin,
3137
+ writeOut,
3138
+ writeErr
3139
+ });
3140
+ }
3001
3141
  writeErr(`[wod] Unknown subcommand "${parsed.subcommand}"`);
3002
3142
  return 1;
3003
3143
  } catch (error) {
@@ -3015,5 +3155,5 @@ async function cliMain(argv = process.argv.slice(2), io = {}) {
3015
3155
  }
3016
3156
 
3017
3157
  export { PackLoadError, ParseSyntaxError, WqlSyntaxError, cliMain, formatExecutionOutput, formatParseOutput, formatQueryOutput, loadCliEnvironment, loadLanguagePack, loadQueryData, parseCliArgs, readStdin, resolveDatabaseConfig, runExecution, runParse, runQueryCli };
3018
- //# sourceMappingURL=chunk-SLCRIGUR.mjs.map
3019
- //# sourceMappingURL=chunk-SLCRIGUR.mjs.map
3158
+ //# sourceMappingURL=chunk-KXNK4PIB.mjs.map
3159
+ //# sourceMappingURL=chunk-KXNK4PIB.mjs.map