@bitcobblers/wod-wiki-tools 0.54.2205 → 0.56.2208

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 (628) hide show
  1. package/dist/{agentCommands-AMMASJPH.mjs → agentCommands-XMEMSID5.mjs} +3 -3
  2. package/dist/{agentCommands-AMMASJPH.mjs.map → agentCommands-XMEMSID5.mjs.map} +1 -1
  3. package/dist/bin/wod.cjs +1 -1
  4. package/dist/bin/wod.cjs.map +1 -1
  5. package/dist/bin/wod.mjs +2 -2
  6. package/dist/{chunk-KXNK4PIB.mjs → chunk-5YZKGILM.mjs} +8 -8
  7. package/dist/{chunk-KXNK4PIB.mjs.map → chunk-5YZKGILM.mjs.map} +1 -1
  8. package/dist/{chunk-AS6OJRNH.mjs → chunk-M2E4U6XA.mjs} +3 -3
  9. package/dist/{chunk-AS6OJRNH.mjs.map → chunk-M2E4U6XA.mjs.map} +1 -1
  10. package/dist/{chunk-WLCUM7KO.mjs → chunk-OJIJB7KB.mjs} +3 -3
  11. package/dist/{chunk-WLCUM7KO.mjs.map → chunk-OJIJB7KB.mjs.map} +1 -1
  12. package/dist/{chunk-T7VB7PPO.mjs → chunk-RBXAFPS5.mjs} +3 -3
  13. package/dist/chunk-RBXAFPS5.mjs.map +1 -0
  14. package/dist/{chunk-ZZVL6UGV.mjs → chunk-XJPXHQH7.mjs} +3 -3
  15. package/dist/{chunk-ZZVL6UGV.mjs.map → chunk-XJPXHQH7.mjs.map} +1 -1
  16. package/dist/index.cjs +1 -1
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.mjs +5 -5
  19. package/dist/{mcp-D6QARYOG.mjs → mcp-N7XR56WG.mjs} +4 -4
  20. package/dist/{mcp-D6QARYOG.mjs.map → mcp-N7XR56WG.mjs.map} +1 -1
  21. package/dist/{scaffoldFeed-D55NINVJ.mjs → scaffoldFeed-F4JAGU3T.mjs} +3 -3
  22. package/dist/{scaffoldFeed-D55NINVJ.mjs.map → scaffoldFeed-F4JAGU3T.mjs.map} +1 -1
  23. package/dist/server/app.cjs +1 -1
  24. package/dist/server/app.cjs.map +1 -1
  25. package/dist/server/app.mjs +3 -3
  26. package/dist/server-LOAM7YOF.mjs +13 -0
  27. package/dist/{server-2GTVPJDA.mjs.map → server-LOAM7YOF.mjs.map} +1 -1
  28. package/dist/web/playground/.nojekyll +0 -0
  29. package/dist/web/playground/.well-known/agent-capabilities.json +1611 -0
  30. package/dist/web/playground/assets/{feedSync.worker-O4TGLEj3.js → feedSync.worker-Da3fKcgQ.js} +5 -5
  31. package/dist/web/playground/assets/main-DedlsEjf.css +2 -0
  32. package/dist/web/playground/assets/main-Dos5n52v.js +1160 -0
  33. package/dist/web/playground/assets/{statementBuilderFlow-D8GG8Y7r.js → statementBuilderFlow-BYyWz_W8.js} +2 -2
  34. package/dist/web/playground/assets/{vendor-BUlwHBNF.js → vendor-B_PPmYw_.js} +5 -5
  35. package/dist/web/{server/assets/vendor-codemirror-Bh6hyz5v.js → playground/assets/vendor-codemirror-CvjMzS3W.js} +2 -2
  36. package/dist/web/playground/index.html +4 -4
  37. package/dist/web/{server/seed/core/chunks/canvas.b0bc465b.json → playground/seed/core/chunks/canvas.eeec00d1.json} +1 -1
  38. package/dist/web/playground/seed/core/chunks/{dashboards.af9a29e4.json → dashboards.6238a27a.json} +1 -1
  39. package/dist/web/playground/seed/core/chunks/{efforts.902271f9.json → efforts.819061f9.json} +1 -1
  40. package/dist/web/playground/seed/core/chunks/{equipment.dbdc1af3.json → equipment.c2a949b2.json} +1 -1
  41. package/dist/web/playground/seed/core/indexes/notebooks/canvas.json +180 -180
  42. package/dist/web/playground/seed/core/indexes/notebooks/dashboards.json +16 -16
  43. package/dist/web/playground/seed/core/indexes/notebooks/efforts.json +326 -326
  44. package/dist/web/playground/seed/core/indexes/notebooks/equipment.json +50 -50
  45. package/dist/web/playground/seed/core/manifest.json +27 -27
  46. package/dist/web/playground/seed/core/markdown/canvas/ai-first/README.json +1 -1
  47. package/dist/web/playground/seed/core/markdown/canvas/guide/README.json +4 -4
  48. package/dist/web/playground/seed/core/markdown/canvas/guide/clock.json +1 -1
  49. package/dist/web/playground/seed/core/markdown/canvas/guide/dashboards.json +1 -1
  50. package/dist/web/playground/seed/core/markdown/canvas/guide/metrics-summaries.json +2 -2
  51. package/dist/web/playground/seed/core/markdown/canvas/guide/metrics.json +12 -12
  52. package/dist/web/playground/seed/core/markdown/canvas/guide/protocols.json +20 -20
  53. package/dist/web/playground/seed/core/markdown/canvas/guide/sessions.json +33 -33
  54. package/dist/web/playground/seed/core/markdown/canvas/guide/start.json +11 -11
  55. package/dist/web/playground/seed/core/markdown/canvas/guide/structure.json +25 -25
  56. package/dist/web/playground/seed/core/markdown/canvas/guide/wql.json +5 -5
  57. package/dist/web/playground/seed/core/markdown/canvas/home/sample-script.json +4 -4
  58. package/dist/web/playground/seed/core/markdown/canvas/home/welcome-1.json +2 -2
  59. package/dist/web/playground/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
  60. package/dist/web/playground/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
  61. package/dist/web/playground/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
  62. package/dist/web/playground/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
  63. package/dist/web/playground/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
  64. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
  65. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-full-session.json +10 -10
  66. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
  67. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
  68. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-swimming.json +5 -5
  69. package/dist/web/playground/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
  70. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +4 -4
  71. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
  72. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
  73. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
  74. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-3.json +3 -3
  75. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
  76. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
  77. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
  78. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
  79. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
  80. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
  81. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
  82. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
  83. package/dist/web/playground/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
  84. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-1.json +4 -4
  85. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-2.json +5 -5
  86. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-3.json +10 -10
  87. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-4.json +5 -5
  88. package/dist/web/playground/seed/core/markdown/canvas/syntax/effort-notes.json +5 -5
  89. package/dist/web/playground/seed/core/markdown/canvas/syntax/frontmatter-summaries.json +4 -4
  90. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
  91. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
  92. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
  93. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
  94. package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
  95. package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
  96. package/dist/web/playground/seed/core/markdown/canvas/syntax/measurements.json +7 -7
  97. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
  98. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
  99. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
  100. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-4.json +6 -6
  101. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
  102. package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-sections.json +10 -10
  103. package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
  104. package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
  105. package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
  106. package/dist/web/playground/seed/core/markdown/canvas/syntax/named-groups.json +6 -6
  107. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
  108. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
  109. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
  110. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
  111. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
  112. package/dist/web/playground/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
  113. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
  114. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
  115. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
  116. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
  117. package/dist/web/playground/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
  118. package/dist/web/playground/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
  119. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
  120. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
  121. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-3.json +4 -4
  122. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
  123. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
  124. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
  125. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
  126. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
  127. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
  128. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
  129. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
  130. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
  131. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
  132. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
  133. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
  134. package/dist/web/playground/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
  135. package/dist/web/playground/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
  136. package/dist/web/playground/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
  137. package/dist/web/playground/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
  138. package/dist/web/playground/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
  139. package/dist/web/playground/seed/core/markdown/dashboards/training-block-review.json +11 -11
  140. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/air-squat.json +1 -1
  141. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/box-jump.json +1 -1
  142. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/broad-jump.json +1 -1
  143. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +1 -1
  144. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +1 -1
  145. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee.json +1 -1
  146. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +1 -1
  147. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +1 -1
  148. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ground-kong.json +1 -1
  149. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/jumping-jack.json +1 -1
  150. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/kong-walk.json +1 -1
  151. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/lunge.json +1 -1
  152. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/overhead-squat.json +1 -1
  153. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-roll.json +1 -1
  154. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-squat.json +1 -1
  155. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/pistol-squat.json +1 -1
  156. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/plank.json +1 -1
  157. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-burpee.json +1 -1
  158. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-jump.json +1 -1
  159. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +1 -1
  160. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/russian-twist.json +1 -1
  161. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/sit-up.json +1 -1
  162. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-clean.json +1 -1
  163. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-hold.json +1 -1
  164. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-snatch.json +1 -1
  165. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/tuck-jump.json +1 -1
  166. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-ball.json +1 -1
  167. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-burpee.json +1 -1
  168. package/dist/web/playground/seed/core/markdown/efforts/cycling/assault-bike.json +1 -1
  169. package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-moderate.json +1 -1
  170. package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-vigorous.json +1 -1
  171. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +1 -1
  172. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +1 -1
  173. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +1 -1
  174. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/dip.json +1 -1
  175. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/double-under.json +1 -1
  176. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-hold.json +1 -1
  177. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +1 -1
  178. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-walk.json +1 -1
  179. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jump-rope.json +1 -1
  180. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +1 -1
  181. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +1 -1
  182. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +1 -1
  183. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/muscle-up.json +1 -1
  184. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/pull-up.json +1 -1
  185. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/push-up.json +1 -1
  186. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +1 -1
  187. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/rope-climb.json +1 -1
  188. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +1 -1
  189. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +1 -1
  190. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +1 -1
  191. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +1 -1
  192. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +1 -1
  193. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +1 -1
  194. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +1 -1
  195. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +1 -1
  196. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +1 -1
  197. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +1 -1
  198. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +1 -1
  199. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +1 -1
  200. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +1 -1
  201. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +1 -1
  202. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +1 -1
  203. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +1 -1
  204. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +1 -1
  205. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +1 -1
  206. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +1 -1
  207. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +1 -1
  208. package/dist/web/playground/seed/core/markdown/efforts/recovery/rest.json +1 -1
  209. package/dist/web/playground/seed/core/markdown/efforts/recovery/stretching.json +1 -1
  210. package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing-sprint.json +1 -1
  211. package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing.json +1 -1
  212. package/dist/web/playground/seed/core/markdown/efforts/rowing/ski-erg.json +1 -1
  213. package/dist/web/playground/seed/core/markdown/efforts/running/backward-running.json +1 -1
  214. package/dist/web/playground/seed/core/markdown/efforts/running/running-6-mph.json +1 -1
  215. package/dist/web/playground/seed/core/markdown/efforts/running/running-8-mph.json +1 -1
  216. package/dist/web/playground/seed/core/markdown/efforts/running/running-sprint.json +1 -1
  217. package/dist/web/playground/seed/core/markdown/efforts/snatch.json +2 -2
  218. package/dist/web/playground/seed/core/markdown/efforts/strength/back-squat.json +1 -1
  219. package/dist/web/playground/seed/core/markdown/efforts/strength/bench-press.json +1 -1
  220. package/dist/web/playground/seed/core/markdown/efforts/strength/box-step-up.json +1 -1
  221. package/dist/web/playground/seed/core/markdown/efforts/strength/carioca.json +1 -1
  222. package/dist/web/playground/seed/core/markdown/efforts/strength/clean-and-jerk.json +1 -1
  223. package/dist/web/playground/seed/core/markdown/efforts/strength/cluster.json +1 -1
  224. package/dist/web/playground/seed/core/markdown/efforts/strength/dead-hang.json +1 -1
  225. package/dist/web/playground/seed/core/markdown/efforts/strength/deadlift.json +1 -1
  226. package/dist/web/playground/seed/core/markdown/efforts/strength/devils-press.json +1 -1
  227. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +1 -1
  228. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-clean.json +1 -1
  229. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-fly.json +1 -1
  230. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-row.json +1 -1
  231. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-snatch.json +1 -1
  232. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-thruster.json +1 -1
  233. package/dist/web/playground/seed/core/markdown/efforts/strength/elbows-to-knees.json +1 -1
  234. package/dist/web/playground/seed/core/markdown/efforts/strength/farmer-carry.json +1 -1
  235. package/dist/web/playground/seed/core/markdown/efforts/strength/frog-stand.json +1 -1
  236. package/dist/web/playground/seed/core/markdown/efforts/strength/front-squat.json +1 -1
  237. package/dist/web/playground/seed/core/markdown/efforts/strength/good-morning.json +1 -1
  238. package/dist/web/playground/seed/core/markdown/efforts/strength/hanging-leg-raise.json +1 -1
  239. package/dist/web/playground/seed/core/markdown/efforts/strength/hollow-rock.json +1 -1
  240. package/dist/web/playground/seed/core/markdown/efforts/strength/knees-to-elbows.json +1 -1
  241. package/dist/web/playground/seed/core/markdown/efforts/strength/l-sit.json +1 -1
  242. package/dist/web/playground/seed/core/markdown/efforts/strength/man-maker.json +1 -1
  243. package/dist/web/playground/seed/core/markdown/efforts/strength/medicine-ball-clean.json +1 -1
  244. package/dist/web/playground/seed/core/markdown/efforts/strength/overhead-press.json +1 -1
  245. package/dist/web/playground/seed/core/markdown/efforts/strength/parkour-vault.json +1 -1
  246. package/dist/web/playground/seed/core/markdown/efforts/strength/pig-flip.json +1 -1
  247. package/dist/web/playground/seed/core/markdown/efforts/strength/power-clean.json +1 -1
  248. package/dist/web/playground/seed/core/markdown/efforts/strength/power-snatch.json +1 -1
  249. package/dist/web/playground/seed/core/markdown/efforts/strength/push-jerk.json +1 -1
  250. package/dist/web/playground/seed/core/markdown/efforts/strength/push-press.json +1 -1
  251. package/dist/web/playground/seed/core/markdown/efforts/strength/romanian-deadlift.json +1 -1
  252. package/dist/web/playground/seed/core/markdown/efforts/strength/single-leg-deadlift.json +1 -1
  253. package/dist/web/playground/seed/core/markdown/efforts/strength/skull-crusher.json +1 -1
  254. package/dist/web/playground/seed/core/markdown/efforts/strength/slam-ball.json +1 -1
  255. package/dist/web/playground/seed/core/markdown/efforts/strength/sled-pull.json +1 -1
  256. package/dist/web/playground/seed/core/markdown/efforts/strength/sled-push.json +1 -1
  257. package/dist/web/playground/seed/core/markdown/efforts/strength/sumo-deadlift.json +1 -1
  258. package/dist/web/playground/seed/core/markdown/efforts/strength/thruster.json +1 -1
  259. package/dist/web/playground/seed/core/markdown/efforts/strength/triceps-extension.json +1 -1
  260. package/dist/web/playground/seed/core/markdown/efforts/strength/v-sit-hold.json +1 -1
  261. package/dist/web/playground/seed/core/markdown/efforts/strength/wall-walk.json +1 -1
  262. package/dist/web/playground/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +1 -1
  263. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +1 -1
  264. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-backstroke.json +1 -1
  265. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +1 -1
  266. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +1 -1
  267. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-butterfly.json +1 -1
  268. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +1 -1
  269. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +1 -1
  270. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dive-start.json +1 -1
  271. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +1 -1
  272. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-drafting.json +1 -1
  273. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +1 -1
  274. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-freestyle.json +1 -1
  275. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +1 -1
  276. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-kick.json +1 -1
  277. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-pull.json +1 -1
  278. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +1 -1
  279. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +1 -1
  280. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-sighting.json +1 -1
  281. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +1 -1
  282. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +1 -1
  283. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +1 -1
  284. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-vigorous.json +1 -1
  285. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming.json +1 -1
  286. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +1 -1
  287. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-circles.json +1 -1
  288. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-mill.json +1 -1
  289. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +1 -1
  290. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +1 -1
  291. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +1 -1
  292. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +1 -1
  293. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +1 -1
  294. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-flow.json +1 -1
  295. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +1 -1
  296. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +1 -1
  297. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +1 -1
  298. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +1 -1
  299. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +1 -1
  300. package/dist/web/playground/seed/core/markdown/efforts/walking/walking-3-mph.json +1 -1
  301. package/dist/web/playground/seed/core/markdown/equipment/air-bike.json +1 -1
  302. package/dist/web/playground/seed/core/markdown/equipment/barbell.json +1 -1
  303. package/dist/web/playground/seed/core/markdown/equipment/bench.json +1 -1
  304. package/dist/web/playground/seed/core/markdown/equipment/bike-erg.json +1 -1
  305. package/dist/web/playground/seed/core/markdown/equipment/climbing-rope.json +1 -1
  306. package/dist/web/playground/seed/core/markdown/equipment/clubs.json +1 -1
  307. package/dist/web/playground/seed/core/markdown/equipment/dumbbell.json +1 -1
  308. package/dist/web/playground/seed/core/markdown/equipment/ghd.json +1 -1
  309. package/dist/web/playground/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
  310. package/dist/web/playground/seed/core/markdown/equipment/jump-rope.json +1 -1
  311. package/dist/web/playground/seed/core/markdown/equipment/kettlebell.json +1 -1
  312. package/dist/web/playground/seed/core/markdown/equipment/macebell.json +1 -1
  313. package/dist/web/playground/seed/core/markdown/equipment/medicine-ball.json +1 -1
  314. package/dist/web/playground/seed/core/markdown/equipment/parallettes.json +1 -1
  315. package/dist/web/playground/seed/core/markdown/equipment/plyo-box.json +1 -1
  316. package/dist/web/playground/seed/core/markdown/equipment/pull-up-bar.json +1 -1
  317. package/dist/web/playground/seed/core/markdown/equipment/rower.json +1 -1
  318. package/dist/web/playground/seed/core/markdown/equipment/sandbag.json +1 -1
  319. package/dist/web/playground/seed/core/markdown/equipment/ski-erg.json +1 -1
  320. package/dist/web/playground/seed/core/markdown/equipment/slam-ball.json +1 -1
  321. package/dist/web/playground/seed/core/markdown/equipment/sled.json +1 -1
  322. package/dist/web/playground/seed/core/markdown/equipment/sledgehammer.json +1 -1
  323. package/dist/web/playground/seed/core/markdown/equipment/weight-vest.json +1 -1
  324. package/dist/web/playground/seed/core/report.html +13 -13
  325. package/dist/web/server/.nojekyll +0 -0
  326. package/dist/web/server/.well-known/agent-capabilities.json +1611 -0
  327. package/dist/web/server/assets/{feedSync.worker-O4TGLEj3.js → feedSync.worker-Da3fKcgQ.js} +5 -5
  328. package/dist/web/server/assets/main-D69d35CJ.js +1160 -0
  329. package/dist/web/server/assets/main-DedlsEjf.css +2 -0
  330. package/dist/web/server/assets/{statementBuilderFlow-CtmmV_Yv.js → statementBuilderFlow-CmlPtbkS.js} +2 -2
  331. package/dist/web/server/assets/{vendor-BUlwHBNF.js → vendor-B_PPmYw_.js} +5 -5
  332. package/dist/web/{playground/assets/vendor-codemirror-Bh6hyz5v.js → server/assets/vendor-codemirror-CvjMzS3W.js} +2 -2
  333. package/dist/web/server/index.html +4 -4
  334. package/dist/web/{playground/seed/core/chunks/canvas.b0bc465b.json → server/seed/core/chunks/canvas.eeec00d1.json} +1 -1
  335. package/dist/web/server/seed/core/chunks/{dashboards.af9a29e4.json → dashboards.6238a27a.json} +1 -1
  336. package/dist/web/server/seed/core/chunks/{efforts.902271f9.json → efforts.819061f9.json} +1 -1
  337. package/dist/web/server/seed/core/chunks/{equipment.dbdc1af3.json → equipment.c2a949b2.json} +1 -1
  338. package/dist/web/server/seed/core/indexes/notebooks/canvas.json +180 -180
  339. package/dist/web/server/seed/core/indexes/notebooks/dashboards.json +16 -16
  340. package/dist/web/server/seed/core/indexes/notebooks/efforts.json +326 -326
  341. package/dist/web/server/seed/core/indexes/notebooks/equipment.json +50 -50
  342. package/dist/web/server/seed/core/manifest.json +27 -27
  343. package/dist/web/server/seed/core/markdown/canvas/ai-first/README.json +1 -1
  344. package/dist/web/server/seed/core/markdown/canvas/guide/README.json +4 -4
  345. package/dist/web/server/seed/core/markdown/canvas/guide/clock.json +1 -1
  346. package/dist/web/server/seed/core/markdown/canvas/guide/dashboards.json +1 -1
  347. package/dist/web/server/seed/core/markdown/canvas/guide/metrics-summaries.json +2 -2
  348. package/dist/web/server/seed/core/markdown/canvas/guide/metrics.json +12 -12
  349. package/dist/web/server/seed/core/markdown/canvas/guide/protocols.json +20 -20
  350. package/dist/web/server/seed/core/markdown/canvas/guide/sessions.json +33 -33
  351. package/dist/web/server/seed/core/markdown/canvas/guide/start.json +11 -11
  352. package/dist/web/server/seed/core/markdown/canvas/guide/structure.json +25 -25
  353. package/dist/web/server/seed/core/markdown/canvas/guide/wql.json +5 -5
  354. package/dist/web/server/seed/core/markdown/canvas/home/sample-script.json +4 -4
  355. package/dist/web/server/seed/core/markdown/canvas/home/welcome-1.json +2 -2
  356. package/dist/web/server/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
  357. package/dist/web/server/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
  358. package/dist/web/server/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
  359. package/dist/web/server/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
  360. package/dist/web/server/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
  361. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
  362. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-full-session.json +10 -10
  363. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
  364. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
  365. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-swimming.json +5 -5
  366. package/dist/web/server/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
  367. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +4 -4
  368. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
  369. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
  370. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
  371. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-3.json +3 -3
  372. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
  373. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
  374. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
  375. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
  376. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
  377. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
  378. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
  379. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
  380. package/dist/web/server/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
  381. package/dist/web/server/seed/core/markdown/canvas/syntax/document-1.json +4 -4
  382. package/dist/web/server/seed/core/markdown/canvas/syntax/document-2.json +5 -5
  383. package/dist/web/server/seed/core/markdown/canvas/syntax/document-3.json +10 -10
  384. package/dist/web/server/seed/core/markdown/canvas/syntax/document-4.json +5 -5
  385. package/dist/web/server/seed/core/markdown/canvas/syntax/effort-notes.json +5 -5
  386. package/dist/web/server/seed/core/markdown/canvas/syntax/frontmatter-summaries.json +4 -4
  387. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
  388. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
  389. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
  390. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
  391. package/dist/web/server/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
  392. package/dist/web/server/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
  393. package/dist/web/server/seed/core/markdown/canvas/syntax/measurements.json +7 -7
  394. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
  395. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
  396. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
  397. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-4.json +6 -6
  398. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
  399. package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-sections.json +10 -10
  400. package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
  401. package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
  402. package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
  403. package/dist/web/server/seed/core/markdown/canvas/syntax/named-groups.json +6 -6
  404. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
  405. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
  406. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
  407. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
  408. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
  409. package/dist/web/server/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
  410. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
  411. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
  412. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
  413. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
  414. package/dist/web/server/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
  415. package/dist/web/server/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
  416. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
  417. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
  418. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-3.json +4 -4
  419. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
  420. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
  421. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
  422. package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
  423. package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
  424. package/dist/web/server/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
  425. package/dist/web/server/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
  426. package/dist/web/server/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
  427. package/dist/web/server/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
  428. package/dist/web/server/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
  429. package/dist/web/server/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
  430. package/dist/web/server/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
  431. package/dist/web/server/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
  432. package/dist/web/server/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
  433. package/dist/web/server/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
  434. package/dist/web/server/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
  435. package/dist/web/server/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
  436. package/dist/web/server/seed/core/markdown/dashboards/training-block-review.json +11 -11
  437. package/dist/web/server/seed/core/markdown/efforts/bodyweight/air-squat.json +1 -1
  438. package/dist/web/server/seed/core/markdown/efforts/bodyweight/box-jump.json +1 -1
  439. package/dist/web/server/seed/core/markdown/efforts/bodyweight/broad-jump.json +1 -1
  440. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +1 -1
  441. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +1 -1
  442. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee.json +1 -1
  443. package/dist/web/server/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +1 -1
  444. package/dist/web/server/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +1 -1
  445. package/dist/web/server/seed/core/markdown/efforts/bodyweight/ground-kong.json +1 -1
  446. package/dist/web/server/seed/core/markdown/efforts/bodyweight/jumping-jack.json +1 -1
  447. package/dist/web/server/seed/core/markdown/efforts/bodyweight/kong-walk.json +1 -1
  448. package/dist/web/server/seed/core/markdown/efforts/bodyweight/lunge.json +1 -1
  449. package/dist/web/server/seed/core/markdown/efforts/bodyweight/overhead-squat.json +1 -1
  450. package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-roll.json +1 -1
  451. package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-squat.json +1 -1
  452. package/dist/web/server/seed/core/markdown/efforts/bodyweight/pistol-squat.json +1 -1
  453. package/dist/web/server/seed/core/markdown/efforts/bodyweight/plank.json +1 -1
  454. package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-burpee.json +1 -1
  455. package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-jump.json +1 -1
  456. package/dist/web/server/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +1 -1
  457. package/dist/web/server/seed/core/markdown/efforts/bodyweight/russian-twist.json +1 -1
  458. package/dist/web/server/seed/core/markdown/efforts/bodyweight/sit-up.json +1 -1
  459. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-clean.json +1 -1
  460. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-hold.json +1 -1
  461. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-snatch.json +1 -1
  462. package/dist/web/server/seed/core/markdown/efforts/bodyweight/tuck-jump.json +1 -1
  463. package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-ball.json +1 -1
  464. package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-burpee.json +1 -1
  465. package/dist/web/server/seed/core/markdown/efforts/cycling/assault-bike.json +1 -1
  466. package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-moderate.json +1 -1
  467. package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-vigorous.json +1 -1
  468. package/dist/web/server/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +1 -1
  469. package/dist/web/server/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +1 -1
  470. package/dist/web/server/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +1 -1
  471. package/dist/web/server/seed/core/markdown/efforts/gymnastics/dip.json +1 -1
  472. package/dist/web/server/seed/core/markdown/efforts/gymnastics/double-under.json +1 -1
  473. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-hold.json +1 -1
  474. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +1 -1
  475. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-walk.json +1 -1
  476. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jump-rope.json +1 -1
  477. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +1 -1
  478. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +1 -1
  479. package/dist/web/server/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +1 -1
  480. package/dist/web/server/seed/core/markdown/efforts/gymnastics/muscle-up.json +1 -1
  481. package/dist/web/server/seed/core/markdown/efforts/gymnastics/pull-up.json +1 -1
  482. package/dist/web/server/seed/core/markdown/efforts/gymnastics/push-up.json +1 -1
  483. package/dist/web/server/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +1 -1
  484. package/dist/web/server/seed/core/markdown/efforts/gymnastics/rope-climb.json +1 -1
  485. package/dist/web/server/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +1 -1
  486. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +1 -1
  487. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +1 -1
  488. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +1 -1
  489. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +1 -1
  490. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +1 -1
  491. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +1 -1
  492. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +1 -1
  493. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +1 -1
  494. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +1 -1
  495. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +1 -1
  496. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +1 -1
  497. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +1 -1
  498. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +1 -1
  499. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +1 -1
  500. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +1 -1
  501. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +1 -1
  502. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +1 -1
  503. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +1 -1
  504. package/dist/web/server/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +1 -1
  505. package/dist/web/server/seed/core/markdown/efforts/recovery/rest.json +1 -1
  506. package/dist/web/server/seed/core/markdown/efforts/recovery/stretching.json +1 -1
  507. package/dist/web/server/seed/core/markdown/efforts/rowing/rowing-sprint.json +1 -1
  508. package/dist/web/server/seed/core/markdown/efforts/rowing/rowing.json +1 -1
  509. package/dist/web/server/seed/core/markdown/efforts/rowing/ski-erg.json +1 -1
  510. package/dist/web/server/seed/core/markdown/efforts/running/backward-running.json +1 -1
  511. package/dist/web/server/seed/core/markdown/efforts/running/running-6-mph.json +1 -1
  512. package/dist/web/server/seed/core/markdown/efforts/running/running-8-mph.json +1 -1
  513. package/dist/web/server/seed/core/markdown/efforts/running/running-sprint.json +1 -1
  514. package/dist/web/server/seed/core/markdown/efforts/snatch.json +2 -2
  515. package/dist/web/server/seed/core/markdown/efforts/strength/back-squat.json +1 -1
  516. package/dist/web/server/seed/core/markdown/efforts/strength/bench-press.json +1 -1
  517. package/dist/web/server/seed/core/markdown/efforts/strength/box-step-up.json +1 -1
  518. package/dist/web/server/seed/core/markdown/efforts/strength/carioca.json +1 -1
  519. package/dist/web/server/seed/core/markdown/efforts/strength/clean-and-jerk.json +1 -1
  520. package/dist/web/server/seed/core/markdown/efforts/strength/cluster.json +1 -1
  521. package/dist/web/server/seed/core/markdown/efforts/strength/dead-hang.json +1 -1
  522. package/dist/web/server/seed/core/markdown/efforts/strength/deadlift.json +1 -1
  523. package/dist/web/server/seed/core/markdown/efforts/strength/devils-press.json +1 -1
  524. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +1 -1
  525. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-clean.json +1 -1
  526. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-fly.json +1 -1
  527. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-row.json +1 -1
  528. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-snatch.json +1 -1
  529. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-thruster.json +1 -1
  530. package/dist/web/server/seed/core/markdown/efforts/strength/elbows-to-knees.json +1 -1
  531. package/dist/web/server/seed/core/markdown/efforts/strength/farmer-carry.json +1 -1
  532. package/dist/web/server/seed/core/markdown/efforts/strength/frog-stand.json +1 -1
  533. package/dist/web/server/seed/core/markdown/efforts/strength/front-squat.json +1 -1
  534. package/dist/web/server/seed/core/markdown/efforts/strength/good-morning.json +1 -1
  535. package/dist/web/server/seed/core/markdown/efforts/strength/hanging-leg-raise.json +1 -1
  536. package/dist/web/server/seed/core/markdown/efforts/strength/hollow-rock.json +1 -1
  537. package/dist/web/server/seed/core/markdown/efforts/strength/knees-to-elbows.json +1 -1
  538. package/dist/web/server/seed/core/markdown/efforts/strength/l-sit.json +1 -1
  539. package/dist/web/server/seed/core/markdown/efforts/strength/man-maker.json +1 -1
  540. package/dist/web/server/seed/core/markdown/efforts/strength/medicine-ball-clean.json +1 -1
  541. package/dist/web/server/seed/core/markdown/efforts/strength/overhead-press.json +1 -1
  542. package/dist/web/server/seed/core/markdown/efforts/strength/parkour-vault.json +1 -1
  543. package/dist/web/server/seed/core/markdown/efforts/strength/pig-flip.json +1 -1
  544. package/dist/web/server/seed/core/markdown/efforts/strength/power-clean.json +1 -1
  545. package/dist/web/server/seed/core/markdown/efforts/strength/power-snatch.json +1 -1
  546. package/dist/web/server/seed/core/markdown/efforts/strength/push-jerk.json +1 -1
  547. package/dist/web/server/seed/core/markdown/efforts/strength/push-press.json +1 -1
  548. package/dist/web/server/seed/core/markdown/efforts/strength/romanian-deadlift.json +1 -1
  549. package/dist/web/server/seed/core/markdown/efforts/strength/single-leg-deadlift.json +1 -1
  550. package/dist/web/server/seed/core/markdown/efforts/strength/skull-crusher.json +1 -1
  551. package/dist/web/server/seed/core/markdown/efforts/strength/slam-ball.json +1 -1
  552. package/dist/web/server/seed/core/markdown/efforts/strength/sled-pull.json +1 -1
  553. package/dist/web/server/seed/core/markdown/efforts/strength/sled-push.json +1 -1
  554. package/dist/web/server/seed/core/markdown/efforts/strength/sumo-deadlift.json +1 -1
  555. package/dist/web/server/seed/core/markdown/efforts/strength/thruster.json +1 -1
  556. package/dist/web/server/seed/core/markdown/efforts/strength/triceps-extension.json +1 -1
  557. package/dist/web/server/seed/core/markdown/efforts/strength/v-sit-hold.json +1 -1
  558. package/dist/web/server/seed/core/markdown/efforts/strength/wall-walk.json +1 -1
  559. package/dist/web/server/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +1 -1
  560. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +1 -1
  561. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-backstroke.json +1 -1
  562. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +1 -1
  563. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +1 -1
  564. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-butterfly.json +1 -1
  565. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +1 -1
  566. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +1 -1
  567. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dive-start.json +1 -1
  568. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +1 -1
  569. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-drafting.json +1 -1
  570. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +1 -1
  571. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-freestyle.json +1 -1
  572. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +1 -1
  573. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-kick.json +1 -1
  574. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-pull.json +1 -1
  575. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +1 -1
  576. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +1 -1
  577. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-sighting.json +1 -1
  578. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +1 -1
  579. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +1 -1
  580. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +1 -1
  581. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-vigorous.json +1 -1
  582. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming.json +1 -1
  583. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +1 -1
  584. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-circles.json +1 -1
  585. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-mill.json +1 -1
  586. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +1 -1
  587. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +1 -1
  588. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +1 -1
  589. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +1 -1
  590. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +1 -1
  591. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-flow.json +1 -1
  592. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +1 -1
  593. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +1 -1
  594. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +1 -1
  595. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +1 -1
  596. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +1 -1
  597. package/dist/web/server/seed/core/markdown/efforts/walking/walking-3-mph.json +1 -1
  598. package/dist/web/server/seed/core/markdown/equipment/air-bike.json +1 -1
  599. package/dist/web/server/seed/core/markdown/equipment/barbell.json +1 -1
  600. package/dist/web/server/seed/core/markdown/equipment/bench.json +1 -1
  601. package/dist/web/server/seed/core/markdown/equipment/bike-erg.json +1 -1
  602. package/dist/web/server/seed/core/markdown/equipment/climbing-rope.json +1 -1
  603. package/dist/web/server/seed/core/markdown/equipment/clubs.json +1 -1
  604. package/dist/web/server/seed/core/markdown/equipment/dumbbell.json +1 -1
  605. package/dist/web/server/seed/core/markdown/equipment/ghd.json +1 -1
  606. package/dist/web/server/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
  607. package/dist/web/server/seed/core/markdown/equipment/jump-rope.json +1 -1
  608. package/dist/web/server/seed/core/markdown/equipment/kettlebell.json +1 -1
  609. package/dist/web/server/seed/core/markdown/equipment/macebell.json +1 -1
  610. package/dist/web/server/seed/core/markdown/equipment/medicine-ball.json +1 -1
  611. package/dist/web/server/seed/core/markdown/equipment/parallettes.json +1 -1
  612. package/dist/web/server/seed/core/markdown/equipment/plyo-box.json +1 -1
  613. package/dist/web/server/seed/core/markdown/equipment/pull-up-bar.json +1 -1
  614. package/dist/web/server/seed/core/markdown/equipment/rower.json +1 -1
  615. package/dist/web/server/seed/core/markdown/equipment/sandbag.json +1 -1
  616. package/dist/web/server/seed/core/markdown/equipment/ski-erg.json +1 -1
  617. package/dist/web/server/seed/core/markdown/equipment/slam-ball.json +1 -1
  618. package/dist/web/server/seed/core/markdown/equipment/sled.json +1 -1
  619. package/dist/web/server/seed/core/markdown/equipment/sledgehammer.json +1 -1
  620. package/dist/web/server/seed/core/markdown/equipment/weight-vest.json +1 -1
  621. package/dist/web/server/seed/core/report.html +13 -13
  622. package/package.json +6 -6
  623. package/dist/chunk-T7VB7PPO.mjs.map +0 -1
  624. package/dist/server-2GTVPJDA.mjs +0 -13
  625. package/dist/web/playground/assets/main-BH_SMMzT.css +0 -2
  626. package/dist/web/playground/assets/main-vYMBKnsB.js +0 -1152
  627. package/dist/web/server/assets/main-BH_SMMzT.css +0 -2
  628. package/dist/web/server/assets/main-D0W-D5YL.js +0 -1152
