skill-calorie 0.2.4 → 0.2.5

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 (549) hide show
  1. package/SKILL.md +10 -9
  2. package/dist/.gen-inputs.json +16 -100
  3. package/dist/analysis/anomaly/common.d.ts +11 -1
  4. package/dist/analysis/anomaly/common.d.ts.map +1 -1
  5. package/dist/analysis/anomaly/common.js +11 -12
  6. package/dist/analysis/anomaly/common.js.map +1 -1
  7. package/dist/analysis/anomaly/diet.d.ts.map +1 -1
  8. package/dist/analysis/anomaly/diet.js +11 -3
  9. package/dist/analysis/anomaly/diet.js.map +1 -1
  10. package/dist/analysis/deficit.d.ts +4 -2
  11. package/dist/analysis/deficit.d.ts.map +1 -1
  12. package/dist/analysis/deficit.js +2 -1
  13. package/dist/analysis/deficit.js.map +1 -1
  14. package/dist/analysis/historyStore.d.ts +2 -2
  15. package/dist/analysis/historyStore.d.ts.map +1 -1
  16. package/dist/analysis/historyStore.js +2 -2
  17. package/dist/analysis/historyStore.js.map +1 -1
  18. package/dist/analysis/index.d.ts +7 -13
  19. package/dist/analysis/index.d.ts.map +1 -1
  20. package/dist/analysis/index.js +15 -21
  21. package/dist/analysis/index.js.map +1 -1
  22. package/dist/analysis/reportDocTracked.d.ts.map +1 -1
  23. package/dist/analysis/reportDocTracked.js +3 -2
  24. package/dist/analysis/reportDocTracked.js.map +1 -1
  25. package/dist/analysis/review.d.ts.map +1 -1
  26. package/dist/analysis/review.js +5 -3
  27. package/dist/analysis/review.js.map +1 -1
  28. package/dist/analysis/simulate.d.ts +4 -2
  29. package/dist/analysis/simulate.d.ts.map +1 -1
  30. package/dist/analysis/simulate.js +5 -2
  31. package/dist/analysis/simulate.js.map +1 -1
  32. package/dist/analysis/simulate2.d.ts.map +1 -1
  33. package/dist/analysis/simulate2.js +4 -1
  34. package/dist/analysis/simulate2.js.map +1 -1
  35. package/dist/analysis/utils.d.ts +21 -25
  36. package/dist/analysis/utils.d.ts.map +1 -1
  37. package/dist/analysis/utils.js +34 -38
  38. package/dist/analysis/utils.js.map +1 -1
  39. package/dist/body/commands.d.ts +5 -1
  40. package/dist/body/commands.d.ts.map +1 -1
  41. package/dist/body/commands.js +5 -4
  42. package/dist/body/commands.js.map +1 -1
  43. package/dist/body/index.d.ts +9 -13
  44. package/dist/body/index.d.ts.map +1 -1
  45. package/dist/body/index.js +14 -19
  46. package/dist/body/index.js.map +1 -1
  47. package/dist/body/wizardDocs.js +1 -1
  48. package/dist/body/wizardPlate.d.ts +1 -1
  49. package/dist/cli/cmd_read.d.ts.map +1 -1
  50. package/dist/cli/cmd_read.js +23 -4
  51. package/dist/cli/cmd_read.js.map +1 -1
  52. package/dist/cli/config.d.ts +16 -0
  53. package/dist/cli/config.d.ts.map +1 -0
  54. package/dist/cli/config.js +68 -0
  55. package/dist/cli/config.js.map +1 -0
  56. package/dist/cli/delivery.d.ts +2 -1
  57. package/dist/cli/delivery.d.ts.map +1 -1
  58. package/dist/cli/delivery.js +4 -3
  59. package/dist/cli/delivery.js.map +1 -1
  60. package/dist/cli/health.d.ts +7 -0
  61. package/dist/cli/health.d.ts.map +1 -0
  62. package/dist/cli/health.js +21 -0
  63. package/dist/cli/health.js.map +1 -0
  64. package/dist/cli/keys.d.ts +1 -2
  65. package/dist/cli/keys.d.ts.map +1 -1
  66. package/dist/cli/keys.js.map +1 -1
  67. package/dist/cli/readArgs.d.ts.map +1 -1
  68. package/dist/cli/readArgs.js +6 -5
  69. package/dist/cli/readArgs.js.map +1 -1
  70. package/dist/cli/write.d.ts +9 -12
  71. package/dist/cli/write.d.ts.map +1 -1
  72. package/dist/cli/write.js +7 -27
  73. package/dist/cli/write.js.map +1 -1
  74. package/dist/config.d.ts +55 -0
  75. package/dist/config.d.ts.map +1 -0
  76. package/dist/config.js +64 -0
  77. package/dist/config.js.map +1 -0
  78. package/dist/diet/commands.d.ts +6 -1
  79. package/dist/diet/commands.d.ts.map +1 -1
  80. package/dist/diet/commands.js +15 -14
  81. package/dist/diet/commands.js.map +1 -1
  82. package/dist/diet/dietEngine.d.ts.map +1 -1
  83. package/dist/diet/dietEngine.js +3 -1
  84. package/dist/diet/dietEngine.js.map +1 -1
  85. package/dist/diet/dietUi.d.ts +8 -3
  86. package/dist/diet/dietUi.d.ts.map +1 -1
  87. package/dist/diet/dietUi.js +18 -25
  88. package/dist/diet/dietUi.js.map +1 -1
  89. package/dist/diet/index.d.ts +7 -11
  90. package/dist/diet/index.d.ts.map +1 -1
  91. package/dist/diet/index.js +18 -19
  92. package/dist/diet/index.js.map +1 -1
  93. package/dist/diet/nutritionPort.d.ts +2 -5
  94. package/dist/diet/nutritionPort.d.ts.map +1 -1
  95. package/dist/diet/nutritionPort.js +14 -12
  96. package/dist/diet/nutritionPort.js.map +1 -1
  97. package/dist/diet/precheckPort.d.ts.map +1 -1
  98. package/dist/diet/precheckPort.js +3 -1
  99. package/dist/diet/precheckPort.js.map +1 -1
  100. package/dist/diet/review.d.ts.map +1 -1
  101. package/dist/diet/review.js +3 -18
  102. package/dist/diet/review.js.map +1 -1
  103. package/dist/exercise/cardio.js +1 -1
  104. package/dist/exercise/cardio.js.map +1 -1
  105. package/dist/exercise/commands.d.ts +1 -1
  106. package/dist/exercise/commands.d.ts.map +1 -1
  107. package/dist/exercise/commands.js +3 -3
  108. package/dist/exercise/commands.js.map +1 -1
  109. package/dist/exercise/distribution.js +1 -1
  110. package/dist/exercise/distribution.js.map +1 -1
  111. package/dist/exercise/edit.d.ts.map +1 -1
  112. package/dist/exercise/edit.js +4 -2
  113. package/dist/exercise/edit.js.map +1 -1
  114. package/dist/exercise/exerciseStore.d.ts.map +1 -1
  115. package/dist/exercise/exerciseStore.js +16 -10
  116. package/dist/exercise/exerciseStore.js.map +1 -1
  117. package/dist/exercise/index.d.ts +7 -12
  118. package/dist/exercise/index.d.ts.map +1 -1
  119. package/dist/exercise/index.js +14 -19
  120. package/dist/exercise/index.js.map +1 -1
  121. package/dist/exercise/recap.js +1 -1
  122. package/dist/exercise/recap.js.map +1 -1
  123. package/dist/exercise/sportPortDocs.d.ts +9 -0
  124. package/dist/exercise/sportPortDocs.d.ts.map +1 -0
  125. package/dist/exercise/sportPortDocs.js +896 -0
  126. package/dist/exercise/sportPortDocs.js.map +1 -0
  127. package/dist/exercise/sportUi.d.ts +4 -2
  128. package/dist/exercise/sportUi.d.ts.map +1 -1
  129. package/dist/exercise/sportUi.js +13 -44
  130. package/dist/exercise/sportUi.js.map +1 -1
  131. package/dist/exercise/strength.js +1 -1
  132. package/dist/exercise/strength.js.map +1 -1
  133. package/dist/exercise/trend.js +1 -1
  134. package/dist/exercise/trend.js.map +1 -1
  135. package/dist/fetch/body.d.ts.map +1 -1
  136. package/dist/fetch/body.js +15 -12
  137. package/dist/fetch/body.js.map +1 -1
  138. package/dist/fetch/diet.d.ts +6 -5
  139. package/dist/fetch/diet.d.ts.map +1 -1
  140. package/dist/fetch/diet.js +19 -25
  141. package/dist/fetch/diet.js.map +1 -1
  142. package/dist/goal/commands.d.ts +5 -1
  143. package/dist/goal/commands.d.ts.map +1 -1
  144. package/dist/goal/commands.js +7 -6
  145. package/dist/goal/commands.js.map +1 -1
  146. package/dist/goal/goalExtraPlate.d.ts.map +1 -1
  147. package/dist/goal/goalExtraPlate.js +3 -1
  148. package/dist/goal/goalExtraPlate.js.map +1 -1
  149. package/dist/goal/goalHistory.d.ts +2 -2
  150. package/dist/goal/goalHistory.d.ts.map +1 -1
  151. package/dist/goal/goalHistory.js +4 -9
  152. package/dist/goal/goalHistory.js.map +1 -1
  153. package/dist/goal/index.d.ts +6 -10
  154. package/dist/goal/index.d.ts.map +1 -1
  155. package/dist/goal/index.js +11 -19
  156. package/dist/goal/index.js.map +1 -1
  157. package/dist/goal/nutritionGoal.d.ts.map +1 -1
  158. package/dist/goal/nutritionGoal.js +4 -1
  159. package/dist/goal/nutritionGoal.js.map +1 -1
  160. package/dist/goal/read.d.ts +1 -1
  161. package/dist/goal/read.d.ts.map +1 -1
  162. package/dist/goal/read.js +1 -1
  163. package/dist/goal/read.js.map +1 -1
  164. package/dist/goal/set.d.ts.map +1 -1
  165. package/dist/goal/set.js +2 -2
  166. package/dist/goal/set.js.map +1 -1
  167. package/dist/health.d.ts +41 -0
  168. package/dist/health.d.ts.map +1 -0
  169. package/dist/health.js +501 -0
  170. package/dist/health.js.map +1 -0
  171. package/dist/help-missing.json +1 -1
  172. package/dist/home/index.d.ts +8 -9
  173. package/dist/home/index.d.ts.map +1 -1
  174. package/dist/home/index.js +11 -11
  175. package/dist/home/index.js.map +1 -1
  176. package/dist/index.d.ts +24 -16
  177. package/dist/index.d.ts.map +1 -1
  178. package/dist/index.js +24 -12
  179. package/dist/index.js.map +1 -1
  180. package/dist/migrate/migrate.js +2 -2
  181. package/dist/migrate/migrate.js.map +1 -1
  182. package/dist/output.d.ts +4 -3
  183. package/dist/output.d.ts.map +1 -1
  184. package/dist/output.js +12 -5
  185. package/dist/output.js.map +1 -1
  186. package/dist/paths.d.ts +6 -2
  187. package/dist/paths.d.ts.map +1 -1
  188. package/dist/paths.js +28 -17
  189. package/dist/paths.js.map +1 -1
  190. package/dist/photo/commands.d.ts +1 -1
  191. package/dist/photo/commands.d.ts.map +1 -1
  192. package/dist/photo/commands.js +3 -3
  193. package/dist/photo/commands.js.map +1 -1
  194. package/dist/photo/compareDoc.js +1 -1
  195. package/dist/photo/compareDoc.js.map +1 -1
  196. package/dist/photo/dir.d.ts +1 -1
  197. package/dist/photo/dir.d.ts.map +1 -1
  198. package/dist/photo/dir.js +6 -5
  199. package/dist/photo/dir.js.map +1 -1
  200. package/dist/photo/gifDoc.d.ts.map +1 -1
  201. package/dist/photo/gifDoc.js +10 -4
  202. package/dist/photo/gifDoc.js.map +1 -1
  203. package/dist/photo/helpCenter.js +1 -1
  204. package/dist/photo/helpCenter.js.map +1 -1
  205. package/dist/photo/helpFile.js +1 -1
  206. package/dist/photo/helpFile.js.map +1 -1
  207. package/dist/photo/helpPaths.d.ts +1 -1
  208. package/dist/photo/helpPaths.js +1 -1
  209. package/dist/photo/helpShell.d.ts +16 -0
  210. package/dist/photo/helpShell.d.ts.map +1 -0
  211. package/dist/photo/helpShell.js +27 -0
  212. package/dist/photo/helpShell.js.map +1 -0
  213. package/dist/photo/index.d.ts +7 -11
  214. package/dist/photo/index.d.ts.map +1 -1
  215. package/dist/photo/index.js +11 -19
  216. package/dist/photo/index.js.map +1 -1
  217. package/dist/photo/photos.d.ts +5 -3
  218. package/dist/photo/photos.d.ts.map +1 -1
  219. package/dist/photo/photos.js +15 -14
  220. package/dist/photo/photos.js.map +1 -1
  221. package/dist/photo/pickerDoc.js +1 -1
  222. package/dist/photo/templates.d.ts +4 -0
  223. package/dist/photo/templates.d.ts.map +1 -0
  224. package/dist/photo/templates.js +29 -0
  225. package/dist/photo/templates.js.map +1 -0
  226. package/dist/photo/viewerDoc.js +1 -1
  227. package/dist/photo/viewerDoc.js.map +1 -1
  228. package/dist/photo/wizard.d.ts +1 -1
  229. package/dist/photo/wizard.js +2 -2
  230. package/dist/photo/wizard.js.map +1 -1
  231. package/dist/photo/wizardPort.d.ts +70 -0
  232. package/dist/photo/wizardPort.d.ts.map +1 -0
  233. package/dist/photo/wizardPort.js +232 -0
  234. package/dist/photo/wizardPort.js.map +1 -0
  235. package/dist/photo/wizardPortDocs.d.ts +6 -0
  236. package/dist/photo/wizardPortDocs.d.ts.map +1 -0
  237. package/dist/photo/wizardPortDocs.js +322 -0
  238. package/dist/photo/wizardPortDocs.js.map +1 -0
  239. package/dist/profile/commands.d.ts +5 -1
  240. package/dist/profile/commands.d.ts.map +1 -1
  241. package/dist/profile/commands.js +4 -3
  242. package/dist/profile/commands.js.map +1 -1
  243. package/dist/profile/index.d.ts +7 -13
  244. package/dist/profile/index.d.ts.map +1 -1
  245. package/dist/profile/index.js +14 -19
  246. package/dist/profile/index.js.map +1 -1
  247. package/dist/profile/setup.d.ts +1 -1
  248. package/dist/render/analysisPlate.d.ts +3 -3
  249. package/dist/render/analysisPlate.d.ts.map +1 -1
  250. package/dist/render/analysisPlate.js +4 -21
  251. package/dist/render/analysisPlate.js.map +1 -1
  252. package/dist/render/diet.d.ts +10 -6
  253. package/dist/render/diet.d.ts.map +1 -1
  254. package/dist/render/diet.js +8 -23
  255. package/dist/render/diet.js.map +1 -1
  256. package/dist/render/exercisePort.d.ts +1 -1
  257. package/dist/render/html.d.ts +0 -6
  258. package/dist/render/html.d.ts.map +1 -1
  259. package/dist/render/html.js +2 -44
  260. package/dist/render/html.js.map +1 -1
  261. package/dist/render/index.d.ts +0 -3
  262. package/dist/render/index.d.ts.map +1 -1
  263. package/dist/render/index.js +2 -2
  264. package/dist/render/index.js.map +1 -1
  265. package/dist/render/planWizardDocs.js +1 -1
  266. package/dist/render/planWizardDocs.js.map +1 -1
  267. package/dist/render/trendMiscPort.d.ts.map +1 -1
  268. package/dist/render/trendMiscPort.js +6 -4
  269. package/dist/render/trendMiscPort.js.map +1 -1
  270. package/dist/render/workoutPlanDocs.js +1 -1
  271. package/dist/render/workoutPlanDocs.js.map +1 -1
  272. package/dist/shared/alive.d.ts +22 -0
  273. package/dist/shared/alive.d.ts.map +1 -0
  274. package/dist/shared/alive.js +22 -0
  275. package/dist/shared/alive.js.map +1 -0
  276. package/dist/shared/commandSpec.d.ts +14 -4
  277. package/dist/shared/commandSpec.d.ts.map +1 -1
  278. package/dist/shared/copyBlock.d.ts +4 -0
  279. package/dist/shared/copyBlock.d.ts.map +1 -0
  280. package/dist/shared/copyBlock.js +26 -0
  281. package/dist/shared/copyBlock.js.map +1 -0
  282. package/dist/shared/docPage.js +1 -1
  283. package/dist/shared/healthRate.d.ts +21 -0
  284. package/dist/shared/healthRate.d.ts.map +1 -0
  285. package/dist/shared/healthRate.js +21 -0
  286. package/dist/shared/healthRate.js.map +1 -0
  287. package/dist/shared/kcalPerKg.d.ts +16 -0
  288. package/dist/shared/kcalPerKg.d.ts.map +1 -0
  289. package/dist/shared/kcalPerKg.js +16 -0
  290. package/dist/shared/kcalPerKg.js.map +1 -0
  291. package/dist/shared/meal.d.ts +46 -0
  292. package/dist/shared/meal.d.ts.map +1 -0
  293. package/dist/shared/meal.js +75 -0
  294. package/dist/shared/meal.js.map +1 -0
  295. package/dist/shared/nutritionRange.d.ts +28 -0
  296. package/dist/shared/nutritionRange.d.ts.map +1 -0
  297. package/dist/shared/nutritionRange.js +28 -0
  298. package/dist/shared/nutritionRange.js.map +1 -0
  299. package/dist/shared/pageStrips.d.ts +81 -0
  300. package/dist/shared/pageStrips.d.ts.map +1 -0
  301. package/dist/shared/pageStrips.js +166 -0
  302. package/dist/shared/pageStrips.js.map +1 -0
  303. package/dist/shared/planCopyBlock.d.ts +32 -0
  304. package/dist/shared/planCopyBlock.d.ts.map +1 -0
  305. package/dist/shared/planCopyBlock.js +34 -0
  306. package/dist/shared/planCopyBlock.js.map +1 -0
  307. package/dist/shared/sourceLine.d.ts +5 -5
  308. package/dist/shared/sourceLine.d.ts.map +1 -1
  309. package/dist/shared/sourceLine.js +3 -1
  310. package/dist/shared/sourceLine.js.map +1 -1
  311. package/dist/shared/time.d.ts +28 -0
  312. package/dist/shared/time.d.ts.map +1 -0
  313. package/dist/shared/time.js +37 -0
  314. package/dist/shared/time.js.map +1 -0
  315. package/dist/triggers/routeSpec.d.ts +3 -3
  316. package/dist/triggers/routeSpec.js +3 -3
  317. package/dist/triggers/routes.generated.d.ts +2 -2
  318. package/dist/weight/commands.d.ts +4 -1
  319. package/dist/weight/commands.d.ts.map +1 -1
  320. package/dist/weight/commands.js +5 -4
  321. package/dist/weight/commands.js.map +1 -1
  322. package/dist/weight/figures.d.ts.map +1 -1
  323. package/dist/weight/figures.js +3 -1
  324. package/dist/weight/figures.js.map +1 -1
  325. package/dist/weight/index.d.ts +11 -17
  326. package/dist/weight/index.d.ts.map +1 -1
  327. package/dist/weight/index.js +16 -19
  328. package/dist/weight/index.js.map +1 -1
  329. package/dist/weight/records.d.ts.map +1 -1
  330. package/dist/weight/records.js +4 -2
  331. package/dist/weight/records.js.map +1 -1
  332. package/dist/weight/review.js +2 -2
  333. package/dist/weight/review.js.map +1 -1
  334. package/dist/weight/weightUi.d.ts +16 -4
  335. package/dist/weight/weightUi.d.ts.map +1 -1
  336. package/dist/weight/weightUi.js +23 -53
  337. package/dist/weight/weightUi.js.map +1 -1
  338. package/dist/workout/commands.d.ts +16 -2
  339. package/dist/workout/commands.d.ts.map +1 -1
  340. package/dist/workout/commands.js +17 -16
  341. package/dist/workout/commands.js.map +1 -1
  342. package/dist/workout/index.d.ts +10 -19
  343. package/dist/workout/index.d.ts.map +1 -1
  344. package/dist/workout/index.js +17 -31
  345. package/dist/workout/index.js.map +1 -1
  346. package/dist/workout/land.d.ts +1 -1
  347. package/dist/workout/land.js +3 -3
  348. package/dist/workout/land.js.map +1 -1
  349. package/dist/workout/landBatch.d.ts +7 -5
  350. package/dist/workout/landBatch.d.ts.map +1 -1
  351. package/dist/workout/landBatch.js +17 -15
  352. package/dist/workout/landBatch.js.map +1 -1
  353. package/dist/workout/landBatchPages.d.ts.map +1 -1
  354. package/dist/workout/landBatchPages.js +2 -23
  355. package/dist/workout/landBatchPages.js.map +1 -1
  356. package/dist/workout/landPages.d.ts.map +1 -1
  357. package/dist/workout/landPages.js +2 -23
  358. package/dist/workout/landPages.js.map +1 -1
  359. package/dist/workout/landRunner.d.ts +8 -10
  360. package/dist/workout/landRunner.d.ts.map +1 -1
  361. package/dist/workout/landRunner.js +35 -56
  362. package/dist/workout/landRunner.js.map +1 -1
  363. package/dist/workout/planCopyBlock.d.ts +9 -0
  364. package/dist/workout/planCopyBlock.d.ts.map +1 -0
  365. package/dist/workout/planCopyBlock.js +9 -0
  366. package/dist/workout/planCopyBlock.js.map +1 -0
  367. package/dist/workout/planEditor.d.ts +94 -0
  368. package/dist/workout/planEditor.d.ts.map +1 -0
  369. package/dist/workout/planEditor.js +38 -0
  370. package/dist/workout/planEditor.js.map +1 -0
  371. package/dist/workout/planEditorCss.d.ts +13 -0
  372. package/dist/workout/planEditorCss.d.ts.map +1 -0
  373. package/dist/workout/planEditorCss.js +140 -0
  374. package/dist/workout/planEditorCss.js.map +1 -0
  375. package/dist/workout/planEditorDocs.d.ts +7 -0
  376. package/dist/workout/planEditorDocs.d.ts.map +1 -0
  377. package/dist/workout/planEditorDocs.js +56 -0
  378. package/dist/workout/planEditorDocs.js.map +1 -0
  379. package/dist/workout/planEditorPort.d.ts +45 -0
  380. package/dist/workout/planEditorPort.d.ts.map +1 -0
  381. package/dist/workout/planEditorPort.js +217 -0
  382. package/dist/workout/planEditorPort.js.map +1 -0
  383. package/dist/workout/planEditorRuntime.d.ts +15 -0
  384. package/dist/workout/planEditorRuntime.d.ts.map +1 -0
  385. package/dist/workout/planEditorRuntime.js +427 -0
  386. package/dist/workout/planEditorRuntime.js.map +1 -0
  387. package/dist/workout/planStore.d.ts.map +1 -1
  388. package/dist/workout/planStore.js +1 -3
  389. package/dist/workout/planStore.js.map +1 -1
  390. package/dist/workout/receipt.d.ts +1 -1
  391. package/dist/workout/receipt.js +1 -1
  392. package/dist/workout/receipt.js.map +1 -1
  393. package/dist/workout/review.d.ts +1 -1
  394. package/dist/workout/review.js +1 -1
  395. package/dist/workout/review.js.map +1 -1
  396. package/dist/workout/reviewDocs.d.ts +3 -0
  397. package/dist/workout/reviewDocs.d.ts.map +1 -0
  398. package/dist/{render → workout}/reviewDocs.js +2 -2
  399. package/dist/workout/reviewDocs.js.map +1 -0
  400. package/dist/workout/reviewDocsCss.d.ts.map +1 -0
  401. package/dist/{render → workout}/reviewDocsCss.js +1 -1
  402. package/dist/workout/reviewDocsCss.js.map +1 -0
  403. package/dist/workout/xunjiBackfill.d.ts.map +1 -1
  404. package/dist/workout/xunjiBackfill.js +4 -25
  405. package/dist/workout/xunjiBackfill.js.map +1 -1
  406. package/dist/workout/xunjiPush.d.ts.map +1 -1
  407. package/dist/workout/xunjiPush.js +4 -25
  408. package/dist/workout/xunjiPush.js.map +1 -1
  409. package/dist/workout/xunjiRunner.d.ts +11 -5
  410. package/dist/workout/xunjiRunner.d.ts.map +1 -1
  411. package/dist/workout/xunjiRunner.js +29 -29
  412. package/dist/workout/xunjiRunner.js.map +1 -1
  413. package/dist/xunji/backfill.d.ts +5 -3
  414. package/dist/xunji/backfill.d.ts.map +1 -1
  415. package/dist/xunji/backfill.js +11 -5
  416. package/dist/xunji/backfill.js.map +1 -1
  417. package/dist/xunji/catalog.d.ts +3 -1
  418. package/dist/xunji/catalog.d.ts.map +1 -1
  419. package/dist/xunji/catalog.js +12 -6
  420. package/dist/xunji/catalog.js.map +1 -1
  421. package/dist/xunji/fetch.d.ts +3 -4
  422. package/dist/xunji/fetch.d.ts.map +1 -1
  423. package/dist/xunji/fetch.js +8 -9
  424. package/dist/xunji/fetch.js.map +1 -1
  425. package/dist/xunji/key.d.ts +16 -56
  426. package/dist/xunji/key.d.ts.map +1 -1
  427. package/dist/xunji/key.js +44 -104
  428. package/dist/xunji/key.js.map +1 -1
  429. package/dist/xunji/planSource.d.ts +3 -3
  430. package/dist/xunji/planSource.js +6 -6
  431. package/dist/xunji/planSource.js.map +1 -1
  432. package/dist/xunji/rateLimit.d.ts +7 -2
  433. package/dist/xunji/rateLimit.d.ts.map +1 -1
  434. package/dist/xunji/rateLimit.js +12 -3
  435. package/dist/xunji/rateLimit.js.map +1 -1
  436. package/dist/xunji/run-sync.d.ts +3 -3
  437. package/dist/xunji/run-sync.d.ts.map +1 -1
  438. package/dist/xunji/run-sync.js +5 -5
  439. package/dist/xunji/run-sync.js.map +1 -1
  440. package/dist/xunji/run.d.ts +2 -4
  441. package/dist/xunji/run.d.ts.map +1 -1
  442. package/dist/xunji/run.js +5 -5
  443. package/dist/xunji/run.js.map +1 -1
  444. package/dist/xunji/subcommands.d.ts.map +1 -1
  445. package/dist/xunji/subcommands.js +2 -3
  446. package/dist/xunji/subcommands.js.map +1 -1
  447. package/dist/xunji/upsert.d.ts +4 -4
  448. package/dist/xunji/upsert.d.ts.map +1 -1
  449. package/dist/xunji/upsert.js +6 -6
  450. package/dist/xunji/upsert.js.map +1 -1
  451. package/package.json +2 -9
  452. package/dist/cli/legacy/index.d.ts +0 -25
  453. package/dist/cli/legacy/index.d.ts.map +0 -1
  454. package/dist/cli/legacy/index.js +0 -37
  455. package/dist/cli/legacy/index.js.map +0 -1
  456. package/dist/cli/legacy/routes/index.d.ts +0 -8
  457. package/dist/cli/legacy/routes/index.d.ts.map +0 -1
  458. package/dist/cli/legacy/routes/index.js +0 -23
  459. package/dist/cli/legacy/routes/index.js.map +0 -1
  460. package/dist/cli/legacy/routes/scene-01.d.ts +0 -12
  461. package/dist/cli/legacy/routes/scene-01.d.ts.map +0 -1
  462. package/dist/cli/legacy/routes/scene-01.js +0 -2
  463. package/dist/cli/legacy/routes/scene-01.js.map +0 -1
  464. package/dist/cli/legacy/routes/scene-02.d.ts +0 -18
  465. package/dist/cli/legacy/routes/scene-02.d.ts.map +0 -1
  466. package/dist/cli/legacy/routes/scene-02.js +0 -2
  467. package/dist/cli/legacy/routes/scene-02.js.map +0 -1
  468. package/dist/cli/legacy/routes/scene-03.d.ts +0 -13
  469. package/dist/cli/legacy/routes/scene-03.d.ts.map +0 -1
  470. package/dist/cli/legacy/routes/scene-03.js +0 -2
  471. package/dist/cli/legacy/routes/scene-03.js.map +0 -1
  472. package/dist/cli/legacy/routes/scene-04.d.ts +0 -10
  473. package/dist/cli/legacy/routes/scene-04.d.ts.map +0 -1
  474. package/dist/cli/legacy/routes/scene-04.js +0 -2
  475. package/dist/cli/legacy/routes/scene-04.js.map +0 -1
  476. package/dist/cli/legacy/routes/scene-05.d.ts +0 -10
  477. package/dist/cli/legacy/routes/scene-05.d.ts.map +0 -1
  478. package/dist/cli/legacy/routes/scene-05.js +0 -2
  479. package/dist/cli/legacy/routes/scene-05.js.map +0 -1
  480. package/dist/cli/legacy/routes/scene-06.d.ts +0 -10
  481. package/dist/cli/legacy/routes/scene-06.d.ts.map +0 -1
  482. package/dist/cli/legacy/routes/scene-06.js +0 -2
  483. package/dist/cli/legacy/routes/scene-06.js.map +0 -1
  484. package/dist/cli/legacy/routes/scene-07.d.ts +0 -10
  485. package/dist/cli/legacy/routes/scene-07.d.ts.map +0 -1
  486. package/dist/cli/legacy/routes/scene-07.js +0 -2
  487. package/dist/cli/legacy/routes/scene-07.js.map +0 -1
  488. package/dist/cli/legacy/routes/scene-08.d.ts +0 -12
  489. package/dist/cli/legacy/routes/scene-08.d.ts.map +0 -1
  490. package/dist/cli/legacy/routes/scene-08.js +0 -2
  491. package/dist/cli/legacy/routes/scene-08.js.map +0 -1
  492. package/dist/cli/legacy/routes/scene-09.d.ts +0 -12
  493. package/dist/cli/legacy/routes/scene-09.d.ts.map +0 -1
  494. package/dist/cli/legacy/routes/scene-09.js +0 -2
  495. package/dist/cli/legacy/routes/scene-09.js.map +0 -1
  496. package/dist/cli/legacy/routes/scene-10.d.ts +0 -10
  497. package/dist/cli/legacy/routes/scene-10.d.ts.map +0 -1
  498. package/dist/cli/legacy/routes/scene-10.js +0 -2
  499. package/dist/cli/legacy/routes/scene-10.js.map +0 -1
  500. package/dist/cli/legacy/scene-01.d.ts +0 -13
  501. package/dist/cli/legacy/scene-01.d.ts.map +0 -1
  502. package/dist/cli/legacy/scene-01.js +0 -2
  503. package/dist/cli/legacy/scene-01.js.map +0 -1
  504. package/dist/cli/legacy/scene-02.d.ts +0 -12
  505. package/dist/cli/legacy/scene-02.d.ts.map +0 -1
  506. package/dist/cli/legacy/scene-02.js +0 -2
  507. package/dist/cli/legacy/scene-02.js.map +0 -1
  508. package/dist/cli/legacy/scene-03.d.ts +0 -14
  509. package/dist/cli/legacy/scene-03.d.ts.map +0 -1
  510. package/dist/cli/legacy/scene-03.js +0 -2
  511. package/dist/cli/legacy/scene-03.js.map +0 -1
  512. package/dist/cli/legacy/scene-04.d.ts +0 -12
  513. package/dist/cli/legacy/scene-04.d.ts.map +0 -1
  514. package/dist/cli/legacy/scene-04.js +0 -2
  515. package/dist/cli/legacy/scene-04.js.map +0 -1
  516. package/dist/cli/legacy/scene-05.d.ts +0 -14
  517. package/dist/cli/legacy/scene-05.d.ts.map +0 -1
  518. package/dist/cli/legacy/scene-05.js +0 -2
  519. package/dist/cli/legacy/scene-05.js.map +0 -1
  520. package/dist/cli/legacy/scene-06.d.ts +0 -15
  521. package/dist/cli/legacy/scene-06.d.ts.map +0 -1
  522. package/dist/cli/legacy/scene-06.js +0 -2
  523. package/dist/cli/legacy/scene-06.js.map +0 -1
  524. package/dist/cli/legacy/scene-07.d.ts +0 -15
  525. package/dist/cli/legacy/scene-07.d.ts.map +0 -1
  526. package/dist/cli/legacy/scene-07.js +0 -2
  527. package/dist/cli/legacy/scene-07.js.map +0 -1
  528. package/dist/cli/legacy/scene-08.d.ts +0 -13
  529. package/dist/cli/legacy/scene-08.d.ts.map +0 -1
  530. package/dist/cli/legacy/scene-08.js +0 -2
  531. package/dist/cli/legacy/scene-08.js.map +0 -1
  532. package/dist/cli/legacy/scene-09.d.ts +0 -13
  533. package/dist/cli/legacy/scene-09.d.ts.map +0 -1
  534. package/dist/cli/legacy/scene-09.js +0 -2
  535. package/dist/cli/legacy/scene-09.js.map +0 -1
  536. package/dist/cli/legacy/scene-10.d.ts +0 -13
  537. package/dist/cli/legacy/scene-10.d.ts.map +0 -1
  538. package/dist/cli/legacy/scene-10.js +0 -2
  539. package/dist/cli/legacy/scene-10.js.map +0 -1
  540. package/dist/cli/legacy/types.d.ts +0 -16
  541. package/dist/cli/legacy/types.d.ts.map +0 -1
  542. package/dist/cli/legacy/types.js +0 -2
  543. package/dist/cli/legacy/types.js.map +0 -1
  544. package/dist/render/reviewDocs.d.ts +0 -3
  545. package/dist/render/reviewDocs.d.ts.map +0 -1
  546. package/dist/render/reviewDocs.js.map +0 -1
  547. package/dist/render/reviewDocsCss.d.ts.map +0 -1
  548. package/dist/render/reviewDocsCss.js.map +0 -1
  549. /package/dist/{render → workout}/reviewDocsCss.d.ts +0 -0
