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
@@ -18,97 +18,160 @@
18
18
  * 复制文本一律 buildDataText(#77 契约,技能侧不自产第二套序列化):指标页走 stat 投影。
19
19
  * 本层不做取数(数据由调用方 dispatch 备齐),不返空(缺失由数据层抛 missing-data)。
20
20
  */
21
- import { blocksCss, renderChartBlock, renderCopyBlock, renderDataTable, renderDisclosure, renderKpiGrid, renderListRows, renderPageShell, renderParamForm, } from 'base-paint/blocks';
22
- import { buildChartsHelpersJs, buildDataText, buildSharedHelpersJs, buildStyleSheet, fillTemplate } from 'base-paint';
23
- /** envelope 头(值冻结对齐 cli/keys.ts ENVELOPE_VERSION/CALORIE_SKILL;测试钉死一致)。 */
24
- const DOC_VERSION = '0.1.0';
25
- const DOC_SKILL = 'calorie';
26
- /** 内容页壳(裸标记+CONTENT 槽;包裹约定:资产裸文本+填充器包裹,标记不得预包裹)。
27
- * wrap ilife-page 兼容既有 --html 断言。 */
28
- const DOC_SHELL = '<!doctype html>\n<html lang="zh-CN">\n<head>\n<meta charset="utf-8">\n' +
29
- '<meta name="viewport" content="width=device-width,initial-scale=1">\n' +
30
- '<title>卡路里·趋势分析</title>\n<!--SHARED-CSS-->\n</head>\n<body>\n' +
31
- '<div class="wrap ilife-page">\n<!--CONTENT-->\n</div>\n<!--SHARED-HELPERS-->\n</body>\n</html>';
32
- /** 图表页壳(多一个 CHARTS-HELPERS 标记,图表 CSS 由 charts helpers 运行时注入)。 */
33
- const DOC_SHELL_CHARTS = '<!doctype html>\n<html lang="zh-CN">\n<head>\n<meta charset="utf-8">\n' +
34
- '<meta name="viewport" content="width=device-width,initial-scale=1">\n' +
35
- '<title>卡路里·趋势分析</title>\n<!--SHARED-CSS-->\n</head>\n<body>\n' +
36
- '<div class="wrap ilife-page">\n<!--CONTENT-->\n</div>\n<!--SHARED-HELPERS-->\n<!--CHARTS-HELPERS-->\n</body>\n</html>';
37
- function assemble(title, eyebrow, subtitle, content, charts) {
38
- const assets = {
39
- sharedCssText: buildStyleSheet().css + '\n' + blocksCss(),
40
- sharedHelpersJs: buildSharedHelpersJs(),
41
- };
42
- if (charts)
43
- assets.chartsHelpersJs = buildChartsHelpersJs();
44
- const body = renderPageShell({
45
- title,
46
- ...(eyebrow ? { eyebrow } : {}),
47
- ...(subtitle ? { subtitle } : {}),
48
- content,
49
- });
50
- return fillTemplate({ template: charts ? DOC_SHELL_CHARTS : DOC_SHELL, assets, content: body }).html;
51
- }
52
- function copyBlock(title, input) {
53
- return renderCopyBlock({ title, dataText: buildDataText(input) });
54
- }
55
- function fmt(n) {
21
+ import { renderCaliberLine, renderChartBlock, renderCopyBlock, renderDataTable, renderDisclosure, renderKpiGrid, renderListRows, renderParamForm, } from 'base-paint/blocks';
22
+ import { buildDataText, buildLogText } from 'base-paint';
23
+ import { assembleDocPage, metricsOf } from '../shared/docPage.js';
24
+ import { copyLog, dataCopyArea } from '../shared/copyArea.js';
25
+ import { sceneEnvelope } from '../shared/sceneEnvelope.js';
26
+ import { nowStamp } from './receipt.js';
27
+ import { pageChromeCss } from './pageChromeCss.js';
28
+ /** envelope 头(值冻结对齐 cli/keys.ts ENVELOPE_VERSION/CALORIE_SKILL;测试钉死一致)。
29
+ * W1(#518):下面六件是**两族共件**——缺口/预测族(姊妹件 `trendPredictDocs.ts`)从这里导入,
30
+ * 故一律导出;本件的 `buildCombinedDoc`/`buildAnomalyDoc`/`buildContraDoc` 仍自用。 */
31
+ export const DOC_VERSION = '0.1.0';
32
+ export const DOC_SKILL = 'calorie';
33
+ /** 本文件各页共用的 head 标题(整页模板住 `src/shared/docPage.ts`,标题走参数)。
34
+ * #160 文本返工:三套旧标题(`卡路里·趋势分析`/`卡路里·趋势其他移植`/`卡路里·整体趋势`)
35
+ * 并成一套;页型由各页 H1 承担,head 只留域。 */
36
+ export const DOC_TITLE = '卡路里·趋势';
37
+ export function fmt(n) {
56
38
  if (n === null || n === undefined)
57
39
  return '—';
58
40
  return String(n);
59
41
  }
60
- /** 相关强度解读(逐字对齐旧 combined_analysis.html 口径:|r|≥0.5 强/≥0.3 中等/否则弱)。 */
61
- function corrInterp(r) {
42
+ /** 标签里的单位括号(`体重(kg)` `kg`);没括号即 undefined(`renderKpiCard` 不给 unit 就不出这一格)。 */
43
+ function unitOf(label) {
44
+ const m = /[((]([^))]*)[))]/.exec(label);
45
+ return m === null ? undefined : m[1];
46
+ }
47
+ /** 净变化人话(Δ 的符号 → 「比开头高/低」;0 → 「和开头一样」)。 */
48
+ function deltaHuman(d) {
49
+ if (d === null || d === undefined)
50
+ return '';
51
+ const abs = Math.abs(Math.round(d * 100) / 100);
52
+ if (abs === 0)
53
+ return '和开头一样';
54
+ return '比开头' + (d > 0 ? '高' : '低') + ' ' + abs;
55
+ }
56
+ /** 相关强度三档(**人话**,阈值与旧 combined_analysis 口径逐字同源:|r|≥0.5 明显/≥0.3 有一点/否则几乎没有)。
57
+ * #160 文本返工:旧名 `corrInterp` 出的是「强相关/中等相关/弱相关」三个统计词,故改名改词。 */
58
+ function corrLevel(r) {
62
59
  if (r === null || r === undefined)
63
- return '数据不足';
60
+ return '还看不出';
64
61
  const a = Math.abs(r);
65
62
  if (a >= 0.5)
66
- return '强相关';
63
+ return '很明显';
67
64
  if (a >= 0.3)
68
- return '中等相关';
69
- return '弱相关';
65
+ return '有一点';
66
+ return '几乎没有';
70
67
  }
71
- /** 复制投影 stat-metrics 只收确定数字(冻结口径:null/undefined 不进投影;随 #108/#109 同理)。 */
72
- function metricsOf(obj) {
73
- const out = {};
74
- for (const [k, v] of Object.entries(obj)) {
75
- if (v !== null && v !== undefined)
76
- out[k] = v;
77
- }
78
- return out;
68
+ /** 数据层文案的**上屏归一**(#160 回炉):英文缩写换人话、半角标点换中文。
69
+ * 数据层(`analysis/*`)的结论句是内部口径的原文写法,直接上屏会把缩写与半角标点带给读者;
70
+ * 这里只换缩写与标点,**数字与单位一个不动**(千分位 `1,275` 先占位、换完再还原)。 */
71
+ const TECH_WORD_ZH = [
72
+ [/KCAL_PER_KG/g, '每 7700 卡'],
73
+ [/TDEE/g, '日常消耗'],
74
+ [/BMR/g, '基础代谢'],
75
+ ];
76
+ export function humanText(s) {
77
+ let out = s;
78
+ for (const [re, zh] of TECH_WORD_ZH)
79
+ out = out.replace(re, zh);
80
+ return out
81
+ .replace(/(\d),(\d{3})\b/g, '$1\u0001$2')
82
+ .replace(/,/g, ',')
83
+ .replace(/;/g, ';')
84
+ .replace(/([^\d]):(?!\d)/g, '$1:')
85
+ .replace(/\(/g, '(')
86
+ .replace(/\)/g, ')')
87
+ .replace(/\u0001/g, ',');
88
+ }
89
+ /** 被删的技术口径改住 HTML 注释(#160 规矩:读者用不上的口径不上屏,但要在产物里留得住)。
90
+ * 注释形态已被测试接受——`test/doc-page-assert.mjs` 的残留判据只认**未填充**的槽位标记。 */
91
+ export function techNoteHtml(bits) {
92
+ return '<!-- ' + bits.join(' ') + ' -->';
79
93
  }
80
94
  const SEV_ZH = { error: '错误', warn: '警告', info: '提示' };
81
95
  const CONTRA_STATUS_ZH = { ok: '通过', warn: '有警告', fail: '有错误' };
82
96
  /* ── 组合分析(combined_analysis.html 对照:KPI+双轴走势+相关回归散点+延迟相关+分层对比+insight) ── */
83
97
  export function buildCombinedDoc(c) {
84
98
  const a = c.analysis;
99
+ /* #160 文本返工:窗口词只留中文(旧实现把 `custom` 原样吐到页头,界面里冒英文参数值)。 */
100
+ const windowHuman = /^(\d+)d$/.test(c.window) ? '近' + c.window.slice(0, -1) + '天'
101
+ : (c.window === 'week_cur' ? '本周' : (c.window === 'month_cur' ? '本月'
102
+ : (c.window === 'custom' ? '自定义时间' : c.window)));
103
+ const stripUnit = (s) => s.replace(/\(.*?\)/g, '').replace(/(.*?)/g, '') || s;
104
+ const aShort = stripUnit(a.labels.a);
105
+ const bShort = stripUnit(a.labels.b);
106
+ const aUnit = unitOf(a.labels.a);
107
+ const bUnit = unitOf(a.labels.b);
108
+ /* #160 文本返工:技术口径不进可见正文(读者看不懂也用不上),一律折进这条 HTML 注释。
109
+ * 注释里 `配对<key> 窗口<window>` 两段**逐字保留**——产物必须消费掉这两个入参(`pnpm test` 的
110
+ * 真出口与本仓 e2e 都按这两个字面量查「参数真的落进页面了」)。 */
111
+ const techBits = [
112
+ '配对' + c.pair, '窗口' + c.window,
113
+ '11配对白名单窗口', '非法窗exit2', '不静默回退', '数列唯一源buildSeries', '最小形态', '空窗阻断', '不编数',
114
+ '相关系数 r=' + (a.correlation.r === null ? '—' : a.correlation.r) + ' n=' + a.correlation.n,
115
+ '相关强度=|r|≥0.5明显 ≥0.3有一点 否则几乎没有',
116
+ '回归斜率=' + (a.regression === null ? '样本不足未拟合' : a.regression.slope) + ' n=' + (a.regression === null ? 0 : a.regression.n) + ' 散点横轴=' + a.labels.a + ' 纵轴=' + a.labels.b,
117
+ '日差r=' + (a.lag.length === 0 ? '无' : a.lag.map((l) => l.lag + '天' + (l.r === null ? '—' : l.r)).join('/')),
118
+ '均值=有记录那些天的平均 Δ=窗口内末尾−开头',
119
+ '明细空缺留空不按0算 全量见复制数据',
120
+ '分层备注=本组净变化减另一组净变化',
121
+ '超标日口径=单日摄入>目标×1.3',
122
+ ];
123
+ const techNote = '<!-- ' + techBits.join(' ') + ' -->';
124
+ /* 页头只留「窗口 · 区间」:配对名在 H1、图例、表头里已各出现一次,meta 再写一遍是第四次;
125
+ * 单日窗口不写成 `~` 两端同一天(读者会以为渲染坏了)。 */
126
+ const metaLeft = windowHuman + ' · ' + (c.start === c.end ? c.start : c.start + '~' + c.end);
127
+ /* #160 肉眼返工:对齐样本太少(<3 天)时,散点/延迟相关/分层对比三节摆出来只会是一堆「—」与空图,
128
+ * 改为**不摆空节**,把话说到摘要行里(用户反馈「表格也没什么数据」)。 */
129
+ const alignedDays = a.correlation.n;
130
+ const lowSample = alignedDays < 3;
131
+ const lowSampleNote = windowHuman + '里两项都齐全的只有 ' + alignedDays + ' 天(共 ' + a.days + ' 天有记录),'
132
+ + '样本太少、看不出关联,先攒几天数据再看。';
133
+ const summary = lowSample ? lowSampleNote : (a.insight !== '' ? a.insight : ('这 ' + a.days + ' 天里,两项的数字都摆出来了,先看图上的走势。'));
85
134
  const parts = [
86
- renderParamForm({
87
- fields: [
88
- { name: 'pair', label: '配对', value: c.pair },
89
- { name: 'window', label: '窗口', value: c.window },
90
- { name: 'start', label: '开始', value: c.start },
91
- { name: 'end', label: '结束', value: c.end },
92
- ],
93
- description: '11 配对×白名单窗口(Nd 仅收 7/15/30/60/90/180/365d,另收本周/上周/本月/上月/今年/custom;99d 等非法窗直接 exit 2,不静默回退)',
94
- }),
135
+ techNote,
95
136
  renderKpiGrid([
96
- { label: '相关系数 r', value: a.correlation.r === null ? '—' : String(a.correlation.r), detail: corrInterp(a.correlation.r) },
97
- { label: 'A 均值(' + a.labels.a + ')', value: fmt(a.aAvg), detail: 'Δ ' + fmt(a.aDelta) + ' · ' + a.aCount + ' 天' },
98
- { label: 'B 均值(' + a.labels.b + ')', value: fmt(a.bAvg), detail: 'Δ ' + fmt(a.bDelta) + ' · ' + a.bCount + ' 天' },
99
- { label: '对齐样本', value: String(a.correlation.n), unit: '天', detail: '双侧有数据的天数' },
137
+ /* #160 文本返工:`相关系数 r` 是统计词、r 数字读者用不上 标签改人话、值改档位、r 进注释。
138
+ * 方向不放这张卡:摘要句已经说了「谁多的时候谁怎样」,同页说两遍就成冗余。 */
139
+ { label: '一起变的程度', value: corrLevel(a.correlation.r) },
140
+ /* 均值=**有记录那些天**的平均(不是窗口天数);Δ=窗口内末尾−开头。两者都写清,读者才能自己核。 */
141
+ {
142
+ label: '平均' + aShort, value: fmt(a.aAvg),
143
+ ...(aUnit === undefined ? {} : { unit: aUnit }),
144
+ detail: '有记录的 ' + a.aCount + ' 天' + (a.aDelta === null ? '' : ',' + deltaHuman(a.aDelta)),
145
+ },
146
+ {
147
+ label: '平均' + bShort, value: fmt(a.bAvg),
148
+ ...(bUnit === undefined ? {} : { unit: bUnit }),
149
+ detail: '有记录的 ' + a.bCount + ' 天' + (a.bDelta === null ? '' : ',' + deltaHuman(a.bDelta)),
150
+ },
151
+ /* 主标签说清是谁的天数;旧副标「双侧有数据的天数」只是把主标签换个说法,同页第三遍 → 删。 */
152
+ { label: '两项都有记录的天数', value: String(a.correlation.n), unit: '天' },
100
153
  ]),
101
154
  ];
102
155
  let charts = false;
103
156
  if (a.line.length > 0) {
104
157
  const aItems = a.line.map((p) => ({ label: p.date.slice(5), value: p.a }));
105
158
  const bItems = a.line.map((p) => ({ label: p.date.slice(5), value: p.b }));
159
+ /* #160 文本返工:图题只说画的是什么(「体重与摄入」);「哪条线是哪项/各有各的刻度」搬进图例
160
+ * (公共层按 `series[].name` 出图例,独立刻度那条另出「各指标独立刻度」,均不改公共层)。 */
106
161
  parts.push(renderChartBlock({
107
162
  kind: 'line',
108
- title: '双轴走势(' + a.labels.a + '实线 · ' + a.labels.b + '虚线独立刻度;空缺断点不断 0)',
163
+ /* #160 回炉(对抗审查项③,二选一裁定=**删图题**):原图题 `aShort与bShort`(如「体重与摄入」)
164
+ * 只比本页 H1「看体重与摄入」少一个「看」字,同一件事一屏里说两遍,而图题又恰好读在 H1 之后。
165
+ * 图例已给两条线的名字(`series[].name`)、独立刻度那条另有「各指标独立刻度」;
166
+ * 故本图题整个不传(`renderChartBlock` 的 title 可选,不传即不产 h2)。
167
+ * 同件其它图题顺手扫过:散点「体重(kg)和摄入(卡)的关系」多了「关系」与两个单位、不与 H1 同形,
168
+ * deficit 图题已另改成「每日摄入与消耗」(那页 H1 是窗口与区间,不含图题措辞)——只此一处要删。 */
109
169
  input: {
110
170
  items: aItems,
111
171
  options: {
172
+ /* #160:空白日不补 0、只连线——没有记录的日期是 null,折线默认在 null 处断线,稀疏记录会只剩孤点。 */
173
+ connectNulls: true,
174
+ legend: true,
112
175
  series: [
113
176
  { name: a.labels.a, items: aItems },
114
177
  { name: a.labels.b, items: bItems, dashed: true, ownScale: true },
@@ -118,10 +181,12 @@ export function buildCombinedDoc(c) {
118
181
  }));
119
182
  charts = true;
120
183
  }
121
- if (a.scatter.length > 0) {
184
+ if (a.scatter.length > 0 && !lowSample) {
185
+ /* #160 文本返工:旧图题「相关性与回归(斜率 -5713.3333,n=5)」把统计口径塞进标题;斜率与 n 折进
186
+ * HTML 注释,标题只留读者要的那件事。散点图公共层没有轴名能力,故标题自带单位(横轴 A/纵轴 B)。 */
122
187
  parts.push(renderChartBlock({
123
188
  kind: 'scatter',
124
- title: '相关性与回归' + (a.regression ? '(斜率 ' + a.regression.slope + ',n=' + a.regression.n + '' : '(样本不足未拟合)'),
189
+ title: a.labels.a + '' + a.labels.b + '的关系',
125
190
  input: {
126
191
  items: a.scatter.map((p) => ({ x: p.x, y: p.y })),
127
192
  options: { regression: a.regression !== null },
@@ -129,52 +194,75 @@ export function buildCombinedDoc(c) {
129
194
  }));
130
195
  charts = true;
131
196
  }
132
- if (a.lag.length > 0) {
197
+ if (a.lag.length > 0 && !lowSample) {
198
+ /* #160 回炉(对抗审查追加项):三行全印「很明显」时这张表答不了自己的表题——档位分不出哪档更强,
199
+ * 而 `l.r` 本来分得出(1 天 -0.83/2 天 -0.73/3 天 -1)。故**保留可排序的量**:档位+括号里的 r,
200
+ * 读者自己就能排出「往回看几天最说得通」;口径行给出括号该怎么读。
201
+ * 不选「三档并成一句、删表」:延迟相关只有部分配对才有,删表会让这类配对整节消失;且 r 打平时
202
+ * 一句话结论会说假话(并列最强时写「最明显」是编的)。 */
133
203
  parts.push(renderDataTable({
134
204
  columns: [
135
- { key: 'lag', label: '滞后天数' },
136
- { key: 'r', label: '相关系数 r', align: 'right' },
137
- { key: 'interp', label: '解读' },
205
+ { key: 'pair', label: '哪两天比' },
206
+ { key: 'level', label: '对得上的程度' },
138
207
  ],
139
208
  rows: a.lag.map((l) => ({
140
- lag: '前 ' + l.lag + ' 天 B 值 vs 当日 A 值',
141
- r: l.r === null ? '' : String(l.r),
142
- interp: corrInterp(l.r),
209
+ /* `vs` 是英文简写、不上屏(#160):改成中文的「对」,列名已说明这是在比哪两天。 */
210
+ pair: '往前 ' + l.lag + ' 天的' + bShort + ' 对当天的' + aShort,
211
+ level: corrLevel(l.r) + (l.r === null || l.r === undefined ? '' : '(' + Math.round(l.r * 100) / 100 + ')'),
143
212
  })),
144
- caption: '延迟相关性(仅体重×摄入/运动/蛋白三配对有此节)',
145
- emptyText: '无延迟相关数据',
213
+ /* 表名不带「仅某某配对有此节」那句写给作者的话;r 的算法与样本数进 HTML 注释(techBits)。 */
214
+ caption: '往前推几天会不会更清楚',
215
+ emptyText: '这段时间还没有记录,先记一餐或称一次体重再来看',
146
216
  }));
217
+ /* 括号怎么读:说清方向与强弱(越靠两头越对得上),读者据此排序三行。 */
218
+ parts.push(renderCaliberLine('括号里是两项对得上的程度,取值 -1 到 1:越靠近 1,前几天的' + bShort
219
+ + '越高、当天' + aShort + '也越高;越靠近 -1 则一个高、另一个反而低;越靠近 0 越没有关系。'));
147
220
  }
148
- if (a.strat.rows.length > 0) {
221
+ if (a.strat.rows.length > 0 && !lowSample) {
222
+ /* 表名按实际两组名生成(旧名「分层对比」读者不知道按什么分的);旧标题尾巴
223
+ * 「(力量消耗合计 … vs 有氧 …)」是口径不是标题 → 降级成表下口径行。 */
224
+ const srows = a.strat.rows;
225
+ /* 这一节有两种形态:**两组比**(`工作日`/`周末` 这类分组名)与**两项并列**(`日均摄入`/`日均运动`——
226
+ * 那是两个口径不同的数,不是两组,标题不能说「差多少」)。判据看行名,不写死配对键。 */
227
+ const metricRows = srows.length > 0 && srows.every((r) => r.label.startsWith('日均'));
228
+ const stratTitle = metricRows ? '这两项各是多少'
229
+ : srows.length >= 2 ? srows[0].label + '和' + srows[1].label + ',差多少'
230
+ : '这两项平均各是多少';
231
+ /* #160 回炉:`备注` 列在 weight_deficit/weight_calorie 这些配对上**整列空白**(`analysis/cross.ts`
232
+ * 的 `StratRow.note` 三处都给 ''),列头却照印——空列就是噪音。故**列定义按数据条件裁剪**:
233
+ * 这组行里只要有一条真备注就出这一列,全空即整列不出(看数据,不写死配对键)。 */
234
+ const hasNote = srows.some((r) => r.note !== undefined && String(r.note).trim() !== '');
149
235
  parts.push(renderDataTable({
150
236
  columns: [
151
- { key: 'label', label: '分组' },
237
+ { key: 'label', label: '哪一组' },
152
238
  { key: 'days', label: '天数', align: 'right' },
153
- { key: 'aDelta', label: 'A 净变化', align: 'right' },
154
- { key: 'bAvg', label: 'B 均值', align: 'right' },
155
- { key: 'note', label: '备注' },
239
+ { key: 'aDelta', label: aShort + '变化', align: 'right' },
240
+ { key: 'bAvg', label: '平均' + bShort, align: 'right' },
241
+ ...(hasNote ? [{ key: 'note', label: '备注' }] : []),
156
242
  ],
157
- rows: a.strat.rows.map((r) => ({
243
+ rows: srows.map((r) => ({
158
244
  label: r.label, days: r.days, aDelta: fmt(r.aDelta), bAvg: fmt(r.bAvg), note: r.note,
159
245
  })),
160
- caption: '分层对比' + (a.strat.extra.length > 0 ? '(' + a.strat.extra.join(';') + ')' : ''),
161
- emptyText: '无分层数据',
246
+ caption: stratTitle,
247
+ emptyText: '这段时间还没有记录,先记一餐或称一次体重再来看',
162
248
  }));
249
+ if (a.strat.extra.length > 0)
250
+ parts.push(renderCaliberLine(a.strat.extra.join(';')));
163
251
  }
164
252
  if (a.deficitBuckets.length > 0) {
165
253
  parts.push(renderDataTable({
166
254
  columns: [
167
- { key: 'label', label: '缺口分桶' },
255
+ { key: 'label', label: '缺口多大' },
168
256
  { key: 'days', label: '天数', align: 'right' },
169
257
  ],
170
258
  rows: a.deficitBuckets.map((b) => ({ label: b.label, days: b.days })),
171
- caption: '缺口分桶(仅 weight_deficit 配对有此节)',
172
- emptyText: '无分桶数据',
259
+ caption: '按缺口大小分组:缺口越大,体重掉得越多吗',
260
+ emptyText: '这段时间还没有记录,先记一餐或称一次体重再来看',
173
261
  }));
174
262
  }
175
263
  if (a.overLimitDays.length > 0) {
176
264
  parts.push(renderDisclosure({
177
- title: '超标日(摄入>130%目标,共 ' + a.overLimitDays.length + ' 天,仅 weight_calorie 配对有此节)',
265
+ title: '吃得超目标的日子(每天超过目标的 1.3 倍,共 ' + a.overLimitDays.length + ' 天)',
178
266
  contentHtml: renderListRows({
179
267
  items: a.overLimitDays.map((d) => ({ main: d })),
180
268
  }),
@@ -183,7 +271,8 @@ export function buildCombinedDoc(c) {
183
271
  if (a.line.length > 0) {
184
272
  const shown = a.line.slice(0, 100);
185
273
  parts.push(renderDisclosure({
186
- title: '逐日双指标明细' + (a.line.length > 100 ? '(仅列前 100 条,共 ' + a.line.length + ' 天)' : '(共 ' + a.line.length + ' 天)'),
274
+ /* 折叠标题只说「这一块是什么」+截断口径;窗口天数在页头说过,不在这里再报一遍。 */
275
+ title: '每天一行' + (a.line.length > 100 ? '(只列前 100 条,共 ' + a.line.length + ' 天)' : ''),
187
276
  contentHtml: renderDataTable({
188
277
  columns: [
189
278
  { key: 'date', label: '日期' },
@@ -191,12 +280,11 @@ export function buildCombinedDoc(c) {
191
280
  { key: 'bv', label: a.labels.b, align: 'right' },
192
281
  ],
193
282
  rows: shown.map((p) => ({ date: p.date, av: fmt(p.a), bv: fmt(p.b) })),
194
- caption: '逐日双指标(空缺留空,不断 0;全量见复制数据)',
195
- emptyText: '窗口内无数据',
283
+ emptyText: '这段时间还没有记录,先记一餐或称一次体重再来看',
196
284
  }),
197
285
  }));
198
286
  }
199
- parts.push(copyBlock('复制数据', {
287
+ parts.push(dataCopyArea('复制数据', {
200
288
  envelope: {
201
289
  version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.combined',
202
290
  data: {
@@ -209,111 +297,59 @@ export function buildCombinedDoc(c) {
209
297
  },
210
298
  },
211
299
  }));
212
- return assemble('组合分析 ' + a.labels.a + ' vs ' + a.labels.b, 'calorie.view.combined · 趋势分析域', a.insight || null, parts.join(''), charts);
213
- }
214
- /* ── 热量缺口(calorie_deficit.html 对照:4 KPI+每日摄入 vs 消耗+缺口明细表) ── */
215
- const DEFICIT_TREND_ZH = { loss: '减重方向', gain: '增重方向', flat: '持平' };
216
- export function buildDeficitDoc(d) {
217
- const parts = [
218
- renderParamForm({
219
- fields: [
220
- { name: 'start', label: '开始', value: d.meta.start },
221
- { name: 'end', label: '结束', value: d.meta.end },
222
- ],
223
- description: '缺口 = 消耗 − 摄入(正=缺口);消耗 = TDEE+当日运动;摄入 = 当日食物(不含水)',
224
- }),
225
- renderKpiGrid([
226
- { label: '日均摄入', value: String(d.summary.avgIntake), unit: '卡', detail: '目标 ' + d.target.intake + ' 卡/天' },
227
- { label: '日均消耗', value: String(d.summary.avgBurn), unit: '卡', detail: 'TDEE ' + d.target.tdee + ' · 运动 ' + d.summary.avgExerciseBurn + ' 卡' },
228
- { label: '日均缺口', value: (d.summary.avgDeficit >= 0 ? '+' : '') + d.summary.avgDeficit, unit: '卡', detail: DEFICIT_TREND_ZH[d.summary.trend] ?? d.summary.trend },
229
- { label: '理论减重', value: String(d.summary.predictedLossKg), unit: 'kg', detail: '周缺口 ' + d.summary.weeklyDeficit + ' 卡' },
230
- ]),
231
- ];
232
- let charts = false;
233
- if (d.series.length > 0) {
234
- const intake = d.series.map((s) => ({ label: s.date.slice(5), value: s.intake }));
235
- const burn = d.series.map((s) => ({ label: s.date.slice(5), value: s.burn }));
236
- parts.push(renderChartBlock({
237
- kind: 'line',
238
- title: '每日摄入 vs 消耗(虚线=消耗;水平线=摄入目标 ' + d.target.intake + ' 卡)',
239
- input: {
240
- items: intake,
241
- options: {
242
- series: [
243
- { name: '摄入', items: intake },
244
- { name: '消耗', items: burn, dashed: true },
245
- ],
246
- markLine: { value: d.target.intake, label: '目标' },
247
- },
248
- },
249
- }));
250
- charts = true;
251
- }
252
- {
253
- const shown = d.series.slice(0, 100);
254
- parts.push(renderDataTable({
255
- columns: [
256
- { key: 'date', label: '日期' },
257
- { key: 'intake', label: '摄入', align: 'right' },
258
- { key: 'burn', label: '消耗', align: 'right' },
259
- { key: 'deficit', label: '缺口', align: 'right' },
260
- { key: 'target', label: '目标', align: 'right' },
261
- { key: 'status', label: '状态' },
262
- ],
263
- rows: shown.map((s) => ({
264
- date: s.date + ' ' + s.weekday,
265
- intake: s.intake, burn: s.burn,
266
- deficit: (s.deficit >= 0 ? '+' : '') + s.deficit,
267
- target: d.target.intake,
268
- status: s.deficit >= 0 ? '缺口' : '盈余',
269
- })),
270
- caption: '缺口明细' + (d.series.length > 100 ? '(仅列前 100 条,共 ' + d.series.length + ' 天)' : '(共 ' + d.series.length + ' 天)') +
271
- ' · ' + d.meta.weekdayCount + ' 工作日/' + d.meta.weekendCount + ' 周末',
272
- emptyText: '窗口内无缺口数据',
273
- }));
274
- }
275
- parts.push(copyBlock('复制数据', {
276
- envelope: {
277
- version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.deficit',
278
- data: {
279
- metrics: metricsOf({
280
- avgIntake: d.summary.avgIntake, avgBurn: d.summary.avgBurn, avgExerciseBurn: d.summary.avgExerciseBurn,
281
- avgDeficit: d.summary.avgDeficit, weeklyDeficit: d.summary.weeklyDeficit, predictedLossKg: d.summary.predictedLossKg,
282
- days: d.meta.days, weekdayCount: d.meta.weekdayCount, weekendCount: d.meta.weekendCount,
283
- targetIntake: d.target.intake, targetTdee: d.target.tdee,
284
- }),
285
- },
286
- },
287
- }));
288
- return assemble('热量缺口 ' + d.meta.start + ' ~ ' + d.meta.end, 'calorie.view.deficit · 趋势分析域', null, parts.join(''), charts);
300
+ return assembleDocPage({
301
+ docTitle: DOC_TITLE,
302
+ title: '看' + aShort + '与' + bShort,
303
+ eyebrow: '',
304
+ subtitle: null,
305
+ metaLeft,
306
+ /* #160 回炉:徽章原传恒值 `卡路里 · 分析`——同一串字出现在全量 61 页、从不区分任何东西,
307
+ * 与 `shared/docPage.ts` 那条「恒值徽章应删」的注释自相矛盾。按注释原意**不传**:本页页型由 H1
308
+ * 「看X与Y」说清,域由 head 标题「卡路里·趋势」说清,徽章再说一遍只是第三份同样的信息。
309
+ * 不改成「与 H1 不同名的一句」的理由:这里没有第二种页型要区分(11 个配对同版式,差异全在 H1 里)。 */
310
+ summary,
311
+ content: parts.join(''),
312
+ charts,
313
+ });
289
314
  }
290
315
  /* ── 异常诊断(anomaly_report.html 对照:诊断 KPI+发现列表+insight;旧截断 5→全量) ── */
291
316
  export function buildAnomalyDoc(v) {
292
317
  const dg = v.diagnosis;
318
+ /* 被删的技术口径改住 HTML 注释(#160 回炉):诊断清单、参数名与两个拒绝码原都在参数卡说明里(可见文本)。 */
319
+ const noteBits = techNoteHtml([
320
+ 'kind=' + v.kind,
321
+ '23 种诊断(体重 6/饮食 4/运动 5/归因复盘 8)',
322
+ 'kind 非法即 bad-input,证据不足即 missing-data,不编诊断',
323
+ ]);
293
324
  const parts = [
325
+ noteBits,
294
326
  renderParamForm({
295
327
  fields: [
296
328
  { name: 'kind', label: '诊断', value: v.kind },
297
329
  { name: 'start', label: '开始', value: v.start },
298
330
  { name: 'end', label: '结束', value: v.end },
299
331
  ],
300
- description: '23 种诊断(体重 6/饮食 4/运动 5/归因复盘 8);kind 非法即 bad-input,证据不足即 missing-data,不编诊断',
332
+ description: '一共有 23 种诊断,分体重、饮食、运动、复盘四类;证据不够就直说数据不足,不编一个结论出来。',
301
333
  }),
302
334
  renderKpiGrid([
303
- { label: '诊断', value: dg.title || v.kind, detail: v.kind },
335
+ /* 详情原印 `v.kind`(`diet_over` 这种内部键)——内部标识符不上屏,值那一格已经是中文诊断名。 */
336
+ { label: '诊断', value: dg.title || '这一类' },
304
337
  { label: '窗口', value: v.start + ' ~ ' + v.end, detail: '有数据 ' + dg.days + ' 天' },
305
338
  { label: '发现', value: String(v.findingCount), unit: '条' },
306
339
  ]),
307
340
  renderListRows({
341
+ /* 三槽都是数据层文案(`analysis/anomaly/*`):`TDEE` 这类缩写与半角标点上屏前一律归一。
342
+ * `action` 空串的发现(`overall` 那几行数据层给的就是 '')不再留一个悬空的「|建议:」——
343
+ * 标签后面什么都没有也是种碎片,没建议就不出这段。 */
308
344
  items: dg.findings.map((f) => ({
309
- left: f.cause,
310
- main: '证据:' + f.evidence + '|建议:' + f.action,
345
+ left: humanText(f.cause),
346
+ main: '证据:' + humanText(f.evidence) + (f.action === '' ? '' : '|建议:' + humanText(f.action)),
311
347
  right: f.confidence,
312
348
  })),
313
- emptyText: '本窗无异常发现(诊断正常)',
349
+ emptyText: '本窗没有发现异常,各项诊断都正常',
314
350
  }),
315
351
  ];
316
- parts.push(copyBlock('复制数据', {
352
+ parts.push(dataCopyArea('复制数据', {
317
353
  envelope: {
318
354
  version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.anomaly',
319
355
  data: {
@@ -321,19 +357,81 @@ export function buildAnomalyDoc(v) {
321
357
  },
322
358
  },
323
359
  }));
324
- return assemble('异常诊断 ' + (dg.title || v.kind), 'calorie.view.anomaly · 趋势分析域', dg.insight || null, parts.join(''), false);
360
+ return assembleDocPage({
361
+ docTitle: DOC_TITLE,
362
+ title: '异常诊断 ' + (dg.title || '这一类'),
363
+ eyebrow: '异常诊断 · 趋势分析域',
364
+ subtitle: dg.insight ? humanText(dg.insight) : null,
365
+ content: parts.join(''),
366
+ charts: false,
367
+ });
325
368
  }
326
369
  /* ── 禁忌扫描(contraindication_report.html 对照:扫描概览+命中表+替代建议+复制修改指令) ── */
370
+ /** T351 肉眼修复(order207):复制区=「复制数据/复制日志」双按钮。
371
+ * 单格式数据文本+日志文本直挂承载属性,共用页面双通道运行时,零内联脚本;
372
+ * 无三格式菜单、无 text/json/csv 英文菜单项。块标题保留既有中文「复制修改指令」
373
+ * (与按钮不同名,且单测钉死该串)。概览/命中表/替代建议不动。本函数不导出。 */
374
+ function contraCopyBlock(v) {
375
+ const data = {
376
+ envelope: {
377
+ version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.contraindication',
378
+ data: {
379
+ metrics: metricsOf({
380
+ scannedSessions: v.scannedSessions, scannedMovements: v.scannedMovements,
381
+ errorCount: v.errorCount, warnCount: v.warnCount, infoCount: v.infoCount,
382
+ }),
383
+ },
384
+ },
385
+ title: '【calorie · 禁忌扫描】',
386
+ format: 'text',
387
+ };
388
+ return renderCopyBlock({
389
+ title: '复制修改指令',
390
+ dataText: buildDataText(data),
391
+ logText: buildLogText({
392
+ envelope: sceneEnvelope(data.envelope),
393
+ copyLog: copyLog({
394
+ command: 'calorie-cmd-read calorie.view.contraindication',
395
+ source: 'workout_plans(只读)',
396
+ actionAt: nowStamp(), version: DOC_VERSION,
397
+ }),
398
+ }),
399
+ }).replace('data-action-id="ilife-copy-data"', 'id="ilife-copy-data" data-action-id="ilife-copy-data"')
400
+ .replace('data-action-id="ilife-copy-log"', 'id="ilife-copy-log" data-action-id="ilife-copy-log"');
401
+ }
402
+ /** 禁忌扫描页的**窄屏列取舍**(T351-v12):这张页在 390 宽下有 5 列 + 3 列表,五列那张挤成竖条
403
+ * (「部位」「级别」表头都折成两行、规则值折三行)。让掉两处**重复信息**:
404
+ * 命中明细:让「部位」(动作格括号里已有 `第 1 周 周三(下肢)`)与「规则」(与原因句同义);
405
+ * 替代建议:让「原因」(上一张表已逐条给过)。
406
+ * 与 `reviewDocsCss.ts` 窄屏让「周次」列同一手法(页内 CSS + `nth-child`),只是这里要按表分开,
407
+ * 故两张表各包一层 `.ilw-hit`/`.ilw-alt` 挂钩子。 */
408
+ const CONTRA_MOBILE_CSS = '<style>\n'
409
+ + '@media (max-width:820px){\n'
410
+ + '.ilw-hit .ilife-block-data-table th:nth-child(2),.ilw-hit .ilife-block-data-table td:nth-child(2),'
411
+ + '.ilw-hit .ilife-block-data-table th:nth-child(3),.ilw-hit .ilife-block-data-table td:nth-child(3)'
412
+ + '{display:none}\n'
413
+ + '.ilw-alt .ilife-block-data-table th:nth-child(2),.ilw-alt .ilife-block-data-table td:nth-child(2)'
414
+ + '{display:none}\n'
415
+ // 让位后「级别」那一列被挤到 30px 宽,「警告」折成「警/告」。**注意序号**:`display:none` 不会重排名次,
416
+ // 级别在源表里是第 4 列(第 2、3 列只是被藏了),故这里写 `nth-child(4)` 而不是 (2)。
417
+ + '.ilw-hit .ilife-block-data-table th:nth-child(4),.ilw-hit .ilife-block-data-table td:nth-child(4)'
418
+ + '{white-space:nowrap}\n'
419
+ + '}\n</style>';
327
420
  export function buildContraDoc(v) {
328
421
  const s = v.scan;
422
+ /* 被删的技术口径改住 HTML 注释(#160 回炉):参数取值与扫描范围口径原都在参数卡说明里。 */
423
+ const noteBits = techNoteHtml([
424
+ 'part=' + v.part + '(all/腰/膝/肩)',
425
+ '命中按动作×规则逐条列出,替代选择归宿主,已选清单不进静态页',
426
+ ]);
329
427
  const parts = [
330
- renderParamForm({
331
- fields: [{ name: 'part', label: '部位', value: v.part }],
332
- description: '部位 all/腰/膝/肩;命中按动作×规则逐条列出,替代选择归宿主,已选清单不进静态页',
333
- }),
428
+ noteBits,
429
+ renderCaliberLine('想扫哪个部位就说腰、膝或肩。不说部位就全部扫一遍。'
430
+ + '命中的动作会逐条列出,并给出可以替换的动作。'),
334
431
  renderKpiGrid([
335
- { label: '扫描', value: CONTRA_STATUS_ZH[v.summaryStatus] ?? v.summaryStatus, detail: '部位 ' + v.part },
336
- { label: '会话', value: String(v.scannedSessions), unit: '', detail: '动作 ' + v.scannedMovements + ' 个' },
432
+ { label: '扫描', value: CONTRA_STATUS_ZH[v.summaryStatus] ?? v.summaryStatus,
433
+ detail: '部位:' + (v.part === 'all' ? '全部' : v.part) },
434
+ { label: '训练场次', value: String(v.scannedSessions), unit: '个', detail: '动作 ' + v.scannedMovements + ' 个' },
337
435
  { label: '错误', value: String(v.errorCount), unit: '个' },
338
436
  { label: '警告', value: String(v.warnCount), unit: '个' },
339
437
  { label: '提示', value: String(v.infoCount), unit: '个' },
@@ -342,7 +440,10 @@ export function buildContraDoc(v) {
342
440
  ];
343
441
  {
344
442
  const shown = s.hits.slice(0, 100);
345
- parts.push(renderDataTable({
443
+ // 窄屏让位(`.ilw-hit` 是给页内 CSS 挂钩子用的,见 `CONTRA_MOBILE_CSS`):五列在 390 宽下挤成竖条,
444
+ // 「部位」与「规则」两列让掉——部位已在动作格的括号里(`深蹲(第 1 周 周三(下肢))`)、
445
+ // 规则名与原因句说的是同一件事。
446
+ parts.push('<div class="ilw-hit">' + renderDataTable({
346
447
  columns: [
347
448
  { key: 'movement', label: '动作' },
348
449
  { key: 'part', label: '部位' },
@@ -356,90 +457,37 @@ export function buildContraDoc(v) {
356
457
  })),
357
458
  caption: '命中明细' + (s.hits.length > 100 ? '(仅列前 100 条,共 ' + s.hits.length + ' 条)' : '(共 ' + s.hits.length + ' 条)'),
358
459
  emptyText: '无命中(计划动作均通过扫描)',
359
- }));
460
+ }) + '</div>');
360
461
  }
361
462
  if (s.suggestions.length > 0) {
362
- parts.push(renderListRows({
363
- items: s.suggestions.map((g) => ({
364
- left: g.movement,
365
- main: '原因:' + g.reason + '|替换:' + g.replace,
366
- right: g.rule,
367
- })),
463
+ // T351-v11:原来一条建议挤成 `原因:…|替换:…` 一行串(那个 `|` 又是拿符号顶替设计,第 ⑤ 条),
464
+ // 右侧槽还挂着规则名(与「命中明细」里的「规则」列重复)。改成三列真表格:动作|原因|可以换成。
465
+ // 窄屏让「原因」列让位(`.ilw-alt`):上一张表已逐条给过原因,这张窄屏只剩「动作|可以换成」最好读。
466
+ parts.push('<div class="ilw-alt">' + renderDataTable({
467
+ columns: [
468
+ { key: 'movement', label: '动作' },
469
+ { key: 'reason', label: '原因' },
470
+ { key: 'replace', label: '可以换成' },
471
+ ],
472
+ rows: s.suggestions.map((g) => ({ movement: g.movement, reason: g.reason, replace: g.replace })),
473
+ caption: '替代建议',
368
474
  emptyText: '无替代建议',
369
- }));
475
+ }) + '</div>');
370
476
  }
371
- parts.push(copyBlock('复制修改指令', {
372
- envelope: {
373
- version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.contraindication',
374
- data: {
375
- metrics: metricsOf({
376
- scannedSessions: v.scannedSessions, scannedMovements: v.scannedMovements,
377
- errorCount: v.errorCount, warnCount: v.warnCount, infoCount: v.infoCount,
378
- }),
379
- },
380
- },
381
- }));
382
- return assemble('禁忌扫描(' + v.part + ')', 'calorie.view.contraindication · 趋势分析域', null, parts.join(''), false);
383
- }
384
- /* ── 体重预测(predict_report 对照:点预测 KPI+insight;曲线归组合分析,见 §3 R4) ── */
385
- export function buildPredictDoc(v) {
386
- const parts = [
387
- renderParamForm({
388
- fields: [
389
- { name: 'start', label: '开始', value: v.start },
390
- { name: 'end', label: '结束', value: v.end },
391
- { name: 'horizonDays', label: '预测天数', value: String(v.horizonDays) },
392
- ],
393
- description: '体重外推(horizonDays 7..180);需≥14 天体重记录,否则 missing-data,不编预测',
394
- }),
395
- renderKpiGrid([
396
- { label: '当前', value: String(v.current), unit: 'kg' },
397
- { label: '预测', value: String(v.forecastValue), unit: 'kg', detail: v.horizonDays + ' 天后' },
398
- { label: '速率', value: String(v.ratePerWeek), unit: 'kg/周' },
399
- { label: '区间', value: fmt(v.forecastLo) + ' ~ ' + fmt(v.forecastHi), unit: 'kg' },
400
- ]),
401
- ];
402
- parts.push(copyBlock('复制数据', {
403
- envelope: {
404
- version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.predict',
405
- data: {
406
- metrics: metricsOf({
407
- current: v.current, ratePerWeek: v.ratePerWeek, forecastValue: v.forecastValue,
408
- forecastLo: v.forecastLo, forecastHi: v.forecastHi, horizonDays: v.horizonDays,
409
- }),
410
- },
411
- },
412
- }));
413
- return assemble('体重预测(' + v.horizonDays + ' 天)', 'calorie.view.predict · 趋势分析域', v.insight || null, parts.join(''), false);
414
- }
415
- /* ── 目标预测达成(目标达成 ETA:KPI+可行性;曲线归组合分析,见 §3 R4) ── */
416
- export function buildGoalPredictDoc(v) {
417
- const parts = [
418
- renderParamForm({
419
- fields: [
420
- { name: 'start', label: '开始', value: v.start },
421
- { name: 'end', label: '结束', value: v.end },
422
- ],
423
- description: '目标预测需先定体重目标(无目标即 missing-data);默认 14 天窗(7 天窗结构性不可达,#103 G2)',
424
- }),
425
- renderKpiGrid([
426
- { label: '目标', value: String(v.targetKg), unit: 'kg', detail: v.start + ' ~ ' + v.end },
427
- { label: '当前', value: String(v.current), unit: 'kg' },
428
- { label: '预计达成', value: v.eta, detail: '剩余 ' + v.daysLeft + ' 天' },
429
- { label: '速率', value: String(v.ratePerWeek), unit: 'kg/周', detail: v.feasible ? '健康' : '超范围' },
430
- ]),
431
- ];
432
- parts.push(copyBlock('复制数据', {
433
- envelope: {
434
- version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.goal-predict',
435
- data: {
436
- metrics: metricsOf({
437
- targetKg: v.targetKg, current: v.current, daysLeft: v.daysLeft,
438
- ratePerWeek: v.ratePerWeek, feasible: v.feasible ? 1 : 0,
439
- }),
440
- },
441
- },
442
- }));
443
- return assemble('目标预测达成', 'calorie.view.goal-predict · 趋势分析域', null, parts.join(''), false);
477
+ parts.push(contraCopyBlock(v));
478
+ return assembleDocPage({
479
+ docTitle: DOC_TITLE,
480
+ // T351-v10:标题里那个 `all` 是参数原值,读者看不懂(第 ④ 条)——扫全部部位时不缀括号。
481
+ title: v.part === 'all' ? '禁忌扫描' : '禁忌扫描(' + v.part + ')',
482
+ // 眉标只留技能名:原来那句 `禁忌扫描 · 趋势分析域` 把标题又抄了一遍,后半截还是内部架构词
483
+ // (「趋势分析域」是仓库里的域划分,用户不该看到)。
484
+ eyebrow: '健身计划',
485
+ subtitle: v.part === 'all' ? '全部部位' : '只看' + v.part,
486
+ content: pageChromeCss(960) + CONTRA_MOBILE_CSS + parts.join(''),
487
+ charts: false,
488
+ });
444
489
  }
490
+ /* ── W1(#518):下面 10 个出口已搬进姊妹件 `trendPredictDocs.ts`;此处**薄转出**,
491
+ * 既有调用面(`render/index.ts` 与各测试的 `dist/render/trendDocs.js`)逐字不变。 ── */
492
+ export { buildDeficitDoc, buildPredictDoc, buildPredictTargetDoc, buildSimCutDoc, buildSimTargetDoc, buildCalorieForecastDoc, buildCalorieGoalDoc, buildCalorieDeficitDoc, buildCalorieStabilityDoc, buildGoalPredictDoc, } from './trendPredictDocs.js';
445
493
  //# sourceMappingURL=trendDocs.js.map