@@ -0,0 +1,1611 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "name": "WOD Wiki Agent Surface",
4
+ "description": "Tri-surface agent capabilities for WOD Wiki across Browser WebMCP, HTTP/Stdio MCP Server, and local CLI.",
5
+ "surfaces": {
6
+ "webmcp": {
7
+ "supported": true,
8
+ "globalNamespace": "navigator.modelContext",
9
+ "library": "@mcp-b/react-webmcp"
10
+ },
11
+ "mcp": {
12
+ "httpEndpoint": "/api/mcp",
13
+ "stdioCommand": "wod mcp",
14
+ "sdk": "@modelcontextprotocol/sdk"
15
+ },
16
+ "cli": {
17
+ "binary": "wod",
18
+ "jsonFlag": "--json",
19
+ "confirmationExitCode": 4
20
+ }
21
+ },
22
+ "domainTools": [
23
+ {
24
+ "name": "wod_parse_script",
25
+ "title": "Parse Whiteboard Script",
26
+ "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.",
27
+ "tier": 0,
28
+ "domain": "script",
29
+ "surfaces": [
30
+ "webmcp",
31
+ "mcp",
32
+ "cli"
33
+ ],
34
+ "cliEquivalent": "wod parse - --no-save --json",
35
+ "annotations": {
36
+ "title": "Parse Whiteboard Script",
37
+ "readOnlyHint": true,
38
+ "destructiveHint": false,
39
+ "idempotentHint": true,
40
+ "openWorldHint": false
41
+ },
42
+ "inputSchema": {
43
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
44
+ "type": "object",
45
+ "properties": {
46
+ "source": {
47
+ "type": "string",
48
+ "minLength": 1,
49
+ "description": "Whiteboard Script body OR full Markdown document containing ```time / ```wod blocks."
50
+ },
51
+ "sport": {
52
+ "description": "Optional sport fence dialect override (e.g. \"crossfit\", \"climbing\", \"running\").",
53
+ "type": "string"
54
+ },
55
+ "save": {
56
+ "description": "Default false (dry-run syntax & metric inspection). Set true to persist as a Note.",
57
+ "type": "boolean"
58
+ },
59
+ "noteId": {
60
+ "description": "Optional target Note ID when save=true.",
61
+ "type": "string"
62
+ },
63
+ "title": {
64
+ "description": "Optional Note title when save=true.",
65
+ "type": "string"
66
+ },
67
+ "notebookId": {
68
+ "description": "Optional user Notebook slug/ID when save=true.",
69
+ "type": "string"
70
+ }
71
+ },
72
+ "required": [
73
+ "source"
74
+ ],
75
+ "additionalProperties": false
76
+ }
77
+ },
78
+ {
79
+ "name": "wod_query_wql",
80
+ "title": "Execute WQL Query",
81
+ "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.",
82
+ "tier": 0,
83
+ "domain": "wql",
84
+ "surfaces": [
85
+ "webmcp",
86
+ "mcp",
87
+ "cli"
88
+ ],
89
+ "cliEquivalent": "wod query '<wql>' --format json",
90
+ "annotations": {
91
+ "title": "Execute WQL Query",
92
+ "readOnlyHint": true,
93
+ "destructiveHint": false,
94
+ "idempotentHint": true,
95
+ "openWorldHint": false
96
+ },
97
+ "inputSchema": {
98
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
99
+ "type": "object",
100
+ "properties": {
101
+ "query": {
102
+ "type": "string",
103
+ "minLength": 1,
104
+ "description": "WQL query expression (e.g. \":note{notebook:journal}\", \":session last 30d\", \"sum:volume by {week}\")."
105
+ },
106
+ "preferredUnit": {
107
+ "description": "Optional display unit conversion preference (e.g. \"lb\", \"kg\", \"m\", \"mi\").",
108
+ "type": "string"
109
+ },
110
+ "limit": {
111
+ "description": "Maximum rows/items to return in the response payload (default 100).",
112
+ "type": "integer",
113
+ "minimum": 1,
114
+ "maximum": 500
115
+ }
116
+ },
117
+ "required": [
118
+ "query"
119
+ ],
120
+ "additionalProperties": false
121
+ }
122
+ },
123
+ {
124
+ "name": "wod_validate_wql",
125
+ "title": "Validate & Inspect WQL Query",
126
+ "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.",
127
+ "tier": 0,
128
+ "domain": "wql",
129
+ "surfaces": [
130
+ "webmcp",
131
+ "mcp",
132
+ "cli"
133
+ ],
134
+ "cliEquivalent": "wod query \"<wql>\" --format json",
135
+ "annotations": {
136
+ "title": "Validate WQL Query",
137
+ "readOnlyHint": true,
138
+ "destructiveHint": false,
139
+ "idempotentHint": true,
140
+ "openWorldHint": false
141
+ },
142
+ "inputSchema": {
143
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
144
+ "type": "object",
145
+ "properties": {
146
+ "query": {
147
+ "type": "string",
148
+ "description": "WQL query string to validate and inspect (e.g. \":note{notebook:journal} last 7d\" or \"sum:volume by {effort}\")."
149
+ },
150
+ "targetHint": {
151
+ "description": "Optional target plane to list valid filter keys & grouping dimensions for (note, session, effort, equipment, tag, feed, block, event).",
152
+ "type": "string"
153
+ }
154
+ },
155
+ "required": [
156
+ "query"
157
+ ],
158
+ "additionalProperties": false
159
+ }
160
+ },
161
+ {
162
+ "name": "wod_note_list",
163
+ "title": "List Notes",
164
+ "description": "List workout and reference Notes with optional filtering by Notebook, search query, tag, and origin.",
165
+ "tier": 0,
166
+ "domain": "note",
167
+ "surfaces": [
168
+ "webmcp",
169
+ "mcp",
170
+ "cli"
171
+ ],
172
+ "cliEquivalent": "wod note list --json",
173
+ "annotations": {
174
+ "title": "List Notes",
175
+ "readOnlyHint": true,
176
+ "destructiveHint": false,
177
+ "idempotentHint": true,
178
+ "openWorldHint": false
179
+ },
180
+ "inputSchema": {
181
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
182
+ "type": "object",
183
+ "properties": {
184
+ "notebookId": {
185
+ "description": "Filter by notebook ID or slug (e.g. \"journal\", \"custom\", \"guides\", \"notebook/strength\").",
186
+ "type": "string"
187
+ },
188
+ "search": {
189
+ "description": "Case-insensitive substring filter over title and Markdown content.",
190
+ "type": "string"
191
+ },
192
+ "tag": {
193
+ "description": "Filter to Notes carrying this tag label.",
194
+ "type": "string"
195
+ },
196
+ "includeSeed": {
197
+ "description": "Include read-only Seed/Feed notes (default true when notebookId is specified, false otherwise).",
198
+ "type": "boolean"
199
+ },
200
+ "limit": {
201
+ "description": "Max notes to return (default 50).",
202
+ "type": "integer",
203
+ "minimum": 1,
204
+ "maximum": 200
205
+ }
206
+ },
207
+ "additionalProperties": false
208
+ }
209
+ },
210
+ {
211
+ "name": "wod_note_get",
212
+ "title": "Get Note Details",
213
+ "description": "Read a full Note by ID including authored Markdown, `sourceRevision`, parsed workout blocks, attached Session count, upstream provenance, and publication visibility.",
214
+ "tier": 0,
215
+ "domain": "note",
216
+ "surfaces": [
217
+ "webmcp",
218
+ "mcp",
219
+ "cli"
220
+ ],
221
+ "cliEquivalent": "wod note get <noteId> --json",
222
+ "annotations": {
223
+ "title": "Get Note Details",
224
+ "readOnlyHint": true,
225
+ "destructiveHint": false,
226
+ "idempotentHint": true,
227
+ "openWorldHint": false
228
+ },
229
+ "inputSchema": {
230
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
231
+ "type": "object",
232
+ "properties": {
233
+ "noteId": {
234
+ "type": "string",
235
+ "minLength": 1,
236
+ "description": "Unique Note ID (UUID or seed route ID)."
237
+ }
238
+ },
239
+ "required": [
240
+ "noteId"
241
+ ],
242
+ "additionalProperties": false
243
+ }
244
+ },
245
+ {
246
+ "name": "wod_note_upsert",
247
+ "title": "Create or Update Note",
248
+ "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`).",
249
+ "tier": 1,
250
+ "domain": "note",
251
+ "surfaces": [
252
+ "webmcp",
253
+ "mcp",
254
+ "cli"
255
+ ],
256
+ "cliEquivalent": "wod note save <file|-> --json",
257
+ "annotations": {
258
+ "title": "Create or Update Note",
259
+ "readOnlyHint": false,
260
+ "destructiveHint": false,
261
+ "idempotentHint": true,
262
+ "openWorldHint": false
263
+ },
264
+ "inputSchema": {
265
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
266
+ "type": "object",
267
+ "properties": {
268
+ "noteId": {
269
+ "description": "Existing Note ID to update, or omit to create a new Note.",
270
+ "type": "string"
271
+ },
272
+ "title": {
273
+ "description": "Note title (defaults to # H1 heading in content).",
274
+ "type": "string"
275
+ },
276
+ "content": {
277
+ "type": "string",
278
+ "minLength": 1,
279
+ "description": "Full Markdown document or Whiteboard Script body."
280
+ },
281
+ "sport": {
282
+ "description": "Optional sport fence tag when passing bare Whiteboard Script.",
283
+ "type": "string"
284
+ },
285
+ "expectedSourceRevision": {
286
+ "description": "Optimistic concurrency guard: pass the current sourceRevision from wod_note_get when updating.",
287
+ "type": "integer",
288
+ "minimum": 0,
289
+ "maximum": 9007199254740991
290
+ },
291
+ "notebookId": {
292
+ "description": "Optional user Notebook ID/slug to link this Note into (always stays anchored in notebook/journal).",
293
+ "type": "string"
294
+ },
295
+ "journalDate": {
296
+ "description": "Optional YYYY-MM-DD or \"today\" to place the Note on that Journal calendar day.",
297
+ "type": "string"
298
+ }
299
+ },
300
+ "required": [
301
+ "content"
302
+ ],
303
+ "additionalProperties": false
304
+ }
305
+ },
306
+ {
307
+ "name": "wod_note_clone",
308
+ "title": "Clone Note with Provenance",
309
+ "description": "Clone any Note (especially read-only Seed or Feed workouts) into a writable user Notebook or Journal day while recording structured upstream `NoteProvenance`.",
310
+ "tier": 1,
311
+ "domain": "note",
312
+ "surfaces": [
313
+ "webmcp",
314
+ "mcp",
315
+ "cli"
316
+ ],
317
+ "cliEquivalent": "wod note clone <sourceNoteId> --notebook <slug> --json",
318
+ "annotations": {
319
+ "title": "Clone Note",
320
+ "readOnlyHint": false,
321
+ "destructiveHint": false,
322
+ "idempotentHint": false,
323
+ "openWorldHint": false
324
+ },
325
+ "inputSchema": {
326
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
327
+ "type": "object",
328
+ "properties": {
329
+ "sourceNoteId": {
330
+ "type": "string",
331
+ "minLength": 1,
332
+ "description": "Source Note ID (including read-only Seed/Feed Notes) to clone."
333
+ },
334
+ "targetNotebookId": {
335
+ "description": "Target writable user Notebook ID/slug (defaults to \"notebook/journal\").",
336
+ "type": "string"
337
+ },
338
+ "title": {
339
+ "description": "Optional title override for the cloned Note.",
340
+ "type": "string"
341
+ },
342
+ "journalDate": {
343
+ "description": "Optional YYYY-MM-DD or \"today\" to pin the clone onto a Journal day.",
344
+ "type": "string"
345
+ }
346
+ },
347
+ "required": [
348
+ "sourceNoteId"
349
+ ],
350
+ "additionalProperties": false
351
+ }
352
+ },
353
+ {
354
+ "name": "wod_note_delete",
355
+ "title": "Delete Note",
356
+ "description": "Permanently delete a Note and detach its projections, tag links, and calendar placements (Tier 2 destructive — requires user confirmation or matching confirmId).",
357
+ "tier": 2,
358
+ "domain": "note",
359
+ "surfaces": [
360
+ "webmcp",
361
+ "mcp",
362
+ "cli"
363
+ ],
364
+ "cliEquivalent": "wod note delete <noteId> --yes <noteId> --json",
365
+ "annotations": {
366
+ "title": "Delete Note",
367
+ "readOnlyHint": false,
368
+ "destructiveHint": true,
369
+ "idempotentHint": true,
370
+ "openWorldHint": false
371
+ },
372
+ "inputSchema": {
373
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
374
+ "type": "object",
375
+ "properties": {
376
+ "noteId": {
377
+ "type": "string",
378
+ "minLength": 1,
379
+ "description": "ID of the Note to delete."
380
+ },
381
+ "confirmId": {
382
+ "description": "For non-interactive MCP/CLI calls, repeat the exact noteId to confirm deletion.",
383
+ "type": "string"
384
+ }
385
+ },
386
+ "required": [
387
+ "noteId"
388
+ ],
389
+ "additionalProperties": false
390
+ }
391
+ },
392
+ {
393
+ "name": "wod_journal_day",
394
+ "title": "Get Journal Day",
395
+ "description": "Fetch all scheduled/authored workout Notes and recorded Sessions for a specific Journal calendar day (`YYYY-MM-DD` or `today`).",
396
+ "tier": 0,
397
+ "domain": "journal",
398
+ "surfaces": [
399
+ "webmcp",
400
+ "mcp",
401
+ "cli"
402
+ ],
403
+ "cliEquivalent": "wod journal [today|YYYY-MM-DD] --json",
404
+ "annotations": {
405
+ "title": "Get Journal Day",
406
+ "readOnlyHint": true,
407
+ "destructiveHint": false,
408
+ "idempotentHint": true,
409
+ "openWorldHint": false
410
+ },
411
+ "inputSchema": {
412
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
413
+ "type": "object",
414
+ "properties": {
415
+ "date": {
416
+ "description": "Calendar date in YYYY-MM-DD format, or \"today\" (defaults to \"today\").",
417
+ "type": "string"
418
+ }
419
+ },
420
+ "additionalProperties": false
421
+ }
422
+ },
423
+ {
424
+ "name": "wod_journal_add",
425
+ "title": "Add Workout to Journal Day",
426
+ "description": "Create a new workout Note in `notebook/journal` and place it onto the specified calendar day (`YYYY-MM-DD` or `today`).",
427
+ "tier": 1,
428
+ "domain": "journal",
429
+ "surfaces": [
430
+ "webmcp",
431
+ "mcp",
432
+ "cli"
433
+ ],
434
+ "cliEquivalent": "wod journal add <file|-> --date YYYY-MM-DD --json",
435
+ "annotations": {
436
+ "title": "Add Workout to Journal Day",
437
+ "readOnlyHint": false,
438
+ "destructiveHint": false,
439
+ "idempotentHint": false,
440
+ "openWorldHint": false
441
+ },
442
+ "inputSchema": {
443
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
444
+ "type": "object",
445
+ "properties": {
446
+ "date": {
447
+ "description": "Target Journal date in YYYY-MM-DD format or \"today\" (defaults to \"today\").",
448
+ "type": "string"
449
+ },
450
+ "title": {
451
+ "description": "Workout title (defaults to # H1 heading or date).",
452
+ "type": "string"
453
+ },
454
+ "content": {
455
+ "type": "string",
456
+ "minLength": 1,
457
+ "description": "Markdown workout note or bare Whiteboard Script to schedule onto the Journal day."
458
+ },
459
+ "sport": {
460
+ "description": "Optional sport fence tag when passing bare Whiteboard Script.",
461
+ "type": "string"
462
+ },
463
+ "notebookId": {
464
+ "description": "Optional additional user Notebook to promote this Journal Note into.",
465
+ "type": "string"
466
+ }
467
+ },
468
+ "required": [
469
+ "content"
470
+ ],
471
+ "additionalProperties": false
472
+ }
473
+ },
474
+ {
475
+ "name": "wod_notebook_list",
476
+ "title": "List Notebooks",
477
+ "description": "List built-in, user-created, and feed-subscribed Notebooks along with member Note counts and publication status.",
478
+ "tier": 0,
479
+ "domain": "notebook",
480
+ "surfaces": [
481
+ "webmcp",
482
+ "mcp",
483
+ "cli"
484
+ ],
485
+ "cliEquivalent": "wod notebook list --json",
486
+ "annotations": {
487
+ "title": "List Notebooks",
488
+ "readOnlyHint": true,
489
+ "destructiveHint": false,
490
+ "idempotentHint": true,
491
+ "openWorldHint": false
492
+ },
493
+ "inputSchema": {
494
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
495
+ "type": "object",
496
+ "properties": {
497
+ "origin": {
498
+ "description": "Filter notebooks by origin (default \"all\").",
499
+ "type": "string",
500
+ "enum": [
501
+ "all",
502
+ "default",
503
+ "user",
504
+ "feed"
505
+ ]
506
+ }
507
+ },
508
+ "additionalProperties": false
509
+ }
510
+ },
511
+ {
512
+ "name": "wod_notebook_save",
513
+ "title": "Create, Update, or Promote Notebook",
514
+ "description": "Create or update a user-owned Notebook, promote/detach a Note across Notebooks (`notebook/journal` permanence preserved), or toggle Notebook publication visibility.",
515
+ "tier": 1,
516
+ "domain": "notebook",
517
+ "surfaces": [
518
+ "webmcp",
519
+ "mcp",
520
+ "cli"
521
+ ],
522
+ "cliEquivalent": "wod notebook <create|update|promote> --json",
523
+ "annotations": {
524
+ "title": "Save or Promote Notebook",
525
+ "readOnlyHint": false,
526
+ "destructiveHint": false,
527
+ "idempotentHint": true,
528
+ "openWorldHint": false
529
+ },
530
+ "inputSchema": {
531
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
532
+ "type": "object",
533
+ "properties": {
534
+ "action": {
535
+ "type": "string",
536
+ "enum": [
537
+ "create",
538
+ "update",
539
+ "promote",
540
+ "detach",
541
+ "set-public"
542
+ ],
543
+ "description": "Operation to perform on a user Notebook."
544
+ },
545
+ "notebookId": {
546
+ "description": "Target Notebook slug or ID (required for update, promote, detach, set-public).",
547
+ "type": "string"
548
+ },
549
+ "name": {
550
+ "description": "Display name when creating or renaming a Notebook.",
551
+ "type": "string"
552
+ },
553
+ "description": {
554
+ "description": "Notebook description.",
555
+ "type": "string"
556
+ },
557
+ "icon": {
558
+ "description": "Notebook icon/emoji.",
559
+ "type": "string"
560
+ },
561
+ "noteId": {
562
+ "description": "Note ID to promote into or detach from the Notebook.",
563
+ "type": "string"
564
+ },
565
+ "sessionIds": {
566
+ "description": "Optional Session IDs on `noteId` to promote alongside the Note.",
567
+ "type": "array",
568
+ "items": {
569
+ "type": "string"
570
+ }
571
+ },
572
+ "public": {
573
+ "description": "Visibility flag when action=\"set-public\" or promoting sessions.",
574
+ "type": "boolean"
575
+ }
576
+ },
577
+ "required": [
578
+ "action"
579
+ ],
580
+ "additionalProperties": false
581
+ }
582
+ },
583
+ {
584
+ "name": "wod_notebook_delete",
585
+ "title": "Delete User Notebook",
586
+ "description": "Delete a user-created Notebook landing note and detach member links while keeping all member Notes safely in `notebook/journal` (Tier 2 destructive).",
587
+ "tier": 2,
588
+ "domain": "notebook",
589
+ "surfaces": [
590
+ "webmcp",
591
+ "mcp",
592
+ "cli"
593
+ ],
594
+ "cliEquivalent": "wod notebook delete <slug> --yes <slug> --json",
595
+ "annotations": {
596
+ "title": "Delete User Notebook",
597
+ "readOnlyHint": false,
598
+ "destructiveHint": true,
599
+ "idempotentHint": true,
600
+ "openWorldHint": false
601
+ },
602
+ "inputSchema": {
603
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
604
+ "type": "object",
605
+ "properties": {
606
+ "notebookId": {
607
+ "type": "string",
608
+ "minLength": 1,
609
+ "description": "User Notebook ID or slug to delete (member Notes stay safe in notebook/journal)."
610
+ },
611
+ "confirmId": {
612
+ "description": "For non-interactive MCP/CLI calls, repeat the exact notebookId or slug to confirm deletion.",
613
+ "type": "string"
614
+ }
615
+ },
616
+ "required": [
617
+ "notebookId"
618
+ ],
619
+ "additionalProperties": false
620
+ }
621
+ },
622
+ {
623
+ "name": "wod_session_run_headless",
624
+ "title": "Run Workout Session Headlessly",
625
+ "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`.",
626
+ "tier": 1,
627
+ "domain": "session",
628
+ "surfaces": [
629
+ "webmcp",
630
+ "mcp",
631
+ "cli"
632
+ ],
633
+ "cliEquivalent": "wod run <file|--note id> --json",
634
+ "annotations": {
635
+ "title": "Run Workout Headlessly",
636
+ "readOnlyHint": false,
637
+ "destructiveHint": false,
638
+ "idempotentHint": false,
639
+ "openWorldHint": false
640
+ },
641
+ "inputSchema": {
642
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
643
+ "type": "object",
644
+ "properties": {
645
+ "noteId": {
646
+ "description": "Existing Note ID to execute (read-only Seed/Feed Notes are automatically cloned to notebook/journal).",
647
+ "type": "string"
648
+ },
649
+ "blockId": {
650
+ "description": "Optional workout block ID on `noteId` (defaults to first wod block).",
651
+ "type": "string"
652
+ },
653
+ "source": {
654
+ "description": "Inline Whiteboard Script or Markdown to persist & run when `noteId` is not supplied.",
655
+ "type": "string"
656
+ },
657
+ "title": {
658
+ "description": "Optional Note title when running inline `source`.",
659
+ "type": "string"
660
+ },
661
+ "sport": {
662
+ "description": "Optional sport dialect override.",
663
+ "type": "string"
664
+ },
665
+ "journalDate": {
666
+ "description": "Optional YYYY-MM-DD or \"today\" Journal calendar date.",
667
+ "type": "string"
668
+ },
669
+ "collectibles": {
670
+ "description": "Optional values for collectible `?` metrics (e.g. `{ \"lb\": 185, \"reps\": 12 }`).",
671
+ "type": "object",
672
+ "propertyNames": {
673
+ "type": "string"
674
+ },
675
+ "additionalProperties": {
676
+ "type": [
677
+ "string",
678
+ "number"
679
+ ]
680
+ }
681
+ },
682
+ "stepAdvanceMs": {
683
+ "description": "Simulated clock advance per step in milliseconds (default 10000).",
684
+ "type": "integer",
685
+ "minimum": 100,
686
+ "maximum": 3600000
687
+ },
688
+ "maxSteps": {
689
+ "description": "Safety cap on execution steps (default 500).",
690
+ "type": "integer",
691
+ "minimum": 1,
692
+ "maximum": 5000
693
+ },
694
+ "public": {
695
+ "description": "Mark the recorded Session public for Feed publication.",
696
+ "type": "boolean"
697
+ }
698
+ },
699
+ "additionalProperties": false
700
+ }
701
+ },
702
+ {
703
+ "name": "wod_session_list",
704
+ "title": "List Recorded Sessions",
705
+ "description": "List recorded workout Sessions ordered newest-first, optionally filtered by Note ID.",
706
+ "tier": 0,
707
+ "domain": "session",
708
+ "surfaces": [
709
+ "webmcp",
710
+ "mcp",
711
+ "cli"
712
+ ],
713
+ "cliEquivalent": "wod session list --json",
714
+ "annotations": {
715
+ "title": "List Sessions",
716
+ "readOnlyHint": true,
717
+ "destructiveHint": false,
718
+ "idempotentHint": true,
719
+ "openWorldHint": false
720
+ },
721
+ "inputSchema": {
722
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
723
+ "type": "object",
724
+ "properties": {
725
+ "noteId": {
726
+ "description": "Filter Sessions by owning Note ID.",
727
+ "type": "string"
728
+ },
729
+ "completedOnly": {
730
+ "description": "Filter to completed Sessions only.",
731
+ "type": "boolean"
732
+ },
733
+ "limit": {
734
+ "description": "Max Sessions to return (default 50).",
735
+ "type": "integer",
736
+ "minimum": 1,
737
+ "maximum": 200
738
+ }
739
+ },
740
+ "additionalProperties": false
741
+ }
742
+ },
743
+ {
744
+ "name": "wod_session_get",
745
+ "title": "Get Session Telemetry",
746
+ "description": "Read a recorded workout Session along with its pinned `BlockRevision` and derived event/summary telemetry rows.",
747
+ "tier": 0,
748
+ "domain": "session",
749
+ "surfaces": [
750
+ "webmcp",
751
+ "mcp",
752
+ "cli"
753
+ ],
754
+ "cliEquivalent": "wod session get <sessionId> --json",
755
+ "annotations": {
756
+ "title": "Get Session Telemetry",
757
+ "readOnlyHint": true,
758
+ "destructiveHint": false,
759
+ "idempotentHint": true,
760
+ "openWorldHint": false
761
+ },
762
+ "inputSchema": {
763
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
764
+ "type": "object",
765
+ "properties": {
766
+ "sessionId": {
767
+ "type": "string",
768
+ "minLength": 1,
769
+ "description": "Session ID to inspect."
770
+ }
771
+ },
772
+ "required": [
773
+ "sessionId"
774
+ ],
775
+ "additionalProperties": false
776
+ }
777
+ },
778
+ {
779
+ "name": "wod_session_delete",
780
+ "title": "Delete Recorded Session",
781
+ "description": "Permanently delete a recorded workout Session and its telemetry events (Tier 2 destructive — requires confirmation).",
782
+ "tier": 2,
783
+ "domain": "session",
784
+ "surfaces": [
785
+ "webmcp",
786
+ "mcp",
787
+ "cli"
788
+ ],
789
+ "cliEquivalent": "wod session delete <sessionId> --yes <sessionId> --json",
790
+ "annotations": {
791
+ "title": "Delete Session",
792
+ "readOnlyHint": false,
793
+ "destructiveHint": true,
794
+ "idempotentHint": true,
795
+ "openWorldHint": false
796
+ },
797
+ "inputSchema": {
798
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
799
+ "type": "object",
800
+ "properties": {
801
+ "sessionId": {
802
+ "type": "string",
803
+ "minLength": 1,
804
+ "description": "Session ID to delete."
805
+ },
806
+ "confirmId": {
807
+ "description": "For non-interactive MCP/CLI calls, repeat the exact sessionId to confirm deletion.",
808
+ "type": "string"
809
+ }
810
+ },
811
+ "required": [
812
+ "sessionId"
813
+ ],
814
+ "additionalProperties": false
815
+ }
816
+ },
817
+ {
818
+ "name": "wod_catalog_lookup",
819
+ "title": "Lookup Efforts, Equipment & Tags",
820
+ "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`).",
821
+ "tier": 0,
822
+ "domain": "catalog",
823
+ "surfaces": [
824
+ "webmcp",
825
+ "mcp",
826
+ "cli"
827
+ ],
828
+ "cliEquivalent": "wod catalog <efforts|equipment|tags> --json",
829
+ "annotations": {
830
+ "title": "Lookup Catalog",
831
+ "readOnlyHint": true,
832
+ "destructiveHint": false,
833
+ "idempotentHint": true,
834
+ "openWorldHint": false
835
+ },
836
+ "inputSchema": {
837
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
838
+ "type": "object",
839
+ "properties": {
840
+ "kind": {
841
+ "type": "string",
842
+ "enum": [
843
+ "effort",
844
+ "equipment",
845
+ "tag",
846
+ "tag-type"
847
+ ],
848
+ "description": "Catalog family to search or inspect."
849
+ },
850
+ "search": {
851
+ "description": "Case-insensitive slug, label, or alias filter.",
852
+ "type": "string"
853
+ },
854
+ "slug": {
855
+ "description": "Exact canonical slug/name to look up.",
856
+ "type": "string"
857
+ },
858
+ "notebookId": {
859
+ "description": "Optional Notebook scope for property inheritance resolution.",
860
+ "type": "string"
861
+ },
862
+ "limit": {
863
+ "description": "Max entries to return (default 50).",
864
+ "type": "integer",
865
+ "minimum": 1,
866
+ "maximum": 250
867
+ }
868
+ },
869
+ "required": [
870
+ "kind"
871
+ ],
872
+ "additionalProperties": false
873
+ }
874
+ },
875
+ {
876
+ "name": "wod_catalog_upsert",
877
+ "title": "Save Effort, Equipment, or Tag Property Note",
878
+ "description": "Create or update a Scoped Property Override (`effort`, `equipment`, `tag`, or `tag-type`) in `notebook/custom` or a shared user Notebook.",
879
+ "tier": 1,
880
+ "domain": "catalog",
881
+ "surfaces": [
882
+ "webmcp",
883
+ "mcp",
884
+ "cli"
885
+ ],
886
+ "cliEquivalent": "wod catalog save <kind> <file|-> --json",
887
+ "annotations": {
888
+ "title": "Save Catalog Property",
889
+ "readOnlyHint": false,
890
+ "destructiveHint": false,
891
+ "idempotentHint": true,
892
+ "openWorldHint": false
893
+ },
894
+ "inputSchema": {
895
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
896
+ "type": "object",
897
+ "properties": {
898
+ "kind": {
899
+ "type": "string",
900
+ "enum": [
901
+ "effort",
902
+ "equipment",
903
+ "tag",
904
+ "tag-type"
905
+ ],
906
+ "description": "Property definition family to create or override."
907
+ },
908
+ "slug": {
909
+ "type": "string",
910
+ "minLength": 1,
911
+ "description": "Canonical kebab-case slug (e.g. \"kettlebell-swing\", \"barbell\")."
912
+ },
913
+ "label": {
914
+ "description": "Human-readable display label.",
915
+ "type": "string"
916
+ },
917
+ "targetNotebookId": {
918
+ "description": "Target Notebook scope: defaults to \"notebook/custom\" (personal runtime) or a writable user Notebook.",
919
+ "type": "string"
920
+ },
921
+ "markdown": {
922
+ "description": "Full Property Note Markdown with YAML frontmatter. If omitted, synthesized from structured fields below.",
923
+ "type": "string"
924
+ },
925
+ "met": {
926
+ "description": "MET metabolic equivalent (for kind=\"effort\", default 5.0).",
927
+ "type": "number",
928
+ "exclusiveMinimum": 0
929
+ },
930
+ "aliases": {
931
+ "description": "Optional movement/equipment aliases.",
932
+ "type": "array",
933
+ "items": {
934
+ "type": "string"
935
+ }
936
+ },
937
+ "category": {
938
+ "description": "Tag category when kind=\"tag\" (e.g. \"equipment\", \"quality\", \"format\").",
939
+ "type": "string"
940
+ },
941
+ "color": {
942
+ "description": "Hex color when kind=\"tag-type\" (e.g. \"#10b981\").",
943
+ "type": "string"
944
+ }
945
+ },
946
+ "required": [
947
+ "kind",
948
+ "slug"
949
+ ],
950
+ "additionalProperties": false
951
+ }
952
+ },
953
+ {
954
+ "name": "wod_feed_manage",
955
+ "title": "Manage Feeds & Portability",
956
+ "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`).",
957
+ "tier": 1,
958
+ "domain": "feed",
959
+ "surfaces": [
960
+ "webmcp",
961
+ "mcp",
962
+ "cli"
963
+ ],
964
+ "cliEquivalent": "wod feed <list|status|publish> --json",
965
+ "annotations": {
966
+ "title": "Manage Feeds",
967
+ "readOnlyHint": false,
968
+ "destructiveHint": false,
969
+ "idempotentHint": true,
970
+ "openWorldHint": false
971
+ },
972
+ "inputSchema": {
973
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
974
+ "type": "object",
975
+ "properties": {
976
+ "action": {
977
+ "type": "string",
978
+ "enum": [
979
+ "list",
980
+ "status",
981
+ "publish",
982
+ "import-bundle"
983
+ ],
984
+ "description": "Feed or portability operation to run."
985
+ },
986
+ "notebookSlug": {
987
+ "description": "Optional Notebook slug filter when publishing.",
988
+ "type": "string"
989
+ },
990
+ "name": {
991
+ "description": "Optional Feed display name when publishing.",
992
+ "type": "string"
993
+ },
994
+ "description": {
995
+ "description": "Optional Feed description when publishing.",
996
+ "type": "string"
997
+ },
998
+ "files": {
999
+ "description": "Portable `.md` / `.jsonl` / `.csv` files when action=\"import-bundle\".",
1000
+ "type": "array",
1001
+ "items": {
1002
+ "type": "object",
1003
+ "properties": {
1004
+ "path": {
1005
+ "type": "string",
1006
+ "minLength": 1
1007
+ },
1008
+ "content": {
1009
+ "type": "string"
1010
+ }
1011
+ },
1012
+ "required": [
1013
+ "path",
1014
+ "content"
1015
+ ],
1016
+ "additionalProperties": false
1017
+ }
1018
+ }
1019
+ },
1020
+ "required": [
1021
+ "action"
1022
+ ],
1023
+ "additionalProperties": false
1024
+ }
1025
+ },
1026
+ {
1027
+ "name": "wod_export_bundle",
1028
+ "title": "Export Portable Markdown & Telemetry Bundle",
1029
+ "description": "Export user Notes and attached Session telemetry directly as structured `{ path, content }` strings (Markdown + JSONL/CSV) without triggering synthetic browser file downloads.",
1030
+ "tier": 0,
1031
+ "domain": "feed",
1032
+ "surfaces": [
1033
+ "webmcp",
1034
+ "mcp",
1035
+ "cli"
1036
+ ],
1037
+ "cliEquivalent": "wod export note <id> -o -",
1038
+ "annotations": {
1039
+ "title": "Export Portable Bundle",
1040
+ "readOnlyHint": true,
1041
+ "destructiveHint": false,
1042
+ "idempotentHint": true,
1043
+ "openWorldHint": false
1044
+ },
1045
+ "inputSchema": {
1046
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1047
+ "type": "object",
1048
+ "properties": {
1049
+ "noteIds": {
1050
+ "description": "Optional Note IDs to export (defaults to all user-owned Notes).",
1051
+ "type": "array",
1052
+ "items": {
1053
+ "type": "string"
1054
+ }
1055
+ },
1056
+ "telemetryFormat": {
1057
+ "description": "Format for companion Session/Event telemetry files (default \"jsonl\").",
1058
+ "type": "string",
1059
+ "enum": [
1060
+ "jsonl",
1061
+ "csv",
1062
+ "both"
1063
+ ]
1064
+ }
1065
+ },
1066
+ "additionalProperties": false
1067
+ }
1068
+ },
1069
+ {
1070
+ "name": "wod_reset_storage",
1071
+ "title": "Wipe Storage Data",
1072
+ "description": "Wipe user Notes, Sessions, Events, and Notebook data from the active storage backend (Tier 2 destructive — requires explicit user confirmation).",
1073
+ "tier": 2,
1074
+ "domain": "system",
1075
+ "surfaces": [
1076
+ "webmcp",
1077
+ "mcp",
1078
+ "cli"
1079
+ ],
1080
+ "cliEquivalent": "wod reset --yes WIPE_STORAGE --json",
1081
+ "annotations": {
1082
+ "title": "Wipe Storage Data",
1083
+ "readOnlyHint": false,
1084
+ "destructiveHint": true,
1085
+ "idempotentHint": true,
1086
+ "openWorldHint": false
1087
+ },
1088
+ "inputSchema": {
1089
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1090
+ "type": "object",
1091
+ "properties": {
1092
+ "confirmToken": {
1093
+ "description": "For non-interactive MCP/CLI calls, pass confirmToken=\"WIPE_STORAGE\" to confirm wiping user storage.",
1094
+ "type": "string"
1095
+ }
1096
+ },
1097
+ "additionalProperties": false
1098
+ }
1099
+ }
1100
+ ],
1101
+ "uiTools": [
1102
+ {
1103
+ "name": "ui_get_view_context",
1104
+ "title": "Get Active UI View Context",
1105
+ "description": "Read the current browser route, hydration/loading state, unbatched stream results, active editor metadata, and live workout clock snapshot.",
1106
+ "tier": 0,
1107
+ "surfaces": [
1108
+ "webmcp"
1109
+ ],
1110
+ "mountScope": "always (Playground shell)",
1111
+ "annotations": {
1112
+ "readOnlyHint": true,
1113
+ "destructiveHint": false,
1114
+ "idempotentHint": true,
1115
+ "openWorldHint": false
1116
+ },
1117
+ "inputSchema": {
1118
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1119
+ "type": "object",
1120
+ "properties": {
1121
+ "includeSampleEntries": {
1122
+ "description": "Include up to 50 unbatched stream entries when on a stream route (default true).",
1123
+ "type": "boolean"
1124
+ }
1125
+ },
1126
+ "additionalProperties": false
1127
+ }
1128
+ },
1129
+ {
1130
+ "name": "ui_navigate",
1131
+ "title": "Navigate Playground Route",
1132
+ "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.",
1133
+ "tier": 1,
1134
+ "surfaces": [
1135
+ "webmcp"
1136
+ ],
1137
+ "mountScope": "always (Playground shell)",
1138
+ "annotations": {
1139
+ "readOnlyHint": false,
1140
+ "destructiveHint": false,
1141
+ "idempotentHint": true,
1142
+ "openWorldHint": false
1143
+ },
1144
+ "inputSchema": {
1145
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1146
+ "type": "object",
1147
+ "properties": {
1148
+ "path": {
1149
+ "type": "string",
1150
+ "minLength": 1,
1151
+ "description": "Internal app path (with optional ?query and #hash) to navigate to, e.g. \"/journal\", \"/day/2026-11-11\", \"/note/<id>\", \"/notebooks\", \"/dashboards\"."
1152
+ },
1153
+ "replace": {
1154
+ "description": "Replace current history entry instead of pushing.",
1155
+ "type": "boolean"
1156
+ }
1157
+ },
1158
+ "required": [
1159
+ "path"
1160
+ ],
1161
+ "additionalProperties": false
1162
+ }
1163
+ },
1164
+ {
1165
+ "name": "ui_cast_control",
1166
+ "title": "Inspect or Disconnect Cast Session",
1167
+ "description": "Check active Chromecast / receiver display session state or cleanly disconnect an active Cast session.",
1168
+ "tier": 1,
1169
+ "surfaces": [
1170
+ "webmcp"
1171
+ ],
1172
+ "mountScope": "always (Playground shell)",
1173
+ "annotations": {
1174
+ "readOnlyHint": false,
1175
+ "destructiveHint": false,
1176
+ "idempotentHint": true,
1177
+ "openWorldHint": false
1178
+ },
1179
+ "inputSchema": {
1180
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1181
+ "type": "object",
1182
+ "properties": {
1183
+ "action": {
1184
+ "type": "string",
1185
+ "enum": [
1186
+ "status",
1187
+ "disconnect"
1188
+ ],
1189
+ "description": "Inspect active Chromecast/receiver session status or disconnect an active session."
1190
+ }
1191
+ },
1192
+ "required": [
1193
+ "action"
1194
+ ],
1195
+ "additionalProperties": false
1196
+ }
1197
+ },
1198
+ {
1199
+ "name": "ui_set_stream_query",
1200
+ "title": "Set Live Stream WQL Query or Layout",
1201
+ "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.",
1202
+ "tier": 1,
1203
+ "surfaces": [
1204
+ "webmcp"
1205
+ ],
1206
+ "mountScope": "mounted stream routes (/journal, /notes, /notebooks, /sessions, /efforts, /tags, /feeds)",
1207
+ "annotations": {
1208
+ "readOnlyHint": false,
1209
+ "destructiveHint": false,
1210
+ "idempotentHint": true,
1211
+ "openWorldHint": false
1212
+ },
1213
+ "inputSchema": {
1214
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1215
+ "type": "object",
1216
+ "properties": {
1217
+ "query": {
1218
+ "description": "WQL query string to apply to the mounted stream view (e.g. \":note{tags:benchmark}\").",
1219
+ "type": "string"
1220
+ },
1221
+ "layout": {
1222
+ "description": "Switch stream layout mode and sync ?layout= in URL.",
1223
+ "type": "string",
1224
+ "enum": [
1225
+ "cards",
1226
+ "rows",
1227
+ "feed",
1228
+ "agenda",
1229
+ "planner"
1230
+ ]
1231
+ },
1232
+ "groupBy": {
1233
+ "description": "Grouping dimension (e.g. \"date\", \"week\", \"notebook\") or null to clear.",
1234
+ "type": [
1235
+ "string",
1236
+ "null"
1237
+ ]
1238
+ },
1239
+ "resetToDefault": {
1240
+ "description": "Undo custom stream filter and restore the route default WQL query.",
1241
+ "type": "boolean"
1242
+ }
1243
+ },
1244
+ "additionalProperties": false
1245
+ }
1246
+ },
1247
+ {
1248
+ "name": "ui_editor_draft",
1249
+ "title": "Read, Edit, or Undo Live Note Editor Buffer",
1250
+ "description": "Inspect or edit the live CodeMirror 6 Note buffer (`read`, `replace`, `append`, `undo`) with full undo history and optional immediate persistence.",
1251
+ "tier": 1,
1252
+ "surfaces": [
1253
+ "webmcp"
1254
+ ],
1255
+ "mountScope": "mounted Note / Journal / Playground editor surfaces",
1256
+ "annotations": {
1257
+ "readOnlyHint": false,
1258
+ "destructiveHint": false,
1259
+ "idempotentHint": false,
1260
+ "openWorldHint": false
1261
+ },
1262
+ "inputSchema": {
1263
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1264
+ "type": "object",
1265
+ "properties": {
1266
+ "operation": {
1267
+ "type": "string",
1268
+ "enum": [
1269
+ "read",
1270
+ "replace",
1271
+ "append",
1272
+ "undo"
1273
+ ],
1274
+ "description": "Read live editor buffer, replace document content, append Markdown/workout block, or undo last edit."
1275
+ },
1276
+ "content": {
1277
+ "description": "Markdown or Whiteboard Script content for replace / append operations.",
1278
+ "type": "string"
1279
+ },
1280
+ "save": {
1281
+ "description": "Flush and persist the draft to storage immediately after applying the edit (default false).",
1282
+ "type": "boolean"
1283
+ }
1284
+ },
1285
+ "required": [
1286
+ "operation"
1287
+ ],
1288
+ "additionalProperties": false
1289
+ }
1290
+ },
1291
+ {
1292
+ "name": "ui_start_live_workout",
1293
+ "title": "Start Live Interactive Workout Timer",
1294
+ "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.",
1295
+ "tier": 1,
1296
+ "surfaces": [
1297
+ "webmcp"
1298
+ ],
1299
+ "mountScope": "mounted Note / Journal / Playground editor surfaces",
1300
+ "annotations": {
1301
+ "readOnlyHint": false,
1302
+ "destructiveHint": false,
1303
+ "idempotentHint": false,
1304
+ "openWorldHint": false
1305
+ },
1306
+ "inputSchema": {
1307
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1308
+ "type": "object",
1309
+ "properties": {
1310
+ "blockId": {
1311
+ "description": "Optional workout block ID in the active Note editor (defaults to first ```time block).",
1312
+ "type": "string"
1313
+ },
1314
+ "autoStart": {
1315
+ "description": "Automatically start the timer after mounting the workout clock (default true).",
1316
+ "type": "boolean"
1317
+ }
1318
+ },
1319
+ "additionalProperties": false
1320
+ }
1321
+ },
1322
+ {
1323
+ "name": "ui_clock_control",
1324
+ "title": "Control Live Workout Clock",
1325
+ "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.",
1326
+ "tier": 1,
1327
+ "surfaces": [
1328
+ "webmcp"
1329
+ ],
1330
+ "mountScope": "mounted live workout timer (FullscreenTimer / RuntimeTimerPanel)",
1331
+ "annotations": {
1332
+ "readOnlyHint": false,
1333
+ "destructiveHint": false,
1334
+ "idempotentHint": false,
1335
+ "openWorldHint": false
1336
+ },
1337
+ "inputSchema": {
1338
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1339
+ "type": "object",
1340
+ "properties": {
1341
+ "command": {
1342
+ "type": "string",
1343
+ "enum": [
1344
+ "next",
1345
+ "playback",
1346
+ "stop-request",
1347
+ "stop-confirm",
1348
+ "stop-cancel",
1349
+ "values-open",
1350
+ "entry-cancel",
1351
+ "entry-save",
1352
+ "entry-skip",
1353
+ "reps-adjust",
1354
+ "reps-set",
1355
+ "reps-select",
1356
+ "choice-select",
1357
+ "ready-start",
1358
+ "dismiss",
1359
+ "status"
1360
+ ],
1361
+ "description": "Live workout clock command to dispatch (or \"status\" to read current ClockSnapshot)."
1362
+ },
1363
+ "fieldId": {
1364
+ "description": "Target fieldId for entry-save, entry-skip, or choice-select.",
1365
+ "type": "string"
1366
+ },
1367
+ "value": {
1368
+ "description": "Numeric value for entry-save or reps-set.",
1369
+ "type": "number"
1370
+ },
1371
+ "occurrenceId": {
1372
+ "description": "Rep occurrenceId for reps-adjust, reps-set, or reps-select.",
1373
+ "type": "string"
1374
+ },
1375
+ "delta": {
1376
+ "description": "+1 or -1 delta for reps-adjust.",
1377
+ "anyOf": [
1378
+ {
1379
+ "type": "number",
1380
+ "const": 1
1381
+ },
1382
+ {
1383
+ "type": "number",
1384
+ "const": -1
1385
+ }
1386
+ ]
1387
+ },
1388
+ "index": {
1389
+ "description": "Zero-based alternative index for choice-select.",
1390
+ "type": "integer",
1391
+ "minimum": 0,
1392
+ "maximum": 9007199254740991
1393
+ }
1394
+ },
1395
+ "required": [
1396
+ "command"
1397
+ ],
1398
+ "additionalProperties": false
1399
+ }
1400
+ },
1401
+ {
1402
+ "name": "ui_preferences",
1403
+ "title": "Get or Set Playground UI Preferences",
1404
+ "description": "Read or update global Playground UI preferences (`theme`, `audioEnabled`, `debugMode`, `analyticsUnit`, and mobile navigation drawers).",
1405
+ "tier": 1,
1406
+ "surfaces": [
1407
+ "webmcp"
1408
+ ],
1409
+ "mountScope": "always (Playground shell)",
1410
+ "annotations": {
1411
+ "readOnlyHint": false,
1412
+ "destructiveHint": false,
1413
+ "idempotentHint": true,
1414
+ "openWorldHint": false
1415
+ },
1416
+ "inputSchema": {
1417
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1418
+ "type": "object",
1419
+ "properties": {
1420
+ "action": {
1421
+ "type": "string",
1422
+ "enum": [
1423
+ "get",
1424
+ "set"
1425
+ ],
1426
+ "description": "Read current Playground UI preferences (\"get\") or update preferences (\"set\")."
1427
+ },
1428
+ "theme": {
1429
+ "description": "Color theme preference (`light`, `dark`, or `system`).",
1430
+ "type": "string",
1431
+ "enum": [
1432
+ "light",
1433
+ "dark",
1434
+ "system"
1435
+ ]
1436
+ },
1437
+ "audioEnabled": {
1438
+ "description": "Enable or mute workout timer audio cues.",
1439
+ "type": "boolean"
1440
+ },
1441
+ "debugMode": {
1442
+ "description": "Enable or disable global runtime debug mode.",
1443
+ "type": "boolean"
1444
+ },
1445
+ "analyticsUnit": {
1446
+ "description": "Preferred display unit for analytics charts (`kg` or `lb`).",
1447
+ "type": "string",
1448
+ "enum": [
1449
+ "kg",
1450
+ "lb"
1451
+ ]
1452
+ },
1453
+ "leftDrawerOpen": {
1454
+ "description": "Open or close the primary navigation drawer on mobile/tablet.",
1455
+ "type": "boolean"
1456
+ },
1457
+ "rightDrawerOpen": {
1458
+ "description": "Open or close the secondary L3 context drawer on mobile/tablet.",
1459
+ "type": "boolean"
1460
+ }
1461
+ },
1462
+ "required": [
1463
+ "action"
1464
+ ],
1465
+ "additionalProperties": false
1466
+ }
1467
+ },
1468
+ {
1469
+ "name": "ui_set_explorer_query",
1470
+ "title": "Set or Run Analytics Explorer WQL Query",
1471
+ "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.",
1472
+ "tier": 1,
1473
+ "surfaces": [
1474
+ "webmcp"
1475
+ ],
1476
+ "mountScope": "mounted Metric Explorer route (/dashboards)",
1477
+ "annotations": {
1478
+ "readOnlyHint": false,
1479
+ "destructiveHint": false,
1480
+ "idempotentHint": true,
1481
+ "openWorldHint": false
1482
+ },
1483
+ "inputSchema": {
1484
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1485
+ "type": "object",
1486
+ "properties": {
1487
+ "query": {
1488
+ "description": "WQL aggregate or find query string to set on the Metric Explorer (`/dashboards`), e.g. \"sum:totalVolume{} by {week}\".",
1489
+ "type": "string"
1490
+ },
1491
+ "submit": {
1492
+ "description": "Execute/submit the query immediately (default true when `query` is provided).",
1493
+ "type": "boolean"
1494
+ },
1495
+ "weeks": {
1496
+ "description": "Analytics lookback range in weeks (`4`, `8`, or `16`).",
1497
+ "anyOf": [
1498
+ {
1499
+ "type": "number",
1500
+ "const": 4
1501
+ },
1502
+ {
1503
+ "type": "number",
1504
+ "const": 8
1505
+ },
1506
+ {
1507
+ "type": "number",
1508
+ "const": 16
1509
+ }
1510
+ ]
1511
+ },
1512
+ "openSaveDialog": {
1513
+ "description": "Open the \"Save to dashboard\" dialog for the active query.",
1514
+ "type": "boolean"
1515
+ },
1516
+ "openQuerySettings": {
1517
+ "description": "Open the surface query settings dialog on `/dashboards`.",
1518
+ "type": "boolean"
1519
+ }
1520
+ },
1521
+ "additionalProperties": false
1522
+ }
1523
+ }
1524
+ ],
1525
+ "resources": [
1526
+ {
1527
+ "uri": "wod://schema/whiteboard-script",
1528
+ "name": "Whiteboard Language Reference",
1529
+ "description": "Compact syntax, metric token, and fence-tag guide for authoring Whiteboard Language workouts.",
1530
+ "mimeType": "text/markdown"
1531
+ },
1532
+ {
1533
+ "uri": "wod://schema/wql",
1534
+ "name": "WQL Grammar & Capabilities",
1535
+ "description": "Machine-readable WQL targets, aggregators, filter keys, metric families, and examples.",
1536
+ "mimeType": "application/json"
1537
+ },
1538
+ {
1539
+ "uri": "wod://notebooks",
1540
+ "name": "Notebooks Snapshot",
1541
+ "description": "Current local and subscribed feed notebooks with member counts.",
1542
+ "mimeType": "application/json"
1543
+ },
1544
+ {
1545
+ "uri": "wod://note/{noteId}",
1546
+ "name": "Workout Note by ID",
1547
+ "description": "Full Markdown source, block map, tags, and recent sessions for a Note.",
1548
+ "mimeType": "application/json"
1549
+ },
1550
+ {
1551
+ "uri": "wod://journal/{date}",
1552
+ "name": "Journal Day Stream",
1553
+ "description": "Scheduled notes and logged sessions for YYYY-MM-DD or today.",
1554
+ "mimeType": "application/json"
1555
+ },
1556
+ {
1557
+ "uri": "wod://session/{sessionId}",
1558
+ "name": "Workout Session Detail",
1559
+ "description": "Session record and full segment/summary event ledger.",
1560
+ "mimeType": "application/json"
1561
+ }
1562
+ ],
1563
+ "prompts": [
1564
+ {
1565
+ "name": "encode-workout",
1566
+ "title": "Encode Plain-Text Workout into Whiteboard Language",
1567
+ "description": "Convert unstructured workout text into valid ```wod Markdown and verify with wod_parse_script.",
1568
+ "arguments": [
1569
+ {
1570
+ "name": "workoutText",
1571
+ "description": "Plain-text description of the workout to encode.",
1572
+ "required": true
1573
+ },
1574
+ {
1575
+ "name": "sport",
1576
+ "description": "Optional sport dialect (e.g. crossfit, running, weightlifting).",
1577
+ "required": false
1578
+ }
1579
+ ]
1580
+ },
1581
+ {
1582
+ "name": "analyze-training-load",
1583
+ "title": "Analyze Recent Training Load via WQL",
1584
+ "description": "Inspect recent sessions, volume rollups, and movement balance over a date window.",
1585
+ "arguments": [
1586
+ {
1587
+ "name": "window",
1588
+ "description": "Relative WQL window such as 7d, 30d, or 90d (defaults to 30d).",
1589
+ "required": false
1590
+ }
1591
+ ]
1592
+ },
1593
+ {
1594
+ "name": "program-journal-day",
1595
+ "title": "Program a Training Day on the Journal",
1596
+ "description": "Review recent training history, avoid movement interference, and schedule a workout on a date.",
1597
+ "arguments": [
1598
+ {
1599
+ "name": "date",
1600
+ "description": "Target civil date YYYY-MM-DD or today.",
1601
+ "required": false
1602
+ },
1603
+ {
1604
+ "name": "goal",
1605
+ "description": "Training focus, time cap, or equipment constraints.",
1606
+ "required": false
1607
+ }
1608
+ ]
1609
+ }
1610
+ ]
1611
+ }