package/SKILL.md CHANGED
@@ -28,8 +28,8 @@ calorie-cmd-read calorie.help.lookup --params '{"q":"看今日主页"}'
28
28
  - 二进制:`packages/skill-calorie/dist/cli/cmd_read.js`(bin `calorie-cmd-read`),纯 CLI 单轨,无面板/定时/外联动。
29
29
  - 运维定位(C1 #43):`skill-calorie-fetch`(`dist/fetch/cli.js`)仅运维(import/validate/dedupe/export/history/audit/catalog-verify),不承载业务读写;业务读写唯一出口仍为 `calorie-cmd-read`。
30
30
  - 契约:P9 冻结 argv+JSON+exit;缺 key exit 2、未知 key exit 3、取数/缺失 exit 4、envelope/渲染/落盘 exit 5、预检 exit 1。
31
- - stdout 纯净:成功只打 envelope JSON 一行;进度与错误一律 stderr;HTML 默认落 `<SKILLS_DB_PATH>/calorie_html/<中文command>_<YYYYMMDD>_<HHMMSS>[_N].html`(同秒冲突自动加 `_2`/`_3`),落点回传在 envelope `data.output`(**恒绝对路径**,相对 `SKILLS_DB_PATH`/`--html` 亦按 cwd 归一后回传);`--html <路径>` 显式覆盖任意路径(**唯一落点参数**:老技能的 `--output` 别名已按 #245 删除,给了即 exit 2,与其余五家同形)。
32
- - 预检:engines>=22.13 + SKILLS_DB_PATH 必设(无默认值);照片存在位需 CALORIE_PHOTOS_DIR,否则记 null 不断言。
31
+ - stdout 纯净:成功只打 envelope JSON 一行;进度与错误一律 stderr;HTML 默认落 `<库目录>/<产物目录>/<中文command>_<YYYYMMDD>_<HHMMSS>[_N].html`(同秒冲突自动加 `_2`/`_3`)——`<库目录>`=配置文件 `~/.ilife/calorie.yaml` 的 `db.dir`,空串=数据目录 `~/.ilife/data/`;`<产物目录>`=同文件的 `html.dir`(默认 `calorie_html`)。落点回传在 envelope `data.output`(**恒绝对路径**,相对库目录/`--html` 亦按 cwd 归一后回传);`--html <路径>` 显式覆盖任意路径(**唯一落点参数**:老技能的 `--output` 别名已按 #245 删除,给了即 exit 2,与其余五家同形)。
32
+ - 预检:engines>=22.13;库目录与照片目录都从配置文件取(`~/.ilife/calorie.yaml` `db.dir` `photos.dir`,空串=按各自默认回落——库目录落数据目录 `~/.ilife/data/`,照片目录算「还没配」),**没有一个环境变量是必设的**;照片目录没配时,照片存在位记 null、不断言。
33
33
  - 写链(#40):52 写键(diet/water/weight/exercise/photo/product/profile/goal/body/workout)同出口可执行,一律 `receipt` 形(`ok/message` + T10 `receipt` 回执);缺参 exit 2、缺失阻断 exit 4;训记同步与 mmx vision 两步向导无独立写键(二期,见 triggers 旧链)。
34
34
 
35
35
  ## envelope 全字段
@@ -317,7 +317,7 @@ calorie-cmd-read calorie.help.lookup --params '{"q":"看今日主页"}'
317
317
  - **「卡路里HELP」=老技能同款 HELP 文件**(#139 起):`calorie-cmd-read calorie.help.center` 缺省即出 `卡路里_HELP_<时间戳>.html`(老命名,V4 三级目录壳,与老技能视觉一致;落 `data.output`,约 300 KB **只落盘**、不进 envelope)。**除下面的复用窗口外别再给它加参数**——缺省就是目的地交付物。
318
318
  - **反复读不再涨目录(#245)**:HELP 文件与速查台**同一主体一天内只留一份**——24 小时内再读就**复用已有那份**(不新建、不改写;`data.output` 给的就是它)。要别的窗口给 `--params '{"reuseHours":3}'`(小时);要**每次都要一份最新的**给 `{"reuseHours":0}`。窗口内已有一份、而你刚改过内容时,那份旧产物**不会自动刷新**(窗口语义如此)——真要新的就带 `reuseHours:0`。业务页面与失败回执**不吃窗口**(每跑一次仍各留一份)。
319
319
  - **速查台(#88,须显式要)**:`--params '{"mode":"file"}'` 出完整 HTML 速查台(436 场景/54 子功能/10 分组,卡级复制按钮,约 1 MB,落 `卡路里_速查台_<时间戳>.html`);`{"mode":"inline"}` 出内嵌片段/`{"mode":"text"}` 出纯文本索引;非法 `mode` 与 `q`+`mode` 同给一律 exit 2。
320
- - **照片 11 键走 `q`**(不是 `mode`):`--params '{"q":"记身材照"}'` 现找、`{"q":""}` 全表,顺序跟 SCENE_09_PHOTO SoT 序;每条命中自带 `exec`(node 一行式,读 SKILLS_DB_PATH 库)+`legacyCli`(老家 python 原命令备查);模块 `skill-calorie/photo/photo`+`skill-calorie/photo/photos`,函数须存在(单测逐条 import 断言)。
320
+ - **照片 11 键走 `q`**(不是 `mode`):`--params '{"q":"记身材照"}'` 现找、`{"q":""}` 全表,顺序跟 SCENE_09_PHOTO SoT 序;每条命中自带 `exec`(node 一行式,读配置里的库目录)+`legacyCli`(老家 python 原命令备查);模块 `skill-calorie/photo/photo`+`skill-calorie/photo/photos`,函数须存在(单测逐条 import 断言)。
321
321
  - **通用唤醒词现找**:`calorie.help.lookup --params '{"q":"<唤醒词/分类/描述子串>"}'`(436 唤醒词全量,10 场景,空串抛,不返全表冒充命中)。
322
322
  - 二进制原样:照片只 render 文件名 <img> 引用 + fileExists 位,不嵌 base64;GIF 只出任务描述不碰二进制。
323
323
 
@@ -542,20 +542,21 @@ calorie-cmd-read calorie.help.lookup --params '{"q":"看今日主页"}'
542
542
  ```
543
543
 
544
544
  - HELP 面:旧词 85 条走 `calorie.help.lookup --params '{"q":"<唤醒词>"}'` 现找(抽查 5/5 绿,见证据件);3 条新词(看组合分析/看热量趋势/看整体趋势)在冻结表无行,现找无精确命中,路由直达可执行(真出口已验),补行留收口(本票不改冻结表)。
545
- - 固定种子抽查(`docs/research/t81-seed.mjs`,`CALORIE_TODAY=2026-09-07`):每组至少 1 条真出口 exit 0,结果型 HTML 落盘、回执绝对路径,指标全有限数(判定①②绿,判定③视觉留用户肉眼;读数见证据件)。
545
+ - 固定种子抽查(`docs/research/t81-seed.mjs`):「今天」由测试把整只钟钉到种子日 2026-09-07(`test/freeze-clock.cjs`,父进程与子进程一起钉),故读数与机器时钟无关。每组至少 1 条真出口 exit 0,结果型 HTML 落盘、回执绝对路径,指标全有限数(判定①②绿,判定③视觉留用户肉眼;读数见证据件)。
546
546
 
547
547
  ## 环境与出 scope
548
548
 
549
- - SKILLS_DB_PATH(必设,无默认值)+ CALORIE_PHOTOS_DIR(照片存在位校验用,缺则记 null);真实 DB 禁迁,测试 tmp 隔离;老家只读对照。
549
+ - 路径类取值一律读配置文件 `~/.ilife/calorie.yaml`(**配置文件是唯一真相,环境变量不参与配置**):库目录=`db.dir`(空串=数据目录 `~/.ilife/data/`,首次读时自动建)、库文件名=`db.name`(默认 `calorie_data.db`)、产物目录=`html.dir`(默认 `calorie_html`)、照片目录=`photos.dir`(**空串=这一项还没配**:取数侧跳过「照片文件在不在」的校验、写侧直接阻断,不猜路径)、GIF 子目录=`photos.gifs`(默认 `gifs`)、训记五项=`xunji.*`、落地三项=`land.*`;`ILIFE_CONFIG_DIR` 设定且非空即整体接管配置目录。真实 DB 禁迁,测试 tmp 隔离;老家只读对照。取值面与环境项见 docs/env.md。
550
550
  - 出 scope(一期外):面板(二期单 MAP)、定时任务、本技能外联动(router+作息/备忘/训记仅只读对照,不落本包)。
551
551
 
552
552
  ## 公共安装器运行时(skills-cli 装完必读,#47)
553
553
 
554
- - 本仓库 `dist/` 不进 git:skills-cli 只把本目录(含本文件)装进 agent,不带可执行文件;“不走 npm”的只是 skill 发现这一步,运行时走 npm(`skill-calorie@0.2.4` 已发布)。
555
- - 取运行时二选一:`npm install -g skill-calorie@0.2.4`(一劳永逸),或免安装 `npx -p skill-calorie@0.2.4 calorie-cmd-read …`(每次现拉)。若 npm 报 EUNSUPPORTEDPROTOCOL(workspace:),说明已发布包待重发(发版流修,见 docs/public-installer-47.md「已发布包阻塞」),先用本仓构建产物验证链路。
556
- - HELP 现找→cmd_read→envelope→HTML 验证(sh `export SKILLS_DB_PATH="$(mktemp -d)"`;Windows PowerShell 先 `$env:SKILLS_DB_PATH = "$env:TEMP\sk-test"`;node>=22.13;完整口径见 docs/public-installer-47.md):
554
+ - 本仓库 `dist/` 不进 git:skills-cli 只把本目录(含本文件)装进 agent,不带可执行文件;“不走 npm”的只是 skill 发现这一步,运行时走 npm(`skill-calorie@0.2.5` 已发布)。
555
+ - 取运行时二选一:`npm install -g skill-calorie@0.2.5`(一劳永逸),或免安装 `npx -p skill-calorie@0.2.5 calorie-cmd-read …`(每次现拉)。若 npm 报 EUNSUPPORTEDPROTOCOL(workspace:),说明已发布包待重发(发版流修,见 docs/public-installer-47.md「已发布包阻塞」),先用本仓构建产物验证链路。
556
+ - HELP 现找→cmd_read→envelope→HTML 验证(隔离靠把**配置目录**指到临时目录:`ILIFE_CONFIG_DIR` 设定且非空即整体接管配置目录,配置里的 `db.dir` 再决定库与产物落哪;node>=22.13;完整口径见 docs/public-installer-47.md):
557
557
  ```sh
558
- calorie-cmd-read calorie.help.lookup --params '{"q":"看今日主页"}'
558
+ cfg="$(mktemp -d)" && mkdir -p "$cfg/db" && printf 'db:\n dir: %s\n' "$cfg/db" > "$cfg/calorie.yaml"
559
+ ILIFE_CONFIG_DIR="$cfg" calorie-cmd-read calorie.help.lookup --params '{"q":"看今日主页"}'
559
560
  ```
560
561
  - stdout/落盘契约与「唯一出口(T11)」节同源(成功只一行 envelope JSON;HTML 落点见 `data.output`)。
561
562
  - 版本钉死登记:本节版本硬编码现为 `@0.2.4`(已随 #44 发版流同步;历史登记见 docs/public-installer-47.md「版本钉死登记」)。
@@ -2,129 +2,45 @@
2
2
  "version": 2,
3
3
  "note": "生成器输入(声明源)的内容印记 v2:每条记 {src, dist} 配对(源文本与编译产物 .js 文本的 sha256),由 `pnpm build` 调 `node packages/skill-calorie/scripts/gen-cli.mjs --stamp` 写入;`pnpm gen`/`pnpm gen:check` 按它判陈旧、按现场配对门判脱钩——内容判据,不看时间戳。",
4
4
  "files": {
5
- "cli/legacy/scene-01.ts": {
6
- "src": "a2fe63008c4fdfa7b2baee1eaa4b846d1b5c34678eeb73732680b6dafe67fc0d",
7
- "dist": "9402117a32d29c98b54205ff4e7dad195b554a5264273731cc3d87d89cb2a478"
8
- },
9
- "cli/legacy/scene-02.ts": {
10
- "src": "876ca5ad3a62db5ead15e1a8c1eeb05c3d9376d870a5721ea966f1a2148cb068",
11
- "dist": "c550e51f086eb55d19203034fe2a07cf0babf5693f187eebe1067dccdb191367"
12
- },
13
- "cli/legacy/scene-03.ts": {
14
- "src": "95ce315f877aeb16203a3c0c10759f5ad3f5b36449ef076220492f1270339ac4",
15
- "dist": "423fc99daeabaf01846a528a3b6ca794cadbb12de20158e7587d7aa70f838a5b"
16
- },
17
- "cli/legacy/scene-04.ts": {
18
- "src": "00dd1a0a286c62aaf35ae29d69508517669d1e1b5ebcd127db5d02505e772bfd",
19
- "dist": "f817376bc30cb093eb462bbff103ebc4b2adfe0c5cf749cc082d6d50798f6c3f"
20
- },
21
- "cli/legacy/scene-05.ts": {
22
- "src": "f3efaa5e1a19531f1d2f969a3db84e80a3b70b8f7771ec87b772a689f8ea2c6c",
23
- "dist": "5e28dd5c49560b3e20b1f9024f50755c0fb2f9eea8a0085a330c47d848ce6ed3"
24
- },
25
- "cli/legacy/scene-06.ts": {
26
- "src": "d23863793d2344b467e04b0f8a3fa7fb944343ab78dec31dca7380116133a6c3",
27
- "dist": "8eaa2d1978230c208e1535e51a28c928dfb65fcd78e6e43d37acb6c2b72c20af"
28
- },
29
- "cli/legacy/scene-07.ts": {
30
- "src": "ceec210a3357db5b44c2cddc50702ffcbadae41d7126d59b75cc441dec95b46b",
31
- "dist": "3afdc0c05d20221461ff609de6cece74ee0e54e74f6e3d83d6e8d5befee625fa"
32
- },
33
- "cli/legacy/scene-08.ts": {
34
- "src": "5730256ce05284ce05ca8d0c09b9ef2f36cd43bd3b73ec6b8b487e80b2f1b555",
35
- "dist": "4b36561fd19645b6ebf402c759f753887277158a16b0fdc7815ada4fd3c336e3"
36
- },
37
- "cli/legacy/scene-09.ts": {
38
- "src": "2ab227e912611c9e23a9ecf99871ef36e9940401d33aafed1b6f62e0c17ed4d1",
39
- "dist": "3eda4ddac64245ef21c4bba0b393d38ef0d82d5e5105a6891c03d24f8171fbbb"
40
- },
41
- "cli/legacy/scene-10.ts": {
42
- "src": "f0262dfeb0c6bfabc316a5a76639c39568442c00cbdeaa9a544ffaebe907c56c",
43
- "dist": "e27b3b08eddeff81ef3bfa5f509791184691eed927b7b2e59010f559c98ef55f"
44
- },
45
5
  "analysis/commands.ts": {
46
6
  "src": "aa1c8b83c86d16c95b0c7183b6262efffd11588b6bdda6ff1a93b86069df7992",
47
7
  "dist": "c31b52ff5c2bf8d0789a9575cbc295477dd476bf5fe745aa56e3675f64db2b61"
48
8
  },
49
9
  "body/commands.ts": {
50
- "src": "d4ecbcf2f6f374528f6187c042f560de99d2dcfd1a4525974eb63386517d918e",
51
- "dist": "a703b2b51b0953a721fc8f6e290b4a1c27257c268aaf2b0d8cd81395974b1a0b"
10
+ "src": "1326a440762c4ecab139d949af7c66f842f766019669366669795a1c882d0420",
11
+ "dist": "07cec9490f35d19cbb38665cf21b6979df6dda7391731707ad858f6fa662013e"
52
12
  },
53
13
  "diet/commands.ts": {
54
- "src": "10f544c5f3a8039d47776126405d2b7e27230ce35e1da257d8a3f164cbe25bc0",
55
- "dist": "95d89158116a26a40ae674fb986f1f62d3931f740cdf7db2f2843fc1d72a9085"
14
+ "src": "4505a8f491b56c0e937ce5b9e92f75be79accbf6a163e9298cdc93ee9cca4f87",
15
+ "dist": "b827de3e08cfbdd3707888e18d9eef07a6802acf40c61e02513eb1ab649ce734"
56
16
  },
57
17
  "exercise/commands.ts": {
58
- "src": "0b1c46414fb60b9705dd6ea56bfc471bb6b15c4429cff48da1d4d92f2144dafd",
59
- "dist": "c8179d81e306f3a649e4754951c60930d0a691474bc766e247023a0fb8e2ac45"
18
+ "src": "3a1bd9d915e1791fd9f60fa1f6d64c936d5ae7ad1c7130fff92b45bcbf000b22",
19
+ "dist": "4e6e196c22bd9b09e5ac42f4324440214f6a843d4fc3c9e77260feebdf8527ff"
60
20
  },
61
21
  "goal/commands.ts": {
62
- "src": "13a3e269f53bc188dc4e02c306d685c359c24ad15535cf78d9b61ef263ca23e3",
63
- "dist": "914970cc59cb683ebca974826534e53f243fd0c7f878de7829e6854f907bd359"
22
+ "src": "99600fb272d82a2c0f665a23aacd656589b691c43f53babefc7064fb6308bc74",
23
+ "dist": "1bec30f220eccf7b61205fc804a51dad94f27f055d4654f77a615ddab1c3f9ae"
64
24
  },
65
25
  "home/commands.ts": {
66
26
  "src": "40df92ce0be1be4ad63317e2ba5f1502f0f08bcffdcf99eae6d87e5e4d7a77ef",
67
27
  "dist": "6c1deabc2c10461022091fa2fd8dcc64ba64dea5bd8724f65e453a947b851562"
68
28
  },
69
29
  "photo/commands.ts": {
70
- "src": "3397ab29fa35dd6123885aa2e9091fe4d08549ac805d0966cf14668af9904bf0",
71
- "dist": "867df014a45efd9abee59ea176b8f72c2e330369862e717886cf1277b145ce2e"
30
+ "src": "10c777ec182117a914451ea050dd28c36a67218cb0587348ed0f511e0c44d919",
31
+ "dist": "f115cf3220a27b4cdc99bafba22d92541c9f9ef46e8e1900f667d61f6ddcab7e"
72
32
  },
73
33
  "profile/commands.ts": {
74
- "src": "219793ff56fe62e544308e6d59b91575f9f581da437bef6e64a48a588874b329",
75
- "dist": "5765702fd474cd0b848289b5d5255eb97fc4b6f077a59e7483b8f5fa3dddfef3"
34
+ "src": "8407fbb166b0ae2624a631cb7e373b8a345b13d52a9c6ff3f80af1244490e33f",
35
+ "dist": "ac9d17106e05bd201994d456c09b70a7262a1b1ea92830f1024bdd6e9f8594ee"
76
36
  },
77
37
  "weight/commands.ts": {
78
- "src": "d10ef7e0bd8fc9aaceb4a43b626e74f142c66fbc3326ae271907bc737b7ad6e6",
79
- "dist": "3faa158f4234073a9d51228b9d5f35806d43c5ad59794e9cc5b7107813f06928"
38
+ "src": "a84d42ff687f063b02627858667618adf92645932dccf97b16c7affc60d10454",
39
+ "dist": "a078574c4e146f09a0961614694c8abb9ea43538b691f88d7c101b2da1991062"
80
40
  },
81
41
  "workout/commands.ts": {
82
- "src": "12d0dbfde15edf85665e55337a0c4a93fac884d146544cb0da94500c3d028a28",
83
- "dist": "89c2343fb7157c2599e22a02452d671a2db96fa24144f6113c5877df3e761fd0"
84
- },
85
- "cli/legacy/routes/index.ts": {
86
- "src": "ab41e99fb58c1c985a0a11341ce7d9fa0d4c01eb85fa61b66eed11a2ebd5d3c8",
87
- "dist": "aee7576f87f7f87130ee28a1beec9d29b6ce7878a1b2086ab933047de642ed9d"
88
- },
89
- "cli/legacy/routes/scene-01.ts": {
90
- "src": "46c85985e0a640ab230c1b6bdc379198773bc42e5a110462515b361199b625e6",
91
- "dist": "bf71f7ce9573472297203f45de427bc8e97f450918cde9d849de6481a98c8b2c"
92
- },
93
- "cli/legacy/routes/scene-02.ts": {
94
- "src": "ec4e56ded6f4b19b4c780c2f1e0bd5a9519ec24493a1844a38ac78be8400bc28",
95
- "dist": "1a5e5852c412244d4e54b89b31eda3234b7695a1aab55f125bb819ee9c1c3417"
96
- },
97
- "cli/legacy/routes/scene-03.ts": {
98
- "src": "20efe31c50c404d69d60c0a259872492f5c6f50e33107e3dfb8e78d5a2111e1d",
99
- "dist": "475a26a9ee3766d7c1cf3f27ed88fd9c2f1aedc1b17c57fdace3b4abbaedef16"
100
- },
101
- "cli/legacy/routes/scene-04.ts": {
102
- "src": "9776dccf3df1a8188f1c2f0a066a0a07bdb869b5b726e86721f5ded808fa957b",
103
- "dist": "170f1fd93397c81ae98789636963226171550cfcfefe8d78ff69622ed6ada6d0"
104
- },
105
- "cli/legacy/routes/scene-05.ts": {
106
- "src": "0c5f1cd5d91b1007f2119c589fb6e499937083574d0cdb77c04fea2db3b4ab4b",
107
- "dist": "318a24a755fb15a8cfeadddfaab1c332db6cb01562d0c02f2daaf4b4f06a6b9e"
108
- },
109
- "cli/legacy/routes/scene-06.ts": {
110
- "src": "e62944e6e42aac746b23ec04274737e427fb3c3d9ea3c50f50e03fa527af7393",
111
- "dist": "f93c427cc8d1fbd28738fc0557cfb9858e7cbb1168ceca81411c98554b258b8c"
112
- },
113
- "cli/legacy/routes/scene-07.ts": {
114
- "src": "f7c5fb751db8be50c9e379636b259c0ba301dd70ea68dd26d4050ee324a96a2b",
115
- "dist": "da3643bb4c52fd8126b516714a3b5d247746929766714f920cc30ece280070a3"
116
- },
117
- "cli/legacy/routes/scene-08.ts": {
118
- "src": "9ebb84da5b839d170ca42222c4db756084d320e437b97e0c010f2a165e329fb8",
119
- "dist": "efb17b1806a60d1ac12bb9818bc56df55371fc5999c1d8c4b93b97999800977b"
120
- },
121
- "cli/legacy/routes/scene-09.ts": {
122
- "src": "667c044972e9c7dd17a13a0231e29336de6fd41529ca8df9ab41c6072c107e74",
123
- "dist": "3589d1969cad30bcfe95f4dc4298442097b299e490783baea9293ac132a798e3"
124
- },
125
- "cli/legacy/routes/scene-10.ts": {
126
- "src": "580cc6146d9529764b1e7428096f16381009e8caaebaea1bc82540ccb60e1983",
127
- "dist": "5b1371b6f62b8d966137188467906ccc65b05da1f65c0731314299e04c077808"
42
+ "src": "4bf37e9384fc1d75575f2741f4a7756ceca77a123efe4e97030c03fa1e17e433",
43
+ "dist": "b4c897369044b406d430cd384e720951189cabe2714b9e85603d3067e837e015"
128
44
  },
129
45
  "analysis/routes.ts": {
130
46
  "src": "ddb905ed696794f1ad3e65e14ac400e026c50796738f247fd3eb7b3ddee69c78",
@@ -1,4 +1,9 @@
1
- /** T5 #24 · 诊断公共件(对照老家 anomaly.py 顶部 helpers)。 */
1
+ /** T5 #24 · 诊断公共件(对照老家 anomaly.py 顶部 helpers)。
2
+ *
3
+ * #717 批①·餐别归一:本件原来自写一套小时边界(10/15/21),与共用位正本
4
+ * (早 6-10/午 10-14/下午茶 14-18/晚 18-22/夜宵 22-6)在 14:30/21:30/22:30
5
+ * 这类时刻给出不同餐别——同一条记录在「餐别分布」页与「诊断饮食结构问题」页被算进不同的餐。
6
+ * 现在归桶只走 `shared/meal.ts` 的 `mealBucketOf`,本件不再出现任何字面小时数。 */
2
7
  import type { DatabaseSync } from 'node:sqlite';
3
8
  import { seriesAvg, seriesDelta } from '../series.js';
4
9
  import type { DaySeries } from '../series.js';
@@ -38,6 +43,11 @@ export declare function topFoods(db: DatabaseSync, start: string, end: string, c
38
43
  total: number;
39
44
  times: number;
40
45
  }>;
46
+ /** 餐次结构(四桶次数与占比):早餐/午餐/晚餐/加餐夜宵。
47
+ *
48
+ * 归桶**只走共用位**(#717 批①):本件不再写小时边界,`加餐/夜宵` 这一桶=
49
+ * `mealBucketOf` 判成「加餐」的行(下午茶 + 夜宵),与「餐别分布」页那一桶同一条判据、
50
+ * 同一批行——两个页面对同一天给出同样的餐次统计。 */
41
51
  export declare function mealStructure(db: DatabaseSync, start: string, end: string): Record<string, {
42
52
  times: number;
43
53
  share: number;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/analysis/anomaly/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/analysis/anomaly/common.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { FetchError } from '../../fetch/errors.js';
2
2
  import { seriesAvg, seriesDelta } from '../series.js';
3
3
  import { EX_ALIVE } from '../utils.js';
4
+ import { mealBucketOf } from '../../shared/meal.js';
4
5
  export const MIN_DAYS = 7;
5
6
  export const PRED_MIN = 14;
6
7
  export const round = (n) => Math.round(n);
@@ -40,22 +41,20 @@ export function topFoods(db, start, end, col = 'calories', limit = 5) {
40
41
  const raw = db.prepare('SELECT food_name AS n, SUM(' + col + ') AS total, COUNT(*) AS times FROM food_log WHERE date BETWEEN ? AND ? AND food_name != ? GROUP BY food_name ORDER BY total DESC LIMIT ?').all(start, end, '💧水', limit);
41
42
  return raw.map((r) => ({ food: r.n, total: round1(r.total ?? 0), times: r.times }));
42
43
  }
44
+ /** 餐次结构(四桶次数与占比):早餐/午餐/晚餐/加餐夜宵。
45
+ *
46
+ * 归桶**只走共用位**(#717 批①):本件不再写小时边界,`加餐/夜宵` 这一桶=
47
+ * `mealBucketOf` 判成「加餐」的行(下午茶 + 夜宵),与「餐别分布」页那一桶同一条判据、
48
+ * 同一批行——两个页面对同一天给出同样的餐次统计。 */
43
49
  export function mealStructure(db, start, end) {
44
50
  const raw = db.prepare("SELECT time AS t FROM food_log WHERE date BETWEEN ? AND ? AND food_name != '💧水'").all(start, end);
45
- const rows = raw.map((r) => [r.t]);
46
51
  const buckets = { '早餐': 0, '午餐': 0, '晚餐': 0, '加餐/夜宵': 0 };
47
- for (const r of rows) {
48
- const h = parseInt(String(r[0] ?? '12:00').split(':')[0], 10);
49
- if (Number.isNaN(h))
52
+ for (const r of raw) {
53
+ const b = mealBucketOf(r.t);
54
+ if (b === null)
50
55
  continue;
51
- if (h < 10)
52
- buckets['早餐'] = buckets['早餐'] + 1;
53
- else if (h < 15)
54
- buckets['午餐'] = buckets['午餐'] + 1;
55
- else if (h < 21)
56
- buckets['晚餐'] = buckets['晚餐'] + 1;
57
- else
58
- buckets['加餐/夜宵'] = buckets['加餐/夜宵'] + 1;
56
+ const key = b === '加餐' ? '加餐/夜宵' : b;
57
+ buckets[key] = buckets[key] + 1;
59
58
  }
60
59
  const total = Object.values(buckets).reduce((a, b) => a + b, 0) || 1;
61
60
  const out = {};
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/analysis/anomaly/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/analysis/anomaly/common.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"diet.d.ts","sourceRoot":"","sources":["../../../src/analysis/anomaly/diet.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAoB7E;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAoB5D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CA2BjE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAsBlF"}
1
+ {"version":3,"file":"diet.d.ts","sourceRoot":"","sources":["../../../src/analysis/anomaly/diet.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxD,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAoB7E;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAoB5D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CA+BjE;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAsBlF"}
@@ -1,5 +1,9 @@
1
1
  import { getActivityFactor } from '../utils.js';
2
2
  import { base, degrade, mealStructure, round, seriesAvg, topFoods } from './common.js';
3
+ /* #717 批②·推荐区间归一:判决依据的区间只有一处定义(共用位 `shared/nutritionRange.ts`)。
4
+ 本件原先自写一套无出处的数(15-30/40-60/20-35),与配比页印出来的那套(10-20/45-65/20-35)
5
+ 在同一份库上给出两个答案——同一条记录在两个页面上被判成两个结论。 */
6
+ import { NUTRITION_RANGE, nutritionRangeNote } from '../../shared/nutritionRange.js';
3
7
  export function diagDietOver(db, series) {
4
8
  const out = base(series, 'diet_over', '诊断饮食超标');
5
9
  const goal = series[0]?.calorieGoal ?? 1800;
@@ -55,11 +59,15 @@ export function diagDietUnbalanced(series) {
55
59
  '碳水': round((c * 4) / total * 1000) / 10,
56
60
  '脂肪': round((f * 9) / total * 1000) / 10,
57
61
  };
58
- const ref = { '蛋白': [15, 30], '碳水': [40, 60], '脂肪': [20, 35] };
59
- const off = Object.keys(shares).filter((k) => { const r = ref[k]; const v = shares[k]; return !(r[0] <= v && v <= r[1]); });
62
+ /* #717 批②·推荐区间归一:判决依据=共用位正本(与配比页印出来的那套同一个定义地)。
63
+ 这张映射表只做「中文名 正本键」的翻译,**不再出现任何字面区间数**。 */
64
+ const ref = {
65
+ '蛋白': NUTRITION_RANGE.protein, '碳水': NUTRITION_RANGE.carb, '脂肪': NUTRITION_RANGE.fat,
66
+ };
67
+ const off = Object.keys(shares).filter((k) => { const r = ref[k]; const v = shares[k]; return !(r.min <= v && v <= r.max); });
60
68
  out.findings.push({
61
69
  cause: '三大营养占比',
62
- evidence: '蛋白 ' + shares['蛋白'] + '% / 碳水 ' + shares['碳水'] + '% / 脂肪 ' + shares['脂肪'] + '%(参考 蛋白15-30 碳水40-60 脂肪20-35)',
70
+ evidence: '蛋白 ' + shares['蛋白'] + '% / 碳水 ' + shares['碳水'] + '% / 脂肪 ' + shares['脂肪'] + '%(' + nutritionRangeNote() + ')',
63
71
  confidence: '中',
64
72
  action: off.length > 0 ? '失衡维度:' + off.join('、') + ',针对性调整(蛋白不足→加蛋奶豆肉;碳水过高→减精制碳水;脂肪过高→减油/油炸)' : '三大营养占比在均衡范围',
65
73
  });
@@ -1 +1 @@
1
- {"version":3,"file":"diet.js","sourceRoot":"","sources":["../../../src/analysis/anomaly/diet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diet.js","sourceRoot":"","sources":["../../../src/analysis/anomaly/diet.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,12 @@
2
2
  *
3
3
  * 薄壳:唯一数据源 = T5 buildSeries,不自算缺口(老家 v2 T5 薄壳化后同样)。
4
4
  * 热量缺口 = 消耗 − 摄入,正=缺口;消耗 = TDEE + 当日运动;摄入 = 当日食物(不含水)。
5
- * KCAL_PER_KG = 7700(脂肪);weekly_deficit_per_day: 300 沿老家 target 段。
5
+ * KCAL_PER_KG(=7700,脂肪):正本自 #717 批④ 起住共用位 `shared/kcalPerKg.ts`,本件只按原名转出。
6
+ * weekly_deficit_per_day: 300 沿老家 target 段。
6
7
  */
7
8
  import type { DatabaseSync } from 'node:sqlite';
8
- export declare const KCAL_PER_KG = 7700;
9
+ import { KCAL_PER_KG } from '../shared/kcalPerKg.js';
10
+ export { KCAL_PER_KG };
9
11
  export declare const WEEKDAY_NAMES: string[];
10
12
  export declare function weekdayName(isoDate: string): string;
11
13
  export interface DeficitDay {
@@ -1 +1 @@
1
- {"version":3,"file":"deficit.d.ts","sourceRoot":"","sources":["../../src/analysis/deficit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,eAAO,MAAM,aAAa,UAA6C,CAAC;AAExE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAC9E;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAChF,aAAa,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACjF;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CA4C1F"}
1
+ {"version":3,"file":"deficit.d.ts","sourceRoot":"","sources":["../../src/analysis/deficit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,eAAO,MAAM,aAAa,UAA6C,CAAC;AAExE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;CAC9E;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAChF,aAAa,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACjF;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CA4C1F"}
@@ -1,7 +1,8 @@
1
1
  import { FetchError } from '../fetch/errors.js';
2
2
  import { round2 } from '../kcal.js';
3
+ import { KCAL_PER_KG } from '../shared/kcalPerKg.js';
3
4
  import { buildSeries } from './series.js';
4
- export const KCAL_PER_KG = 7700;
5
+ export { KCAL_PER_KG };
5
6
  export const WEEKDAY_NAMES = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'];
6
7
  export function weekdayName(isoDate) {
7
8
  const t = Date.parse(isoDate + 'T12:00:00Z');
@@ -1 +1 @@
1
- {"version":3,"file":"deficit.js","sourceRoot":"","sources":["../../src/analysis/deficit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deficit.js","sourceRoot":"","sources":["../../src/analysis/deficit.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,8 @@ export interface CalorieHistory {
19
19
  rows: DayIntake[];
20
20
  }
21
21
  /** 最近 N 天每日摄入(food_log 按 date 聚合倒序);空库返回空 rows,调用方阻断提示,不返“正常空数据”。
22
- * #559:默认 `now` 经 `todayISO()` 派生(#250 唯一出处),`CALORIE_TODAY` 钉住时窗口跟钉住;
23
- * 未设该变量时按包内 UTC 日口径(与 T3/T4 同;与原来按机器本地日历在午夜边界可能差一天,口径以 UTC 日为准)。显式 `now` 照旧优先。 */
22
+ * #559:默认 `now` 经 `todayISO()` 派生(#250 唯一出处);#718 起「今天」由真实时钟给(`CALORIE_TODAY` 已删,钉钟走测试基座);
23
+ * 按包内 UTC 日口径(与 T3/T4 同;与原来按机器本地日历在午夜边界可能差一天,口径以 UTC 日为准)。显式 `now` 照旧优先。 */
24
24
  export declare function getCalorieHistory(db: DatabaseSync, days?: number, now?: Date): CalorieHistory;
25
25
  /** 本地体重序列(跨技能合并的上游输入之一;food/weight 双序列对齐的 weight 侧)。 */
26
26
  export declare function weightSeries(db: DatabaseSync): {
@@ -1 +1 @@
1
- {"version":3,"file":"historyStore.d.ts","sourceRoot":"","sources":["../../src/analysis/historyStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAMD;;kFAEkF;AAClF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,SAAI,EAAE,GAAG,OAAqC,GAAG,cAAc,CAmBtH;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,CAKpF"}
1
+ {"version":3,"file":"historyStore.d.ts","sourceRoot":"","sources":["../../src/analysis/historyStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,+BAA+B;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAMD;;4EAE4E;AAC5E,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,SAAI,EAAE,GAAG,OAAqC,GAAG,cAAc,CAmBtH;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,CAKpF"}
@@ -4,8 +4,8 @@ function fmtDate(d) {
4
4
  return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`;
5
5
  }
6
6
  /** 最近 N 天每日摄入(food_log 按 date 聚合倒序);空库返回空 rows,调用方阻断提示,不返“正常空数据”。
7
- * #559:默认 `now` 经 `todayISO()` 派生(#250 唯一出处),`CALORIE_TODAY` 钉住时窗口跟钉住;
8
- * 未设该变量时按包内 UTC 日口径(与 T3/T4 同;与原来按机器本地日历在午夜边界可能差一天,口径以 UTC 日为准)。显式 `now` 照旧优先。 */
7
+ * #559:默认 `now` 经 `todayISO()` 派生(#250 唯一出处);#718 起「今天」由真实时钟给(`CALORIE_TODAY` 已删,钉钟走测试基座);
8
+ * 按包内 UTC 日口径(与 T3/T4 同;与原来按机器本地日历在午夜边界可能差一天,口径以 UTC 日为准)。显式 `now` 照旧优先。 */
9
9
  export function getCalorieHistory(db, days = 7, now = new Date(todayISO() + 'T12:00:00')) {
10
10
  const start = new Date(now);
11
11
  start.setDate(start.getDate() - days);
@@ -1 +1 @@
1
- {"version":3,"file":"historyStore.js","sourceRoot":"","sources":["../../src/analysis/historyStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAoBtC,SAAS,OAAO,CAAC,CAAO;IACtB,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACnH,CAAC;AAED;;kFAEkF;AAClF,MAAM,UAAU,iBAAiB,CAAC,EAAgB,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC;IACpG,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;sEACgE,CACjE;SACA,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAsF,CAAC;IAC5G,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC;IACxD,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACnB,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YACpE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChD,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3G,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,YAAY,CAAC,EAAgB;IAC3C,OAAO,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,EAG1E,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"historyStore.js","sourceRoot":"","sources":["../../src/analysis/historyStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAoBtC,SAAS,OAAO,CAAC,CAAO;IACtB,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACnH,CAAC;AAED;;4EAE4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,EAAgB,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC;IACpG,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CACN;sEACgE,CACjE;SACA,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAsF,CAAC;IAC5G,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,CAAC,EAAE,YAAY,IAAI,IAAI,CAAC;IACxD,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACnB,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YACpE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChD,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3G,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,YAAY,CAAC,EAAgB;IAC3C,OAAO,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,EAG1E,CAAC;AACN,CAAC"}
@@ -1,23 +1,17 @@
1
- /** 分析能力对外的门(HELP 场景 10「分析」):命令分派两件 + 命令声明。
1
+ /** 分析能力对外的门(HELP 场景 10「分析」):只转出命令声明一件。
2
2
  *
3
- * 对外三件(铁律五「不多于五个」):
4
- * `ANALYSIS_COMMANDS`——命令声明(权威源在 `commands.ts`,这里只是转出);
5
- * ② `runAnalysisView(key, params, db)`——读命令入口(查不到分析键即抛,不当静默兜底);
6
- * `runAnalysisWrite(key, params, db)`——写命令入口(同上)。
3
+ * #703:门上的读/写命令入口(原 `runAnalysisView`/`runAnalysisWrite`)已删——生产一次都不走它们,
4
+ * 真正分派走生成物 `cli/registry.ts`(`cmd_read.ts`/`write.ts` 查表后直接调声明的 `run`)。
5
+ *
6
+ * 对外一件(铁律五「不多于五个」):
7
+ * ① `ANALYSIS_COMMANDS`——命令声明(权威源在 `commands.ts`,这里只是转出)。
7
8
  *
8
9
  * 本场景 13 键**全是读命令**(旧链里「定时复盘/训记/营养表/落地」那些划出去不做的词,
9
- * 逐字理由住 `routes.ts` 的非执行记录)。写入口照 `src/weight/` 的同款形状保留:
10
- * 能力对外形状一致,且日后真出写键时只改 `commands.ts`,门与分派层不动。
10
+ * 逐字理由住 `routes.ts` 的非执行记录)。
11
11
  *
12
12
  * 域内其他件(算式与取数 `series.ts`/`trend.ts`/`deficit.ts`/`dashboard.ts`/`cross.ts`/
13
13
  * `simulate*.ts`/`anomaly/`/`diet.ts`/`exercise*.ts`/`review.ts`/`utils.ts` 等)**不出这个目录**,
14
14
  * 故不在这里转出:它们由 `render/` 侧的视图层直接消费,导入面照旧。
15
15
  */
16
- import type { DatabaseSync } from 'node:sqlite';
17
- import type { ViewOut, WriteOut } from '../shared/commandSpec.js';
18
16
  export { ANALYSIS_COMMANDS } from './commands.js';
19
- /** 读命令入口:命中即走它的处理函数;键不属分析(或其实是写键)即抛——**不猜**。 */
20
- export declare function runAnalysisView(key: string, params: Record<string, unknown>, db: DatabaseSync): ViewOut;
21
- /** 写命令入口:同上(本场景今天无写键,任何键都抛)。 */
22
- export declare function runAnalysisWrite(key: string, params: Record<string, unknown>, db: DatabaseSync): WriteOut;
23
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAe,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQlD,gDAAgD;AAChD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,YAAY,GAAG,OAAO,CAMvG;AAED,gCAAgC;AAChC,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,YAAY,GAAG,QAAQ,CAMzG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,23 +1,17 @@
1
- import { CalorieRenderError } from '../render/errors.js';
2
- import { ANALYSIS_COMMANDS } from './commands.js';
1
+ /** 分析能力对外的门(HELP 场景 10「分析」):只转出命令声明一件。
2
+ *
3
+ * #703:门上的读/写命令入口(原 `runAnalysisView`/`runAnalysisWrite`)已删——生产一次都不走它们,
4
+ * 真正分派走生成物 `cli/registry.ts`(`cmd_read.ts`/`write.ts` 查表后直接调声明的 `run`)。
5
+ *
6
+ * 对外一件(铁律五「不多于五个」):
7
+ * ① `ANALYSIS_COMMANDS`——命令声明(权威源在 `commands.ts`,这里只是转出)。
8
+ *
9
+ * 本场景 13 键**全是读命令**(旧链里「定时复盘/训记/营养表/落地」那些划出去不做的词,
10
+ * 逐字理由住 `routes.ts` 的非执行记录)。
11
+ *
12
+ * 域内其他件(算式与取数 `series.ts`/`trend.ts`/`deficit.ts`/`dashboard.ts`/`cross.ts`/
13
+ * `simulate*.ts`/`anomaly/`/`diet.ts`/`exercise*.ts`/`review.ts`/`utils.ts` 等)**不出这个目录**,
14
+ * 故不在这里转出:它们由 `render/` 侧的视图层直接消费,导入面照旧。
15
+ */
3
16
  export { ANALYSIS_COMMANDS } from './commands.js';
4
- /** 声明数组按**声明的类型**收进查表:本场景全是读命令,若让它保持字面量窄化,
5
- * `spec.kind !== 'write'` 会因两个字面量类型无交集而被 `tsc` 判错(TS2367)。 */
6
- const BY_KEY = new Map(ANALYSIS_COMMANDS.map((c) => [c.key, c]));
7
- /** 读命令入口:命中即走它的处理函数;键不属分析(或其实是写键)即抛——**不猜**。 */
8
- export function runAnalysisView(key, params, db) {
9
- const spec = BY_KEY.get(key);
10
- if (!spec || spec.kind !== 'read') {
11
- throw new CalorieRenderError('bad-input', '不是分析的读命令:' + key);
12
- }
13
- return spec.run(params, db);
14
- }
15
- /** 写命令入口:同上(本场景今天无写键,任何键都抛)。 */
16
- export function runAnalysisWrite(key, params, db) {
17
- const spec = BY_KEY.get(key);
18
- if (!spec || spec.kind !== 'write') {
19
- throw new CalorieRenderError('bad-input', '不是分析的写命令:' + key);
20
- }
21
- return spec.run(params, db);
22
- }
23
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD;+DAC+D;AAC/D,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAChE,CAAC;AAEF,gDAAgD;AAChD,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,MAA+B,EAAE,EAAgB;IAC5F,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,MAA+B,EAAE,EAAgB;IAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reportDocTracked.d.ts","sourceRoot":"","sources":["../../src/analysis/reportDocTracked.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD;2CAC2C;AAC3C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,EAAE,CAyCtE;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,EAAE,CAiCnE;AAgCD,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,EAAE,CAyDlE"}
1
+ {"version":3,"file":"reportDocTracked.d.ts","sourceRoot":"","sources":["../../src/analysis/reportDocTracked.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD;2CAC2C;AAC3C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,EAAE,CAyCtE;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,EAAE,CAiCnE;AA+BD,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,EAAE,CAyDlE"}
@@ -23,6 +23,8 @@
23
23
  */
24
24
  import { renderChips, renderDataTable, renderEmptyBlock, renderKpiGrid } from 'base-paint/blocks';
25
25
  import { fmt, fmtInt, foldedTable, kvTable, lineOf, sec, tableOf } from './reportDocParts.js';
26
+ /* #717 批④:BMR 算式只读共用位那一份(本件原写 10*w + 6.25*h - 5*a + sign)。 */
27
+ import { mifflinStJeorBmr } from './utils.js';
26
28
  /** 缺项清单上屏口径:本用 `、` 连接(判据 R5 的债)⇒ 空格分隔(同一个 `missing` 数组,不另算一份)。 */
27
29
  const missText = (missing) => missing.join(' ');
28
30
  /** 窗口内最后一次称重(与对比页 `#384f` 同源口径;缺即 null,不编数)。 */
@@ -125,11 +127,10 @@ function tdeeCurve(plate) {
125
127
  text: '档案四要素不全,画不了这条曲线(缺:' + missText(p.missing) + ')',
126
128
  });
127
129
  }
128
- const sign = p.gender === 'male' ? 5 : -161;
129
130
  const points = plate.base.series.map((s) => ({
130
131
  date: s.date,
131
132
  value: s.weightKg === null ? null
132
- : Math.round((10 * s.weightKg + 6.25 * p.heightCm - 5 * p.age + sign) * p.activityFactor),
133
+ : Math.round(mifflinStJeorBmr(s.weightKg, p.heightCm, p.age, p.gender) * p.activityFactor),
133
134
  }));
134
135
  return lineOf(points, '总消耗随体重变化(同样四要素下,体重变 → 总消耗变)', { format: (v) => String(Math.round(v)) });
135
136
  }