skill-calorie 0.2.2 → 0.2.4

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 (1300) hide show
  1. package/SKILL.md +477 -123
  2. package/dist/.gen-inputs.json +170 -0
  3. package/dist/analysis/commands.d.ts +62 -0
  4. package/dist/analysis/commands.d.ts.map +1 -0
  5. package/dist/analysis/commands.js +386 -0
  6. package/dist/analysis/commands.js.map +1 -0
  7. package/dist/analysis/contraindications.d.ts.map +1 -1
  8. package/dist/analysis/contraindications.js +16 -12
  9. package/dist/analysis/contraindications.js.map +1 -1
  10. package/dist/analysis/cross.d.ts +3 -0
  11. package/dist/analysis/cross.d.ts.map +1 -1
  12. package/dist/analysis/cross.js +57 -29
  13. package/dist/analysis/cross.js.map +1 -1
  14. package/dist/analysis/dashboard.d.ts.map +1 -1
  15. package/dist/analysis/dashboard.js +3 -2
  16. package/dist/analysis/dashboard.js.map +1 -1
  17. package/dist/analysis/exerciseReview.js +1 -1
  18. package/dist/analysis/exerciseReview.js.map +1 -1
  19. package/dist/analysis/healthPlate.d.ts +21 -0
  20. package/dist/analysis/healthPlate.d.ts.map +1 -0
  21. package/dist/analysis/healthPlate.js +41 -0
  22. package/dist/analysis/healthPlate.js.map +1 -0
  23. package/dist/analysis/historyStore.d.ts +30 -0
  24. package/dist/analysis/historyStore.d.ts.map +1 -0
  25. package/dist/analysis/historyStore.js +32 -0
  26. package/dist/analysis/historyStore.js.map +1 -0
  27. package/dist/analysis/index.d.ts +23 -0
  28. package/dist/analysis/index.d.ts.map +1 -0
  29. package/dist/analysis/index.js +23 -0
  30. package/dist/analysis/index.js.map +1 -0
  31. package/dist/analysis/multiTrend.d.ts +67 -0
  32. package/dist/analysis/multiTrend.d.ts.map +1 -0
  33. package/dist/analysis/multiTrend.js +106 -0
  34. package/dist/analysis/multiTrend.js.map +1 -0
  35. package/dist/analysis/multiTrendPage.d.ts +4 -0
  36. package/dist/analysis/multiTrendPage.d.ts.map +1 -0
  37. package/dist/analysis/multiTrendPage.js +502 -0
  38. package/dist/analysis/multiTrendPage.js.map +1 -0
  39. package/dist/analysis/reportDoc.d.ts +12 -0
  40. package/dist/analysis/reportDoc.d.ts.map +1 -0
  41. package/dist/analysis/reportDoc.js +244 -0
  42. package/dist/analysis/reportDoc.js.map +1 -0
  43. package/dist/analysis/reportDocBmi.d.ts +4 -0
  44. package/dist/analysis/reportDocBmi.d.ts.map +1 -0
  45. package/dist/analysis/reportDocBmi.js +104 -0
  46. package/dist/analysis/reportDocBmi.js.map +1 -0
  47. package/dist/analysis/reportDocParts.d.ts +77 -0
  48. package/dist/analysis/reportDocParts.d.ts.map +1 -0
  49. package/dist/analysis/reportDocParts.js +249 -0
  50. package/dist/analysis/reportDocParts.js.map +1 -0
  51. package/dist/analysis/reportDocScore.d.ts +8 -0
  52. package/dist/analysis/reportDocScore.d.ts.map +1 -0
  53. package/dist/analysis/reportDocScore.js +223 -0
  54. package/dist/analysis/reportDocScore.js.map +1 -0
  55. package/dist/analysis/reportDocScoreSeries.d.ts +3 -0
  56. package/dist/analysis/reportDocScoreSeries.d.ts.map +1 -0
  57. package/dist/analysis/reportDocScoreSeries.js +27 -0
  58. package/dist/analysis/reportDocScoreSeries.js.map +1 -0
  59. package/dist/analysis/reportDocTracked.d.ts +10 -0
  60. package/dist/analysis/reportDocTracked.d.ts.map +1 -0
  61. package/dist/analysis/reportDocTracked.js +195 -0
  62. package/dist/analysis/reportDocTracked.js.map +1 -0
  63. package/dist/analysis/reportPlate.d.ts +163 -0
  64. package/dist/analysis/reportPlate.d.ts.map +1 -0
  65. package/dist/analysis/reportPlate.js +251 -0
  66. package/dist/analysis/reportPlate.js.map +1 -0
  67. package/dist/analysis/routes.d.ts +18 -0
  68. package/dist/analysis/routes.d.ts.map +1 -0
  69. package/dist/analysis/routes.js +178 -0
  70. package/dist/analysis/routes.js.map +1 -0
  71. package/dist/analysis/series.d.ts +31 -6
  72. package/dist/analysis/series.d.ts.map +1 -1
  73. package/dist/analysis/series.js +124 -27
  74. package/dist/analysis/series.js.map +1 -1
  75. package/dist/analysis/simulate.d.ts.map +1 -1
  76. package/dist/analysis/simulate.js +17 -6
  77. package/dist/analysis/simulate.js.map +1 -1
  78. package/dist/analysis/simulate2.d.ts.map +1 -1
  79. package/dist/analysis/simulate2.js +43 -11
  80. package/dist/analysis/simulate2.js.map +1 -1
  81. package/dist/analysis/trend.d.ts +9 -1
  82. package/dist/analysis/trend.d.ts.map +1 -1
  83. package/dist/analysis/trend.js +24 -8
  84. package/dist/analysis/trend.js.map +1 -1
  85. package/dist/analysis/utils.d.ts +50 -1
  86. package/dist/analysis/utils.d.ts.map +1 -1
  87. package/dist/analysis/utils.js +73 -1
  88. package/dist/analysis/utils.js.map +1 -1
  89. package/dist/body/bodyDocs.d.ts +4 -0
  90. package/dist/body/bodyDocs.d.ts.map +1 -0
  91. package/dist/body/bodyDocs.js +284 -0
  92. package/dist/body/bodyDocs.js.map +1 -0
  93. package/dist/body/bodyPlate.d.ts +145 -0
  94. package/dist/body/bodyPlate.d.ts.map +1 -0
  95. package/dist/body/bodyPlate.js +243 -0
  96. package/dist/body/bodyPlate.js.map +1 -0
  97. package/dist/body/bodyReadUi.d.ts +47 -0
  98. package/dist/body/bodyReadUi.d.ts.map +1 -0
  99. package/dist/body/bodyReadUi.js +164 -0
  100. package/dist/body/bodyReadUi.js.map +1 -0
  101. package/dist/body/commands.d.ts +29 -0
  102. package/dist/body/commands.d.ts.map +1 -0
  103. package/dist/body/commands.js +18 -0
  104. package/dist/body/commands.js.map +1 -0
  105. package/dist/body/compare.d.ts +62 -0
  106. package/dist/body/compare.d.ts.map +1 -0
  107. package/dist/body/compare.js +162 -0
  108. package/dist/body/compare.js.map +1 -0
  109. package/dist/body/compareCompositionDoc.d.ts +3 -0
  110. package/dist/body/compareCompositionDoc.d.ts.map +1 -0
  111. package/dist/body/compareCompositionDoc.js +99 -0
  112. package/dist/body/compareCompositionDoc.js.map +1 -0
  113. package/dist/body/compareMeasureDoc.d.ts +3 -0
  114. package/dist/body/compareMeasureDoc.d.ts.map +1 -0
  115. package/dist/body/compareMeasureDoc.js +91 -0
  116. package/dist/body/compareMeasureDoc.js.map +1 -0
  117. package/dist/body/compareUi.d.ts +12 -0
  118. package/dist/body/compareUi.d.ts.map +1 -0
  119. package/dist/body/compareUi.js +27 -0
  120. package/dist/body/compareUi.js.map +1 -0
  121. package/dist/body/index.d.ts +21 -0
  122. package/dist/body/index.d.ts.map +1 -0
  123. package/dist/body/index.js +22 -0
  124. package/dist/body/index.js.map +1 -0
  125. package/dist/body/log.d.ts +29 -0
  126. package/dist/body/log.d.ts.map +1 -0
  127. package/dist/body/log.js +196 -0
  128. package/dist/body/log.js.map +1 -0
  129. package/dist/body/receipt.d.ts +52 -0
  130. package/dist/body/receipt.d.ts.map +1 -0
  131. package/dist/body/receipt.js +248 -0
  132. package/dist/body/receipt.js.map +1 -0
  133. package/dist/body/receiptData.d.ts +46 -0
  134. package/dist/body/receiptData.d.ts.map +1 -0
  135. package/dist/body/receiptData.js +107 -0
  136. package/dist/body/receiptData.js.map +1 -0
  137. package/dist/body/receiptUi.d.ts +9 -0
  138. package/dist/body/receiptUi.d.ts.map +1 -0
  139. package/dist/body/receiptUi.js +75 -0
  140. package/dist/body/receiptUi.js.map +1 -0
  141. package/dist/body/remove.d.ts +21 -0
  142. package/dist/body/remove.d.ts.map +1 -0
  143. package/dist/body/remove.js +78 -0
  144. package/dist/body/remove.js.map +1 -0
  145. package/dist/body/routes.d.ts +10 -0
  146. package/dist/body/routes.d.ts.map +1 -0
  147. package/dist/body/routes.js +20 -0
  148. package/dist/body/routes.js.map +1 -0
  149. package/dist/body/view.d.ts +21 -0
  150. package/dist/body/view.d.ts.map +1 -0
  151. package/dist/body/view.js +50 -0
  152. package/dist/body/view.js.map +1 -0
  153. package/dist/body/wizard.d.ts +14 -0
  154. package/dist/body/wizard.d.ts.map +1 -0
  155. package/dist/body/wizard.js +21 -0
  156. package/dist/body/wizard.js.map +1 -0
  157. package/dist/body/wizardDocs.d.ts +4 -0
  158. package/dist/body/wizardDocs.d.ts.map +1 -0
  159. package/dist/body/wizardDocs.js +260 -0
  160. package/dist/body/wizardDocs.js.map +1 -0
  161. package/dist/body/wizardPlate.d.ts +146 -0
  162. package/dist/body/wizardPlate.d.ts.map +1 -0
  163. package/dist/body/wizardPlate.js +260 -0
  164. package/dist/body/wizardPlate.js.map +1 -0
  165. package/dist/body/wizardPrompt.d.ts +52 -0
  166. package/dist/body/wizardPrompt.d.ts.map +1 -0
  167. package/dist/body/wizardPrompt.js +146 -0
  168. package/dist/body/wizardPrompt.js.map +1 -0
  169. package/dist/body/wizardUi.d.ts +11 -0
  170. package/dist/body/wizardUi.d.ts.map +1 -0
  171. package/dist/body/wizardUi.js +35 -0
  172. package/dist/body/wizardUi.js.map +1 -0
  173. package/dist/cli/cmd_read.d.ts +7 -21
  174. package/dist/cli/cmd_read.d.ts.map +1 -1
  175. package/dist/cli/cmd_read.js +45 -1044
  176. package/dist/cli/cmd_read.js.map +1 -1
  177. package/dist/cli/delivery.d.ts +34 -0
  178. package/dist/cli/delivery.d.ts.map +1 -0
  179. package/dist/cli/delivery.js +223 -0
  180. package/dist/cli/delivery.js.map +1 -0
  181. package/dist/cli/keys.d.ts +305 -163
  182. package/dist/cli/keys.d.ts.map +1 -1
  183. package/dist/cli/keys.js +101 -74
  184. package/dist/cli/keys.js.map +1 -1
  185. package/dist/cli/legacy/index.d.ts +25 -0
  186. package/dist/cli/legacy/index.d.ts.map +1 -0
  187. package/dist/cli/legacy/index.js +37 -0
  188. package/dist/cli/legacy/index.js.map +1 -0
  189. package/dist/cli/legacy/routes/index.d.ts +8 -0
  190. package/dist/cli/legacy/routes/index.d.ts.map +1 -0
  191. package/dist/cli/legacy/routes/index.js +23 -0
  192. package/dist/cli/legacy/routes/index.js.map +1 -0
  193. package/dist/cli/legacy/routes/scene-01.d.ts +12 -0
  194. package/dist/cli/legacy/routes/scene-01.d.ts.map +1 -0
  195. package/dist/cli/legacy/routes/scene-01.js +2 -0
  196. package/dist/cli/legacy/routes/scene-01.js.map +1 -0
  197. package/dist/cli/legacy/routes/scene-02.d.ts +18 -0
  198. package/dist/cli/legacy/routes/scene-02.d.ts.map +1 -0
  199. package/dist/cli/legacy/routes/scene-02.js +2 -0
  200. package/dist/cli/legacy/routes/scene-02.js.map +1 -0
  201. package/dist/cli/legacy/routes/scene-03.d.ts +13 -0
  202. package/dist/cli/legacy/routes/scene-03.d.ts.map +1 -0
  203. package/dist/cli/legacy/routes/scene-03.js +2 -0
  204. package/dist/cli/legacy/routes/scene-03.js.map +1 -0
  205. package/dist/cli/legacy/routes/scene-04.d.ts +10 -0
  206. package/dist/cli/legacy/routes/scene-04.d.ts.map +1 -0
  207. package/dist/cli/legacy/routes/scene-04.js +2 -0
  208. package/dist/cli/legacy/routes/scene-04.js.map +1 -0
  209. package/dist/cli/legacy/routes/scene-05.d.ts +10 -0
  210. package/dist/cli/legacy/routes/scene-05.d.ts.map +1 -0
  211. package/dist/cli/legacy/routes/scene-05.js +2 -0
  212. package/dist/cli/legacy/routes/scene-05.js.map +1 -0
  213. package/dist/cli/legacy/routes/scene-06.d.ts +10 -0
  214. package/dist/cli/legacy/routes/scene-06.d.ts.map +1 -0
  215. package/dist/cli/legacy/routes/scene-06.js +2 -0
  216. package/dist/cli/legacy/routes/scene-06.js.map +1 -0
  217. package/dist/cli/legacy/routes/scene-07.d.ts +10 -0
  218. package/dist/cli/legacy/routes/scene-07.d.ts.map +1 -0
  219. package/dist/cli/legacy/routes/scene-07.js +2 -0
  220. package/dist/cli/legacy/routes/scene-07.js.map +1 -0
  221. package/dist/cli/legacy/routes/scene-08.d.ts +12 -0
  222. package/dist/cli/legacy/routes/scene-08.d.ts.map +1 -0
  223. package/dist/cli/legacy/routes/scene-08.js +2 -0
  224. package/dist/cli/legacy/routes/scene-08.js.map +1 -0
  225. package/dist/cli/legacy/routes/scene-09.d.ts +12 -0
  226. package/dist/cli/legacy/routes/scene-09.d.ts.map +1 -0
  227. package/dist/cli/legacy/routes/scene-09.js +2 -0
  228. package/dist/cli/legacy/routes/scene-09.js.map +1 -0
  229. package/dist/cli/legacy/routes/scene-10.d.ts +10 -0
  230. package/dist/cli/legacy/routes/scene-10.d.ts.map +1 -0
  231. package/dist/cli/legacy/routes/scene-10.js +2 -0
  232. package/dist/cli/legacy/routes/scene-10.js.map +1 -0
  233. package/dist/cli/legacy/scene-01.d.ts +13 -0
  234. package/dist/cli/legacy/scene-01.d.ts.map +1 -0
  235. package/dist/cli/legacy/scene-01.js +2 -0
  236. package/dist/cli/legacy/scene-01.js.map +1 -0
  237. package/dist/cli/legacy/scene-02.d.ts +12 -0
  238. package/dist/cli/legacy/scene-02.d.ts.map +1 -0
  239. package/dist/cli/legacy/scene-02.js +2 -0
  240. package/dist/cli/legacy/scene-02.js.map +1 -0
  241. package/dist/cli/legacy/scene-03.d.ts +14 -0
  242. package/dist/cli/legacy/scene-03.d.ts.map +1 -0
  243. package/dist/cli/legacy/scene-03.js +2 -0
  244. package/dist/cli/legacy/scene-03.js.map +1 -0
  245. package/dist/cli/legacy/scene-04.d.ts +12 -0
  246. package/dist/cli/legacy/scene-04.d.ts.map +1 -0
  247. package/dist/cli/legacy/scene-04.js +2 -0
  248. package/dist/cli/legacy/scene-04.js.map +1 -0
  249. package/dist/cli/legacy/scene-05.d.ts +14 -0
  250. package/dist/cli/legacy/scene-05.d.ts.map +1 -0
  251. package/dist/cli/legacy/scene-05.js +2 -0
  252. package/dist/cli/legacy/scene-05.js.map +1 -0
  253. package/dist/cli/legacy/scene-06.d.ts +15 -0
  254. package/dist/cli/legacy/scene-06.d.ts.map +1 -0
  255. package/dist/cli/legacy/scene-06.js +2 -0
  256. package/dist/cli/legacy/scene-06.js.map +1 -0
  257. package/dist/cli/legacy/scene-07.d.ts +15 -0
  258. package/dist/cli/legacy/scene-07.d.ts.map +1 -0
  259. package/dist/cli/legacy/scene-07.js +2 -0
  260. package/dist/cli/legacy/scene-07.js.map +1 -0
  261. package/dist/cli/legacy/scene-08.d.ts +13 -0
  262. package/dist/cli/legacy/scene-08.d.ts.map +1 -0
  263. package/dist/cli/legacy/scene-08.js +2 -0
  264. package/dist/cli/legacy/scene-08.js.map +1 -0
  265. package/dist/cli/legacy/scene-09.d.ts +13 -0
  266. package/dist/cli/legacy/scene-09.d.ts.map +1 -0
  267. package/dist/cli/legacy/scene-09.js +2 -0
  268. package/dist/cli/legacy/scene-09.js.map +1 -0
  269. package/dist/cli/legacy/scene-10.d.ts +13 -0
  270. package/dist/cli/legacy/scene-10.d.ts.map +1 -0
  271. package/dist/cli/legacy/scene-10.js +2 -0
  272. package/dist/cli/legacy/scene-10.js.map +1 -0
  273. package/dist/cli/legacy/types.d.ts +16 -0
  274. package/dist/cli/legacy/types.d.ts.map +1 -0
  275. package/dist/cli/legacy/types.js +2 -0
  276. package/dist/cli/legacy/types.js.map +1 -0
  277. package/dist/cli/readArgs.d.ts +21 -0
  278. package/dist/cli/readArgs.d.ts.map +1 -0
  279. package/dist/cli/readArgs.js +72 -0
  280. package/dist/cli/readArgs.js.map +1 -0
  281. package/dist/cli/registry.d.ts +12 -0
  282. package/dist/cli/registry.d.ts.map +1 -0
  283. package/dist/cli/registry.js +38 -0
  284. package/dist/cli/registry.js.map +1 -0
  285. package/dist/cli/write.d.ts +17 -15
  286. package/dist/cli/write.d.ts.map +1 -1
  287. package/dist/cli/write.js +38 -902
  288. package/dist/cli/write.js.map +1 -1
  289. package/dist/diet/commands.d.ts +37 -0
  290. package/dist/diet/commands.d.ts.map +1 -0
  291. package/dist/diet/commands.js +44 -0
  292. package/dist/diet/commands.js.map +1 -0
  293. package/dist/diet/dietEngine.d.ts +79 -0
  294. package/dist/diet/dietEngine.d.ts.map +1 -0
  295. package/dist/diet/dietEngine.js +171 -0
  296. package/dist/diet/dietEngine.js.map +1 -0
  297. package/dist/diet/dietUi.d.ts +9 -0
  298. package/dist/diet/dietUi.d.ts.map +1 -0
  299. package/dist/diet/dietUi.js +45 -0
  300. package/dist/diet/dietUi.js.map +1 -0
  301. package/dist/diet/edit.d.ts +22 -0
  302. package/dist/diet/edit.d.ts.map +1 -0
  303. package/dist/diet/edit.js +96 -0
  304. package/dist/diet/edit.js.map +1 -0
  305. package/dist/diet/fieldLabels.d.ts +5 -0
  306. package/dist/diet/fieldLabels.d.ts.map +1 -0
  307. package/dist/diet/fieldLabels.js +44 -0
  308. package/dist/diet/fieldLabels.js.map +1 -0
  309. package/dist/diet/index.d.ts +26 -0
  310. package/dist/diet/index.d.ts.map +1 -0
  311. package/dist/diet/index.js +22 -0
  312. package/dist/diet/index.js.map +1 -0
  313. package/dist/diet/library.d.ts +20 -0
  314. package/dist/diet/library.d.ts.map +1 -0
  315. package/dist/diet/library.js +52 -0
  316. package/dist/diet/library.js.map +1 -0
  317. package/dist/diet/libraryDocs.d.ts +7 -0
  318. package/dist/diet/libraryDocs.d.ts.map +1 -0
  319. package/dist/diet/libraryDocs.js +361 -0
  320. package/dist/diet/libraryDocs.js.map +1 -0
  321. package/dist/diet/libraryPlate.d.ts +41 -0
  322. package/dist/diet/libraryPlate.d.ts.map +1 -0
  323. package/dist/diet/libraryPlate.js +57 -0
  324. package/dist/diet/libraryPlate.js.map +1 -0
  325. package/dist/diet/log.d.ts +18 -0
  326. package/dist/diet/log.d.ts.map +1 -0
  327. package/dist/diet/log.js +152 -0
  328. package/dist/diet/log.js.map +1 -0
  329. package/dist/diet/nutrition.d.ts +37 -0
  330. package/dist/diet/nutrition.d.ts.map +1 -0
  331. package/dist/diet/nutrition.js +135 -0
  332. package/dist/diet/nutrition.js.map +1 -0
  333. package/dist/diet/nutritionPort.d.ts +129 -0
  334. package/dist/diet/nutritionPort.d.ts.map +1 -0
  335. package/dist/diet/nutritionPort.js +246 -0
  336. package/dist/diet/nutritionPort.js.map +1 -0
  337. package/dist/diet/nutritionPortDocs.d.ts +106 -0
  338. package/dist/diet/nutritionPortDocs.d.ts.map +1 -0
  339. package/dist/diet/nutritionPortDocs.js +651 -0
  340. package/dist/diet/nutritionPortDocs.js.map +1 -0
  341. package/dist/diet/precheck.d.ts +7 -0
  342. package/dist/diet/precheck.d.ts.map +1 -0
  343. package/dist/diet/precheck.js +194 -0
  344. package/dist/diet/precheck.js.map +1 -0
  345. package/dist/diet/precheckLabel.d.ts +4 -0
  346. package/dist/diet/precheckLabel.d.ts.map +1 -0
  347. package/dist/diet/precheckLabel.js +191 -0
  348. package/dist/diet/precheckLabel.js.map +1 -0
  349. package/dist/diet/precheckParts.d.ts +49 -0
  350. package/dist/diet/precheckParts.d.ts.map +1 -0
  351. package/dist/diet/precheckParts.js +69 -0
  352. package/dist/diet/precheckParts.js.map +1 -0
  353. package/dist/diet/precheckPort.d.ts +82 -0
  354. package/dist/diet/precheckPort.d.ts.map +1 -0
  355. package/dist/diet/precheckPort.js +176 -0
  356. package/dist/diet/precheckPort.js.map +1 -0
  357. package/dist/diet/productImport.d.ts +28 -0
  358. package/dist/diet/productImport.d.ts.map +1 -0
  359. package/dist/diet/productImport.js +152 -0
  360. package/dist/diet/productImport.js.map +1 -0
  361. package/dist/diet/productStore.d.ts +62 -0
  362. package/dist/diet/productStore.d.ts.map +1 -0
  363. package/dist/diet/productStore.js +73 -0
  364. package/dist/diet/productStore.js.map +1 -0
  365. package/dist/diet/products.d.ts +15 -0
  366. package/dist/diet/products.d.ts.map +1 -0
  367. package/dist/diet/products.js +87 -0
  368. package/dist/diet/products.js.map +1 -0
  369. package/dist/diet/ranking.d.ts +18 -0
  370. package/dist/diet/ranking.d.ts.map +1 -0
  371. package/dist/diet/ranking.js +23 -0
  372. package/dist/diet/ranking.js.map +1 -0
  373. package/dist/diet/rankingDocs.d.ts +13 -0
  374. package/dist/diet/rankingDocs.d.ts.map +1 -0
  375. package/dist/diet/rankingDocs.js +341 -0
  376. package/dist/diet/rankingDocs.js.map +1 -0
  377. package/dist/diet/rankingPlate.d.ts +42 -0
  378. package/dist/diet/rankingPlate.d.ts.map +1 -0
  379. package/dist/diet/rankingPlate.js +96 -0
  380. package/dist/diet/rankingPlate.js.map +1 -0
  381. package/dist/diet/receipt.d.ts +34 -0
  382. package/dist/diet/receipt.d.ts.map +1 -0
  383. package/dist/diet/receipt.js +371 -0
  384. package/dist/diet/receipt.js.map +1 -0
  385. package/dist/diet/review.d.ts +36 -0
  386. package/dist/diet/review.d.ts.map +1 -0
  387. package/dist/diet/review.js +152 -0
  388. package/dist/diet/review.js.map +1 -0
  389. package/dist/diet/reviewDocs.d.ts +72 -0
  390. package/dist/diet/reviewDocs.d.ts.map +1 -0
  391. package/dist/diet/reviewDocs.js +312 -0
  392. package/dist/diet/reviewDocs.js.map +1 -0
  393. package/dist/diet/routes.d.ts +12 -0
  394. package/dist/diet/routes.d.ts.map +1 -0
  395. package/dist/diet/routes.js +108 -0
  396. package/dist/diet/routes.js.map +1 -0
  397. package/dist/diet/sourceStatsDocs.d.ts +3 -0
  398. package/dist/diet/sourceStatsDocs.d.ts.map +1 -0
  399. package/dist/diet/sourceStatsDocs.js +115 -0
  400. package/dist/diet/sourceStatsDocs.js.map +1 -0
  401. package/dist/diet/today.d.ts +14 -0
  402. package/dist/diet/today.d.ts.map +1 -0
  403. package/dist/diet/today.js +87 -0
  404. package/dist/diet/today.js.map +1 -0
  405. package/dist/diet/todayDocs.d.ts +53 -0
  406. package/dist/diet/todayDocs.d.ts.map +1 -0
  407. package/dist/diet/todayDocs.js +238 -0
  408. package/dist/diet/todayDocs.js.map +1 -0
  409. package/dist/exercise/cardio.d.ts +11 -0
  410. package/dist/exercise/cardio.d.ts.map +1 -0
  411. package/dist/exercise/cardio.js +14 -0
  412. package/dist/exercise/cardio.js.map +1 -0
  413. package/dist/exercise/categoryColors.d.ts +23 -0
  414. package/dist/exercise/categoryColors.d.ts.map +1 -0
  415. package/dist/exercise/categoryColors.js +28 -0
  416. package/dist/exercise/categoryColors.js.map +1 -0
  417. package/dist/exercise/commands.d.ts +20 -0
  418. package/dist/exercise/commands.d.ts.map +1 -0
  419. package/dist/exercise/commands.js +22 -0
  420. package/dist/exercise/commands.js.map +1 -0
  421. package/dist/exercise/distribution.d.ts +11 -0
  422. package/dist/exercise/distribution.d.ts.map +1 -0
  423. package/dist/exercise/distribution.js +14 -0
  424. package/dist/exercise/distribution.js.map +1 -0
  425. package/dist/exercise/edit.d.ts +22 -0
  426. package/dist/exercise/edit.d.ts.map +1 -0
  427. package/dist/exercise/edit.js +148 -0
  428. package/dist/exercise/edit.js.map +1 -0
  429. package/dist/exercise/exerciseStore.d.ts +87 -0
  430. package/dist/exercise/exerciseStore.d.ts.map +1 -0
  431. package/dist/exercise/exerciseStore.js +287 -0
  432. package/dist/exercise/exerciseStore.js.map +1 -0
  433. package/dist/exercise/fieldLabels.d.ts +5 -0
  434. package/dist/exercise/fieldLabels.d.ts.map +1 -0
  435. package/dist/exercise/fieldLabels.js +34 -0
  436. package/dist/exercise/fieldLabels.js.map +1 -0
  437. package/dist/exercise/goal.d.ts +16 -0
  438. package/dist/exercise/goal.d.ts.map +1 -0
  439. package/dist/exercise/goal.js +46 -0
  440. package/dist/exercise/goal.js.map +1 -0
  441. package/dist/exercise/index.d.ts +22 -0
  442. package/dist/exercise/index.d.ts.map +1 -0
  443. package/dist/exercise/index.js +22 -0
  444. package/dist/exercise/index.js.map +1 -0
  445. package/dist/exercise/log.d.ts +19 -0
  446. package/dist/exercise/log.d.ts.map +1 -0
  447. package/dist/exercise/log.js +102 -0
  448. package/dist/exercise/log.js.map +1 -0
  449. package/dist/exercise/precheck.d.ts +19 -0
  450. package/dist/exercise/precheck.d.ts.map +1 -0
  451. package/dist/exercise/precheck.js +127 -0
  452. package/dist/exercise/precheck.js.map +1 -0
  453. package/dist/exercise/recap.d.ts +11 -0
  454. package/dist/exercise/recap.d.ts.map +1 -0
  455. package/dist/exercise/recap.js +14 -0
  456. package/dist/exercise/recap.js.map +1 -0
  457. package/dist/exercise/receipt.d.ts +43 -0
  458. package/dist/exercise/receipt.d.ts.map +1 -0
  459. package/dist/exercise/receipt.js +401 -0
  460. package/dist/exercise/receipt.js.map +1 -0
  461. package/dist/exercise/records.d.ts +60 -0
  462. package/dist/exercise/records.d.ts.map +1 -0
  463. package/dist/exercise/records.js +317 -0
  464. package/dist/exercise/records.js.map +1 -0
  465. package/dist/exercise/routes.d.ts +21 -0
  466. package/dist/exercise/routes.d.ts.map +1 -0
  467. package/dist/exercise/routes.js +38 -0
  468. package/dist/exercise/routes.js.map +1 -0
  469. package/dist/exercise/sportUi.d.ts +77 -0
  470. package/dist/exercise/sportUi.d.ts.map +1 -0
  471. package/dist/exercise/sportUi.js +268 -0
  472. package/dist/exercise/sportUi.js.map +1 -0
  473. package/dist/exercise/strength.d.ts +11 -0
  474. package/dist/exercise/strength.d.ts.map +1 -0
  475. package/dist/exercise/strength.js +14 -0
  476. package/dist/exercise/strength.js.map +1 -0
  477. package/dist/exercise/trend.d.ts +11 -0
  478. package/dist/exercise/trend.d.ts.map +1 -0
  479. package/dist/exercise/trend.js +14 -0
  480. package/dist/exercise/trend.js.map +1 -0
  481. package/dist/fetch/audit.d.ts +2 -0
  482. package/dist/fetch/audit.d.ts.map +1 -1
  483. package/dist/fetch/audit.js +11 -10
  484. package/dist/fetch/audit.js.map +1 -1
  485. package/dist/fetch/batch.js +1 -1
  486. package/dist/fetch/batch.js.map +1 -1
  487. package/dist/fetch/body.d.ts +104 -1
  488. package/dist/fetch/body.d.ts.map +1 -1
  489. package/dist/fetch/body.js +200 -31
  490. package/dist/fetch/body.js.map +1 -1
  491. package/dist/fetch/cli.js +11 -5
  492. package/dist/fetch/cli.js.map +1 -1
  493. package/dist/fetch/exercise.d.ts.map +1 -1
  494. package/dist/fetch/exercise.js +7 -3
  495. package/dist/fetch/exercise.js.map +1 -1
  496. package/dist/fetch/index.d.ts +5 -7
  497. package/dist/fetch/index.d.ts.map +1 -1
  498. package/dist/fetch/index.js +7 -6
  499. package/dist/fetch/index.js.map +1 -1
  500. package/dist/fetch/nutritionGoal.d.ts.map +1 -1
  501. package/dist/fetch/nutritionGoal.js +15 -4
  502. package/dist/fetch/nutritionGoal.js.map +1 -1
  503. package/dist/fetch/profile.d.ts +24 -3
  504. package/dist/fetch/profile.d.ts.map +1 -1
  505. package/dist/fetch/profile.js +43 -14
  506. package/dist/fetch/profile.js.map +1 -1
  507. package/dist/fetch/xunji-catalog.d.ts +5 -0
  508. package/dist/fetch/xunji-catalog.d.ts.map +1 -1
  509. package/dist/fetch/xunji-catalog.js +22 -1
  510. package/dist/fetch/xunji-catalog.js.map +1 -1
  511. package/dist/goal/commands.d.ts +31 -0
  512. package/dist/goal/commands.d.ts.map +1 -0
  513. package/dist/goal/commands.js +20 -0
  514. package/dist/goal/commands.js.map +1 -0
  515. package/dist/goal/goalExtraPlate.d.ts +45 -0
  516. package/dist/goal/goalExtraPlate.d.ts.map +1 -0
  517. package/dist/goal/goalExtraPlate.js +95 -0
  518. package/dist/goal/goalExtraPlate.js.map +1 -0
  519. package/dist/goal/goalHistory.d.ts +24 -0
  520. package/dist/goal/goalHistory.d.ts.map +1 -0
  521. package/dist/goal/goalHistory.js +51 -0
  522. package/dist/goal/goalHistory.js.map +1 -0
  523. package/dist/goal/goalPlate.d.ts +24 -0
  524. package/dist/goal/goalPlate.d.ts.map +1 -0
  525. package/dist/goal/goalPlate.js +34 -0
  526. package/dist/goal/goalPlate.js.map +1 -0
  527. package/dist/goal/goalPlates.d.ts +66 -0
  528. package/dist/goal/goalPlates.d.ts.map +1 -0
  529. package/dist/goal/goalPlates.js +114 -0
  530. package/dist/goal/goalPlates.js.map +1 -0
  531. package/dist/goal/goalRecommendDoc.d.ts +6 -0
  532. package/dist/goal/goalRecommendDoc.d.ts.map +1 -0
  533. package/dist/goal/goalRecommendDoc.js +107 -0
  534. package/dist/goal/goalRecommendDoc.js.map +1 -0
  535. package/dist/goal/goalStore.d.ts +56 -0
  536. package/dist/goal/goalStore.d.ts.map +1 -0
  537. package/dist/goal/goalStore.js +111 -0
  538. package/dist/goal/goalStore.js.map +1 -0
  539. package/dist/goal/goalWeightDoc.d.ts +7 -0
  540. package/dist/goal/goalWeightDoc.d.ts.map +1 -0
  541. package/dist/goal/goalWeightDoc.js +107 -0
  542. package/dist/goal/goalWeightDoc.js.map +1 -0
  543. package/dist/goal/index.d.ts +17 -0
  544. package/dist/goal/index.d.ts.map +1 -0
  545. package/dist/goal/index.js +21 -0
  546. package/dist/goal/index.js.map +1 -0
  547. package/dist/goal/nutritionGoal.d.ts +115 -0
  548. package/dist/goal/nutritionGoal.d.ts.map +1 -0
  549. package/dist/goal/nutritionGoal.js +165 -0
  550. package/dist/goal/nutritionGoal.js.map +1 -0
  551. package/dist/goal/precheck.d.ts +14 -0
  552. package/dist/goal/precheck.d.ts.map +1 -0
  553. package/dist/goal/precheck.js +213 -0
  554. package/dist/goal/precheck.js.map +1 -0
  555. package/dist/goal/read.d.ts +53 -0
  556. package/dist/goal/read.d.ts.map +1 -0
  557. package/dist/goal/read.js +154 -0
  558. package/dist/goal/read.js.map +1 -0
  559. package/dist/goal/receipt.d.ts +38 -0
  560. package/dist/goal/receipt.d.ts.map +1 -0
  561. package/dist/goal/receipt.js +290 -0
  562. package/dist/goal/receipt.js.map +1 -0
  563. package/dist/goal/resultDocs.d.ts +23 -0
  564. package/dist/goal/resultDocs.d.ts.map +1 -0
  565. package/dist/goal/resultDocs.js +279 -0
  566. package/dist/goal/resultDocs.js.map +1 -0
  567. package/dist/goal/routes.d.ts +12 -0
  568. package/dist/goal/routes.d.ts.map +1 -0
  569. package/dist/goal/routes.js +29 -0
  570. package/dist/goal/routes.js.map +1 -0
  571. package/dist/goal/set.d.ts +97 -0
  572. package/dist/goal/set.d.ts.map +1 -0
  573. package/dist/goal/set.js +103 -0
  574. package/dist/goal/set.js.map +1 -0
  575. package/dist/goal/write.d.ts +30 -0
  576. package/dist/goal/write.d.ts.map +1 -0
  577. package/dist/goal/write.js +102 -0
  578. package/dist/goal/write.js.map +1 -0
  579. package/dist/help-missing.json +35 -0
  580. package/dist/home/commands.d.ts +11 -0
  581. package/dist/home/commands.d.ts.map +1 -0
  582. package/dist/home/commands.js +8 -0
  583. package/dist/home/commands.js.map +1 -0
  584. package/dist/home/exercise.d.ts +27 -0
  585. package/dist/home/exercise.d.ts.map +1 -0
  586. package/dist/home/exercise.js +60 -0
  587. package/dist/home/exercise.js.map +1 -0
  588. package/dist/home/goalProgressDocs.d.ts +27 -0
  589. package/dist/home/goalProgressDocs.d.ts.map +1 -0
  590. package/dist/home/goalProgressDocs.js +363 -0
  591. package/dist/home/goalProgressDocs.js.map +1 -0
  592. package/dist/home/home.d.ts +38 -0
  593. package/dist/home/home.d.ts.map +1 -0
  594. package/dist/home/home.js +78 -0
  595. package/dist/home/home.js.map +1 -0
  596. package/dist/home/homeDocs.d.ts +8 -0
  597. package/dist/home/homeDocs.d.ts.map +1 -0
  598. package/dist/home/homeDocs.js +307 -0
  599. package/dist/home/homeDocs.js.map +1 -0
  600. package/dist/home/homeViewParts.d.ts +42 -0
  601. package/dist/home/homeViewParts.d.ts.map +1 -0
  602. package/dist/home/homeViewParts.js +316 -0
  603. package/dist/home/homeViewParts.js.map +1 -0
  604. package/dist/home/index.d.ts +14 -0
  605. package/dist/home/index.d.ts.map +1 -0
  606. package/dist/home/index.js +13 -0
  607. package/dist/home/index.js.map +1 -0
  608. package/dist/home/routes.d.ts +10 -0
  609. package/dist/home/routes.d.ts.map +1 -0
  610. package/dist/home/routes.js +47 -0
  611. package/dist/home/routes.js.map +1 -0
  612. package/dist/home/today.d.ts +50 -0
  613. package/dist/home/today.d.ts.map +1 -0
  614. package/dist/home/today.js +255 -0
  615. package/dist/home/today.js.map +1 -0
  616. package/dist/index.d.ts +2 -0
  617. package/dist/index.d.ts.map +1 -1
  618. package/dist/index.js +3 -0
  619. package/dist/index.js.map +1 -1
  620. package/dist/migrate/migrate.js +1 -1
  621. package/dist/output.d.ts +31 -16
  622. package/dist/output.d.ts.map +1 -1
  623. package/dist/output.js +118 -143
  624. package/dist/output.js.map +1 -1
  625. package/dist/photo/commands.d.ts +55 -0
  626. package/dist/photo/commands.d.ts.map +1 -0
  627. package/dist/photo/commands.js +25 -0
  628. package/dist/photo/commands.js.map +1 -0
  629. package/dist/photo/compare.d.ts +24 -0
  630. package/dist/photo/compare.d.ts.map +1 -0
  631. package/dist/photo/compare.js +48 -0
  632. package/dist/photo/compare.js.map +1 -0
  633. package/dist/photo/compareDoc.d.ts +5 -0
  634. package/dist/photo/compareDoc.d.ts.map +1 -0
  635. package/dist/photo/compareDoc.js +221 -0
  636. package/dist/photo/compareDoc.js.map +1 -0
  637. package/dist/photo/dir.d.ts +5 -0
  638. package/dist/photo/dir.d.ts.map +1 -0
  639. package/dist/photo/dir.js +22 -0
  640. package/dist/photo/dir.js.map +1 -0
  641. package/dist/photo/gallery.d.ts +16 -0
  642. package/dist/photo/gallery.d.ts.map +1 -0
  643. package/dist/photo/gallery.js +45 -0
  644. package/dist/photo/gallery.js.map +1 -0
  645. package/dist/photo/galleryDoc.d.ts +12 -0
  646. package/dist/photo/galleryDoc.d.ts.map +1 -0
  647. package/dist/photo/galleryDoc.js +291 -0
  648. package/dist/photo/galleryDoc.js.map +1 -0
  649. package/dist/photo/gif.d.ts +28 -0
  650. package/dist/photo/gif.d.ts.map +1 -0
  651. package/dist/photo/gif.js +281 -0
  652. package/dist/photo/gif.js.map +1 -0
  653. package/dist/photo/gifDoc.d.ts +52 -0
  654. package/dist/photo/gifDoc.d.ts.map +1 -0
  655. package/dist/photo/gifDoc.js +311 -0
  656. package/dist/photo/gifDoc.js.map +1 -0
  657. package/dist/photo/help.d.ts +4 -0
  658. package/dist/photo/help.d.ts.map +1 -0
  659. package/dist/photo/help.js +87 -0
  660. package/dist/photo/help.js.map +1 -0
  661. package/dist/photo/helpCenter.d.ts +137 -0
  662. package/dist/photo/helpCenter.d.ts.map +1 -0
  663. package/dist/photo/helpCenter.js +475 -0
  664. package/dist/photo/helpCenter.js.map +1 -0
  665. package/dist/photo/helpDoc.d.ts +5 -0
  666. package/dist/photo/helpDoc.d.ts.map +1 -0
  667. package/dist/photo/helpDoc.js +205 -0
  668. package/dist/photo/helpDoc.js.map +1 -0
  669. package/dist/photo/helpDocContent.d.ts +77 -0
  670. package/dist/photo/helpDocContent.d.ts.map +1 -0
  671. package/dist/photo/helpDocContent.js +120 -0
  672. package/dist/photo/helpDocContent.js.map +1 -0
  673. package/dist/photo/helpDocCss.d.ts +5 -0
  674. package/dist/photo/helpDocCss.d.ts.map +1 -0
  675. package/dist/photo/helpDocCss.js +119 -0
  676. package/dist/photo/helpDocCss.js.map +1 -0
  677. package/dist/photo/helpFile.d.ts +26 -0
  678. package/dist/photo/helpFile.d.ts.map +1 -0
  679. package/dist/photo/helpFile.js +90 -0
  680. package/dist/photo/helpFile.js.map +1 -0
  681. package/dist/photo/helpLookup.d.ts +18 -0
  682. package/dist/photo/helpLookup.d.ts.map +1 -0
  683. package/dist/photo/helpLookup.js +58 -0
  684. package/dist/photo/helpLookup.js.map +1 -0
  685. package/dist/photo/helpPaths.d.ts +22 -0
  686. package/dist/photo/helpPaths.d.ts.map +1 -0
  687. package/dist/photo/helpPaths.js +22 -0
  688. package/dist/photo/helpPaths.js.map +1 -0
  689. package/dist/photo/index.d.ts +17 -0
  690. package/dist/photo/index.d.ts.map +1 -0
  691. package/dist/photo/index.js +21 -0
  692. package/dist/photo/index.js.map +1 -0
  693. package/dist/photo/manage.d.ts +13 -0
  694. package/dist/photo/manage.d.ts.map +1 -0
  695. package/dist/photo/manage.js +64 -0
  696. package/dist/photo/manage.js.map +1 -0
  697. package/dist/photo/photo.d.ts +118 -0
  698. package/dist/photo/photo.d.ts.map +1 -0
  699. package/dist/photo/photo.js +279 -0
  700. package/dist/photo/photo.js.map +1 -0
  701. package/dist/photo/photoThumb.d.ts +38 -0
  702. package/dist/photo/photoThumb.d.ts.map +1 -0
  703. package/dist/photo/photoThumb.js +83 -0
  704. package/dist/photo/photoThumb.js.map +1 -0
  705. package/dist/photo/photoUi.d.ts +39 -0
  706. package/dist/photo/photoUi.d.ts.map +1 -0
  707. package/dist/photo/photoUi.js +233 -0
  708. package/dist/photo/photoUi.js.map +1 -0
  709. package/dist/photo/photos.d.ts +76 -0
  710. package/dist/photo/photos.d.ts.map +1 -0
  711. package/dist/photo/photos.js +193 -0
  712. package/dist/photo/photos.js.map +1 -0
  713. package/dist/photo/picker.d.ts +41 -0
  714. package/dist/photo/picker.d.ts.map +1 -0
  715. package/dist/photo/picker.js +132 -0
  716. package/dist/photo/picker.js.map +1 -0
  717. package/dist/photo/pickerDoc.d.ts +12 -0
  718. package/dist/photo/pickerDoc.d.ts.map +1 -0
  719. package/dist/photo/pickerDoc.js +231 -0
  720. package/dist/photo/pickerDoc.js.map +1 -0
  721. package/dist/photo/receipt.d.ts +23 -0
  722. package/dist/photo/receipt.d.ts.map +1 -0
  723. package/dist/photo/receipt.js +331 -0
  724. package/dist/photo/receipt.js.map +1 -0
  725. package/dist/photo/receiptUi.d.ts +42 -0
  726. package/dist/photo/receiptUi.d.ts.map +1 -0
  727. package/dist/photo/receiptUi.js +147 -0
  728. package/dist/photo/receiptUi.js.map +1 -0
  729. package/dist/photo/routes.d.ts +10 -0
  730. package/dist/photo/routes.d.ts.map +1 -0
  731. package/dist/photo/routes.js +29 -0
  732. package/dist/photo/routes.js.map +1 -0
  733. package/dist/photo/store.d.ts +10 -0
  734. package/dist/photo/store.d.ts.map +1 -0
  735. package/dist/photo/store.js +44 -0
  736. package/dist/photo/store.js.map +1 -0
  737. package/dist/photo/viewerDoc.d.ts +5 -0
  738. package/dist/photo/viewerDoc.d.ts.map +1 -0
  739. package/dist/photo/viewerDoc.js +255 -0
  740. package/dist/photo/viewerDoc.js.map +1 -0
  741. package/dist/photo/wizard.d.ts +15 -0
  742. package/dist/photo/wizard.d.ts.map +1 -0
  743. package/dist/photo/wizard.js +25 -0
  744. package/dist/photo/wizard.js.map +1 -0
  745. package/dist/photo/wizardUi.d.ts +24 -0
  746. package/dist/photo/wizardUi.d.ts.map +1 -0
  747. package/dist/photo/wizardUi.js +101 -0
  748. package/dist/photo/wizardUi.js.map +1 -0
  749. package/dist/profile/commands.d.ts +28 -0
  750. package/dist/profile/commands.d.ts.map +1 -0
  751. package/dist/profile/commands.js +10 -0
  752. package/dist/profile/commands.js.map +1 -0
  753. package/dist/profile/index.d.ts +23 -0
  754. package/dist/profile/index.d.ts.map +1 -0
  755. package/dist/profile/index.js +22 -0
  756. package/dist/profile/index.js.map +1 -0
  757. package/dist/profile/labels.d.ts +10 -0
  758. package/dist/profile/labels.d.ts.map +1 -0
  759. package/dist/profile/labels.js +52 -0
  760. package/dist/profile/labels.js.map +1 -0
  761. package/dist/profile/read.d.ts +13 -0
  762. package/dist/profile/read.d.ts.map +1 -0
  763. package/dist/profile/read.js +24 -0
  764. package/dist/profile/read.js.map +1 -0
  765. package/dist/profile/receipt.d.ts +10 -0
  766. package/dist/profile/receipt.d.ts.map +1 -0
  767. package/dist/profile/receipt.js +19 -0
  768. package/dist/profile/receipt.js.map +1 -0
  769. package/dist/profile/routes.d.ts +8 -0
  770. package/dist/profile/routes.d.ts.map +1 -0
  771. package/dist/profile/routes.js +9 -0
  772. package/dist/profile/routes.js.map +1 -0
  773. package/dist/profile/setup.d.ts +67 -0
  774. package/dist/profile/setup.d.ts.map +1 -0
  775. package/dist/profile/setup.js +396 -0
  776. package/dist/profile/setup.js.map +1 -0
  777. package/dist/profile/update.d.ts +5 -0
  778. package/dist/profile/update.d.ts.map +1 -0
  779. package/dist/profile/update.js +85 -0
  780. package/dist/profile/update.js.map +1 -0
  781. package/dist/profile/view.d.ts +64 -0
  782. package/dist/profile/view.d.ts.map +1 -0
  783. package/dist/profile/view.js +204 -0
  784. package/dist/profile/view.js.map +1 -0
  785. package/dist/profile/write.d.ts +16 -0
  786. package/dist/profile/write.d.ts.map +1 -0
  787. package/dist/profile/write.js +75 -0
  788. package/dist/profile/write.js.map +1 -0
  789. package/dist/render/analysisPlate.d.ts +1 -1
  790. package/dist/render/analysisPlate.d.ts.map +1 -1
  791. package/dist/render/analysisPlate.js +1 -1
  792. package/dist/render/analysisPlate.js.map +1 -1
  793. package/dist/render/dietDocs.d.ts +19 -19
  794. package/dist/render/dietDocs.d.ts.map +1 -1
  795. package/dist/render/dietDocs.js +173 -435
  796. package/dist/render/dietDocs.js.map +1 -1
  797. package/dist/render/exercisePort.d.ts +3 -1
  798. package/dist/render/exercisePort.d.ts.map +1 -1
  799. package/dist/render/exercisePort.js +4 -3
  800. package/dist/render/exercisePort.js.map +1 -1
  801. package/dist/render/goalExtra.d.ts.map +1 -1
  802. package/dist/render/goalExtra.js +2 -1
  803. package/dist/render/goalExtra.js.map +1 -1
  804. package/dist/render/goalPlate.d.ts +2 -2
  805. package/dist/render/goalPlate.d.ts.map +1 -1
  806. package/dist/render/goalPlate.js +3 -3
  807. package/dist/render/goalPlate.js.map +1 -1
  808. package/dist/render/helpCenter.d.ts.map +1 -1
  809. package/dist/render/helpCenter.js +4 -2
  810. package/dist/render/helpCenter.js.map +1 -1
  811. package/dist/render/helpFile.d.ts +26 -0
  812. package/dist/render/helpFile.d.ts.map +1 -0
  813. package/dist/render/helpFile.js +60 -0
  814. package/dist/render/helpFile.js.map +1 -0
  815. package/dist/render/helpPaths.d.ts +22 -0
  816. package/dist/render/helpPaths.d.ts.map +1 -0
  817. package/dist/render/helpPaths.js +22 -0
  818. package/dist/render/helpPaths.js.map +1 -0
  819. package/dist/render/helpShell.d.ts +16 -0
  820. package/dist/render/helpShell.d.ts.map +1 -0
  821. package/dist/render/helpShell.js +27 -0
  822. package/dist/render/helpShell.js.map +1 -0
  823. package/dist/render/html.d.ts +37 -21
  824. package/dist/render/html.d.ts.map +1 -1
  825. package/dist/render/html.js +37 -45
  826. package/dist/render/html.js.map +1 -1
  827. package/dist/render/index.d.ts +37 -33
  828. package/dist/render/index.d.ts.map +1 -1
  829. package/dist/render/index.js +32 -18
  830. package/dist/render/index.js.map +1 -1
  831. package/dist/render/insightPlate.d.ts +17 -0
  832. package/dist/render/insightPlate.d.ts.map +1 -1
  833. package/dist/render/insightPlate.js +109 -1
  834. package/dist/render/insightPlate.js.map +1 -1
  835. package/dist/render/nutritionPortDocs.d.ts.map +1 -1
  836. package/dist/render/nutritionPortDocs.js +41 -48
  837. package/dist/render/nutritionPortDocs.js.map +1 -1
  838. package/dist/render/pageChromeCss.d.ts +24 -0
  839. package/dist/render/pageChromeCss.d.ts.map +1 -0
  840. package/dist/render/pageChromeCss.js +45 -0
  841. package/dist/render/pageChromeCss.js.map +1 -0
  842. package/dist/render/planCopyBlock.d.ts +32 -0
  843. package/dist/render/planCopyBlock.d.ts.map +1 -0
  844. package/dist/render/planCopyBlock.js +34 -0
  845. package/dist/render/planCopyBlock.js.map +1 -0
  846. package/dist/render/planEditor.d.ts +94 -0
  847. package/dist/render/planEditor.d.ts.map +1 -0
  848. package/dist/render/planEditor.js +38 -0
  849. package/dist/render/planEditor.js.map +1 -0
  850. package/dist/render/planEditorCss.d.ts +13 -0
  851. package/dist/render/planEditorCss.d.ts.map +1 -0
  852. package/dist/render/planEditorCss.js +140 -0
  853. package/dist/render/planEditorCss.js.map +1 -0
  854. package/dist/render/planEditorDocs.d.ts +7 -0
  855. package/dist/render/planEditorDocs.d.ts.map +1 -0
  856. package/dist/render/planEditorDocs.js +56 -0
  857. package/dist/render/planEditorDocs.js.map +1 -0
  858. package/dist/render/planEditorPort.d.ts +45 -0
  859. package/dist/render/planEditorPort.d.ts.map +1 -0
  860. package/dist/render/planEditorPort.js +217 -0
  861. package/dist/render/planEditorPort.js.map +1 -0
  862. package/dist/render/planEditorRuntime.d.ts +15 -0
  863. package/dist/render/planEditorRuntime.d.ts.map +1 -0
  864. package/dist/render/planEditorRuntime.js +427 -0
  865. package/dist/render/planEditorRuntime.js.map +1 -0
  866. package/dist/render/planPlate.d.ts +84 -4
  867. package/dist/render/planPlate.d.ts.map +1 -1
  868. package/dist/render/planPlate.js +155 -7
  869. package/dist/render/planPlate.js.map +1 -1
  870. package/dist/render/planWizardCss.d.ts +21 -0
  871. package/dist/render/planWizardCss.d.ts.map +1 -0
  872. package/dist/render/planWizardCss.js +121 -0
  873. package/dist/render/planWizardCss.js.map +1 -0
  874. package/dist/render/planWizardDocs.d.ts +8 -0
  875. package/dist/render/planWizardDocs.d.ts.map +1 -0
  876. package/dist/render/planWizardDocs.js +151 -0
  877. package/dist/render/planWizardDocs.js.map +1 -0
  878. package/dist/render/receipt.d.ts +4 -0
  879. package/dist/render/receipt.d.ts.map +1 -1
  880. package/dist/render/receipt.js +4 -1
  881. package/dist/render/receipt.js.map +1 -1
  882. package/dist/render/reviewDocs.d.ts +3 -0
  883. package/dist/render/reviewDocs.d.ts.map +1 -0
  884. package/dist/render/reviewDocs.js +222 -0
  885. package/dist/render/reviewDocs.js.map +1 -0
  886. package/dist/render/reviewDocsCss.d.ts +5 -0
  887. package/dist/render/reviewDocsCss.d.ts.map +1 -0
  888. package/dist/render/reviewDocsCss.js +128 -0
  889. package/dist/render/reviewDocsCss.js.map +1 -0
  890. package/dist/render/sportDocs.d.ts +17 -12
  891. package/dist/render/sportDocs.d.ts.map +1 -1
  892. package/dist/render/sportDocs.js +370 -497
  893. package/dist/render/sportDocs.js.map +1 -1
  894. package/dist/render/sportPortDocs.d.ts +3 -2
  895. package/dist/render/sportPortDocs.d.ts.map +1 -1
  896. package/dist/render/sportPortDocs.js +825 -397
  897. package/dist/render/sportPortDocs.js.map +1 -1
  898. package/dist/render/trendDocs.d.ts +16 -6
  899. package/dist/render/trendDocs.d.ts.map +1 -1
  900. package/dist/render/trendDocs.js +310 -262
  901. package/dist/render/trendDocs.js.map +1 -1
  902. package/dist/render/trendMiscPort.d.ts +9 -24
  903. package/dist/render/trendMiscPort.d.ts.map +1 -1
  904. package/dist/render/trendMiscPort.js +7 -30
  905. package/dist/render/trendMiscPort.js.map +1 -1
  906. package/dist/render/trendMiscPortDocs.d.ts +1 -2
  907. package/dist/render/trendMiscPortDocs.d.ts.map +1 -1
  908. package/dist/render/trendMiscPortDocs.js +303 -133
  909. package/dist/render/trendMiscPortDocs.js.map +1 -1
  910. package/dist/render/trendPredictDocs.d.ts +16 -0
  911. package/dist/render/trendPredictDocs.d.ts.map +1 -0
  912. package/dist/render/trendPredictDocs.js +1131 -0
  913. package/dist/render/trendPredictDocs.js.map +1 -0
  914. package/dist/render/wizardPort.d.ts +9 -62
  915. package/dist/render/wizardPort.d.ts.map +1 -1
  916. package/dist/render/wizardPort.js +20 -180
  917. package/dist/render/wizardPort.js.map +1 -1
  918. package/dist/render/wizardPortDocs.d.ts +5 -5
  919. package/dist/render/wizardPortDocs.d.ts.map +1 -1
  920. package/dist/render/wizardPortDocs.js +282 -234
  921. package/dist/render/wizardPortDocs.js.map +1 -1
  922. package/dist/render/workoutMovementTable.d.ts +10 -0
  923. package/dist/render/workoutMovementTable.d.ts.map +1 -0
  924. package/dist/render/workoutMovementTable.js +153 -0
  925. package/dist/render/workoutMovementTable.js.map +1 -0
  926. package/dist/render/workoutPlanCss.d.ts +15 -0
  927. package/dist/render/workoutPlanCss.d.ts.map +1 -0
  928. package/dist/render/workoutPlanCss.js +217 -0
  929. package/dist/render/workoutPlanCss.js.map +1 -0
  930. package/dist/render/workoutPlanDocs.d.ts +23 -0
  931. package/dist/render/workoutPlanDocs.d.ts.map +1 -0
  932. package/dist/render/workoutPlanDocs.js +244 -0
  933. package/dist/render/workoutPlanDocs.js.map +1 -0
  934. package/dist/render/workoutPlanLook.d.ts +16 -0
  935. package/dist/render/workoutPlanLook.d.ts.map +1 -0
  936. package/dist/render/workoutPlanLook.js +135 -0
  937. package/dist/render/workoutPlanLook.js.map +1 -0
  938. package/dist/schema.d.ts.map +1 -1
  939. package/dist/schema.js +11 -0
  940. package/dist/schema.js.map +1 -1
  941. package/dist/shared/commandSpec.d.ts +73 -0
  942. package/dist/shared/commandSpec.d.ts.map +1 -0
  943. package/dist/shared/commandSpec.js +2 -0
  944. package/dist/shared/commandSpec.js.map +1 -0
  945. package/dist/shared/conclusionLine.d.ts +3 -0
  946. package/dist/shared/conclusionLine.d.ts.map +1 -0
  947. package/dist/shared/conclusionLine.js +21 -0
  948. package/dist/shared/conclusionLine.js.map +1 -0
  949. package/dist/shared/contentSuffix.d.ts +17 -0
  950. package/dist/shared/contentSuffix.d.ts.map +1 -0
  951. package/dist/shared/contentSuffix.js +125 -0
  952. package/dist/shared/contentSuffix.js.map +1 -0
  953. package/dist/shared/copyArea.d.ts +73 -0
  954. package/dist/shared/copyArea.d.ts.map +1 -0
  955. package/dist/shared/copyArea.js +144 -0
  956. package/dist/shared/copyArea.js.map +1 -0
  957. package/dist/shared/docPage.d.ts +42 -0
  958. package/dist/shared/docPage.d.ts.map +1 -0
  959. package/dist/shared/docPage.js +129 -0
  960. package/dist/shared/docPage.js.map +1 -0
  961. package/dist/shared/emptyGuide.d.ts +9 -0
  962. package/dist/shared/emptyGuide.d.ts.map +1 -0
  963. package/dist/shared/emptyGuide.js +31 -0
  964. package/dist/shared/emptyGuide.js.map +1 -0
  965. package/dist/shared/fieldLabel.d.ts +5 -0
  966. package/dist/shared/fieldLabel.d.ts.map +1 -0
  967. package/dist/shared/fieldLabel.js +42 -0
  968. package/dist/shared/fieldLabel.js.map +1 -0
  969. package/dist/shared/operationHead.d.ts +21 -0
  970. package/dist/shared/operationHead.d.ts.map +1 -0
  971. package/dist/shared/operationHead.js +73 -0
  972. package/dist/shared/operationHead.js.map +1 -0
  973. package/dist/shared/pageKit.d.ts +25 -0
  974. package/dist/shared/pageKit.d.ts.map +1 -0
  975. package/dist/shared/pageKit.js +56 -0
  976. package/dist/shared/pageKit.js.map +1 -0
  977. package/dist/shared/params.d.ts +54 -0
  978. package/dist/shared/params.d.ts.map +1 -0
  979. package/dist/shared/params.js +176 -0
  980. package/dist/shared/params.js.map +1 -0
  981. package/dist/shared/receiptParts.d.ts +9 -0
  982. package/dist/shared/receiptParts.d.ts.map +1 -0
  983. package/dist/shared/receiptParts.js +40 -0
  984. package/dist/shared/receiptParts.js.map +1 -0
  985. package/dist/shared/sceneEnvelope.d.ts +32 -0
  986. package/dist/shared/sceneEnvelope.d.ts.map +1 -0
  987. package/dist/shared/sceneEnvelope.js +12 -0
  988. package/dist/shared/sceneEnvelope.js.map +1 -0
  989. package/dist/shared/sourceLine.d.ts +10 -0
  990. package/dist/shared/sourceLine.d.ts.map +1 -0
  991. package/dist/shared/sourceLine.js +37 -0
  992. package/dist/shared/sourceLine.js.map +1 -0
  993. package/dist/shared/writeParts.d.ts +61 -0
  994. package/dist/shared/writeParts.d.ts.map +1 -0
  995. package/dist/shared/writeParts.js +79 -0
  996. package/dist/shared/writeParts.js.map +1 -0
  997. package/dist/triggers/help-lookup.d.ts +41 -5
  998. package/dist/triggers/help-lookup.d.ts.map +1 -1
  999. package/dist/triggers/help-lookup.js +100 -51
  1000. package/dist/triggers/help-lookup.js.map +1 -1
  1001. package/dist/triggers/index.js +1 -1
  1002. package/dist/triggers/routeSpec.d.ts +66 -0
  1003. package/dist/triggers/routeSpec.d.ts.map +1 -0
  1004. package/dist/triggers/routeSpec.js +21 -0
  1005. package/dist/triggers/routeSpec.js.map +1 -0
  1006. package/dist/triggers/routes.generated.d.ts +17 -0
  1007. package/dist/triggers/routes.generated.d.ts.map +1 -0
  1008. package/dist/triggers/routes.generated.js +519 -0
  1009. package/dist/triggers/routes.generated.js.map +1 -0
  1010. package/dist/triggers/routing.d.ts +17 -38
  1011. package/dist/triggers/routing.d.ts.map +1 -1
  1012. package/dist/triggers/routing.js +13 -527
  1013. package/dist/triggers/routing.js.map +1 -1
  1014. package/dist/triggers/scene-01-home.js +9 -9
  1015. package/dist/triggers/scene-01-home.js.map +1 -1
  1016. package/dist/triggers/scene-02-diet.js +62 -62
  1017. package/dist/triggers/scene-02-diet.js.map +1 -1
  1018. package/dist/triggers/scene-03-weight.js +54 -54
  1019. package/dist/triggers/scene-03-weight.js.map +1 -1
  1020. package/dist/triggers/scene-04-exercise.js +33 -33
  1021. package/dist/triggers/scene-04-exercise.js.map +1 -1
  1022. package/dist/triggers/scene-05-workout.js +32 -32
  1023. package/dist/triggers/scene-05-workout.js.map +1 -1
  1024. package/dist/triggers/scene-06-goal.d.ts +1 -1
  1025. package/dist/triggers/scene-06-goal.d.ts.map +1 -1
  1026. package/dist/triggers/scene-06-goal.js +25 -24
  1027. package/dist/triggers/scene-06-goal.js.map +1 -1
  1028. package/dist/triggers/scene-07-profile.js +4 -4
  1029. package/dist/triggers/scene-07-profile.js.map +1 -1
  1030. package/dist/triggers/scene-08-body.js +10 -10
  1031. package/dist/triggers/scene-08-body.js.map +1 -1
  1032. package/dist/triggers/scene-09-photo.js +10 -10
  1033. package/dist/triggers/scene-09-photo.js.map +1 -1
  1034. package/dist/triggers/scene-10-analysis.js +176 -176
  1035. package/dist/triggers/scene-10-analysis.js.map +1 -1
  1036. package/dist/triggers/wake-assets.d.ts +47 -0
  1037. package/dist/triggers/wake-assets.d.ts.map +1 -0
  1038. package/dist/triggers/wake-assets.js +4725 -0
  1039. package/dist/triggers/wake-assets.js.map +1 -0
  1040. package/dist/weight/commands.d.ts +21 -0
  1041. package/dist/weight/commands.d.ts.map +1 -0
  1042. package/dist/weight/commands.js +18 -0
  1043. package/dist/weight/commands.js.map +1 -0
  1044. package/dist/weight/compare.d.ts +60 -0
  1045. package/dist/weight/compare.d.ts.map +1 -0
  1046. package/dist/weight/compare.js +570 -0
  1047. package/dist/weight/compare.js.map +1 -0
  1048. package/dist/weight/edit.d.ts +13 -0
  1049. package/dist/weight/edit.d.ts.map +1 -0
  1050. package/dist/weight/edit.js +87 -0
  1051. package/dist/weight/edit.js.map +1 -0
  1052. package/dist/weight/fieldLabels.d.ts +5 -0
  1053. package/dist/weight/fieldLabels.d.ts.map +1 -0
  1054. package/dist/weight/fieldLabels.js +23 -0
  1055. package/dist/weight/fieldLabels.js.map +1 -0
  1056. package/dist/weight/figures.d.ts +87 -0
  1057. package/dist/weight/figures.d.ts.map +1 -0
  1058. package/dist/weight/figures.js +219 -0
  1059. package/dist/weight/figures.js.map +1 -0
  1060. package/dist/weight/history.d.ts +85 -0
  1061. package/dist/weight/history.d.ts.map +1 -0
  1062. package/dist/weight/history.js +771 -0
  1063. package/dist/weight/history.js.map +1 -0
  1064. package/dist/weight/index.d.ts +27 -0
  1065. package/dist/weight/index.d.ts.map +1 -0
  1066. package/dist/weight/index.js +23 -0
  1067. package/dist/weight/index.js.map +1 -0
  1068. package/dist/weight/log.d.ts +40 -0
  1069. package/dist/weight/log.d.ts.map +1 -0
  1070. package/dist/weight/log.js +355 -0
  1071. package/dist/weight/log.js.map +1 -0
  1072. package/dist/weight/logReceipt.d.ts +28 -0
  1073. package/dist/weight/logReceipt.d.ts.map +1 -0
  1074. package/dist/weight/logReceipt.js +259 -0
  1075. package/dist/weight/logReceipt.js.map +1 -0
  1076. package/dist/weight/plate.d.ts +77 -0
  1077. package/dist/weight/plate.d.ts.map +1 -0
  1078. package/dist/weight/plate.js +60 -0
  1079. package/dist/weight/plate.js.map +1 -0
  1080. package/dist/weight/plateDocs.d.ts +83 -0
  1081. package/dist/weight/plateDocs.d.ts.map +1 -0
  1082. package/dist/weight/plateDocs.js +179 -0
  1083. package/dist/weight/plateDocs.js.map +1 -0
  1084. package/dist/weight/receipt.d.ts +23 -0
  1085. package/dist/weight/receipt.d.ts.map +1 -0
  1086. package/dist/weight/receipt.js +178 -0
  1087. package/dist/weight/receipt.js.map +1 -0
  1088. package/dist/weight/records.d.ts +109 -0
  1089. package/dist/weight/records.d.ts.map +1 -0
  1090. package/dist/weight/records.js +210 -0
  1091. package/dist/weight/records.js.map +1 -0
  1092. package/dist/weight/review.d.ts +114 -0
  1093. package/dist/weight/review.d.ts.map +1 -0
  1094. package/dist/weight/review.js +651 -0
  1095. package/dist/weight/review.js.map +1 -0
  1096. package/dist/weight/routes.d.ts +7 -0
  1097. package/dist/weight/routes.d.ts.map +1 -0
  1098. package/dist/weight/routes.js +68 -0
  1099. package/dist/weight/routes.js.map +1 -0
  1100. package/dist/weight/volatility.d.ts +78 -0
  1101. package/dist/weight/volatility.d.ts.map +1 -0
  1102. package/dist/weight/volatility.js +203 -0
  1103. package/dist/weight/volatility.js.map +1 -0
  1104. package/dist/weight/volatilityDoc.d.ts +10 -0
  1105. package/dist/weight/volatilityDoc.d.ts.map +1 -0
  1106. package/dist/weight/volatilityDoc.js +395 -0
  1107. package/dist/weight/volatilityDoc.js.map +1 -0
  1108. package/dist/weight/weightCompare.d.ts +70 -0
  1109. package/dist/weight/weightCompare.d.ts.map +1 -0
  1110. package/dist/weight/weightCompare.js +221 -0
  1111. package/dist/weight/weightCompare.js.map +1 -0
  1112. package/dist/weight/weightCompare2.d.ts +66 -0
  1113. package/dist/weight/weightCompare2.d.ts.map +1 -0
  1114. package/dist/weight/weightCompare2.js +218 -0
  1115. package/dist/weight/weightCompare2.js.map +1 -0
  1116. package/dist/weight/weightCompare3.d.ts +18 -0
  1117. package/dist/weight/weightCompare3.d.ts.map +1 -0
  1118. package/dist/weight/weightCompare3.js +222 -0
  1119. package/dist/weight/weightCompare3.js.map +1 -0
  1120. package/dist/weight/weightUi.d.ts +114 -0
  1121. package/dist/weight/weightUi.d.ts.map +1 -0
  1122. package/dist/weight/weightUi.js +256 -0
  1123. package/dist/weight/weightUi.js.map +1 -0
  1124. package/dist/workout/commands.d.ts +29 -0
  1125. package/dist/workout/commands.d.ts.map +1 -0
  1126. package/dist/workout/commands.js +35 -0
  1127. package/dist/workout/commands.js.map +1 -0
  1128. package/dist/workout/contraindication.d.ts +11 -0
  1129. package/dist/workout/contraindication.d.ts.map +1 -0
  1130. package/dist/workout/contraindication.js +11 -0
  1131. package/dist/workout/contraindication.js.map +1 -0
  1132. package/dist/workout/dayPhrase.d.ts +13 -0
  1133. package/dist/workout/dayPhrase.d.ts.map +1 -0
  1134. package/dist/workout/dayPhrase.js +15 -0
  1135. package/dist/workout/dayPhrase.js.map +1 -0
  1136. package/dist/workout/fieldLabels.d.ts +5 -0
  1137. package/dist/workout/fieldLabels.d.ts.map +1 -0
  1138. package/dist/workout/fieldLabels.js +45 -0
  1139. package/dist/workout/fieldLabels.js.map +1 -0
  1140. package/dist/workout/index.d.ts +30 -0
  1141. package/dist/workout/index.d.ts.map +1 -0
  1142. package/dist/workout/index.js +34 -0
  1143. package/dist/workout/index.js.map +1 -0
  1144. package/dist/workout/land.d.ts +45 -0
  1145. package/dist/workout/land.d.ts.map +1 -0
  1146. package/dist/workout/land.js +280 -0
  1147. package/dist/workout/land.js.map +1 -0
  1148. package/dist/workout/landBatch.d.ts +60 -0
  1149. package/dist/workout/landBatch.d.ts.map +1 -0
  1150. package/dist/workout/landBatch.js +225 -0
  1151. package/dist/workout/landBatch.js.map +1 -0
  1152. package/dist/workout/landBatchPages.d.ts +31 -0
  1153. package/dist/workout/landBatchPages.d.ts.map +1 -0
  1154. package/dist/workout/landBatchPages.js +132 -0
  1155. package/dist/workout/landBatchPages.js.map +1 -0
  1156. package/dist/workout/landPages.d.ts +41 -0
  1157. package/dist/workout/landPages.d.ts.map +1 -0
  1158. package/dist/workout/landPages.js +153 -0
  1159. package/dist/workout/landPages.js.map +1 -0
  1160. package/dist/workout/landRunner.d.ts +42 -0
  1161. package/dist/workout/landRunner.d.ts.map +1 -0
  1162. package/dist/workout/landRunner.js +155 -0
  1163. package/dist/workout/landRunner.js.map +1 -0
  1164. package/dist/workout/movementType.d.ts +14 -0
  1165. package/dist/workout/movementType.d.ts.map +1 -0
  1166. package/dist/workout/movementType.js +16 -0
  1167. package/dist/workout/movementType.js.map +1 -0
  1168. package/dist/workout/plan.d.ts +21 -0
  1169. package/dist/workout/plan.d.ts.map +1 -0
  1170. package/dist/workout/plan.js +44 -0
  1171. package/dist/workout/plan.js.map +1 -0
  1172. package/dist/workout/planStore.d.ts +157 -0
  1173. package/dist/workout/planStore.d.ts.map +1 -0
  1174. package/dist/workout/planStore.js +282 -0
  1175. package/dist/workout/planStore.js.map +1 -0
  1176. package/dist/workout/precheckPrompt.d.ts +7 -0
  1177. package/dist/workout/precheckPrompt.d.ts.map +1 -0
  1178. package/dist/workout/precheckPrompt.js +35 -0
  1179. package/dist/workout/precheckPrompt.js.map +1 -0
  1180. package/dist/workout/progress.d.ts +12 -0
  1181. package/dist/workout/progress.d.ts.map +1 -0
  1182. package/dist/workout/progress.js +16 -0
  1183. package/dist/workout/progress.js.map +1 -0
  1184. package/dist/workout/receipt.d.ts +15 -0
  1185. package/dist/workout/receipt.d.ts.map +1 -0
  1186. package/dist/workout/receipt.js +128 -0
  1187. package/dist/workout/receipt.js.map +1 -0
  1188. package/dist/workout/review.d.ts +12 -0
  1189. package/dist/workout/review.d.ts.map +1 -0
  1190. package/dist/workout/review.js +15 -0
  1191. package/dist/workout/review.js.map +1 -0
  1192. package/dist/workout/routes.d.ts +13 -0
  1193. package/dist/workout/routes.d.ts.map +1 -0
  1194. package/dist/workout/routes.js +49 -0
  1195. package/dist/workout/routes.js.map +1 -0
  1196. package/dist/workout/wizard.d.ts +14 -0
  1197. package/dist/workout/wizard.d.ts.map +1 -0
  1198. package/dist/workout/wizard.js +20 -0
  1199. package/dist/workout/wizard.js.map +1 -0
  1200. package/dist/workout/write.d.ts +78 -0
  1201. package/dist/workout/write.d.ts.map +1 -0
  1202. package/dist/workout/write.js +607 -0
  1203. package/dist/workout/write.js.map +1 -0
  1204. package/dist/workout/xunjiBackfill.d.ts +36 -0
  1205. package/dist/workout/xunjiBackfill.d.ts.map +1 -0
  1206. package/dist/workout/xunjiBackfill.js +198 -0
  1207. package/dist/workout/xunjiBackfill.js.map +1 -0
  1208. package/dist/workout/xunjiPush.d.ts +33 -0
  1209. package/dist/workout/xunjiPush.d.ts.map +1 -0
  1210. package/dist/workout/xunjiPush.js +236 -0
  1211. package/dist/workout/xunjiPush.js.map +1 -0
  1212. package/dist/workout/xunjiRunner.d.ts +29 -0
  1213. package/dist/workout/xunjiRunner.d.ts.map +1 -0
  1214. package/dist/workout/xunjiRunner.js +110 -0
  1215. package/dist/workout/xunjiRunner.js.map +1 -0
  1216. package/dist/xunji/backfill.d.ts +63 -0
  1217. package/dist/xunji/backfill.d.ts.map +1 -0
  1218. package/dist/xunji/backfill.js +150 -0
  1219. package/dist/xunji/backfill.js.map +1 -0
  1220. package/dist/xunji/catalog.d.ts +53 -0
  1221. package/dist/xunji/catalog.d.ts.map +1 -0
  1222. package/dist/xunji/catalog.js +126 -0
  1223. package/dist/xunji/catalog.js.map +1 -0
  1224. package/dist/xunji/cli.d.ts +3 -0
  1225. package/dist/xunji/cli.d.ts.map +1 -0
  1226. package/dist/xunji/cli.js +15 -0
  1227. package/dist/xunji/cli.js.map +1 -0
  1228. package/dist/xunji/exitMap.d.ts +37 -0
  1229. package/dist/xunji/exitMap.d.ts.map +1 -0
  1230. package/dist/xunji/exitMap.js +42 -0
  1231. package/dist/xunji/exitMap.js.map +1 -0
  1232. package/dist/xunji/fetch.d.ts +77 -0
  1233. package/dist/xunji/fetch.d.ts.map +1 -0
  1234. package/dist/xunji/fetch.js +160 -0
  1235. package/dist/xunji/fetch.js.map +1 -0
  1236. package/dist/xunji/index.d.ts +21 -0
  1237. package/dist/xunji/index.d.ts.map +1 -0
  1238. package/dist/xunji/index.js +18 -0
  1239. package/dist/xunji/index.js.map +1 -0
  1240. package/dist/xunji/key.d.ts +77 -0
  1241. package/dist/xunji/key.d.ts.map +1 -0
  1242. package/dist/xunji/key.js +160 -0
  1243. package/dist/xunji/key.js.map +1 -0
  1244. package/dist/xunji/overlay-plan.d.ts +79 -0
  1245. package/dist/xunji/overlay-plan.d.ts.map +1 -0
  1246. package/dist/xunji/overlay-plan.js +145 -0
  1247. package/dist/xunji/overlay-plan.js.map +1 -0
  1248. package/dist/xunji/planSource.d.ts +40 -0
  1249. package/dist/xunji/planSource.d.ts.map +1 -0
  1250. package/dist/xunji/planSource.js +78 -0
  1251. package/dist/xunji/planSource.js.map +1 -0
  1252. package/dist/xunji/push.d.ts +55 -0
  1253. package/dist/xunji/push.d.ts.map +1 -0
  1254. package/dist/xunji/push.js +69 -0
  1255. package/dist/xunji/push.js.map +1 -0
  1256. package/dist/xunji/rateLimit.d.ts +44 -0
  1257. package/dist/xunji/rateLimit.d.ts.map +1 -0
  1258. package/dist/xunji/rateLimit.js +99 -0
  1259. package/dist/xunji/rateLimit.js.map +1 -0
  1260. package/dist/xunji/request.d.ts +48 -0
  1261. package/dist/xunji/request.d.ts.map +1 -0
  1262. package/dist/xunji/request.js +60 -0
  1263. package/dist/xunji/request.js.map +1 -0
  1264. package/dist/xunji/retry.d.ts +50 -0
  1265. package/dist/xunji/retry.d.ts.map +1 -0
  1266. package/dist/xunji/retry.js +106 -0
  1267. package/dist/xunji/retry.js.map +1 -0
  1268. package/dist/xunji/rows.d.ts +32 -0
  1269. package/dist/xunji/rows.d.ts.map +1 -0
  1270. package/dist/xunji/rows.js +74 -0
  1271. package/dist/xunji/rows.js.map +1 -0
  1272. package/dist/xunji/run-sync.d.ts +106 -0
  1273. package/dist/xunji/run-sync.d.ts.map +1 -0
  1274. package/dist/xunji/run-sync.js +223 -0
  1275. package/dist/xunji/run-sync.js.map +1 -0
  1276. package/dist/xunji/run.d.ts +56 -0
  1277. package/dist/xunji/run.d.ts.map +1 -0
  1278. package/dist/xunji/run.js +300 -0
  1279. package/dist/xunji/run.js.map +1 -0
  1280. package/dist/xunji/store.d.ts +31 -0
  1281. package/dist/xunji/store.d.ts.map +1 -0
  1282. package/dist/xunji/store.js +60 -0
  1283. package/dist/xunji/store.js.map +1 -0
  1284. package/dist/xunji/subcommands.d.ts +64 -0
  1285. package/dist/xunji/subcommands.d.ts.map +1 -0
  1286. package/dist/xunji/subcommands.js +203 -0
  1287. package/dist/xunji/subcommands.js.map +1 -0
  1288. package/dist/xunji/upsert.d.ts +61 -0
  1289. package/dist/xunji/upsert.d.ts.map +1 -0
  1290. package/dist/xunji/upsert.js +100 -0
  1291. package/dist/xunji/upsert.js.map +1 -0
  1292. package/package.json +7 -3
  1293. package/src/xunji/data//350/256/255/350/256/260/345/256/230/346/226/271/345/212/250/344/275/234.json +1099 -0
  1294. package/templates/help.html +1 -1
  1295. package/workflows/08-/350/272/253/344/275/223/347/273/206/350/212/202.md +60 -0
  1296. package/workflows/09-/350/272/253/346/235/220/347/205/247/347/211/207.md +98 -0
  1297. package/dist/render/profilePlate.d.ts +0 -17
  1298. package/dist/render/profilePlate.d.ts.map +0 -1
  1299. package/dist/render/profilePlate.js +0 -18
  1300. package/dist/render/profilePlate.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { HELP_EXEC_OVERRIDES } from './help-lookup.js';
