@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
@@ -0,0 +1,1444 @@
1
+ # WOD Wiki — Complete Agent, Language & Tool Reference
2
+
3
+ > Tri-surface reference for Browser WebMCP (`navigator.modelContext`), HTTP/Stdio MCP (`/api/mcp` & `wod mcp`), and CLI (`wod --json`).
4
+
5
+ # Whiteboard Language Reference
6
+
7
+ Fence tags: ```time (optional sport suffix e.g. ```time:cardio, ```time:crossfit, ```time:climb) or ```log.
8
+
9
+ ## Core Tokens & Metrics
10
+ - **Timestamps / Durations**: `20:00` (20 min countdown), `:30` (30 sec), `1:05:00` (1 hr 5 min).
11
+ - **Timers & Rounds**: `(21-15-9)` rep scheme, `5 Rounds`, `EMOM 10:00`, `Tabata`, `AMRAP 12:00`.
12
+ - **Reps & Resistance**: `21 Thrusters @95lb`, `5x5 Back Squat @80%`, `15 Kettlebell Swings @24kg`.
13
+ - **Distance**: `400m Run`, `2km Row`, `50ft Handstand Walk`.
14
+ - **Action Modifiers**: `[:Rest 1:00]`, `+Compose`.
15
+ - **Grouping / Indentation**: Indent child movements by 2 spaces beneath timer or round headers.
16
+
17
+ ## Canonical Example
18
+ ```time
19
+ # Fran
20
+ (21-15-9)
21
+ Thrusters @95lb
22
+ Pull-ups
23
+ ```
24
+
25
+ ---
26
+
27
+ ## WQL (Workout Query Language) Reference
28
+
29
+ ```json
30
+ {
31
+ "families": [
32
+ "find",
33
+ "aggregate"
34
+ ],
35
+ "aggregators": [
36
+ "sum",
37
+ "avg",
38
+ "min",
39
+ "max",
40
+ "count",
41
+ "last",
42
+ "delta"
43
+ ],
44
+ "metricFamilies": [
45
+ "reps",
46
+ "distance",
47
+ "resistance",
48
+ "elapsed",
49
+ "power",
50
+ "pace"
51
+ ],
52
+ "metricAggregates": [
53
+ "totalVolume",
54
+ "totalDistance",
55
+ "tis",
56
+ "sessionLoad"
57
+ ],
58
+ "typedTagKeys": [
59
+ "domain",
60
+ "format",
61
+ "equipment",
62
+ "quality",
63
+ "intent"
64
+ ],
65
+ "factTagKeys": [
66
+ "domain",
67
+ "format",
68
+ "equipment",
69
+ "quality",
70
+ "intent",
71
+ "effort",
72
+ "discipline",
73
+ "intensity",
74
+ "grade",
75
+ "note",
76
+ "page",
77
+ "origin",
78
+ "grain",
79
+ "metric",
80
+ "block",
81
+ "result",
82
+ "tags"
83
+ ],
84
+ "virtualDimensions": [
85
+ "day",
86
+ "week",
87
+ "session",
88
+ "round"
89
+ ],
90
+ "contentGroupingDimensions": [
91
+ "date",
92
+ "day",
93
+ "week",
94
+ "month",
95
+ "year",
96
+ "discipline",
97
+ "origin",
98
+ "source",
99
+ "notebook",
100
+ "kind",
101
+ "type",
102
+ "tag",
103
+ "feed"
104
+ ],
105
+ "comparisonOperators": [
106
+ ">",
107
+ ">=",
108
+ "<",
109
+ "<=",
110
+ "==",
111
+ "!="
112
+ ],
113
+ "filtersByFindTarget": {
114
+ "note": [
115
+ "text",
116
+ "notebook",
117
+ "tags",
118
+ "effort",
119
+ "domain",
120
+ "format",
121
+ "equipment",
122
+ "quality",
123
+ "intent",
124
+ "type",
125
+ "page",
126
+ "source",
127
+ "note",
128
+ "feed",
129
+ "subscribed"
130
+ ],
131
+ "block": [
132
+ "text",
133
+ "notebook",
134
+ "tags",
135
+ "effort",
136
+ "type",
137
+ "source",
138
+ "note",
139
+ "feed",
140
+ "subscribed"
141
+ ],
142
+ "effort": [
143
+ "effort",
144
+ "discipline",
145
+ "intensity",
146
+ "origin",
147
+ "text"
148
+ ],
149
+ "session": [
150
+ "result",
151
+ "block",
152
+ "note",
153
+ "plane",
154
+ "domain",
155
+ "format",
156
+ "equipment",
157
+ "quality",
158
+ "intent",
159
+ "effort",
160
+ "discipline",
161
+ "intensity",
162
+ "grade",
163
+ "page",
164
+ "origin",
165
+ "grain",
166
+ "tags"
167
+ ],
168
+ "segment": [
169
+ "domain",
170
+ "format",
171
+ "equipment",
172
+ "quality",
173
+ "intent",
174
+ "effort",
175
+ "discipline",
176
+ "intensity",
177
+ "grade",
178
+ "note",
179
+ "page",
180
+ "origin",
181
+ "grain",
182
+ "metric",
183
+ "block",
184
+ "result",
185
+ "tags"
186
+ ],
187
+ "event": [
188
+ "domain",
189
+ "format",
190
+ "equipment",
191
+ "quality",
192
+ "intent",
193
+ "effort",
194
+ "discipline",
195
+ "intensity",
196
+ "grade",
197
+ "note",
198
+ "page",
199
+ "origin",
200
+ "grain",
201
+ "metric",
202
+ "block",
203
+ "result",
204
+ "tags"
205
+ ],
206
+ "notebook": [
207
+ "text",
208
+ "notebook",
209
+ "tags",
210
+ "effort",
211
+ "domain",
212
+ "format",
213
+ "equipment",
214
+ "quality",
215
+ "intent",
216
+ "type",
217
+ "page",
218
+ "source",
219
+ "note",
220
+ "feed",
221
+ "subscribed"
222
+ ],
223
+ "page": [
224
+ "page",
225
+ "notebook",
226
+ "text",
227
+ "note"
228
+ ],
229
+ "tag": [
230
+ "tags",
231
+ "type",
232
+ "text",
233
+ "contributes"
234
+ ],
235
+ "equipment": [
236
+ "equipment",
237
+ "tags",
238
+ "text",
239
+ "notebook"
240
+ ],
241
+ "feed": [
242
+ "feed",
243
+ "tags",
244
+ "text",
245
+ "subscribed"
246
+ ]
247
+ },
248
+ "examples": [
249
+ ":note{tags:benchmark}",
250
+ ":note{notebook:journal time:7d}",
251
+ ":session{time:30d}",
252
+ ":sum{metric:reps effort:thrusters time:90d} by {week}",
253
+ ":effort{discipline:weightlifting}"
254
+ ]
255
+ }
256
+ ```
257
+
258
+ ---
259
+
260
+ ## Portable Domain Tools (22 tools — WebMCP + MCP Server + CLI)
261
+
262
+ ### `wod_parse_script` (Tier 0 — script)
263
+ - **Title**: Parse Whiteboard Script
264
+ - **Description**: Validate Whiteboard Script syntax, inspect parsed statements, typed metrics, unresolved choices, and collectible `?` placeholders. Defaults to dry-run (`save: false`); pass `save: true` to persist as a Note.
265
+ - **CLI Equivalent**: `wod parse - --no-save --json`
266
+ - **Input Schema**:
267
+ ```json
268
+ {
269
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
270
+ "type": "object",
271
+ "properties": {
272
+ "source": {
273
+ "type": "string",
274
+ "minLength": 1,
275
+ "description": "Whiteboard Script body OR full Markdown document containing ```time / ```wod blocks."
276
+ },
277
+ "sport": {
278
+ "description": "Optional sport fence dialect override (e.g. \"crossfit\", \"climbing\", \"running\").",
279
+ "type": "string"
280
+ },
281
+ "save": {
282
+ "description": "Default false (dry-run syntax & metric inspection). Set true to persist as a Note.",
283
+ "type": "boolean"
284
+ },
285
+ "noteId": {
286
+ "description": "Optional target Note ID when save=true.",
287
+ "type": "string"
288
+ },
289
+ "title": {
290
+ "description": "Optional Note title when save=true.",
291
+ "type": "string"
292
+ },
293
+ "notebookId": {
294
+ "description": "Optional user Notebook slug/ID when save=true.",
295
+ "type": "string"
296
+ }
297
+ },
298
+ "required": [
299
+ "source"
300
+ ],
301
+ "additionalProperties": false
302
+ }
303
+ ```
304
+
305
+ ### `wod_query_wql` (Tier 0 — wql)
306
+ - **Title**: Execute WQL Query
307
+ - **Description**: Run any WQL find (`:note`, `:session`, `:effort`, `:equipment`, `:tag`, `:feed`, `:block`), aggregate (`sum:volume`, `max:weight`, `count:sessions`), or pipeline query against the active WOD Wiki storage.
308
+ - **CLI Equivalent**: `wod query '<wql>' --format json`
309
+ - **Input Schema**:
310
+ ```json
311
+ {
312
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
313
+ "type": "object",
314
+ "properties": {
315
+ "query": {
316
+ "type": "string",
317
+ "minLength": 1,
318
+ "description": "WQL query expression (e.g. \":note{notebook:journal}\", \":session last 30d\", \"sum:volume by {week}\")."
319
+ },
320
+ "preferredUnit": {
321
+ "description": "Optional display unit conversion preference (e.g. \"lb\", \"kg\", \"m\", \"mi\").",
322
+ "type": "string"
323
+ },
324
+ "limit": {
325
+ "description": "Maximum rows/items to return in the response payload (default 100).",
326
+ "type": "integer",
327
+ "minimum": 1,
328
+ "maximum": 500
329
+ }
330
+ },
331
+ "required": [
332
+ "query"
333
+ ],
334
+ "additionalProperties": false
335
+ }
336
+ ```
337
+
338
+ ### `wod_validate_wql` (Tier 0 — wql)
339
+ - **Title**: Validate & Inspect WQL Query
340
+ - **Description**: Parse a WQL string without executing it. Returns syntax validity, query family (find, aggregate, pipeline), normalized WQL string, and the allowed filter keys and `by {}` grouping dimensions for that plane.
341
+ - **CLI Equivalent**: `wod query "<wql>" --format json`
342
+ - **Input Schema**:
343
+ ```json
344
+ {
345
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
346
+ "type": "object",
347
+ "properties": {
348
+ "query": {
349
+ "type": "string",
350
+ "description": "WQL query string to validate and inspect (e.g. \":note{notebook:journal} last 7d\" or \"sum:volume by {effort}\")."
351
+ },
352
+ "targetHint": {
353
+ "description": "Optional target plane to list valid filter keys & grouping dimensions for (note, session, effort, equipment, tag, feed, block, event).",
354
+ "type": "string"
355
+ }
356
+ },
357
+ "required": [
358
+ "query"
359
+ ],
360
+ "additionalProperties": false
361
+ }
362
+ ```
363
+
364
+ ### `wod_note_list` (Tier 0 — note)
365
+ - **Title**: List Notes
366
+ - **Description**: List workout and reference Notes with optional filtering by Notebook, search query, tag, and origin.
367
+ - **CLI Equivalent**: `wod note list --json`
368
+ - **Input Schema**:
369
+ ```json
370
+ {
371
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
372
+ "type": "object",
373
+ "properties": {
374
+ "notebookId": {
375
+ "description": "Filter by notebook ID or slug (e.g. \"journal\", \"custom\", \"guides\", \"notebook/strength\").",
376
+ "type": "string"
377
+ },
378
+ "search": {
379
+ "description": "Case-insensitive substring filter over title and Markdown content.",
380
+ "type": "string"
381
+ },
382
+ "tag": {
383
+ "description": "Filter to Notes carrying this tag label.",
384
+ "type": "string"
385
+ },
386
+ "includeSeed": {
387
+ "description": "Include read-only Seed/Feed notes (default true when notebookId is specified, false otherwise).",
388
+ "type": "boolean"
389
+ },
390
+ "limit": {
391
+ "description": "Max notes to return (default 50).",
392
+ "type": "integer",
393
+ "minimum": 1,
394
+ "maximum": 200
395
+ }
396
+ },
397
+ "additionalProperties": false
398
+ }
399
+ ```
400
+
401
+ ### `wod_note_get` (Tier 0 — note)
402
+ - **Title**: Get Note Details
403
+ - **Description**: Read a full Note by ID including authored Markdown, `sourceRevision`, parsed workout blocks, attached Session count, upstream provenance, and publication visibility.
404
+ - **CLI Equivalent**: `wod note get <noteId> --json`
405
+ - **Input Schema**:
406
+ ```json
407
+ {
408
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
409
+ "type": "object",
410
+ "properties": {
411
+ "noteId": {
412
+ "type": "string",
413
+ "minLength": 1,
414
+ "description": "Unique Note ID (UUID or seed route ID)."
415
+ }
416
+ },
417
+ "required": [
418
+ "noteId"
419
+ ],
420
+ "additionalProperties": false
421
+ }
422
+ ```
423
+
424
+ ### `wod_note_upsert` (Tier 1 — note)
425
+ - **Title**: Create or Update Note
426
+ - **Description**: Create a new workout/reference Note or update an existing editable Note with full block-revision pinning, effort/equipment indexing, and optimistic concurrency (`expectedSourceRevision`).
427
+ - **CLI Equivalent**: `wod note save <file|-> --json`
428
+ - **Input Schema**:
429
+ ```json
430
+ {
431
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
432
+ "type": "object",
433
+ "properties": {
434
+ "noteId": {
435
+ "description": "Existing Note ID to update, or omit to create a new Note.",
436
+ "type": "string"
437
+ },
438
+ "title": {
439
+ "description": "Note title (defaults to # H1 heading in content).",
440
+ "type": "string"
441
+ },
442
+ "content": {
443
+ "type": "string",
444
+ "minLength": 1,
445
+ "description": "Full Markdown document or Whiteboard Script body."
446
+ },
447
+ "sport": {
448
+ "description": "Optional sport fence tag when passing bare Whiteboard Script.",
449
+ "type": "string"
450
+ },
451
+ "expectedSourceRevision": {
452
+ "description": "Optimistic concurrency guard: pass the current sourceRevision from wod_note_get when updating.",
453
+ "type": "integer",
454
+ "minimum": 0,
455
+ "maximum": 9007199254740991
456
+ },
457
+ "notebookId": {
458
+ "description": "Optional user Notebook ID/slug to link this Note into (always stays anchored in notebook/journal).",
459
+ "type": "string"
460
+ },
461
+ "journalDate": {
462
+ "description": "Optional YYYY-MM-DD or \"today\" to place the Note on that Journal calendar day.",
463
+ "type": "string"
464
+ }
465
+ },
466
+ "required": [
467
+ "content"
468
+ ],
469
+ "additionalProperties": false
470
+ }
471
+ ```
472
+
473
+ ### `wod_note_clone` (Tier 1 — note)
474
+ - **Title**: Clone Note with Provenance
475
+ - **Description**: Clone any Note (especially read-only Seed or Feed workouts) into a writable user Notebook or Journal day while recording structured upstream `NoteProvenance`.
476
+ - **CLI Equivalent**: `wod note clone <sourceNoteId> --notebook <slug> --json`
477
+ - **Input Schema**:
478
+ ```json
479
+ {
480
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
481
+ "type": "object",
482
+ "properties": {
483
+ "sourceNoteId": {
484
+ "type": "string",
485
+ "minLength": 1,
486
+ "description": "Source Note ID (including read-only Seed/Feed Notes) to clone."
487
+ },
488
+ "targetNotebookId": {
489
+ "description": "Target writable user Notebook ID/slug (defaults to \"notebook/journal\").",
490
+ "type": "string"
491
+ },
492
+ "title": {
493
+ "description": "Optional title override for the cloned Note.",
494
+ "type": "string"
495
+ },
496
+ "journalDate": {
497
+ "description": "Optional YYYY-MM-DD or \"today\" to pin the clone onto a Journal day.",
498
+ "type": "string"
499
+ }
500
+ },
501
+ "required": [
502
+ "sourceNoteId"
503
+ ],
504
+ "additionalProperties": false
505
+ }
506
+ ```
507
+
508
+ ### `wod_note_delete` (Tier 2 — note)
509
+ - **Title**: Delete Note
510
+ - **Description**: Permanently delete a Note and detach its projections, tag links, and calendar placements (Tier 2 destructive — requires user confirmation or matching confirmId).
511
+ - **CLI Equivalent**: `wod note delete <noteId> --yes <noteId> --json`
512
+ - **Input Schema**:
513
+ ```json
514
+ {
515
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
516
+ "type": "object",
517
+ "properties": {
518
+ "noteId": {
519
+ "type": "string",
520
+ "minLength": 1,
521
+ "description": "ID of the Note to delete."
522
+ },
523
+ "confirmId": {
524
+ "description": "For non-interactive MCP/CLI calls, repeat the exact noteId to confirm deletion.",
525
+ "type": "string"
526
+ }
527
+ },
528
+ "required": [
529
+ "noteId"
530
+ ],
531
+ "additionalProperties": false
532
+ }
533
+ ```
534
+
535
+ ### `wod_journal_day` (Tier 0 — journal)
536
+ - **Title**: Get Journal Day
537
+ - **Description**: Fetch all scheduled/authored workout Notes and recorded Sessions for a specific Journal calendar day (`YYYY-MM-DD` or `today`).
538
+ - **CLI Equivalent**: `wod journal [today|YYYY-MM-DD] --json`
539
+ - **Input Schema**:
540
+ ```json
541
+ {
542
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
543
+ "type": "object",
544
+ "properties": {
545
+ "date": {
546
+ "description": "Calendar date in YYYY-MM-DD format, or \"today\" (defaults to \"today\").",
547
+ "type": "string"
548
+ }
549
+ },
550
+ "additionalProperties": false
551
+ }
552
+ ```
553
+
554
+ ### `wod_journal_add` (Tier 1 — journal)
555
+ - **Title**: Add Workout to Journal Day
556
+ - **Description**: Create a new workout Note in `notebook/journal` and place it onto the specified calendar day (`YYYY-MM-DD` or `today`).
557
+ - **CLI Equivalent**: `wod journal add <file|-> --date YYYY-MM-DD --json`
558
+ - **Input Schema**:
559
+ ```json
560
+ {
561
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
562
+ "type": "object",
563
+ "properties": {
564
+ "date": {
565
+ "description": "Target Journal date in YYYY-MM-DD format or \"today\" (defaults to \"today\").",
566
+ "type": "string"
567
+ },
568
+ "title": {
569
+ "description": "Workout title (defaults to # H1 heading or date).",
570
+ "type": "string"
571
+ },
572
+ "content": {
573
+ "type": "string",
574
+ "minLength": 1,
575
+ "description": "Markdown workout note or bare Whiteboard Script to schedule onto the Journal day."
576
+ },
577
+ "sport": {
578
+ "description": "Optional sport fence tag when passing bare Whiteboard Script.",
579
+ "type": "string"
580
+ },
581
+ "notebookId": {
582
+ "description": "Optional additional user Notebook to promote this Journal Note into.",
583
+ "type": "string"
584
+ }
585
+ },
586
+ "required": [
587
+ "content"
588
+ ],
589
+ "additionalProperties": false
590
+ }
591
+ ```
592
+
593
+ ### `wod_notebook_list` (Tier 0 — notebook)
594
+ - **Title**: List Notebooks
595
+ - **Description**: List built-in, user-created, and feed-subscribed Notebooks along with member Note counts and publication status.
596
+ - **CLI Equivalent**: `wod notebook list --json`
597
+ - **Input Schema**:
598
+ ```json
599
+ {
600
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
601
+ "type": "object",
602
+ "properties": {
603
+ "origin": {
604
+ "description": "Filter notebooks by origin (default \"all\").",
605
+ "type": "string",
606
+ "enum": [
607
+ "all",
608
+ "default",
609
+ "user",
610
+ "feed"
611
+ ]
612
+ }
613
+ },
614
+ "additionalProperties": false
615
+ }
616
+ ```
617
+
618
+ ### `wod_notebook_save` (Tier 1 — notebook)
619
+ - **Title**: Create, Update, or Promote Notebook
620
+ - **Description**: Create or update a user-owned Notebook, promote/detach a Note across Notebooks (`notebook/journal` permanence preserved), or toggle Notebook publication visibility.
621
+ - **CLI Equivalent**: `wod notebook <create|update|promote> --json`
622
+ - **Input Schema**:
623
+ ```json
624
+ {
625
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
626
+ "type": "object",
627
+ "properties": {
628
+ "action": {
629
+ "type": "string",
630
+ "enum": [
631
+ "create",
632
+ "update",
633
+ "promote",
634
+ "detach",
635
+ "set-public"
636
+ ],
637
+ "description": "Operation to perform on a user Notebook."
638
+ },
639
+ "notebookId": {
640
+ "description": "Target Notebook slug or ID (required for update, promote, detach, set-public).",
641
+ "type": "string"
642
+ },
643
+ "name": {
644
+ "description": "Display name when creating or renaming a Notebook.",
645
+ "type": "string"
646
+ },
647
+ "description": {
648
+ "description": "Notebook description.",
649
+ "type": "string"
650
+ },
651
+ "icon": {
652
+ "description": "Notebook icon/emoji.",
653
+ "type": "string"
654
+ },
655
+ "noteId": {
656
+ "description": "Note ID to promote into or detach from the Notebook.",
657
+ "type": "string"
658
+ },
659
+ "sessionIds": {
660
+ "description": "Optional Session IDs on `noteId` to promote alongside the Note.",
661
+ "type": "array",
662
+ "items": {
663
+ "type": "string"
664
+ }
665
+ },
666
+ "public": {
667
+ "description": "Visibility flag when action=\"set-public\" or promoting sessions.",
668
+ "type": "boolean"
669
+ }
670
+ },
671
+ "required": [
672
+ "action"
673
+ ],
674
+ "additionalProperties": false
675
+ }
676
+ ```
677
+
678
+ ### `wod_notebook_delete` (Tier 2 — notebook)
679
+ - **Title**: Delete User Notebook
680
+ - **Description**: Delete a user-created Notebook landing note and detach member links while keeping all member Notes safely in `notebook/journal` (Tier 2 destructive).
681
+ - **CLI Equivalent**: `wod notebook delete <slug> --yes <slug> --json`
682
+ - **Input Schema**:
683
+ ```json
684
+ {
685
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
686
+ "type": "object",
687
+ "properties": {
688
+ "notebookId": {
689
+ "type": "string",
690
+ "minLength": 1,
691
+ "description": "User Notebook ID or slug to delete (member Notes stay safe in notebook/journal)."
692
+ },
693
+ "confirmId": {
694
+ "description": "For non-interactive MCP/CLI calls, repeat the exact notebookId or slug to confirm deletion.",
695
+ "type": "string"
696
+ }
697
+ },
698
+ "required": [
699
+ "notebookId"
700
+ ],
701
+ "additionalProperties": false
702
+ }
703
+ ```
704
+
705
+ ### `wod_session_run_headless` (Tier 1 — session)
706
+ - **Title**: Run Workout Session Headlessly
707
+ - **Description**: Execute a workout block through the headless JIT compiler and runtime state machine, recording a pinned `Session` and derived `EventRecord`s in storage. Automatically clones read-only Seed/Feed Notes into `notebook/journal`.
708
+ - **CLI Equivalent**: `wod run <file|--note id> --json`
709
+ - **Input Schema**:
710
+ ```json
711
+ {
712
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
713
+ "type": "object",
714
+ "properties": {
715
+ "noteId": {
716
+ "description": "Existing Note ID to execute (read-only Seed/Feed Notes are automatically cloned to notebook/journal).",
717
+ "type": "string"
718
+ },
719
+ "blockId": {
720
+ "description": "Optional workout block ID on `noteId` (defaults to first wod block).",
721
+ "type": "string"
722
+ },
723
+ "source": {
724
+ "description": "Inline Whiteboard Script or Markdown to persist & run when `noteId` is not supplied.",
725
+ "type": "string"
726
+ },
727
+ "title": {
728
+ "description": "Optional Note title when running inline `source`.",
729
+ "type": "string"
730
+ },
731
+ "sport": {
732
+ "description": "Optional sport dialect override.",
733
+ "type": "string"
734
+ },
735
+ "journalDate": {
736
+ "description": "Optional YYYY-MM-DD or \"today\" Journal calendar date.",
737
+ "type": "string"
738
+ },
739
+ "collectibles": {
740
+ "description": "Optional values for collectible `?` metrics (e.g. `{ \"lb\": 185, \"reps\": 12 }`).",
741
+ "type": "object",
742
+ "propertyNames": {
743
+ "type": "string"
744
+ },
745
+ "additionalProperties": {
746
+ "type": [
747
+ "string",
748
+ "number"
749
+ ]
750
+ }
751
+ },
752
+ "stepAdvanceMs": {
753
+ "description": "Simulated clock advance per step in milliseconds (default 10000).",
754
+ "type": "integer",
755
+ "minimum": 100,
756
+ "maximum": 3600000
757
+ },
758
+ "maxSteps": {
759
+ "description": "Safety cap on execution steps (default 500).",
760
+ "type": "integer",
761
+ "minimum": 1,
762
+ "maximum": 5000
763
+ },
764
+ "public": {
765
+ "description": "Mark the recorded Session public for Feed publication.",
766
+ "type": "boolean"
767
+ }
768
+ },
769
+ "additionalProperties": false
770
+ }
771
+ ```
772
+
773
+ ### `wod_session_list` (Tier 0 — session)
774
+ - **Title**: List Recorded Sessions
775
+ - **Description**: List recorded workout Sessions ordered newest-first, optionally filtered by Note ID.
776
+ - **CLI Equivalent**: `wod session list --json`
777
+ - **Input Schema**:
778
+ ```json
779
+ {
780
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
781
+ "type": "object",
782
+ "properties": {
783
+ "noteId": {
784
+ "description": "Filter Sessions by owning Note ID.",
785
+ "type": "string"
786
+ },
787
+ "completedOnly": {
788
+ "description": "Filter to completed Sessions only.",
789
+ "type": "boolean"
790
+ },
791
+ "limit": {
792
+ "description": "Max Sessions to return (default 50).",
793
+ "type": "integer",
794
+ "minimum": 1,
795
+ "maximum": 200
796
+ }
797
+ },
798
+ "additionalProperties": false
799
+ }
800
+ ```
801
+
802
+ ### `wod_session_get` (Tier 0 — session)
803
+ - **Title**: Get Session Telemetry
804
+ - **Description**: Read a recorded workout Session along with its pinned `BlockRevision` and derived event/summary telemetry rows.
805
+ - **CLI Equivalent**: `wod session get <sessionId> --json`
806
+ - **Input Schema**:
807
+ ```json
808
+ {
809
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
810
+ "type": "object",
811
+ "properties": {
812
+ "sessionId": {
813
+ "type": "string",
814
+ "minLength": 1,
815
+ "description": "Session ID to inspect."
816
+ }
817
+ },
818
+ "required": [
819
+ "sessionId"
820
+ ],
821
+ "additionalProperties": false
822
+ }
823
+ ```
824
+
825
+ ### `wod_session_delete` (Tier 2 — session)
826
+ - **Title**: Delete Recorded Session
827
+ - **Description**: Permanently delete a recorded workout Session and its telemetry events (Tier 2 destructive — requires confirmation).
828
+ - **CLI Equivalent**: `wod session delete <sessionId> --yes <sessionId> --json`
829
+ - **Input Schema**:
830
+ ```json
831
+ {
832
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
833
+ "type": "object",
834
+ "properties": {
835
+ "sessionId": {
836
+ "type": "string",
837
+ "minLength": 1,
838
+ "description": "Session ID to delete."
839
+ },
840
+ "confirmId": {
841
+ "description": "For non-interactive MCP/CLI calls, repeat the exact sessionId to confirm deletion.",
842
+ "type": "string"
843
+ }
844
+ },
845
+ "required": [
846
+ "sessionId"
847
+ ],
848
+ "additionalProperties": false
849
+ }
850
+ ```
851
+
852
+ ### `wod_catalog_lookup` (Tier 0 — catalog)
853
+ - **Title**: Lookup Efforts, Equipment & Tags
854
+ - **Description**: Search or inspect the Effort movement registry, Equipment catalog, Tags, and Tag Categories with Notebook-scoped override precedence (`notebook/defaults` -> Feed/Notebook -> `notebook/custom`).
855
+ - **CLI Equivalent**: `wod catalog <efforts|equipment|tags> --json`
856
+ - **Input Schema**:
857
+ ```json
858
+ {
859
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
860
+ "type": "object",
861
+ "properties": {
862
+ "kind": {
863
+ "type": "string",
864
+ "enum": [
865
+ "effort",
866
+ "equipment",
867
+ "tag",
868
+ "tag-type"
869
+ ],
870
+ "description": "Catalog family to search or inspect."
871
+ },
872
+ "search": {
873
+ "description": "Case-insensitive slug, label, or alias filter.",
874
+ "type": "string"
875
+ },
876
+ "slug": {
877
+ "description": "Exact canonical slug/name to look up.",
878
+ "type": "string"
879
+ },
880
+ "notebookId": {
881
+ "description": "Optional Notebook scope for property inheritance resolution.",
882
+ "type": "string"
883
+ },
884
+ "limit": {
885
+ "description": "Max entries to return (default 50).",
886
+ "type": "integer",
887
+ "minimum": 1,
888
+ "maximum": 250
889
+ }
890
+ },
891
+ "required": [
892
+ "kind"
893
+ ],
894
+ "additionalProperties": false
895
+ }
896
+ ```
897
+
898
+ ### `wod_catalog_upsert` (Tier 1 — catalog)
899
+ - **Title**: Save Effort, Equipment, or Tag Property Note
900
+ - **Description**: Create or update a Scoped Property Override (`effort`, `equipment`, `tag`, or `tag-type`) in `notebook/custom` or a shared user Notebook.
901
+ - **CLI Equivalent**: `wod catalog save <kind> <file|-> --json`
902
+ - **Input Schema**:
903
+ ```json
904
+ {
905
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
906
+ "type": "object",
907
+ "properties": {
908
+ "kind": {
909
+ "type": "string",
910
+ "enum": [
911
+ "effort",
912
+ "equipment",
913
+ "tag",
914
+ "tag-type"
915
+ ],
916
+ "description": "Property definition family to create or override."
917
+ },
918
+ "slug": {
919
+ "type": "string",
920
+ "minLength": 1,
921
+ "description": "Canonical kebab-case slug (e.g. \"kettlebell-swing\", \"barbell\")."
922
+ },
923
+ "label": {
924
+ "description": "Human-readable display label.",
925
+ "type": "string"
926
+ },
927
+ "targetNotebookId": {
928
+ "description": "Target Notebook scope: defaults to \"notebook/custom\" (personal runtime) or a writable user Notebook.",
929
+ "type": "string"
930
+ },
931
+ "markdown": {
932
+ "description": "Full Property Note Markdown with YAML frontmatter. If omitted, synthesized from structured fields below.",
933
+ "type": "string"
934
+ },
935
+ "met": {
936
+ "description": "MET metabolic equivalent (for kind=\"effort\", default 5.0).",
937
+ "type": "number",
938
+ "exclusiveMinimum": 0
939
+ },
940
+ "aliases": {
941
+ "description": "Optional movement/equipment aliases.",
942
+ "type": "array",
943
+ "items": {
944
+ "type": "string"
945
+ }
946
+ },
947
+ "category": {
948
+ "description": "Tag category when kind=\"tag\" (e.g. \"equipment\", \"quality\", \"format\").",
949
+ "type": "string"
950
+ },
951
+ "color": {
952
+ "description": "Hex color when kind=\"tag-type\" (e.g. \"#10b981\").",
953
+ "type": "string"
954
+ }
955
+ },
956
+ "required": [
957
+ "kind",
958
+ "slug"
959
+ ],
960
+ "additionalProperties": false
961
+ }
962
+ ```
963
+
964
+ ### `wod_feed_manage` (Tier 1 — feed)
965
+ - **Title**: Manage Feeds & Portability
966
+ - **Description**: Inspect installed Seed/Feed sources (`list`), check unpublished public Notebook changes (`status`), compile and publish public Notebooks (`publish`), or import portable Markdown + JSONL/CSV files (`import-bundle`).
967
+ - **CLI Equivalent**: `wod feed <list|status|publish> --json`
968
+ - **Input Schema**:
969
+ ```json
970
+ {
971
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
972
+ "type": "object",
973
+ "properties": {
974
+ "action": {
975
+ "type": "string",
976
+ "enum": [
977
+ "list",
978
+ "status",
979
+ "publish",
980
+ "import-bundle"
981
+ ],
982
+ "description": "Feed or portability operation to run."
983
+ },
984
+ "notebookSlug": {
985
+ "description": "Optional Notebook slug filter when publishing.",
986
+ "type": "string"
987
+ },
988
+ "name": {
989
+ "description": "Optional Feed display name when publishing.",
990
+ "type": "string"
991
+ },
992
+ "description": {
993
+ "description": "Optional Feed description when publishing.",
994
+ "type": "string"
995
+ },
996
+ "files": {
997
+ "description": "Portable `.md` / `.jsonl` / `.csv` files when action=\"import-bundle\".",
998
+ "type": "array",
999
+ "items": {
1000
+ "type": "object",
1001
+ "properties": {
1002
+ "path": {
1003
+ "type": "string",
1004
+ "minLength": 1
1005
+ },
1006
+ "content": {
1007
+ "type": "string"
1008
+ }
1009
+ },
1010
+ "required": [
1011
+ "path",
1012
+ "content"
1013
+ ],
1014
+ "additionalProperties": false
1015
+ }
1016
+ }
1017
+ },
1018
+ "required": [
1019
+ "action"
1020
+ ],
1021
+ "additionalProperties": false
1022
+ }
1023
+ ```
1024
+
1025
+ ### `wod_export_bundle` (Tier 0 — feed)
1026
+ - **Title**: Export Portable Markdown & Telemetry Bundle
1027
+ - **Description**: Export user Notes and attached Session telemetry directly as structured `{ path, content }` strings (Markdown + JSONL/CSV) without triggering synthetic browser file downloads.
1028
+ - **CLI Equivalent**: `wod export note <id> -o -`
1029
+ - **Input Schema**:
1030
+ ```json
1031
+ {
1032
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1033
+ "type": "object",
1034
+ "properties": {
1035
+ "noteIds": {
1036
+ "description": "Optional Note IDs to export (defaults to all user-owned Notes).",
1037
+ "type": "array",
1038
+ "items": {
1039
+ "type": "string"
1040
+ }
1041
+ },
1042
+ "telemetryFormat": {
1043
+ "description": "Format for companion Session/Event telemetry files (default \"jsonl\").",
1044
+ "type": "string",
1045
+ "enum": [
1046
+ "jsonl",
1047
+ "csv",
1048
+ "both"
1049
+ ]
1050
+ }
1051
+ },
1052
+ "additionalProperties": false
1053
+ }
1054
+ ```
1055
+
1056
+ ### `wod_reset_storage` (Tier 2 — system)
1057
+ - **Title**: Wipe Storage Data
1058
+ - **Description**: Wipe user Notes, Sessions, Events, and Notebook data from the active storage backend (Tier 2 destructive — requires explicit user confirmation).
1059
+ - **CLI Equivalent**: `wod reset --yes WIPE_STORAGE --json`
1060
+ - **Input Schema**:
1061
+ ```json
1062
+ {
1063
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1064
+ "type": "object",
1065
+ "properties": {
1066
+ "confirmToken": {
1067
+ "description": "For non-interactive MCP/CLI calls, pass confirmToken=\"WIPE_STORAGE\" to confirm wiping user storage.",
1068
+ "type": "string"
1069
+ }
1070
+ },
1071
+ "additionalProperties": false
1072
+ }
1073
+ ```
1074
+
1075
+ ---
1076
+
1077
+ ## Live Browser UI Tools (9 tools — Playground WebMCP only)
1078
+
1079
+ ### `ui_get_view_context` (Tier 0 — WebMCP UI)
1080
+ - **Title**: Get Active UI View Context
1081
+ - **Mount Scope**: always (Playground shell)
1082
+ - **Description**: Read the current browser route, hydration/loading state, unbatched stream results, active editor metadata, and live workout clock snapshot.
1083
+ - **Input Schema**:
1084
+ ```json
1085
+ {
1086
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1087
+ "type": "object",
1088
+ "properties": {
1089
+ "includeSampleEntries": {
1090
+ "description": "Include up to 50 unbatched stream entries when on a stream route (default true).",
1091
+ "type": "boolean"
1092
+ }
1093
+ },
1094
+ "additionalProperties": false
1095
+ }
1096
+ ```
1097
+
1098
+ ### `ui_navigate` (Tier 1 — WebMCP UI)
1099
+ - **Title**: Navigate Playground Route
1100
+ - **Mount Scope**: always (Playground shell)
1101
+ - **Description**: Navigate the React Router SPA to any WOD Wiki route (`/journal`, `/day/:date`, `/note/:id`, `/notebooks`, `/dashboards`, `/run/:id?note=:noteId`) and wait for UI commit.
1102
+ - **Input Schema**:
1103
+ ```json
1104
+ {
1105
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1106
+ "type": "object",
1107
+ "properties": {
1108
+ "path": {
1109
+ "type": "string",
1110
+ "minLength": 1,
1111
+ "description": "Internal app path (with optional ?query and #hash) to navigate to, e.g. \"/journal\", \"/day/2026-11-11\", \"/note/<id>\", \"/notebooks\", \"/dashboards\"."
1112
+ },
1113
+ "replace": {
1114
+ "description": "Replace current history entry instead of pushing.",
1115
+ "type": "boolean"
1116
+ }
1117
+ },
1118
+ "required": [
1119
+ "path"
1120
+ ],
1121
+ "additionalProperties": false
1122
+ }
1123
+ ```
1124
+
1125
+ ### `ui_cast_control` (Tier 1 — WebMCP UI)
1126
+ - **Title**: Inspect or Disconnect Cast Session
1127
+ - **Mount Scope**: always (Playground shell)
1128
+ - **Description**: Check active Chromecast / receiver display session state or cleanly disconnect an active Cast session.
1129
+ - **Input Schema**:
1130
+ ```json
1131
+ {
1132
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1133
+ "type": "object",
1134
+ "properties": {
1135
+ "action": {
1136
+ "type": "string",
1137
+ "enum": [
1138
+ "status",
1139
+ "disconnect"
1140
+ ],
1141
+ "description": "Inspect active Chromecast/receiver session status or disconnect an active session."
1142
+ }
1143
+ },
1144
+ "required": [
1145
+ "action"
1146
+ ],
1147
+ "additionalProperties": false
1148
+ }
1149
+ ```
1150
+
1151
+ ### `ui_set_stream_query` (Tier 1 — WebMCP UI)
1152
+ - **Title**: Set Live Stream WQL Query or Layout
1153
+ - **Mount Scope**: mounted stream routes (/journal, /notes, /notebooks, /sessions, /efforts, /tags, /feeds)
1154
+ - **Description**: Update the live WQL query, layout (`cards`, `rows`, `feed`, `agenda`, `planner`), or grouping on the currently mounted stream view, or reset to the route default.
1155
+ - **Input Schema**:
1156
+ ```json
1157
+ {
1158
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1159
+ "type": "object",
1160
+ "properties": {
1161
+ "query": {
1162
+ "description": "WQL query string to apply to the mounted stream view (e.g. \":note{tags:benchmark}\").",
1163
+ "type": "string"
1164
+ },
1165
+ "layout": {
1166
+ "description": "Switch stream layout mode and sync ?layout= in URL.",
1167
+ "type": "string",
1168
+ "enum": [
1169
+ "cards",
1170
+ "rows",
1171
+ "feed",
1172
+ "agenda",
1173
+ "planner"
1174
+ ]
1175
+ },
1176
+ "groupBy": {
1177
+ "description": "Grouping dimension (e.g. \"date\", \"week\", \"notebook\") or null to clear.",
1178
+ "type": [
1179
+ "string",
1180
+ "null"
1181
+ ]
1182
+ },
1183
+ "resetToDefault": {
1184
+ "description": "Undo custom stream filter and restore the route default WQL query.",
1185
+ "type": "boolean"
1186
+ }
1187
+ },
1188
+ "additionalProperties": false
1189
+ }
1190
+ ```
1191
+
1192
+ ### `ui_editor_draft` (Tier 1 — WebMCP UI)
1193
+ - **Title**: Read, Edit, or Undo Live Note Editor Buffer
1194
+ - **Mount Scope**: mounted Note / Journal / Playground editor surfaces
1195
+ - **Description**: Inspect or edit the live CodeMirror 6 Note buffer (`read`, `replace`, `append`, `undo`) with full undo history and optional immediate persistence.
1196
+ - **Input Schema**:
1197
+ ```json
1198
+ {
1199
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1200
+ "type": "object",
1201
+ "properties": {
1202
+ "operation": {
1203
+ "type": "string",
1204
+ "enum": [
1205
+ "read",
1206
+ "replace",
1207
+ "append",
1208
+ "undo"
1209
+ ],
1210
+ "description": "Read live editor buffer, replace document content, append Markdown/workout block, or undo last edit."
1211
+ },
1212
+ "content": {
1213
+ "description": "Markdown or Whiteboard Script content for replace / append operations.",
1214
+ "type": "string"
1215
+ },
1216
+ "save": {
1217
+ "description": "Flush and persist the draft to storage immediately after applying the edit (default false).",
1218
+ "type": "boolean"
1219
+ }
1220
+ },
1221
+ "required": [
1222
+ "operation"
1223
+ ],
1224
+ "additionalProperties": false
1225
+ }
1226
+ ```
1227
+
1228
+ ### `ui_start_live_workout` (Tier 1 — WebMCP UI)
1229
+ - **Title**: Start Live Interactive Workout Timer
1230
+ - **Mount Scope**: mounted Note / Journal / Playground editor surfaces
1231
+ - **Description**: Launch the live interactive workout clock on screen from a workout block in the active Note editor so the human athlete and agent can co-drive the session.
1232
+ - **Input Schema**:
1233
+ ```json
1234
+ {
1235
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1236
+ "type": "object",
1237
+ "properties": {
1238
+ "blockId": {
1239
+ "description": "Optional workout block ID in the active Note editor (defaults to first ```time block).",
1240
+ "type": "string"
1241
+ },
1242
+ "autoStart": {
1243
+ "description": "Automatically start the timer after mounting the workout clock (default true).",
1244
+ "type": "boolean"
1245
+ }
1246
+ },
1247
+ "additionalProperties": false
1248
+ }
1249
+ ```
1250
+
1251
+ ### `ui_clock_control` (Tier 1 — WebMCP UI)
1252
+ - **Title**: Control Live Workout Clock
1253
+ - **Mount Scope**: mounted live workout timer (FullscreenTimer / RuntimeTimerPanel)
1254
+ - **Description**: Dispatch commands (`next`, `playback`, `ready-start`, `entry-save`, `reps-set`, `stop-request`, `stop-confirm`, `dismiss`, etc.) to the active on-screen workout clock and return the updated ClockSnapshot.
1255
+ - **Input Schema**:
1256
+ ```json
1257
+ {
1258
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1259
+ "type": "object",
1260
+ "properties": {
1261
+ "command": {
1262
+ "type": "string",
1263
+ "enum": [
1264
+ "next",
1265
+ "playback",
1266
+ "stop-request",
1267
+ "stop-confirm",
1268
+ "stop-cancel",
1269
+ "values-open",
1270
+ "entry-cancel",
1271
+ "entry-save",
1272
+ "entry-skip",
1273
+ "reps-adjust",
1274
+ "reps-set",
1275
+ "reps-select",
1276
+ "choice-select",
1277
+ "ready-start",
1278
+ "dismiss",
1279
+ "status"
1280
+ ],
1281
+ "description": "Live workout clock command to dispatch (or \"status\" to read current ClockSnapshot)."
1282
+ },
1283
+ "fieldId": {
1284
+ "description": "Target fieldId for entry-save, entry-skip, or choice-select.",
1285
+ "type": "string"
1286
+ },
1287
+ "value": {
1288
+ "description": "Numeric value for entry-save or reps-set.",
1289
+ "type": "number"
1290
+ },
1291
+ "occurrenceId": {
1292
+ "description": "Rep occurrenceId for reps-adjust, reps-set, or reps-select.",
1293
+ "type": "string"
1294
+ },
1295
+ "delta": {
1296
+ "description": "+1 or -1 delta for reps-adjust.",
1297
+ "anyOf": [
1298
+ {
1299
+ "type": "number",
1300
+ "const": 1
1301
+ },
1302
+ {
1303
+ "type": "number",
1304
+ "const": -1
1305
+ }
1306
+ ]
1307
+ },
1308
+ "index": {
1309
+ "description": "Zero-based alternative index for choice-select.",
1310
+ "type": "integer",
1311
+ "minimum": 0,
1312
+ "maximum": 9007199254740991
1313
+ }
1314
+ },
1315
+ "required": [
1316
+ "command"
1317
+ ],
1318
+ "additionalProperties": false
1319
+ }
1320
+ ```
1321
+
1322
+ ### `ui_preferences` (Tier 1 — WebMCP UI)
1323
+ - **Title**: Get or Set Playground UI Preferences
1324
+ - **Mount Scope**: always (Playground shell)
1325
+ - **Description**: Read or update global Playground UI preferences (`theme`, `audioEnabled`, `debugMode`, `analyticsUnit`, and mobile navigation drawers).
1326
+ - **Input Schema**:
1327
+ ```json
1328
+ {
1329
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1330
+ "type": "object",
1331
+ "properties": {
1332
+ "action": {
1333
+ "type": "string",
1334
+ "enum": [
1335
+ "get",
1336
+ "set"
1337
+ ],
1338
+ "description": "Read current Playground UI preferences (\"get\") or update preferences (\"set\")."
1339
+ },
1340
+ "theme": {
1341
+ "description": "Color theme preference (`light`, `dark`, or `system`).",
1342
+ "type": "string",
1343
+ "enum": [
1344
+ "light",
1345
+ "dark",
1346
+ "system"
1347
+ ]
1348
+ },
1349
+ "audioEnabled": {
1350
+ "description": "Enable or mute workout timer audio cues.",
1351
+ "type": "boolean"
1352
+ },
1353
+ "debugMode": {
1354
+ "description": "Enable or disable global runtime debug mode.",
1355
+ "type": "boolean"
1356
+ },
1357
+ "analyticsUnit": {
1358
+ "description": "Preferred display unit for analytics charts (`kg` or `lb`).",
1359
+ "type": "string",
1360
+ "enum": [
1361
+ "kg",
1362
+ "lb"
1363
+ ]
1364
+ },
1365
+ "leftDrawerOpen": {
1366
+ "description": "Open or close the primary navigation drawer on mobile/tablet.",
1367
+ "type": "boolean"
1368
+ },
1369
+ "rightDrawerOpen": {
1370
+ "description": "Open or close the secondary L3 context drawer on mobile/tablet.",
1371
+ "type": "boolean"
1372
+ }
1373
+ },
1374
+ "required": [
1375
+ "action"
1376
+ ],
1377
+ "additionalProperties": false
1378
+ }
1379
+ ```
1380
+
1381
+ ### `ui_set_explorer_query` (Tier 1 — WebMCP UI)
1382
+ - **Title**: Set or Run Analytics Explorer WQL Query
1383
+ - **Mount Scope**: mounted Metric Explorer route (/dashboards)
1384
+ - **Description**: Set or execute an aggregate or find WQL query on the Metric Explorer (`/dashboards`), change the week window (`4`, `8`, `16`), or open the Save-to-Dashboard / Query Settings dialogs.
1385
+ - **Input Schema**:
1386
+ ```json
1387
+ {
1388
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1389
+ "type": "object",
1390
+ "properties": {
1391
+ "query": {
1392
+ "description": "WQL aggregate or find query string to set on the Metric Explorer (`/dashboards`), e.g. \"sum:totalVolume{} by {week}\".",
1393
+ "type": "string"
1394
+ },
1395
+ "submit": {
1396
+ "description": "Execute/submit the query immediately (default true when `query` is provided).",
1397
+ "type": "boolean"
1398
+ },
1399
+ "weeks": {
1400
+ "description": "Analytics lookback range in weeks (`4`, `8`, or `16`).",
1401
+ "anyOf": [
1402
+ {
1403
+ "type": "number",
1404
+ "const": 4
1405
+ },
1406
+ {
1407
+ "type": "number",
1408
+ "const": 8
1409
+ },
1410
+ {
1411
+ "type": "number",
1412
+ "const": 16
1413
+ }
1414
+ ]
1415
+ },
1416
+ "openSaveDialog": {
1417
+ "description": "Open the \"Save to dashboard\" dialog for the active query.",
1418
+ "type": "boolean"
1419
+ },
1420
+ "openQuerySettings": {
1421
+ "description": "Open the surface query settings dialog on `/dashboards`.",
1422
+ "type": "boolean"
1423
+ }
1424
+ },
1425
+ "additionalProperties": false
1426
+ }
1427
+ ```
1428
+
1429
+ ---
1430
+
1431
+ ## MCP Resources & Templates
1432
+
1433
+ - `wod://schema/whiteboard-script` (text/markdown) — Compact syntax, metric token, and fence-tag guide for authoring Whiteboard Language workouts.
1434
+ - `wod://schema/wql` (application/json) — Machine-readable WQL targets, aggregators, filter keys, metric families, and examples.
1435
+ - `wod://notebooks` (application/json) — Current local and subscribed feed notebooks with member counts.
1436
+ - `wod://note/{noteId}` (application/json) — Full Markdown source, block map, tags, and recent sessions for a Note.
1437
+ - `wod://journal/{date}` (application/json) — Scheduled notes and logged sessions for YYYY-MM-DD or today.
1438
+ - `wod://session/{sessionId}` (application/json) — Session record and full segment/summary event ledger.
1439
+
1440
+ ## MCP Prompts
1441
+
1442
+ - `encode-workout`: Convert unstructured workout text into valid ```wod Markdown and verify with wod_parse_script.
1443
+ - `analyze-training-load`: Inspect recent sessions, volume rollups, and movement balance over a date window.
1444
+ - `program-journal-day`: Review recent training history, avoid movement interference, and schedule a workout on a date.