1
+ import { ALL_ROUTES, COVERAGE_REPAIR_ROUTES, NEW_KEY_ROUTES, WAKE_ROUTES } from './routes.generated.js';
2
2
  /** 非执行理由(逐字;每条 non-exec 记录的 reason 取值于此,避免重复文本)。
3
3
  *
4
4
  * FX-81-7 复核:一个旧唤醒词,只要存在一条能达成其所述能力的单命令(同 key + 参数,实跑 exit 0),
@@ -59,539 +59,25 @@ export const TWIN_WAKE_WORDS = [
59
59
  '预测体重(1 周后)',
60
60
  '诊断体重异常点',
61
61
  ];
62
- /** 436 SoT 唤醒词路由(顺序与 TRIGGERS 逐位对齐) */
63
- export const WAKE_ROUTES = [
64
- // ---- 场景 01 ----
65
- { wakeWord: '看今日主页', scene: '01', kind: 'exec', key: 'calorie.view.home', cli: HELP_EXEC_OVERRIDES.home_today_overview },
66
- { wakeWord: '看今日饮食概览', scene: '01', kind: 'exec', key: 'calorie.view.diet', cli: HELP_EXEC_OVERRIDES.home_today_diet_overview },
67
- { wakeWord: '看今日运动概览', scene: '01', kind: 'exec', key: 'calorie.view.exercise', cli: HELP_EXEC_OVERRIDES.home_today_exercise_overview },
68
- { wakeWord: '看今日体重概览', scene: '01', kind: 'exec', key: 'calorie.view.weight', cli: HELP_EXEC_OVERRIDES.home_today_weight_overview },
69
- { wakeWord: '看今日目标进度', scene: '01', kind: 'exec', key: 'calorie.view.goal-progress', cli: HELP_EXEC_OVERRIDES.home_today_goal_progress },
70
- { wakeWord: '看本周主页', scene: '01', kind: 'exec', key: 'calorie.view.home', cli: HELP_EXEC_OVERRIDES.home_week_overview },
71
- { wakeWord: '看本月主页', scene: '01', kind: 'exec', key: 'calorie.view.home', cli: HELP_EXEC_OVERRIDES.home_month_overview },
72
- { wakeWord: '看连续记录天数', scene: '01', kind: 'exec', key: 'calorie.view.home', cli: HELP_EXEC_OVERRIDES.home_streak_days },
73
- { wakeWord: '看今日热量预算', scene: '01', kind: 'exec', key: 'calorie.view.home', cli: HELP_EXEC_OVERRIDES.home_today_budget },
74
- // ---- 场景 02 ----
75
- { wakeWord: '记一餐', scene: '02', kind: 'exec', key: 'calorie.diet.add', cli: 'calorie-cmd-read calorie.diet.add --params \'{"foodName":"鸡胸","calories":200,"protein":35}\'' },
76
- { wakeWord: '记一餐(含备注)', scene: '02', kind: 'exec', key: 'calorie.diet.add', cli: 'calorie-cmd-read calorie.diet.add --params \'{"foodName":"鸡胸","calories":200,"protein":35,"note":"加了辣酱"}\'' },
77
- { wakeWord: '补记饮食', scene: '02', kind: 'exec', key: 'calorie.diet.add', cli: 'calorie-cmd-read calorie.diet.add --params \'{"foodName":"米饭","calories":500,"protein":10,"date":"2026-09-06","time":"12:30:00"}\'' },
78
- { wakeWord: '批量补记饮食', scene: '02', kind: 'exec', key: 'calorie.diet.batch', cli: 'calorie-cmd-read calorie.diet.batch --params \'{"items":[{"foodName":"粥","calories":150,"protein":3,"date":"2026-09-06"}]}\'' },
79
- { wakeWord: '拍营养表记一餐', scene: '02', kind: 'non-exec', bucket: 'out-of-scope', reason: NON_EXEC_REASONS.oosLabel },
80
- { wakeWord: '拍营养表补记一餐', scene: '02', kind: 'non-exec', bucket: 'out-of-scope', reason: NON_EXEC_REASONS.oosLabel },
81
- { wakeWord: '记喝水', scene: '02', kind: 'exec', key: 'calorie.water.log', cli: 'calorie-cmd-read calorie.water.log --params \'{"ml":300}\'' },
82
- { wakeWord: '复制昨日饮食', scene: '02', kind: 'exec', key: 'calorie.diet.copy', cli: 'calorie-cmd-read calorie.diet.copy --params \'{"from":"2026-09-06"}\'' },
83
- { wakeWord: '改饮食记录', scene: '02', kind: 'exec', key: 'calorie.diet.update', cli: 'calorie-cmd-read calorie.diet.update --params \'{"id":1,"grams":150}\'' },
84
- { wakeWord: '改某日饮食', scene: '02', kind: 'exec', key: 'calorie.diet.update-by-date', cli: 'calorie-cmd-read calorie.diet.update-by-date --params \'{"date":"2026-09-06","note":"食堂"}\'' },
85
- { wakeWord: '删饮食记录', scene: '02', kind: 'exec', key: 'calorie.diet.remove', cli: 'calorie-cmd-read calorie.diet.remove --params \'{"id":1}\'' },
86
- { wakeWord: '删一餐', scene: '02', kind: 'exec', key: 'calorie.diet.remove-by-type', cli: 'calorie-cmd-read calorie.diet.remove-by-type --params \'{"date":"2026-09-06","mealType":"早餐"}\'' },
87
- { wakeWord: '删某日饮食', scene: '02', kind: 'exec', key: 'calorie.diet.remove-by-date', cli: 'calorie-cmd-read calorie.diet.remove-by-date --params \'{"date":"2026-09-06"}\'' },
88
- { wakeWord: '批量删饮食', scene: '02', kind: 'exec', key: 'calorie.diet.remove-by-range', cli: 'calorie-cmd-read calorie.diet.remove-by-range --params \'{"start":"2026-09-01","end":"2026-09-02"}\'' },
89
- { wakeWord: '看今日饮食', scene: '02', kind: 'exec', key: 'calorie.today', cli: 'calorie-cmd-read calorie.today --params \'{"date":"2026-09-07"}\'' },
90
- { wakeWord: '看昨日饮食', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-06","end":"2026-09-06"}\'' },
91
- { wakeWord: '看本周饮食', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
92
- { wakeWord: '看上周饮食', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-08-31","end":"2026-09-06"}\'' },
93
- { wakeWord: '看本月饮食', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
94
- { wakeWord: '看上月饮食', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-08-01","end":"2026-08-31"}\'' },
95
- { wakeWord: '看最近 7 天饮食', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
96
- { wakeWord: '看最近 30 天饮食', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-08-09","end":"2026-09-07"}\'' },
97
- { wakeWord: '看某段时间饮食', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
98
- { wakeWord: '看今日喝水', scene: '02', kind: 'exec', key: 'calorie.view.home', cli: 'calorie-cmd-read calorie.view.home --params \'{"date":"2026-09-07"}\'' },
99
- { wakeWord: '看有备注的饮食记录', scene: '02', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.noNoteFilter },
100
- { wakeWord: '查食品', scene: '02', kind: 'exec', key: 'calorie.view.search', cli: 'calorie-cmd-read calorie.view.search --params \'{"keyword":"鸡胸"}\'' },
101
- { wakeWord: '查食品(按分类)', scene: '02', kind: 'exec', key: 'calorie.view.library', cli: 'calorie-cmd-read calorie.view.library --params \'{"category":"蛋白类"}\'' },
102
- { wakeWord: '存食品', scene: '02', kind: 'exec', key: 'calorie.product.add', cli: 'calorie-cmd-read calorie.product.add --params \'{"productName":"鸡胸肉","calories":165,"protein":31,"fat":3.6,"carbohydrates":0,"sodium":70}\'' },
103
- { wakeWord: '改食品', scene: '02', kind: 'exec', key: 'calorie.product.update', cli: 'calorie-cmd-read calorie.product.update --params \'{"id":1,"note":"新版"}\'' },
104
- { wakeWord: '下架食品', scene: '02', kind: 'exec', key: 'calorie.product.deprecate', cli: 'calorie-cmd-read calorie.product.deprecate --params \'{"id":1}\'' },
105
- { wakeWord: '看食品库(去重)', scene: '02', kind: 'exec', key: 'calorie.view.dedupe', cli: 'calorie-cmd-read calorie.view.dedupe' },
106
- { wakeWord: '批量导入食品', scene: '02', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.wizard },
107
- { wakeWord: '校验批量导入', scene: '02', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.wizard },
108
- { wakeWord: '看食品来源统计', scene: '02', kind: 'exec', key: 'calorie.view.library', cli: 'calorie-cmd-read calorie.view.library --params \'{"category":"蛋白类"}\'' },
109
- { wakeWord: '看营养结构', scene: '02', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
110
- { wakeWord: '看今日营养', scene: '02', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
111
- { wakeWord: '看饮食总览', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
112
- // #112 · 看营养素深度 non-exec→exec(旧链 render_nutrition_detail.py 的纤维/钠/糖明细维度已由 nutrition-detail 承接;钠糖纤维趋势/综合两词仍 non-exec,归 #113)。
113
- { wakeWord: '看营养素深度', scene: '02', kind: 'exec', key: 'calorie.view.nutrition-detail', cli: 'calorie-cmd-read calorie.view.nutrition-detail --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
114
- { wakeWord: '看高热量榜', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_calorie","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
115
- { wakeWord: '看低热量榜', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"low_calorie","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
116
- { wakeWord: '看频繁吃榜', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"frequent","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
117
- { wakeWord: '看高碳水榜', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_carb","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
118
- { wakeWord: '看高蛋白榜', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_protein","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
119
- { wakeWord: '看全部排行榜', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
120
- { wakeWord: '看高热量榜(最近 30 天)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_calorie","start":"2026-08-09","end":"2026-09-07","topN":10}\'' },
121
- { wakeWord: '看高热量榜(本月)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_calorie","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
122
- { wakeWord: '看高热量榜(自定义)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_calorie","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
123
- { wakeWord: '看低热量榜(最近 30 天)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"low_calorie","start":"2026-08-09","end":"2026-09-07","topN":10}\'' },
124
- { wakeWord: '看低热量榜(本月)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"low_calorie","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
125
- { wakeWord: '看低热量榜(自定义)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"low_calorie","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
126
- { wakeWord: '看频繁吃榜(最近 30 天)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"frequent","start":"2026-08-09","end":"2026-09-07","topN":10}\'' },
127
- { wakeWord: '看频繁吃榜(本月)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"frequent","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
128
- { wakeWord: '看频繁吃榜(自定义)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"frequent","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
129
- { wakeWord: '看高碳水榜(最近 30 天)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_carb","start":"2026-08-09","end":"2026-09-07","topN":10}\'' },
130
- { wakeWord: '看高碳水榜(本月)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_carb","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
131
- { wakeWord: '看高碳水榜(自定义)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_carb","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
132
- { wakeWord: '看高蛋白榜(最近 30 天)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_protein","start":"2026-08-09","end":"2026-09-07","topN":10}\'' },
133
- { wakeWord: '看高蛋白榜(本月)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_protein","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
134
- { wakeWord: '看高蛋白榜(自定义)', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_protein","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
135
- { wakeWord: '饮食复盘(本周)', scene: '02', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
136
- { wakeWord: '饮食复盘(本月)', scene: '02', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
137
- { wakeWord: '饮食复盘(最近 90 天)', scene: '02', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-06-10","end":"2026-09-07"}\'' },
138
- { wakeWord: '饮食复盘(今年)', scene: '02', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-01-01","end":"2026-09-07"}\'' },
139
- { wakeWord: '饮食复盘(自定义时间)', scene: '02', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
140
- { wakeWord: '看早餐(最近 7 天)', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
141
- { wakeWord: '看午餐(最近 7 天)', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
142
- { wakeWord: '看晚餐(最近 7 天)', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
143
- { wakeWord: '看加餐(最近 7 天)', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
144
- { wakeWord: '看全部餐别分布(最近 7 天)', scene: '02', kind: 'exec', key: 'calorie.view.diet', cli: 'calorie-cmd-read calorie.view.diet --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
145
- { wakeWord: '看「有备注」的饮食记录', scene: '02', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.noNoteFilter },
146
- // ---- 场景 03 ----
147
- { wakeWord: '记体重', scene: '03', kind: 'exec', key: 'calorie.weight.log', cli: 'calorie-cmd-read calorie.weight.log --params \'{"kg":70.5}\'' },
148
- { wakeWord: '记体重(含备注)', scene: '03', kind: 'exec', key: 'calorie.weight.log', cli: 'calorie-cmd-read calorie.weight.log --params \'{"kg":70.5,"note":"晨起空腹"}\'' },
149
- { wakeWord: '补录体重', scene: '03', kind: 'exec', key: 'calorie.weight.log', cli: 'calorie-cmd-read calorie.weight.log --params \'{"kg":70.5,"date":"2026-09-06"}\'' },
150
- { wakeWord: '批量补录体重', scene: '03', kind: 'exec', key: 'calorie.weight.batch', cli: 'calorie-cmd-read calorie.weight.batch --params \'{"items":[{"date":"2026-09-06","kg":70.5}]}\'' },
151
- { wakeWord: '看今日体重', scene: '03', kind: 'exec', key: 'calorie.view.weight', cli: 'calorie-cmd-read calorie.view.weight --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
152
- { wakeWord: '改体重记录', scene: '03', kind: 'exec', key: 'calorie.weight.update', cli: 'calorie-cmd-read calorie.weight.update --params \'{"id":1,"kg":70.2}\'' },
153
- { wakeWord: '改某日体重', scene: '03', kind: 'exec', key: 'calorie.weight.update', cli: 'calorie-cmd-read calorie.weight.update --params \'{"date":"2026-09-06","kg":70.2}\'' },
154
- { wakeWord: '删体重记录', scene: '03', kind: 'exec', key: 'calorie.weight.remove', cli: 'calorie-cmd-read calorie.weight.remove --params \'{"id":1}\'' },
155
- { wakeWord: '删某日体重', scene: '03', kind: 'exec', key: 'calorie.weight.remove', cli: 'calorie-cmd-read calorie.weight.remove --params \'{"date":"2026-09-06"}\'' },
156
- { wakeWord: '批量删体重', scene: '03', kind: 'exec', key: 'calorie.weight.remove', cli: 'calorie-cmd-read calorie.weight.remove --params \'{"start":"2026-09-01","end":"2026-09-02"}\'' },
157
- { wakeWord: '看本周体重', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
158
- { wakeWord: '看上周体重', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-08-31","end":"2026-09-06"}\'' },
159
- { wakeWord: '看本月体重', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
160
- { wakeWord: '看上月体重', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-08-01","end":"2026-08-31"}\'' },
161
- { wakeWord: '看最近 7 天体重', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
162
- { wakeWord: '看最近 90 天体重', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-06-10","end":"2026-09-07"}\'' },
163
- { wakeWord: '看某段时间体重', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
164
- { wakeWord: '看体重曲线', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-08-09","end":"2026-09-07"}\'' },
165
- { wakeWord: '看体重曲线(带目标)', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.compoundCurve },
166
- { wakeWord: '看体重曲线(带里程碑)', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.compoundCurve },
167
- { wakeWord: '看体重曲线(带异常点)', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.compoundCurve },
168
- { wakeWord: '看本月体重曲线', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
169
- { wakeWord: '看上月体重曲线', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-08-01","end":"2026-08-31"}\'' },
170
- { wakeWord: '看最近 90 天体重曲线', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-06-10","end":"2026-09-07"}\'' },
171
- { wakeWord: '看最近 180 天体重曲线', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-03-12","end":"2026-09-07"}\'' },
172
- { wakeWord: '看最近 365 天体重曲线', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2025-09-08","end":"2026-09-07"}\'' },
173
- { wakeWord: '看某段时间体重曲线', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
174
- { wakeWord: '看体重稳不稳(增强版)', scene: '03', kind: 'exec', key: 'calorie.view.volatility', cli: 'calorie-cmd-read calorie.view.volatility --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
175
- { wakeWord: '看本月波动', scene: '03', kind: 'exec', key: 'calorie.view.volatility', cli: 'calorie-cmd-read calorie.view.volatility --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
176
- { wakeWord: '看最近 90 天波动', scene: '03', kind: 'exec', key: 'calorie.view.volatility', cli: 'calorie-cmd-read calorie.view.volatility --params \'{"start":"2026-06-10","end":"2026-09-07"}\'' },
177
- { wakeWord: '看最近 180 天波动', scene: '03', kind: 'exec', key: 'calorie.view.volatility', cli: 'calorie-cmd-read calorie.view.volatility --params \'{"start":"2026-03-12","end":"2026-09-07"}\'' },
178
- { wakeWord: '看波动异常点', scene: '03', kind: 'exec', key: 'calorie.view.volatility', cli: 'calorie-cmd-read calorie.view.volatility --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
179
- { wakeWord: '看「有备注」的体重记录', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.noNoteFilter },
180
- { wakeWord: '对比体重:最近 30 天 vs 之前 30 天', scene: '03', kind: 'exec', key: 'calorie.view.weight-compare', cli: 'calorie-cmd-read calorie.view.weight-compare --params \'{"start":"2026-08-09","end":"2026-09-07","compareStart":"2026-07-10","compareEnd":"2026-08-08"}\'' },
181
- { wakeWord: '对比体重:自定义两段时间', scene: '03', kind: 'exec', key: 'calorie.view.weight-compare', cli: 'calorie-cmd-read calorie.view.weight-compare --params \'{"start":"2026-09-01","end":"2026-09-07","compareStart":"2026-08-01","compareEnd":"2026-08-31"}\'' },
182
- { wakeWord: '对比体重:本周 vs 上周', scene: '03', kind: 'exec', key: 'calorie.view.weight-compare', cli: 'calorie-cmd-read calorie.view.weight-compare --params \'{"start":"2026-09-07","end":"2026-09-07","compareStart":"2026-08-31","compareEnd":"2026-09-06"}\'' },
183
- { wakeWord: '对比体重:本月 vs 上月', scene: '03', kind: 'exec', key: 'calorie.view.weight-compare', cli: 'calorie-cmd-read calorie.view.weight-compare --params \'{"start":"2026-09-01","end":"2026-09-07","compareStart":"2026-08-01","compareEnd":"2026-08-31"}\'' },
184
- { wakeWord: '对比体重:近 N 天 vs 上一个 N 天', scene: '03', kind: 'exec', key: 'calorie.view.weight-compare', cli: 'calorie-cmd-read calorie.view.weight-compare --params \'{"start":"2026-09-01","end":"2026-09-07","compareStart":"2026-08-25","compareEnd":"2026-08-31"}\'' },
185
- { wakeWord: '对比体重:今天 vs 一年前今天', scene: '03', kind: 'exec', key: 'calorie.view.weight-compare', cli: 'calorie-cmd-read calorie.view.weight-compare --params \'{"start":"2026-09-07","end":"2026-09-07","compareStart":"2025-09-07","compareEnd":"2025-09-07"}\'' },
186
- { wakeWord: '对比体重:今天 vs 半年前今天', scene: '03', kind: 'exec', key: 'calorie.view.weight-compare', cli: 'calorie-cmd-read calorie.view.weight-compare --params \'{"start":"2026-09-07","end":"2026-09-07","compareStart":"2026-03-07","compareEnd":"2026-03-07"}\'' },
187
- { wakeWord: '对比体重:今天 vs 三月前今天', scene: '03', kind: 'exec', key: 'calorie.view.weight-compare', cli: 'calorie-cmd-read calorie.view.weight-compare --params \'{"start":"2026-09-07","end":"2026-09-07","compareStart":"2026-06-07","compareEnd":"2026-06-07"}\'' },
188
- { wakeWord: '对比体重:当前 vs 目标体重', scene: '03', kind: 'exec', key: 'calorie.view.goal-weight', cli: 'calorie-cmd-read calorie.view.goal-weight --params \'{"start":"2026-08-09","end":"2026-09-07"}\'' },
189
- { wakeWord: '对比体重:当前 vs 平台期首日', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.anchorCompare },
190
- { wakeWord: '对比体重:当前 vs 历史最低', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.anchorCompare },
191
- { wakeWord: '对比体重:当前 vs 历史最高', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.anchorCompare },
192
- { wakeWord: '对比体重:减重 5kg 那天 vs 今天', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.anchorCompare },
193
- { wakeWord: '对比体重:减重 10kg 那天 vs 今天', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.anchorCompare },
194
- { wakeWord: '对比体重:当前 vs 入夏最低', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.anchorCompare },
195
- { wakeWord: '对比体重:当前 vs 入冬最低', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.anchorCompare },
196
- { wakeWord: '对比体重:运动多 vs 运动少的两个月', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.anchorCompare },
197
- { wakeWord: '对比体重:工作日 vs 周末', scene: '03', kind: 'exec', key: 'calorie.view.weight-compare', cli: 'calorie-cmd-read calorie.view.weight-compare --params \'{"start":"2026-08-31","end":"2026-09-04","compareStart":"2026-09-05","compareEnd":"2026-09-07"}\'' },
198
- { wakeWord: '看体重总览', scene: '03', kind: 'exec', key: 'calorie.view.weight', cli: 'calorie-cmd-read calorie.view.weight --params \'{"start":"2026-08-09","end":"2026-09-07"}\'' },
199
- { wakeWord: '体重复盘(本周)', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reviewWindowOnly },
200
- { wakeWord: '体重复盘(本月)', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reviewWindowOnly },
201
- { wakeWord: '体重复盘(最近 90 天)', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reviewWindowOnly },
202
- { wakeWord: '体重复盘(今年)', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reviewWindowOnly },
203
- { wakeWord: '体重复盘(自定义时间)', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reviewWindowOnly },
204
- { wakeWord: '看里程碑回溯', scene: '03', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.milestoneForwardOnly },
205
- // ---- 场景 04 ----
206
- { wakeWord: '记运动', scene: '04', kind: 'exec', key: 'calorie.exercise.add', cli: 'calorie-cmd-read calorie.exercise.add --params \'{"type":"慢跑","calories":320,"minutes":30}\'' },
207
- { wakeWord: '记运动(含备注)', scene: '04', kind: 'exec', key: 'calorie.exercise.add', cli: 'calorie-cmd-read calorie.exercise.add --params \'{"type":"慢跑","calories":320,"minutes":30,"note":"夜跑"}\'' },
208
- { wakeWord: '记力量训练', scene: '04', kind: 'exec', key: 'calorie.exercise.add', cli: 'calorie-cmd-read calorie.exercise.add --params \'{"type":"卧推","calories":150,"category":"力量","loadKg":60,"reps":10}\'' },
209
- { wakeWord: '记有氧运动', scene: '04', kind: 'exec', key: 'calorie.exercise.add', cli: 'calorie-cmd-read calorie.exercise.add --params \'{"type":"户外跑","calories":300,"minutes":30,"category":"有氧","distance":5}\'' },
210
- { wakeWord: '记日常活动', scene: '04', kind: 'exec', key: 'calorie.exercise.add', cli: 'calorie-cmd-read calorie.exercise.add --params \'{"type":"步行","calories":80,"minutes":20,"category":"日常","steps":3000}\'' },
211
- { wakeWord: '补记运动', scene: '04', kind: 'exec', key: 'calorie.exercise.add', cli: 'calorie-cmd-read calorie.exercise.add --params \'{"type":"慢跑","calories":320,"minutes":30,"date":"2026-09-06"}\'' },
212
- { wakeWord: '批量补记运动', scene: '04', kind: 'exec', key: 'calorie.exercise.add', cli: 'calorie-cmd-read calorie.exercise.add --params \'{"items":[{"type":"慢跑","calories":320,"minutes":30,"date":"2026-09-06"}]}\'' },
213
- { wakeWord: '复制昨日运动', scene: '04', kind: 'exec', key: 'calorie.exercise.add', cli: 'calorie-cmd-read calorie.exercise.add --params \'{"copyFrom":"yesterday"}\'' },
214
- { wakeWord: '改运动记录', scene: '04', kind: 'exec', key: 'calorie.exercise.update', cli: 'calorie-cmd-read calorie.exercise.update --params \'{"id":1,"minutes":40}\'' },
215
- { wakeWord: '改某日运动', scene: '04', kind: 'exec', key: 'calorie.exercise.update', cli: 'calorie-cmd-read calorie.exercise.update --params \'{"date":"2026-09-06","note":"补记"}\'' },
216
- { wakeWord: '删运动记录', scene: '04', kind: 'exec', key: 'calorie.exercise.remove', cli: 'calorie-cmd-read calorie.exercise.remove --params \'{"id":1}\'' },
217
- { wakeWord: '删某日运动', scene: '04', kind: 'exec', key: 'calorie.exercise.remove', cli: 'calorie-cmd-read calorie.exercise.remove --params \'{"date":"2026-09-06"}\'' },
218
- { wakeWord: '批量删运动', scene: '04', kind: 'exec', key: 'calorie.exercise.remove', cli: 'calorie-cmd-read calorie.exercise.remove --params \'{"from":"2026-09-01","to":"2026-09-02"}\'' },
219
- { wakeWord: '看今日运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
220
- { wakeWord: '看昨日运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-06","end":"2026-09-06"}\'' },
221
- { wakeWord: '看本周运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
222
- { wakeWord: '看上周运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-08-31","end":"2026-09-06"}\'' },
223
- { wakeWord: '看本月运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
224
- { wakeWord: '看上月运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-08-01","end":"2026-08-31"}\'' },
225
- { wakeWord: '看最近 7 天运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
226
- { wakeWord: '看最近 30 天运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-08-09","end":"2026-09-07"}\'' },
227
- { wakeWord: '看某段时间运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
228
- { wakeWord: '看今日运动(vs 目标)', scene: '04', kind: 'exec', key: 'calorie.view.exercise-goal', cli: 'calorie-cmd-read calorie.view.exercise-goal --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
229
- { wakeWord: '看本周运动(vs 目标)', scene: '04', kind: 'exec', key: 'calorie.view.exercise-goal', cli: 'calorie-cmd-read calorie.view.exercise-goal --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
230
- { wakeWord: '看运动记录(有备注)', scene: '04', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.noNoteFilter },
231
- { wakeWord: '看运动记录(按力量筛选)', scene: '04', kind: 'exec', key: 'calorie.view.exercise-strength', cli: 'calorie-cmd-read calorie.view.exercise-strength --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
232
- { wakeWord: '看运动记录(按有氧筛选)', scene: '04', kind: 'exec', key: 'calorie.view.exercise-cardio', cli: 'calorie-cmd-read calorie.view.exercise-cardio --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
233
- { wakeWord: '看最近 60 天运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-07-10","end":"2026-09-07"}\'' },
234
- { wakeWord: '看最近 180 天运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-03-12","end":"2026-09-07"}\'' },
235
- { wakeWord: '看最近 365 天运动', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2025-09-08","end":"2026-09-07"}\'' },
236
- { wakeWord: '看运动类型分布', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
237
- { wakeWord: '看力量训练总览', scene: '04', kind: 'exec', key: 'calorie.view.exercise-strength', cli: 'calorie-cmd-read calorie.view.exercise-strength --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
238
- { wakeWord: '看有氧训练总览', scene: '04', kind: 'exec', key: 'calorie.view.exercise-cardio', cli: 'calorie-cmd-read calorie.view.exercise-cardio --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
239
- { wakeWord: '看运动趋势', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-08-09","end":"2026-09-07"}\'' },
240
- { wakeWord: '运动复盘(本周)', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
241
- { wakeWord: '运动复盘(本月)', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
242
- { wakeWord: '运动复盘(最近 90 天)', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-06-10","end":"2026-09-07"}\'' },
243
- { wakeWord: '运动复盘(今年)', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-01-01","end":"2026-09-07"}\'' },
244
- { wakeWord: '运动复盘(自定义时间)', scene: '04', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
245
- // ---- 场景 05 ----
246
- { wakeWord: '看本周计划', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planFilterMissing },
247
- { wakeWord: '看下周计划', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planFilterMissing },
248
- { wakeWord: '看上周计划', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planFilterMissing },
249
- { wakeWord: '看指定周计划', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planFilterMissing },
250
- { wakeWord: '看今天练什么', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planFilterMissing },
251
- { wakeWord: '看某动作安排', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planFilterMissing },
252
- { wakeWord: '看某天练什么', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planFilterMissing },
253
- { wakeWord: '看计划概览', scene: '05', kind: 'exec', key: 'calorie.view.plan', cli: 'calorie-cmd-read calorie.view.plan' },
254
- { wakeWord: '看完整计划', scene: '05', kind: 'exec', key: 'calorie.view.plan', cli: 'calorie-cmd-read calorie.view.plan' },
255
- { wakeWord: '看计划 vs 实际', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planFilterMissing },
256
- { wakeWord: '定训练计划', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planWriteMissing },
257
- { wakeWord: '复制训练计划', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planWriteMissing },
258
- { wakeWord: '定休息日', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planWriteMissing },
259
- { wakeWord: '加训练动作', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planWriteMissing },
260
- { wakeWord: '定一周计划', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planWriteMissing },
261
- { wakeWord: '改训练计划', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planWriteMissing },
262
- { wakeWord: '改某天训练', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planWriteMissing },
263
- { wakeWord: '删某天训练', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planWriteMissing },
264
- { wakeWord: '改动作', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planWriteMissing },
265
- { wakeWord: '撤销训练计划', scene: '05', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.planWriteMissing },
266
- { wakeWord: '落地训练', scene: '05', kind: 'non-exec', bucket: 'out-of-scope', reason: NON_EXEC_REASONS.oosLanding },
267
- { wakeWord: '落地到本周末', scene: '05', kind: 'non-exec', bucket: 'out-of-scope', reason: NON_EXEC_REASONS.oosLanding },
268
- { wakeWord: '落地到本月底', scene: '05', kind: 'non-exec', bucket: 'out-of-scope', reason: NON_EXEC_REASONS.oosLanding },
269
- { wakeWord: '同步到训记', scene: '05', kind: 'non-exec', bucket: 'out-of-scope', reason: NON_EXEC_REASONS.oosXunji },
270
- { wakeWord: '拉训记实绩', scene: '05', kind: 'non-exec', bucket: 'out-of-scope', reason: NON_EXEC_REASONS.oosXunji },
271
- { wakeWord: '计划复盘(本周)', scene: '05', kind: 'exec', key: 'calorie.view.exercise-review', cli: 'calorie-cmd-read calorie.view.exercise-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
272
- { wakeWord: '计划复盘(本月)', scene: '05', kind: 'exec', key: 'calorie.view.exercise-review', cli: 'calorie-cmd-read calorie.view.exercise-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
273
- { wakeWord: '计划复盘(全部)', scene: '05', kind: 'exec', key: 'calorie.view.exercise-review', cli: 'calorie-cmd-read calorie.view.exercise-review --params \'{"start":"2026-08-31","end":"2026-09-07"}\'' },
274
- { wakeWord: '看计划完成率', scene: '05', kind: 'exec', key: 'calorie.view.exercise-review', cli: 'calorie-cmd-read calorie.view.exercise-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
275
- { wakeWord: '看未完成训练', scene: '05', kind: 'exec', key: 'calorie.view.exercise-review', cli: 'calorie-cmd-read calorie.view.exercise-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
276
- { wakeWord: '看动作完成率', scene: '05', kind: 'exec', key: 'calorie.view.exercise-review', cli: 'calorie-cmd-read calorie.view.exercise-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
277
- { wakeWord: '扫禁忌', scene: '05', kind: 'exec', key: 'calorie.view.contraindication', cli: 'calorie-cmd-read calorie.view.contraindication' },
278
- // ---- 场景 06 ----
279
- { wakeWord: '定营养目标', scene: '06', kind: 'exec', key: 'calorie.goal.set', cli: 'calorie-cmd-read calorie.goal.set --params \'{"calorie":1800,"protein":150,"carbs":200,"fat":50,"water":2000}\'' },
280
- { wakeWord: '定营养目标(自动算)', scene: '06', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.wizard },
281
- { wakeWord: '定体重目标', scene: '06', kind: 'exec', key: 'calorie.goal.weight', cli: 'calorie-cmd-read calorie.goal.weight --params \'{"kg":68}\'' },
282
- { wakeWord: '定体重目标(自动算截止)', scene: '06', kind: 'exec', key: 'calorie.goal.weight', cli: 'calorie-cmd-read calorie.goal.weight --params \'{"kg":68,"deadline":"2026-12-31"}\'' },
283
- { wakeWord: '定体重目标(含起始日)', scene: '06', kind: 'exec', key: 'calorie.goal.weight', cli: 'calorie-cmd-read calorie.goal.weight --params \'{"kg":68,"deadline":"2026-12-31","startKg":72,"startDate":"2026-09-01"}\'' },
284
- { wakeWord: '定饮水目标', scene: '06', kind: 'exec', key: 'calorie.goal.water', cli: 'calorie-cmd-read calorie.goal.water --params \'{"water":2000}\'' },
285
- { wakeWord: '定饮水目标(自动算)', scene: '06', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.wizard },
286
- { wakeWord: '一键定全套目标', scene: '06', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.wizard },
287
- { wakeWord: '看今日目标', scene: '06', kind: 'exec', key: 'calorie.view.goal-progress', cli: HELP_EXEC_OVERRIDES.goal_view_today },
288
- { wakeWord: '看本周目标', scene: '06', kind: 'exec', key: 'calorie.view.goal-progress', cli: HELP_EXEC_OVERRIDES.goal_view_week },
289
- { wakeWord: '看营养目标进度', scene: '06', kind: 'exec', key: 'calorie.view.goal-progress', cli: HELP_EXEC_OVERRIDES.goal_view_nutrition_progress },
290
- { wakeWord: '看体重目标进度', scene: '06', kind: 'exec', key: 'calorie.view.goal-weight', cli: HELP_EXEC_OVERRIDES.goal_view_weight_progress },
291
- { wakeWord: '看饮水目标进度', scene: '06', kind: 'exec', key: 'calorie.view.goal-progress', cli: HELP_EXEC_OVERRIDES.goal_view_water_progress },
292
- { wakeWord: '看目标对比实际', scene: '06', kind: 'exec', key: 'calorie.view.goal-vs-actual', cli: HELP_EXEC_OVERRIDES.goal_view_vs_actual },
293
- { wakeWord: '看目标完成度', scene: '06', kind: 'exec', key: 'calorie.view.goal', cli: HELP_EXEC_OVERRIDES.goal_view_completion },
294
- { wakeWord: '看即将到期的目标', scene: '06', kind: 'exec', key: 'calorie.view.goal-expiring', cli: HELP_EXEC_OVERRIDES.goal_view_expiring },
295
- { wakeWord: '看目标完成率(按周)', scene: '06', kind: 'exec', key: 'calorie.view.goal-progress', cli: HELP_EXEC_OVERRIDES.goal_view_completion_rate_week },
296
- { wakeWord: '看目标完成率(按月)', scene: '06', kind: 'exec', key: 'calorie.view.goal-progress', cli: HELP_EXEC_OVERRIDES.goal_view_completion_rate_month },
297
- { wakeWord: '改营养目标', scene: '06', kind: 'exec', key: 'calorie.goal.set', cli: 'calorie-cmd-read calorie.goal.set --params \'{"calorie":1800,"protein":150,"carbs":200,"fat":50}\'' },
298
- { wakeWord: '改体重目标', scene: '06', kind: 'exec', key: 'calorie.goal.weight', cli: 'calorie-cmd-read calorie.goal.weight --params \'{"kg":67.5}\'' },
299
- { wakeWord: '改饮水目标', scene: '06', kind: 'exec', key: 'calorie.goal.water', cli: 'calorie-cmd-read calorie.goal.water --params \'{"water":2200}\'' },
300
- { wakeWord: '暂停所有目标', scene: '06', kind: 'exec', key: 'calorie.goal.pause', cli: 'calorie-cmd-read calorie.goal.pause' },
301
- { wakeWord: '重启所有目标', scene: '06', kind: 'exec', key: 'calorie.goal.resume', cli: 'calorie-cmd-read calorie.goal.resume' },
302
- { wakeWord: '看目标历史完成', scene: '06', kind: 'exec', key: 'calorie.view.goal', cli: HELP_EXEC_OVERRIDES.goal_view_history_complete },
303
- { wakeWord: '看目标预测达成', scene: '06', kind: 'exec', key: 'calorie.view.goal-predict', cli: 'calorie-cmd-read calorie.view.goal-predict --params \'{"start":"2026-08-25","end":"2026-09-07"}\'' },
304
- // ---- 场景 07 ----
305
- { wakeWord: '设置档案', scene: '07', kind: 'exec', key: 'calorie.profile.set', cli: 'calorie-cmd-read calorie.profile.set --params \'{"heightCm":175,"age":30,"gender":"male","activityLevel":"moderate"}\'' },
306
- { wakeWord: '设活动量', scene: '07', kind: 'exec', key: 'calorie.profile.activity', cli: 'calorie-cmd-read calorie.profile.activity --params \'{"activityLevel":"active"}\'' },
307
- { wakeWord: '改档案', scene: '07', kind: 'exec', key: 'calorie.profile.update', cli: 'calorie-cmd-read calorie.profile.update --params \'{"field":"heightCm","value":176}\'' },
308
- { wakeWord: '查档案', scene: '07', kind: 'exec', key: 'calorie.view.profile', cli: 'calorie-cmd-read calorie.view.profile' },
309
- // ---- 场景 08 ----
310
- { wakeWord: '记体脂(皮褶钳)', scene: '08', kind: 'exec', key: 'calorie.body.composition-add', cli: 'calorie-cmd-read calorie.body.composition-add --params \'{"source":"home_caliper","bodyFatPct":18.5,"date":"2026-09-06","caliper_chest_mm":10,"caliper_abdominal_mm":12,"caliper_thigh_mm":14,"caliper_tricep_mm":11,"caliper_subscapular_mm":13,"caliper_suprailiac_mm":12,"caliper_midaxillary_mm":10}\'' },
311
- { wakeWord: '记体脂(外部测量)', scene: '08', kind: 'exec', key: 'calorie.body.composition-add', cli: 'calorie-cmd-read calorie.body.composition-add --params \'{"source":"gym","bodyFatPct":18.5,"date":"2026-09-06"}\'' },
312
- { wakeWord: '记围度', scene: '08', kind: 'exec', key: 'calorie.body.measure-add', cli: 'calorie-cmd-read calorie.body.measure-add --params \'{"waistCm":85,"hipCm":95}\'' },
313
- { wakeWord: '补记体脂', scene: '08', kind: 'exec', key: 'calorie.body.composition-add', cli: 'calorie-cmd-read calorie.body.composition-add --params \'{"source":"gym","bodyFatPct":19,"date":"2026-09-01"}\'' },
314
- { wakeWord: '补记围度', scene: '08', kind: 'exec', key: 'calorie.body.measure-add', cli: 'calorie-cmd-read calorie.body.measure-add --params \'{"waistCm":86,"date":"2026-09-01"}\'' },
315
- { wakeWord: '看体脂', scene: '08', kind: 'exec', key: 'calorie.view.body-composition', cli: 'calorie-cmd-read calorie.view.body-composition' },
316
- { wakeWord: '看体脂趋势', scene: '08', kind: 'exec', key: 'calorie.view.body-composition', cli: 'calorie-cmd-read calorie.view.body-composition --params \'{"days":90}\'' },
317
- { wakeWord: '看围度', scene: '08', kind: 'exec', key: 'calorie.view.body-measure', cli: 'calorie-cmd-read calorie.view.body-measure' },
318
- { wakeWord: '看围度趋势', scene: '08', kind: 'exec', key: 'calorie.view.body-measure', cli: 'calorie-cmd-read calorie.view.body-measure --params \'{"days":90}\'' },
319
- { wakeWord: '对比体脂', scene: '08', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.bodyCompareMissing },
320
- { wakeWord: '对比围度', scene: '08', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.bodyCompareMissing },
321
- { wakeWord: '删体脂', scene: '08', kind: 'exec', key: 'calorie.body.composition-remove', cli: 'calorie-cmd-read calorie.body.composition-remove --params \'{"id":1}\'' },
322
- { wakeWord: '删围度', scene: '08', kind: 'exec', key: 'calorie.body.measure-remove', cli: 'calorie-cmd-read calorie.body.measure-remove --params \'{"id":1}\'' },
323
- // ---- 场景 09 ----
324
- { wakeWord: '记身材照', scene: '09', kind: 'exec', key: 'calorie.photo.add', cli: 'calorie-cmd-read calorie.photo.add --params \'{"srcPaths":["<照片路径>"],"tag":"正面"}\'' },
325
- { wakeWord: '记身材照', scene: '09', kind: 'exec', key: 'calorie.photo.add', cli: 'calorie-cmd-read calorie.photo.add --params \'{"srcPaths":["<照片路径>"],"tag":"正面"}\'' },
326
- { wakeWord: '记身材照', scene: '09', kind: 'exec', key: 'calorie.photo.add', cli: 'calorie-cmd-read calorie.photo.add --params \'{"srcPaths":["<照片路径>"],"tag":"正面"}\'' },
327
- { wakeWord: '查身材照', scene: '09', kind: 'exec', key: 'calorie.photo.list', cli: 'calorie-cmd-read calorie.photo.list --params \'{"tag":"正面"}\'' },
328
- { wakeWord: '对比两张照片', scene: '09', kind: 'exec', key: 'calorie.photo.compare', cli: 'calorie-cmd-read calorie.photo.compare --params \'{"id1":1,"id2":2}\'' },
329
- { wakeWord: '生成身材照GIF', scene: '09', kind: 'exec', key: 'calorie.photo.gif', cli: 'calorie-cmd-read calorie.photo.gif --params \'{"tag":"正面"}\'' },
330
- { wakeWord: '删身材照', scene: '09', kind: 'exec', key: 'calorie.photo.remove', cli: 'calorie-cmd-read calorie.photo.remove --params \'{"id":1}\'' },
331
- { wakeWord: '改照片标签', scene: '09', kind: 'exec', key: 'calorie.photo.tag', cli: 'calorie-cmd-read calorie.photo.tag --params \'{"id":1,"op":"set","tag":"晨起"}\'' },
332
- { wakeWord: '加照片标签', scene: '09', kind: 'exec', key: 'calorie.photo.tag', cli: 'calorie-cmd-read calorie.photo.tag --params \'{"id":1,"op":"add","tag":"晨起"}\'' },
333
- { wakeWord: '删照片标签', scene: '09', kind: 'exec', key: 'calorie.photo.tag', cli: 'calorie-cmd-read calorie.photo.tag --params \'{"id":1,"op":"remove","tag":"晨起"}\'' },
334
- // ---- 场景 10 ----
335
- { wakeWord: '看体重 vs 摄入(最近 7 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"7d"}\'' },
336
- { wakeWord: '看体重 vs 摄入(最近 15 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"15d"}\'' },
337
- { wakeWord: '看体重 vs 摄入(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"30d"}\'' },
338
- { wakeWord: '看体重 vs 摄入(最近 60 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"60d"}\'' },
339
- { wakeWord: '看体重 vs 摄入(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"90d"}\'' },
340
- { wakeWord: '看体重 vs 摄入(最近 180 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"180d"}\'' },
341
- { wakeWord: '看体重 vs 摄入(最近 365 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"365d"}\'' },
342
- { wakeWord: '看体重 vs 摄入(本周)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"week_cur"}\'' },
343
- { wakeWord: '看体重 vs 摄入(本月)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"month_cur"}\'' },
344
- { wakeWord: '看体重 vs 摄入(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
345
- { wakeWord: '看体重 vs 运动(最近 7 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_exercise","window":"7d"}\'' },
346
- { wakeWord: '看体重 vs 运动(最近 15 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_exercise","window":"15d"}\'' },
347
- { wakeWord: '看体重 vs 运动(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_exercise","window":"30d"}\'' },
348
- { wakeWord: '看体重 vs 运动(最近 60 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_exercise","window":"60d"}\'' },
349
- { wakeWord: '看体重 vs 运动(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_exercise","window":"90d"}\'' },
350
- { wakeWord: '看体重 vs 运动(最近 180 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_exercise","window":"180d"}\'' },
351
- { wakeWord: '看体重 vs 运动(最近 365 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_exercise","window":"365d"}\'' },
352
- { wakeWord: '看体重 vs 运动(本周)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_exercise","window":"week_cur"}\'' },
353
- { wakeWord: '看体重 vs 运动(本月)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_exercise","window":"month_cur"}\'' },
354
- { wakeWord: '看体重 vs 运动(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_exercise","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
355
- { wakeWord: '看体重 vs 蛋白(最近 7 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_protein","window":"7d"}\'' },
356
- { wakeWord: '看体重 vs 蛋白(最近 15 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_protein","window":"15d"}\'' },
357
- { wakeWord: '看体重 vs 蛋白(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_protein","window":"30d"}\'' },
358
- { wakeWord: '看体重 vs 蛋白(最近 60 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_protein","window":"60d"}\'' },
359
- { wakeWord: '看体重 vs 蛋白(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_protein","window":"90d"}\'' },
360
- { wakeWord: '看体重 vs 蛋白(最近 180 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_protein","window":"180d"}\'' },
361
- { wakeWord: '看体重 vs 蛋白(最近 365 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_protein","window":"365d"}\'' },
362
- { wakeWord: '看体重 vs 蛋白(本周)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_protein","window":"week_cur"}\'' },
363
- { wakeWord: '看体重 vs 蛋白(本月)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_protein","window":"month_cur"}\'' },
364
- { wakeWord: '看体重 vs 蛋白(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_protein","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
365
- { wakeWord: '看体重 vs 缺口(最近 7 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_deficit","window":"7d"}\'' },
366
- { wakeWord: '看体重 vs 缺口(最近 15 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_deficit","window":"15d"}\'' },
367
- { wakeWord: '看体重 vs 缺口(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_deficit","window":"30d"}\'' },
368
- { wakeWord: '看体重 vs 缺口(最近 60 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_deficit","window":"60d"}\'' },
369
- { wakeWord: '看体重 vs 缺口(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_deficit","window":"90d"}\'' },
370
- { wakeWord: '看体重 vs 缺口(最近 180 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_deficit","window":"180d"}\'' },
371
- { wakeWord: '看体重 vs 缺口(最近 365 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_deficit","window":"365d"}\'' },
372
- { wakeWord: '看体重 vs 缺口(本周)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_deficit","window":"week_cur"}\'' },
373
- { wakeWord: '看体重 vs 缺口(本月)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_deficit","window":"month_cur"}\'' },
374
- { wakeWord: '看体重 vs 缺口(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_deficit","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
375
- { wakeWord: '看摄入 vs 运动(最近 7 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"calorie_exercise","window":"7d"}\'' },
376
- { wakeWord: '看摄入 vs 运动(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"calorie_exercise","window":"30d"}\'' },
377
- { wakeWord: '看摄入 vs 运动(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"calorie_exercise","window":"90d"}\'' },
378
- { wakeWord: '看摄入 vs 运动(最近 180 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"calorie_exercise","window":"180d"}\'' },
379
- { wakeWord: '看摄入 vs 运动(最近 365 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"calorie_exercise","window":"365d"}\'' },
380
- { wakeWord: '看摄入 vs 运动(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"calorie_exercise","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
381
- { wakeWord: '看体重 vs 体脂(最近 7 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_bodyfat","window":"7d"}\'' },
382
- { wakeWord: '看体重 vs 体脂(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_bodyfat","window":"30d"}\'' },
383
- { wakeWord: '看体重 vs 体脂(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_bodyfat","window":"90d"}\'' },
384
- { wakeWord: '看体重 vs 体脂(最近 180 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_bodyfat","window":"180d"}\'' },
385
- { wakeWord: '看体重 vs 体脂(最近 365 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_bodyfat","window":"365d"}\'' },
386
- { wakeWord: '看体重 vs 体脂(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_bodyfat","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
387
- { wakeWord: '看体重 vs 围度(最近 7 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_waist","window":"7d"}\'' },
388
- { wakeWord: '看体重 vs 围度(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_waist","window":"30d"}\'' },
389
- { wakeWord: '看体重 vs 围度(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_waist","window":"90d"}\'' },
390
- { wakeWord: '看体重 vs 围度(最近 180 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_waist","window":"180d"}\'' },
391
- { wakeWord: '看体重 vs 围度(最近 365 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_waist","window":"365d"}\'' },
392
- { wakeWord: '看体重 vs 围度(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_waist","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
393
- { wakeWord: '看饮水 vs 体重(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"water_weight","window":"30d"}\'' },
394
- { wakeWord: '看饮水 vs 体重(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"water_weight","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
395
- { wakeWord: '看健康报告(本周)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
396
- { wakeWord: '看健康报告(上周)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-08-31","end":"2026-09-06"}\'' },
397
- { wakeWord: '看健康报告(最近 7 天)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
398
- { wakeWord: '看健康报告(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-08-09","end":"2026-09-07"}\'' },
399
- { wakeWord: '看健康报告(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-06-10","end":"2026-09-07"}\'' },
400
- { wakeWord: '看健康报告(最近 180 天)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-03-12","end":"2026-09-07"}\'' },
401
- { wakeWord: '看健康报告(最近 365 天)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2025-09-08","end":"2026-09-07"}\'' },
402
- { wakeWord: '看健康报告(本月)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
403
- { wakeWord: '看健康报告(上月)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-08-01","end":"2026-08-31"}\'' },
404
- { wakeWord: '看健康报告(今年)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-01-01","end":"2026-09-07"}\'' },
405
- { wakeWord: '看健康报告(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
406
- { wakeWord: '看BMI报告', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reportKindMissing },
407
- { wakeWord: '看TDEE报告', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reportKindMissing },
408
- { wakeWord: '看BMR报告', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reportKindMissing },
409
- { wakeWord: '看蛋白质摄入报告', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reportKindMissing },
410
- { wakeWord: '看水分摄入报告', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reportKindMissing },
411
- { wakeWord: '看综合评分', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reportKindMissing },
412
- { wakeWord: '看健康趋势', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reportKindMissing },
413
- { wakeWord: '看健康报告(含对比)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.reportKindMissing },
414
- { wakeWord: '看整体趋势(体重+摄入+运动)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
415
- { wakeWord: '看整体趋势(体重+体脂+围度)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
416
- { wakeWord: '看整体趋势(饮食+蛋白+纤维)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
417
- { wakeWord: '看整体趋势(运动+力量+有氧)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
418
- { wakeWord: '看整体趋势(BMI+体脂+肌肉量)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
419
- { wakeWord: '看整体趋势(摄入+蛋白+运动)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
420
- { wakeWord: '看整体趋势(体重+蛋白+缺口)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
421
- { wakeWord: '看整体趋势(体重+摄入+缺口)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
422
- { wakeWord: '看整体趋势(体重+摄入+运动+缺口)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
423
- { wakeWord: '看整体趋势(蛋白+运动)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
424
- { wakeWord: '看整体趋势(综合多指标)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
425
- { wakeWord: '看整体趋势(含月度对比)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
426
- { wakeWord: '看整体趋势(含季度对比)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
427
- { wakeWord: '看整体趋势(含年度对比)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
428
- { wakeWord: '看整体趋势(含目标对比)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.multiTrendMissing },
429
- { wakeWord: '诊断体重波动原因', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"weight_volatility","start":"2026-06-10","end":"2026-09-07"}\'' },
430
- { wakeWord: '诊断体重停滞(含平台期判断)', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"weight_plateau","start":"2026-06-10","end":"2026-09-07"}\'' },
431
- { wakeWord: '诊断体重反弹', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"weight_rebound","start":"2026-06-10","end":"2026-09-07"}\'' },
432
- { wakeWord: '诊断体重下降原因', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"weight_loss_cause","start":"2026-06-10","end":"2026-09-07"}\'' },
433
- { wakeWord: '诊断体重异常点', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"weight_anomaly","start":"2026-09-01","end":"2026-09-07"}\'' },
434
- { wakeWord: '诊断体重vs体脂围度背离', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"weight_divergence","start":"2026-03-12","end":"2026-09-07"}\'' },
435
- { wakeWord: '诊断饮食超标', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"diet_over","start":"2026-08-09","end":"2026-09-07"}\'' },
436
- { wakeWord: '诊断饮食不足', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"diet_under","start":"2026-08-09","end":"2026-09-07"}\'' },
437
- { wakeWord: '诊断营养不均衡(含均衡判断)', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"diet_unbalanced","start":"2026-08-09","end":"2026-09-07"}\'' },
438
- { wakeWord: '诊断饮食结构问题', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"diet_structure","start":"2026-08-09","end":"2026-09-07"}\'' },
439
- { wakeWord: '诊断运动不足', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"exercise_insufficient","start":"2026-08-09","end":"2026-09-07"}\'' },
440
- { wakeWord: '诊断运动过量', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"exercise_overload","start":"2026-08-09","end":"2026-09-07"}\'' },
441
- { wakeWord: '诊断运动类型失衡', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"exercise_type_imbalance","start":"2026-08-09","end":"2026-09-07"}\'' },
442
- { wakeWord: '诊断运动效率(含有效判断)', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"exercise_efficiency","start":"2026-08-09","end":"2026-09-07"}\'' },
443
- { wakeWord: '诊断运动建议(含类型推荐)', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"exercise_advice","start":"2026-08-09","end":"2026-09-07"}\'' },
444
- { wakeWord: '为什么我没瘦', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"why_not_losing","start":"2026-08-09","end":"2026-09-07"}\'' },
445
- { wakeWord: '为什么我瘦太快', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"why_losing_fast","start":"2026-08-09","end":"2026-09-07"}\'' },
446
- { wakeWord: '我的减重速度合理吗', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"rate_reasonable","start":"2026-08-09","end":"2026-09-07"}\'' },
447
- { wakeWord: '我的减肥策略对吗', scene: '10', kind: 'exec', key: 'calorie.view.goal-progress', cli: HELP_EXEC_OVERRIDES.diag_strategy_check },
448
- { wakeWord: '我距离目标还差什么', scene: '10', kind: 'exec', key: 'calorie.view.goal-weight', cli: HELP_EXEC_OVERRIDES.diag_gap_to_goal },
449
- { wakeWord: '我这个月做得好的', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"month_highlights","start":"2026-08-09","end":"2026-09-07"}\'' },
450
- { wakeWord: '我这个月需要改的', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"month_improve","start":"2026-08-09","end":"2026-09-07"}\'' },
451
- { wakeWord: '综合健康评估', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"overall","start":"2026-08-09","end":"2026-09-07"}\'' },
452
- { wakeWord: '看蛋白 vs 碳水(最近 7 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"protein_carbs","window":"7d"}\'' },
453
- { wakeWord: '看蛋白 vs 碳水(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"protein_carbs","window":"30d"}\'' },
454
- { wakeWord: '看蛋白 vs 碳水(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"protein_carbs","window":"90d"}\'' },
455
- { wakeWord: '看蛋白 vs 碳水(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"protein_carbs","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
456
- { wakeWord: '看蛋白 vs 脂肪(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"protein_fat","window":"30d"}\'' },
457
- { wakeWord: '看蛋白 vs 脂肪(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"protein_fat","window":"90d"}\'' },
458
- { wakeWord: '看蛋白 vs 脂肪(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"protein_fat","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
459
- { wakeWord: '看碳水 vs 脂肪(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"carbs_fat","window":"30d"}\'' },
460
- { wakeWord: '看碳水 vs 脂肪(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"carbs_fat","window":"90d"}\'' },
461
- { wakeWord: '看碳水 vs 脂肪(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"carbs_fat","window":"custom","start":"2026-09-01","end":"2026-09-07"}\'' },
462
- // #113 · 看钠糖纤维趋势/综合 non-exec→exec(t71 需移植 nutrition_analysis 的窗内配比+微量+规则建议已承接;旧链钠糖纤维单维趋势序列仍无同形,但两词所述综合能力已有单命令入口)。
463
- { wakeWord: '看钠糖纤维趋势', scene: '10', kind: 'exec', key: 'calorie.view.nutrition-analysis', cli: 'calorie-cmd-read calorie.view.nutrition-analysis --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
464
- { wakeWord: '看钠糖纤维综合', scene: '10', kind: 'exec', key: 'calorie.view.nutrition-analysis', cli: 'calorie-cmd-read calorie.view.nutrition-analysis --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
465
- { wakeWord: '看营养建议', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.noNutritionAdvice },
466
- { wakeWord: '看三大营养交叉(最近 30 天)', scene: '10', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-08-09","end":"2026-09-07"}\'' },
467
- { wakeWord: '看三大营养交叉(最近 90 天)', scene: '10', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-06-10","end":"2026-09-07"}\'' },
468
- { wakeWord: '看三大营养交叉(自定义)', scene: '10', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
469
- { wakeWord: '预测体重(1 周后)', scene: '10', kind: 'exec', key: 'calorie.view.predict', cli: 'calorie-cmd-read calorie.view.predict --params \'{"start":"2026-08-25","end":"2026-09-07","horizonDays":7}\'' },
470
- { wakeWord: '预测体重(1 月后)', scene: '10', kind: 'exec', key: 'calorie.view.predict', cli: 'calorie-cmd-read calorie.view.predict --params \'{"start":"2026-08-25","end":"2026-09-07","horizonDays":30}\'' },
471
- { wakeWord: '预测体重(3 月后)', scene: '10', kind: 'exec', key: 'calorie.view.predict', cli: 'calorie-cmd-read calorie.view.predict --params \'{"start":"2026-08-25","end":"2026-09-07","horizonDays":90}\'' },
472
- { wakeWord: '预测体重(6 月后)', scene: '10', kind: 'exec', key: 'calorie.view.predict', cli: 'calorie-cmd-read calorie.view.predict --params \'{"start":"2026-08-25","end":"2026-09-07","horizonDays":180}\'' },
473
- { wakeWord: '预测体重(自定义时间)', scene: '10', kind: 'exec', key: 'calorie.view.predict', cli: 'calorie-cmd-read calorie.view.predict --params \'{"start":"2026-08-25","end":"2026-09-07","horizonDays":60}\'' },
474
- { wakeWord: '预测体重(自定义目标)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
475
- { wakeWord: '模拟减重(每天-300卡)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
476
- { wakeWord: '模拟减重(每天-500卡)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
477
- { wakeWord: '模拟减重(每天-700卡)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
478
- { wakeWord: '模拟减重(30天减Xkg)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
479
- { wakeWord: '模拟减重(60天减Xkg)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
480
- { wakeWord: '模拟减重(90天减Xkg)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
481
- { wakeWord: '模拟减重(自定义天数减Xkg)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
482
- { wakeWord: '摄入预测(按当前速率 1 周)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
483
- { wakeWord: '摄入预测(按当前速率 1 月)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
484
- { wakeWord: '摄入预测(按当前速率 3 月)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
485
- { wakeWord: '摄入预测(自定义)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
486
- { wakeWord: '摄入预测(营养目标达成预测)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
487
- { wakeWord: '摄入预测(卡路里缺口预测)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
488
- { wakeWord: '摄入预测(摄入稳定性预测)', scene: '10', kind: 'non-exec', bucket: 'legacy-chain', reason: NON_EXEC_REASONS.predictParamMissing },
489
- // #113 · 看每日 6 因素综合 non-exec→exec(旧链 six 的 6 因素评分已由 six-factors 承接)。
490
- { wakeWord: '看每日 6 因素综合', scene: '10', kind: 'exec', key: 'calorie.view.six-factors', cli: 'calorie-cmd-read calorie.view.six-factors --params \'{"date":"2026-09-07"}\'' },
491
- { wakeWord: '今日复盘', scene: '10', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
492
- { wakeWord: '关闭定时复盘', scene: '10', kind: 'non-exec', bucket: 'out-of-scope', reason: NON_EXEC_REASONS.oosCron },
493
- { wakeWord: '复盘', scene: '10', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
494
- { wakeWord: '复盘日期范围', scene: '10', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
495
- { wakeWord: '开启定时复盘', scene: '10', kind: 'non-exec', bucket: 'out-of-scope', reason: NON_EXEC_REASONS.oosCron },
496
- { wakeWord: '本周复盘', scene: '10', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
497
- { wakeWord: '本年复盘', scene: '10', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-01-01","end":"2026-09-07"}\'' },
498
- { wakeWord: '本月复盘', scene: '10', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
499
- { wakeWord: '查低热量榜', scene: '10', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"low_calorie","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
500
- { wakeWord: '查健康报告', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
501
- // #113 · 查卡路里数据 non-exec→exec(旧链 render_lint_health.py 的数据体检已由 lint-health 承接)。
502
- { wakeWord: '查卡路里数据', scene: '10', kind: 'exec', key: 'calorie.view.lint-health', cli: 'calorie-cmd-read calorie.view.lint-health' },
503
- { wakeWord: '查定时复盘', scene: '10', kind: 'non-exec', bucket: 'out-of-scope', reason: NON_EXEC_REASONS.oosCron },
504
- { wakeWord: '查热量缺口', scene: '10', kind: 'exec', key: 'calorie.view.deficit', cli: 'calorie-cmd-read calorie.view.deficit --params \'{"start":"2026-09-05","end":"2026-09-07"}\'' },
505
- { wakeWord: '查热量趋势', scene: '10', kind: 'exec', key: 'calorie.history', cli: 'calorie-cmd-read calorie.history --params \'{"days":7}\'' },
506
- { wakeWord: '查营养结构', scene: '10', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
507
- { wakeWord: '查运动分布', scene: '10', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
508
- { wakeWord: '查运动贡献', scene: '10', kind: 'exec', key: 'calorie.view.exercise', cli: 'calorie-cmd-read calorie.view.exercise --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
509
- { wakeWord: '查频繁吃榜', scene: '10', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"frequent","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
510
- { wakeWord: '查食物排行', scene: '10', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
511
- { wakeWord: '查高热量榜', scene: '10', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"start":"2026-09-05","end":"2026-09-07"}\'' },
512
- { wakeWord: '查高碳水榜', scene: '10', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_carb","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
513
- { wakeWord: '查高蛋白榜', scene: '10', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"category":"high_protein","start":"2026-09-01","end":"2026-09-07","topN":10}\'' },
514
- ];
62
+ /** 三个列表与全量路由:**记录数据住生成物** `./routes.generated.js`(`pnpm gen` 产出,按声明的
63
+ * `(list, order)` 排序复原);本文件只再导出——导出面与改造前逐名一致(`routesFor` 被
64
+ * `src/render/helpCenter.ts:46` 用着)。改动顺序请改声明件的 `order`,不要改生成物。
65
+ */
515
66
  /** FX-81-5 覆盖修复:3 条链式 wizard 词的键失去**唯一**可跑入口,故补 1 条单命令入口。
516
67
  *
517
68
  * FX-81-7 复核后:`看目标预测达成` 已改 exec(≥14 天窗口实跑 exit 0)→ 其键
518
69
  * `calorie.view.goal-predict` 由该词自身承接,原修复入口 `看目标达成预测` 删除(不再需要)。
519
70
  * `定营养目标(自动算)`/`定饮水目标(自动算)`/`一键定全套目标` 三条链式词保留 non-exec(wizard),
520
71
  * 其键 `calorie.view.goal-recommend` 由本条承接(D2③「99 键全部有可执行入口」不放宽)。 */
521
- export const COVERAGE_REPAIR_ROUTES = [
522
- { wakeWord: '看目标推荐', scene: '06', kind: 'exec', key: 'calorie.view.goal-recommend', cli: 'calorie-cmd-read calorie.view.goal-recommend --params \'{"profile":"cut"}\'' },
523
- ];
524
- /** D-4:52 个无入口键的新拟入口(唤醒词新拟,不写入冻结表) */
525
- export const NEW_KEY_ROUTES = [
526
- { wakeWord: '存身材照', scene: '09', kind: 'exec', key: 'calorie.photo.add', cli: 'calorie-cmd-read calorie.photo.add --params \'{"srcPaths":["<照片路径>"],"tag":"正面"}\'' },
527
- { wakeWord: '移除身材照', scene: '09', kind: 'exec', key: 'calorie.photo.remove', cli: 'calorie-cmd-read calorie.photo.remove --params \'{"id":1}\'' },
528
- { wakeWord: '设置照片标签', scene: '09', kind: 'exec', key: 'calorie.photo.tag', cli: 'calorie-cmd-read calorie.photo.tag --params \'{"id":1,"op":"add","tag":"晨起"}\'' },
529
- { wakeWord: '看今日饮食记录', scene: '02', kind: 'exec', key: 'calorie.today', cli: 'calorie-cmd-read calorie.today --params \'{"date":"2026-09-07"}\'' },
530
- { wakeWord: '看目标配置', scene: '06', kind: 'exec', key: 'calorie.view.goal-config', cli: 'calorie-cmd-read calorie.view.goal-config' },
531
- { wakeWord: '看目标状态', scene: '06', kind: 'exec', key: 'calorie.view.goal-status', cli: 'calorie-cmd-read calorie.view.goal-status' },
532
- { wakeWord: '看组合分析', scene: '10', kind: 'exec', key: 'calorie.view.combined', cli: 'calorie-cmd-read calorie.view.combined --params \'{"pair":"weight_calorie","window":"7d"}\'' },
533
- { wakeWord: '看热量缺口', scene: '10', kind: 'exec', key: 'calorie.view.deficit', cli: 'calorie-cmd-read calorie.view.deficit --params \'{"start":"2026-09-05","end":"2026-09-07"}\'' },
534
- { wakeWord: '看饮食复盘', scene: '02', kind: 'exec', key: 'calorie.view.diet-review', cli: 'calorie-cmd-read calorie.view.diet-review --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
535
- { wakeWord: '看健康盘', scene: '10', kind: 'exec', key: 'calorie.view.health', cli: 'calorie-cmd-read calorie.view.health --params \'{"start":"2026-09-07","end":"2026-09-07"}\'' },
536
- { wakeWord: '查高热量排行', scene: '02', kind: 'exec', key: 'calorie.view.ranking', cli: 'calorie-cmd-read calorie.view.ranking --params \'{"start":"2026-09-05","end":"2026-09-07"}\'' },
537
- { wakeWord: '查食品库', scene: '02', kind: 'exec', key: 'calorie.view.library', cli: 'calorie-cmd-read calorie.view.library' },
538
- { wakeWord: '搜食品', scene: '02', kind: 'exec', key: 'calorie.view.search', cli: 'calorie-cmd-read calorie.view.search --params \'{"keyword":"鸡胸"}\'' },
539
- { wakeWord: '看身材照', scene: '09', kind: 'exec', key: 'calorie.photo.list', cli: 'calorie-cmd-read calorie.photo.list --params \'{"tag":"正面"}\'' },
540
- { wakeWord: '查身材照详情', scene: '09', kind: 'exec', key: 'calorie.photo.detail', cli: 'calorie-cmd-read calorie.photo.detail --params \'{"id":1}\'' },
541
- { wakeWord: '对比身材照', scene: '09', kind: 'exec', key: 'calorie.photo.compare', cli: 'calorie-cmd-read calorie.photo.compare --params \'{"id1":1,"id2":2}\'' },
542
- { wakeWord: '做身材照GIF', scene: '09', kind: 'exec', key: 'calorie.photo.gif', cli: 'calorie-cmd-read calorie.photo.gif --params \'{"tag":"正面"}\'' },
543
- { wakeWord: '看身材照HELP', scene: '09', kind: 'exec', key: 'calorie.help.center', cli: 'calorie-cmd-read calorie.help.center --params \'{"q":"记身材照"}\'' },
544
- { wakeWord: '查唤醒词', scene: '10', kind: 'exec', key: 'calorie.help.lookup', cli: 'calorie-cmd-read calorie.help.lookup --params \'{"q":"看今日主页"}\'' },
545
- { wakeWord: '查热量历史', scene: '10', kind: 'exec', key: 'calorie.history', cli: 'calorie-cmd-read calorie.history --params \'{"days":7}\'' },
546
- { wakeWord: '看体重历史', scene: '03', kind: 'exec', key: 'calorie.view.weight-history', cli: 'calorie-cmd-read calorie.view.weight-history' },
547
- { wakeWord: '看体重对比', scene: '03', kind: 'exec', key: 'calorie.view.weight-compare', cli: 'calorie-cmd-read calorie.view.weight-compare --params \'{"start":"2026-09-01","end":"2026-09-07","compareStart":"2026-08-23","compareEnd":"2026-08-29"}\'' },
548
- { wakeWord: '看体重复核', scene: '03', kind: 'exec', key: 'calorie.view.weight-review', cli: 'calorie-cmd-read calorie.view.weight-review' },
549
- { wakeWord: '看波动分析', scene: '03', kind: 'exec', key: 'calorie.view.volatility', cli: 'calorie-cmd-read calorie.view.volatility' },
550
- { wakeWord: '看体成分', scene: '08', kind: 'exec', key: 'calorie.view.body-composition', cli: 'calorie-cmd-read calorie.view.body-composition' },
551
- { wakeWord: '看围度记录', scene: '08', kind: 'exec', key: 'calorie.view.body-measure', cli: 'calorie-cmd-read calorie.view.body-measure' },
552
- { wakeWord: '看训练计划', scene: '05', kind: 'exec', key: 'calorie.view.plan', cli: 'calorie-cmd-read calorie.view.plan' },
553
- { wakeWord: '看构建向导', scene: '05', kind: 'exec', key: 'calorie.view.plan-wizard', cli: 'calorie-cmd-read calorie.view.plan-wizard --params \'{"plan":{"config":{"title":"减脂4周","start_date":"2026-09-07","user_level":"中手","available_equipment":["瑜伽垫"]},"weeks":[{"week_number":1,"days":[{"day_of_week":1,"sessions":[{"session_label":"上肢","movements":[{"name":"俯卧撑","part":"胸","type":"力量","sets":[]}]}]}]}]}}\'' },
554
- { wakeWord: '看运动目标', scene: '04', kind: 'exec', key: 'calorie.view.exercise-goal', cli: 'calorie-cmd-read calorie.view.exercise-goal' },
555
- { wakeWord: '看体重预测', scene: '10', kind: 'exec', key: 'calorie.view.predict', cli: 'calorie-cmd-read calorie.view.predict --params \'{"start":"2026-08-25","end":"2026-09-07","horizonDays":7}\'' },
556
- { wakeWord: '看异常诊断', scene: '10', kind: 'exec', key: 'calorie.view.anomaly', cli: 'calorie-cmd-read calorie.view.anomaly --params \'{"kind":"diet_over","start":"2026-09-01","end":"2026-09-07"}\'' },
557
- { wakeWord: '看禁忌扫描', scene: '05', kind: 'exec', key: 'calorie.view.contraindication', cli: 'calorie-cmd-read calorie.view.contraindication' },
558
- { wakeWord: '看去重报告', scene: '02', kind: 'exec', key: 'calorie.view.dedupe', cli: 'calorie-cmd-read calorie.view.dedupe' },
559
- { wakeWord: '看档案视图', scene: '07', kind: 'exec', key: 'calorie.view.profile', cli: 'calorie-cmd-read calorie.view.profile' },
560
- // #111 · 运动移植 6 键新拟入口(D2③ 99 键全可达;其中 strength/cardio/review 已由上文促进词覆盖,本表补齐 distribution/recap/trend+三键短名)。
561
- { wakeWord: '看力量总览', scene: '04', kind: 'exec', key: 'calorie.view.exercise-strength', cli: 'calorie-cmd-read calorie.view.exercise-strength --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
562
- { wakeWord: '看有氧总览', scene: '04', kind: 'exec', key: 'calorie.view.exercise-cardio', cli: 'calorie-cmd-read calorie.view.exercise-cardio --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
563
- { wakeWord: '看运动分类占比', scene: '04', kind: 'exec', key: 'calorie.view.exercise-distribution', cli: 'calorie-cmd-read calorie.view.exercise-distribution --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
564
- { wakeWord: '看运动复盘', scene: '04', kind: 'exec', key: 'calorie.view.exercise-recap', cli: 'calorie-cmd-read calorie.view.exercise-recap --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
565
- { wakeWord: '看训练计划复盘', scene: '05', kind: 'exec', key: 'calorie.view.exercise-review', cli: 'calorie-cmd-read calorie.view.exercise-review --params \'{"start":"2026-08-31","end":"2026-09-07"}\'' },
566
- { wakeWord: '看运动消耗趋势', scene: '04', kind: 'exec', key: 'calorie.view.exercise-trend', cli: 'calorie-cmd-read calorie.view.exercise-trend --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
567
- // #112 · 营养移植 4 键新拟入口(D2③ 99 键全可达;其中 nutrition-detail 已由上文促进词覆盖,本表补齐 4 键短名)。
568
- { wakeWord: '查营养配比', scene: '02', kind: 'exec', key: 'calorie.view.nutrition-ratio', cli: 'calorie-cmd-read calorie.view.nutrition-ratio --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
569
- { wakeWord: '看营养素明细', scene: '02', kind: 'exec', key: 'calorie.view.nutrition-detail', cli: 'calorie-cmd-read calorie.view.nutrition-detail --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
570
- { wakeWord: '看食品来源分布', scene: '02', kind: 'exec', key: 'calorie.view.source-stats', cli: 'calorie-cmd-read calorie.view.source-stats' },
571
- { wakeWord: '看今日饮水', scene: '02', kind: 'exec', key: 'calorie.view.today-water', cli: 'calorie-cmd-read calorie.view.today-water --params \'{"date":"2026-09-07"}\'' },
572
- // #113 · 趋势 2+其他 6 移植 8 键新拟入口(D2③ 99 键全可达;其中 nutrition-analysis/six-factors/lint-health 已由上文促进词覆盖,本表补齐 8 键短名)。
573
- { wakeWord: '看批量导入预览', scene: '02', kind: 'exec', key: 'calorie.view.batch-import-preview', cli: 'calorie-cmd-read calorie.view.batch-import-preview --params \'{"items":[{"foodName":"粥","calories":150,"protein":3,"date":"2026-09-06"}]}\'' },
574
- { wakeWord: '看热量趋势', scene: '10', kind: 'exec', key: 'calorie.view.calorie-trend', cli: 'calorie-cmd-read calorie.view.calorie-trend --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
575
- { wakeWord: '查数据健康', scene: '10', kind: 'exec', key: 'calorie.view.lint-health', cli: 'calorie-cmd-read calorie.view.lint-health' },
576
- { wakeWord: '看整体趋势', scene: '10', kind: 'exec', key: 'calorie.view.long-trend', cli: 'calorie-cmd-read calorie.view.long-trend --params \'{"group":"weight_calorie","window":"30d"}\'' },
577
- { wakeWord: '看营养分析', scene: '02', kind: 'exec', key: 'calorie.view.nutrition-analysis', cli: 'calorie-cmd-read calorie.view.nutrition-analysis --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
578
- { wakeWord: '看落地训练进度', scene: '05', kind: 'exec', key: 'calorie.view.process-progress', cli: 'calorie-cmd-read calorie.view.process-progress' },
579
- { wakeWord: '看复盘报告', scene: '10', kind: 'exec', key: 'calorie.view.review-template', cli: 'calorie-cmd-read calorie.view.review-template --params \'{"start":"2026-09-01","end":"2026-09-07"}\'' },
580
- { wakeWord: '看每日六因素', scene: '02', kind: 'exec', key: 'calorie.view.six-factors', cli: 'calorie-cmd-read calorie.view.six-factors --params \'{"date":"2026-09-07"}\'' },
581
- // #86 · wizard 4 页复刻 D1 新拟入口(D2③ 99 键全可达;4 键短名;静态 HTML+copyText verify 页,agent 按 M6 三场景选用)。
582
- { wakeWord: '看围度向导', scene: '08', kind: 'exec', key: 'calorie.view.measure-wizard', cli: 'calorie-cmd-read calorie.view.measure-wizard' },
583
- { wakeWord: '看体脂向导', scene: '08', kind: 'exec', key: 'calorie.view.composition-wizard', cli: 'calorie-cmd-read calorie.view.composition-wizard' },
584
- { wakeWord: '看身材照向导', scene: '09', kind: 'exec', key: 'calorie.view.photo-log-wizard', cli: 'calorie-cmd-read calorie.view.photo-log-wizard' },
585
- { wakeWord: '看GIF规划器', scene: '09', kind: 'exec', key: 'calorie.view.gif-planner', cli: 'calorie-cmd-read calorie.view.gif-planner --params \'{"tag":"正面"}\'' },
586
- ];
587
- /** 全量路由(436 条 SoT + 56 条新拟入口 + 1 条覆盖修复入口) */
588
- export const ALL_ROUTES = [...WAKE_ROUTES, ...NEW_KEY_ROUTES, ...COVERAGE_REPAIR_ROUTES];
72
+ /** D-4:52 个无入口键的新拟入口(唤醒词新拟,不写入冻结表)。逐条映射与实跑见
73
+ * `docs/research/t81-route-evidence.md`。 */
74
+ export { ALL_ROUTES, COVERAGE_REPAIR_ROUTES, NEW_KEY_ROUTES, WAKE_ROUTES };
589
75
  /** 唤醒词 → 路由(记身材照 3 条,故值为数组) */
590
76
  export const ROUTES_BY_WAKE_WORD = ALL_ROUTES.reduce((acc, r) => {
591
77
  (acc[r.wakeWord] ??= []).push(r);
592
78
  return acc;
593
79
  }, {});
594
- /** calorie key → 首条可执行路由(99 键全可达的索引) */
80
+ /** calorie key → 首条可执行路由(100 键全可达的索引) */
595
81
  export const EXEC_ROUTE_BY_KEY = ALL_ROUTES.filter((r) => r.kind === 'exec').reduce((acc, r) => {
596
82
  acc[r.key] ??= r;
597
83
  return acc;
@@ -613,10 +99,10 @@ export const T71_DIFFS = [
613
99
  },
614
100
  {
615
101
  id: 'O3',
616
- wakeWords: ['同步到训记', '拉训记实绩'],
102
+ wakeWords: [],
617
103
  spec: 'docs/calorie-architecture.md:60「训记」',
618
104
  t71: 'docs/research/t71-old-baseline-inventory.md:743 O3(训记同步)',
619
- note: '同项。',
105
+ note: 't71 时点同项(当时两词:同步到训记/拉训记实绩);#614 起这两条已转入 exec(`src/workout/routes.ts` order 199–200,命令 `calorie.workout.xunji-push`/`calorie.workout.xunji-backfill`),现状以路由层为准,本登记只存档 t71 时点口径。',
620
106
  },
621
107
  {
622
108
  id: 'O4',
@@ -641,10 +127,10 @@ export const T71_DIFFS = [
641
127
  },
642
128
  {
643
129
  id: 'M8',
644
- wakeWords: ['落地训练', '落地到本周末', '落地到本月底'],
130
+ wakeWords: [],
645
131
  spec: 'docs/calorie-architecture.md:60「落地」',
646
132
  t71: 'docs/research/t71-old-baseline-inventory.md:203 M8 需移植项(process_progress.html)',
647
- note: '差异:按规格 :60 入「明确不做」;按 t71 M8「需移植」,不在 O1O4 之内。',
133
+ note: 't71 时点三词(落地训练/落地到本周末/落地到本月底,M8「需移植」);#612 起其中「落地训练」已转入 exec(`src/workout/routes.ts` order 196,命令 `calorie.workout.land`);#613 起剩余两词亦转入 exec(`src/workout/routes.ts` order 197198,命令 `calorie.workout.land-weekend`/`calorie.workout.land-monthend`),现状以路由层为准,本登记只存档 t71 时点口径。',
648
134
  },
649
135
  ];
650
136
  /** 明确不做桶成员(按规格 :60 建立;t71 差异见 T71_DIFFS) */