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
@@ -0,0 +1,322 @@
1
+ /** #86 · wizard 身材照/GIF 两页 HTML 填充器(D1 静态 HTML + copyText)。
2
+ *(#353 后:记围度/记体脂两页已迁入 `src/body/wizardDocs.ts`,本件只留两页。)
3
+ *
4
+ * 包裹约定(沿 #111/#112/#113,不新增):
5
+ * sharedCss = buildStyleSheet().css + blocksCss(),不走 extraCss;
6
+ * 复制文本 metrics 块一律 buildDataText(#77 契约):stat 投影只收确定数字。
7
+ * 用户路径的复制=prompt 预览(renderPreBlock)+复制按钮(render/copy.ts 的
8
+ * copyActionHtml,走 Base P0 双通道,禁本地改写)——旧模板 btn-copy+copyText
9
+ * 的新架构同形(B-11 复制区;行为归宿主 B7,本层零 JS)。
10
+ * 表单=renderParamForm 预填值(B-09 静态 label+input,零 JS;无 select 控件,
11
+ * 来源/性别等以下拉候选写进 hint,B7 边界)。
12
+ * 本层不做取数(数据由 photo/wizardPort.ts 备齐),空库不返空页(recent 为空即空态行)。
13
+ *
14
+ * #655(负责人验收打回「两页很丑陋」)把这两页从「名+空框+灰示例」的三层空表单改成**确认清单**:
15
+ * 值先以只读一行上屏、点开哪一行才出哪一行的输入(形状与样式住姊妹件 `photo/wizardUi.ts`),
16
+ * 三档层级与块间分割由本件与本族页内件定;两页一并补上 `pageUi: true`(#525 的页面级移动端配方,
17
+ * 本族另外七页都在用、只有本件两页漏了——`renderFactStrip` 的形状样式与宽屏 1280 版式都挂在它下面)。
18
+ *
19
+ * **#654(读页复制日志 · 本席位)**:两页底部 ghost 行补回**真**「复制日志」——本件两页以前只有
20
+ * `dataCopyArea`(只出数据那颗),日志那颗靠公共层 #336 兜底补的禁用占位(#654 已撤那条兜底路径)。
21
+ * 现在两页自己给:`copyArea({ data, log })` 双位齐全,第 4 段=本次命令原文(命令层 `photo/wizard.ts`
22
+ * 传 `commandLine()`)。预检页那颗 prompt(「给 AI 的指令」)与两页可见文本一字未改。
23
+ */
24
+ import { renderEmptyBlock, renderKpiGrid, renderParamForm } from 'base-paint/blocks';
25
+ import { renderFactStrip } from 'base-paint';
26
+ import { PHOTO_LOG_TAGS, transitionText } from './wizardPort.js';
27
+ import { assembleDocPage, metricsOf } from '../shared/docPage.js';
28
+ import { copyArea, copyLog, promptCopyArea } from '../shared/copyArea.js';
29
+ import { nowStamp } from '../render/receipt.js';
30
+ import { chipRow, photoPickRows, photoUiCss } from './photoUi.js';
31
+ import { editRows, noticeBar, wizardUiCss } from './wizardUi.js';
32
+ /** envelope 头(值冻结对齐 cli/keys.ts ENVELOPE_VERSION/CALORIE_SKILL;测试钉死一致)。 */
33
+ const DOC_VERSION = '0.1.0';
34
+ const DOC_SKILL = 'calorie';
35
+ /** 本文件两页共用的 head 标题(整页模板住 `src/shared/docPage.ts`,标题走参数)。
36
+ * #527:`卡路里·配置向导` 里的 `·` 是符号顶替版面(题名不是并列语义),改空格。 */
37
+ const DOC_TITLE = '卡路里 配置向导';
38
+ /* ── 身体两页已迁出(#353):记围度/记体脂文档原样迁入 src/body/wizardDocs.ts,本件只留身材照/GIF。 */
39
+ /* ── #654 · 复制区(两页共用口径) ── */
40
+ /** 复制日志第 3 段后半的数据来源(前半=库文件名,由 `shared/copyArea.ts` 的 `copyLog` 拼)。
41
+ * 两页分开命名:预检页**不读库**(只核对待登记的值),规划器读的是照片记录。 */
42
+ const LOG_SOURCE_LOG = 'calorie.photo.add 入参(纯核对,不读库)';
43
+ const LOG_SOURCE_PLANNER = 'body_photos(本窗候选照片)';
44
+ /** 复制区(#654):三格式数据 + 复制日志六段(口径与 `photo/galleryDoc.ts` 的 `copyAreaOf` 同形:
45
+ * `log` 位收 `LogTextInput`=`{ envelope, copyLog }`,给错形状那颗按钮就落成点不动的死按钮)。 */
46
+ function copyAreaOf(envelope, command, source) {
47
+ return copyArea({
48
+ data: { envelope },
49
+ log: {
50
+ envelope,
51
+ copyLog: copyLog({ command, source, actionAt: nowStamp(), version: DOC_VERSION }),
52
+ },
53
+ });
54
+ }
55
+ /** #474(审查整改 1)· 下拉候选项:**`value` 是机器真值**(`loop` 的 `0/1/3/5`、`transition` 的
56
+ * `cut/fade/dissolve`,与 `wizardPort.ts` 的校验口径同源),`label` 才是给人看的中文词。
57
+ * 这样当刻视图值能在下拉里**真的落上 `selected`**(先前拿中文当值 → 恒被「选一个」占位顶住,
58
+ * 页上永远看不到当前值=本票要治的「看不见」在新控件上复现)。 */
59
+ const LOOP_OPTIONS = [
60
+ { value: '0', label: '无限' }, { value: '1', label: '1 次' },
61
+ { value: '3', label: '3 次' }, { value: '5', label: '5 次' },
62
+ ];
63
+ const TRANSITION_OPTIONS = [
64
+ { value: 'cut', label: '硬切' }, { value: 'fade', label: '淡入淡出' }, { value: 'dissolve', label: '溶解' },
65
+ ];
66
+ /** #474(审查整改 3c)· 表单上方那句显著的话:本层表单是零 JS 静态预览——**改了不会自动生效**
67
+ * (上面那段给 AI 的指令与页上的读数都是按当刻参数生成的,输入框只当"看到的值")。
68
+ * 不禁用控件(禁用会让人以为"根本不能改"),只把这件事说明白;真接线属公共层另一张票。
69
+ * #527:句中的 `;` 是并列语义,拆成两句(同一件事一页一处,符号不再顶版面)。
70
+ * #655:这句的**措辞一字不动**(票面点名要留的就是它),只换承载它的形状——原来用 `<strong>`
71
+ * 当标题使,视觉重量压过字段;现走 `noticeBar()` 的浅底提示条(13px/不上粗体)。 */
72
+ const FORM_NOTICE = '这些是 AI 已经用的值。改了不会自动生效——要改就直接跟 AI 说一句。';
73
+ /** 块标题行(#655):标题 15/600 在左,右侧一句辅助档小字(不上加粗);不给小字就只出标题。
74
+ * `.phu-sec`(标题档)住 `photo/photoUi.ts`,`.phu-sechead` 一族住 `photo/wizardUi.ts`。 */
75
+ function sectionHead(title, hint) {
76
+ return '<div class="phu-sechead"><h2 class="phu-sec">' + title + '</h2>'
77
+ + (hint === undefined ? '' : '<span class="phu-sechead-s">' + hint + '</span>') + '</div>';
78
+ }
79
+ /** 一行参数(#655):确认清单的每行只装**一个**字段——值住行上的只读一行,输入框住展开后的编辑体。
80
+ * 一行一个 `renderParamForm` 调用:`min/max/step/options` 的落位口径全归公共层,本层不重写。 */
81
+ function paramRow(field) {
82
+ return renderParamForm({ fields: [field] });
83
+ }
84
+ /* ── 3. 记身材照 wizard(纯配置) ── */
85
+ /** #654:`command`=本次命令原文(命令层 `photo/wizard.ts` 的 `commandLine()` 派生),进复制日志第 4 段。 */
86
+ export function buildPhotoLogWizardDoc(v, command) {
87
+ const envelope = {
88
+ version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.photo-log-wizard',
89
+ data: { metrics: metricsOf({ fileCount: v.srcPaths.length, hasTag: v.tag ? 1 : 0 }) },
90
+ };
91
+ const content = [
92
+ // 页内样式进 parts 第一项(`assembleDocPage` 没有页内 CSS 入口,同 `photoUi.ts` 的处置)。
93
+ // #655:本件两页的确认清单**样式**另住姊妹件 `photo/wizardUi.ts` —— 那份样式只服务这两页,
94
+ // 并进 `photoUiCss()` 会让读侧族七页的产物字节跟着变(等于本票顺手动了别人的页)。
95
+ photoUiCss(), wizardUiCss(),
96
+ // #655 缺陷 2:这页的定位是「确认 AI 已经用好的值」,改前三个空框一个字的值都看不见
97
+ //(读数卡只说「0 张/未填」)。现改成**确认清单**:值先只读一行,点开哪一行才出哪一行的输入。
98
+ // 原来那两张读数卡(照片 N 张/标签 X)不再单出——同一件事由清单的行名与值行角标承载,
99
+ // 读数一个不丢(张数落 `badge`、标签落它自己那一行的值位)。
100
+ sectionHead('要登记的三个值', '点开哪一项就改哪一项'),
101
+ // #655 缺陷 3:提示句从加粗标题降成浅底条,位置仍在字段之前(#474 的判据不变)。
102
+ noticeBar(FORM_NOTICE),
103
+ editRows([
104
+ {
105
+ k: '照片文件路径', v: v.srcPaths.join('\n'),
106
+ // 张数是原来读数卡那一格要说的数字 → 改住值行角标(同一件事换形状,不丢读数)。
107
+ ...(v.srcPaths.length > 0 ? { badge: v.srcPaths.length + ' 张' } : {}),
108
+ bodyHtml: paramRow({
109
+ name: 'srcPaths',
110
+ label: '照片文件路径(最多 20 张。如 D:\\照片\\正面1.jpg,多张换行或逗号分隔)',
111
+ value: v.srcPaths.join('\n'), hint: '每行 1 个', required: true,
112
+ }),
113
+ },
114
+ {
115
+ k: '标签', v: v.tag ?? '', emptyText: '还没填',
116
+ bodyHtml: paramRow({
117
+ name: 'tag', label: '标签(最多 20 个字)', value: v.tag ?? '', hint: '如:正面', required: true,
118
+ }),
119
+ },
120
+ {
121
+ k: '备注', v: v.note ?? '', emptyText: '没填(这栏可以不填)',
122
+ bodyHtml: paramRow({
123
+ name: 'note', label: '备注', value: v.note ?? '', hint: '如:早上空腹 / 减脂期第 30 天',
124
+ }),
125
+ },
126
+ ]),
127
+ // #655 缺陷 7:常用标签原来是首屏第一个块(折叠着也占掉一行)——现在**下移**到这里,
128
+ // 紧跟三个值之后;8 个词仍逐字可见(本票只改它住哪,不改它说什么)。
129
+ sectionHead('常用标签(点一个填上去)'),
130
+ chipRow([...PHOTO_LOG_TAGS]),
131
+ // #474:段前一句引导——复制区里是给 AI 的英文命令,先说清「整段复制粘过去就行」。
132
+ '<p>下面这段是给 AI 的指令:整段复制粘过去就行,英文命令不用看懂。</p>',
133
+ promptCopyArea(v.prompt, '给 AI 的指令(复制这一段)'),
134
+ copyAreaOf(envelope, command, LOG_SOURCE_LOG),
135
+ ].join('');
136
+ return assembleDocPage({
137
+ docTitle: DOC_TITLE,
138
+ title: '记身材照',
139
+ // #474:眉标里的内部词「wizard」「纯配置」与副标题说同一件事 → 眉标改人话不重复。
140
+ // #527:眉标的 `记身材照 · 只登记路径` 是 `·` 串两件事,且页名已经说了「记身材照」→ 只留后半句。
141
+ eyebrow: '只登记路径',
142
+ subtitle: '先核对要登记的照片与标签,再复制指令给 AI。照片本身不会被动。',
143
+ content,
144
+ // #525 页面级移动端配方:本族另外七页都在用,只有本件两页漏了(`renderFactStrip` 的形状
145
+ // 样式与宽屏 1280 版式都挂在根类下,不启用则一条都命中不到)。本票补上,与全族同值。
146
+ pageUi: true,
147
+ });
148
+ }
149
+ /* ── 4. GIF 框选器 ── */
150
+ /** 循环次数的人话(KPI 与下拉共用一份,防两处走散)。 */
151
+ function loopText(loop) {
152
+ return loop === 0 ? '无限循环' : loop + ' 次循环';
153
+ }
154
+ /** 输出规格那三件事(每帧多久/循环几次/有没有水印):KPI 卡的明细槽吃纯文本,形状落不进去,
155
+ * 故在卡下另出一排**事实条**(#525 的 `renderFactStrip` 口径,本域只给数据)。 */
156
+ function outputFacts(v) {
157
+ return renderFactStrip({
158
+ items: [
159
+ { label: '每帧停', value: (v.duration / 1000).toFixed(2).replace(/0$/, '') + ' 秒' },
160
+ { label: '循环', value: loopText(v.loop) },
161
+ ...(v.watermark === null ? [] : [{ label: '水印', value: v.watermark }]),
162
+ ],
163
+ });
164
+ }
165
+ /** #527 候选行(原六列表在窄屏被挤成长串):一行一张照片——编号/标签/文件名/异常徽标各占一槽,
166
+ * 日期与整图或裁剪走第二行的徽章列。**不印 `#N`**(内部标识符口径),改「照片 31」这种读者话;
167
+ * 正常张留空(「存在」是零信息值),找不到文件才挂徽标。 */
168
+ function gifCandidates(v) {
169
+ if (v.photos.length === 0) {
170
+ return renderEmptyBlock({ text: '这个标签/时间窗里没有照片:换个标签,或把时间窗放宽一点' });
171
+ }
172
+ return photoPickRows(v.photos.map((p) => ({
173
+ no: '照片 ' + p.id,
174
+ file: p.photoPath,
175
+ tag: p.tagList.join('、') || '无标签',
176
+ ...(p.fileExists === false ? { badge: { tone: 'warn', text: '会跳过' } } : {}),
177
+ meta: [p.date, p.selected ? '已框选' : '没框选', p.crop ? '裁剪过' : '整图'],
178
+ })));
179
+ }
180
+ /** #474:预填过的字段看不见 placeholder——限制与单位一律进字段名(固定小字),
181
+ * 只有**空字段**才留 hint(那时它显示得出来);下拉不再给「选一个」占位:
182
+ * **当刻值那一条恒 `selected`**(#527 第 5 条:下拉显示当前值,不显示「选一个」)。
183
+ *
184
+ * #655 缺陷 8:改前把九项默认值全画成输入框,看着像要用户逐个核对的表单 —— 改成三组
185
+ * **只读键值行**(`editRows`):值先以当刻值上屏,只展开「要改的那一项」。
186
+ * 分组按**变化频率**切(照片选择/播放/画面与文件),块与块之间由 `.phu-sechead` 分割。 */
187
+ function gifForm(v) {
188
+ const all = v.photos.length > 0 && v.selectedIds.length === v.photos.length;
189
+ const picked = v.selectedIds.length === 0 ? ''
190
+ : (all ? '全部 ' : '') + v.selectedIds.length + ' 张';
191
+ return [
192
+ sectionHead('选哪些照片', '点开哪一项就改哪一项'),
193
+ editRows([
194
+ {
195
+ k: '标签', v: v.tag ?? '', emptyText: '全部标签',
196
+ bodyHtml: paramRow({ name: 'tag', label: '标签(留空就是全部标签)', value: v.tag ?? '', hint: '如:正面' }),
197
+ },
198
+ {
199
+ k: '框选照片编号', v: picked, emptyText: '没框选任何一张',
200
+ // #474(审查整改 3a)的口径照旧:`crops` 那一栏**真撤掉**(`name="crops"` 不留空框),
201
+ // 要裁就在对话里说一句;`crops` 键本身仍在 `wizardPort.ts` 的入参允许清单与 prompt 复刻里。
202
+ bodyHtml: paramRow({
203
+ name: 'photoIds', label: '框选照片编号(逗号分隔,留空就是全部)',
204
+ value: v.selectedIds.join(','), hint: '如 12,15,22',
205
+ }),
206
+ },
207
+ ]),
208
+ sectionHead('播放'),
209
+ editRows([
210
+ {
211
+ k: '每帧多久', v: v.duration + ' 毫秒',
212
+ bodyHtml: paramRow({
213
+ name: 'duration', label: '每帧多久(毫秒,50 到 5000)',
214
+ value: String(v.duration), min: 50, max: 5000, step: 50,
215
+ }),
216
+ },
217
+ {
218
+ k: '循环', v: loopText(v.loop),
219
+ bodyHtml: paramRow({ name: 'loop', label: '循环', value: String(v.loop), options: LOOP_OPTIONS }),
220
+ },
221
+ {
222
+ k: '切换效果', v: transitionText(v.transition),
223
+ bodyHtml: paramRow({
224
+ name: 'transition', label: '切换效果', value: v.transition, options: TRANSITION_OPTIONS,
225
+ }),
226
+ },
227
+ ]),
228
+ sectionHead('画面与文件'),
229
+ editRows([
230
+ {
231
+ k: '宽', v: v.width + ' 像素',
232
+ bodyHtml: paramRow({
233
+ name: 'width', label: '宽(像素,100 到 2000)', value: String(v.width), min: 100, max: 2000, step: 1,
234
+ }),
235
+ },
236
+ {
237
+ k: '高', v: v.height + ' 像素',
238
+ bodyHtml: paramRow({
239
+ name: 'height', label: '高(像素,100 到 2000)', value: String(v.height), min: 100, max: 2000, step: 1,
240
+ }),
241
+ },
242
+ {
243
+ k: '水印文字', v: v.watermark ?? '', emptyText: '没填',
244
+ bodyHtml: paramRow({
245
+ name: 'watermark', label: '水印文字(可选)', value: v.watermark ?? '', hint: '右下角,如:减脂 30 天',
246
+ }),
247
+ },
248
+ {
249
+ k: '输出文件名', v: v.output ?? '', emptyText: '没填',
250
+ bodyHtml: paramRow({
251
+ name: 'output', label: '输出文件名(可选)', value: v.output ?? '', hint: '如:front_30days.gif',
252
+ }),
253
+ },
254
+ ]),
255
+ ].join('');
256
+ }
257
+ /** #654:`command`=本次命令原文(命令层 `photo/wizard.ts` 的 `commandLine()` 派生),进复制日志第 4 段。 */
258
+ export function buildGifPlannerDoc(v, command) {
259
+ // 本轮照片里文件找不到的张数(与候选行「会跳过」徽标同一口径);不是框选缺 ID,两者分开命名。
260
+ const notFound = v.photos.filter((p) => p.fileExists === false).length;
261
+ const envelope = {
262
+ version: DOC_VERSION, skill: DOC_SKILL, shape: 'stat', key: 'calorie.view.gif-planner',
263
+ data: {
264
+ metrics: metricsOf({
265
+ photoCount: v.photos.length, selectedCount: v.selectedIds.length,
266
+ missingCount: v.missingIds.length,
267
+ cropCount: v.photos.filter((p) => p.crop).length,
268
+ }),
269
+ },
270
+ };
271
+ const content = [
272
+ // 页内样式进 parts 第一项(`assembleDocPage` 没有页内 CSS 入口,同 `photoUi.ts` 的处置)。
273
+ // #655:本件两页的确认清单**样式**另住姊妹件 `photo/wizardUi.ts`(同上页那一段的理由)。
274
+ photoUiCss(), wizardUiCss(),
275
+ // 身份行(#527):`标签 正面 · 近 N 天` 那样的 `·` 串改徽章列——同一件事换形状,不是删字符。
276
+ chipRow([
277
+ v.tag === null || v.tag === '' ? '全部标签' : '标签 ' + v.tag,
278
+ v.selectedIds.length + ' 张进 GIF',
279
+ notFound > 0 ? notFound + ' 张找不到文件' : '',
280
+ ]),
281
+ renderKpiGrid([
282
+ // #474:原「共 N 张可用」把「可用」当「库里有」用,与表内「找不到」正面冲突 → 说清是库里共几张。
283
+ { label: '要用', value: String(v.selectedIds.length), unit: '张', detail: '库里共 ' + v.photos.length + ' 张' },
284
+ // #474:原「文件丢失」其实数的是框选里点不到的 ID(`missingIds`)→ 换名,不再与表内冲突。
285
+ {
286
+ label: '框选里没有的 ID', value: String(v.missingIds.length),
287
+ ...(v.missingIds.length > 0 ? { detail: '已跳过 ' + v.missingIds.join('、') } : {}),
288
+ },
289
+ // #474:本轮新立一格——文件找不到是另一回事,异常才挂状态徽标(正常格不出徽标)。
290
+ notFound > 0
291
+ ? { label: '文件找不到', value: String(notFound), unit: '张', status: 'warn', statusText: '会跳过' }
292
+ : { label: '文件找不到', value: '0', unit: '张' },
293
+ // #474:原格 label「尺寸」与明细(帧速/循环)不是一件事 → 改「GIF 输出」,label 与明细对得上。
294
+ // #527:明细原句 `500ms/帧 · 无限循环` 是 `·` 串出来的两件事 → 撤到卡下的事实条(本行只说尺寸)。
295
+ { label: 'GIF 输出', value: v.width + '×' + v.height },
296
+ ]),
297
+ outputFacts(v),
298
+ // #655:候选清单原来直接跟在事实条后头、与下方参数区连成一片 → 补一条块标题(15/600)分开两块。
299
+ sectionHead('会进 GIF 的照片'),
300
+ gifCandidates(v),
301
+ noticeBar(FORM_NOTICE),
302
+ // #655 缺陷 3:表单说明原是一段 13px 灰字,与新提示条抢同一格 → 收成一条 12px 辅助行。
303
+ // `;` 是并列语义,拆成两句(`audit-separators.mjs` 的 R2 节点级判据:#527 起本仓不许拿它串行)。
304
+ '<p class="phu-note">下面每项都已填好常用值,点开哪一项就改哪一项。改完把下面那段指令复制给 AI。</p>',
305
+ gifForm(v),
306
+ promptCopyArea(v.prompt, '复制指令(给 AI 的那段)'),
307
+ copyAreaOf(envelope, command, LOG_SOURCE_PLANNER),
308
+ ].join('');
309
+ return assembleDocPage({
310
+ docTitle: DOC_TITLE,
311
+ title: '身材照 GIF 规划器',
312
+ // #474:眉标原句自述「本项目缺什么」(无 cropper.js/手动 4 数字坐标),对用户零收益 → 删。
313
+ // #527:副标题原用 `→` 串三步、还与页名/表单说明三处说同一件事 → 改一句「这页帮你做什么」。
314
+ eyebrow: '',
315
+ subtitle: '先看会进 GIF 的照片,再定快慢与尺寸。改哪项直接跟 AI 说一句。',
316
+ content,
317
+ // #525 页面级移动端配方:本族另外七页都在用,只有本件两页漏了(`renderFactStrip` 的形状
318
+ // 样式与宽屏 1280 版式都挂在根类下,不启用则一条都命中不到)。本票补上,与全族同值。
319
+ pageUi: true,
320
+ });
321
+ }
322
+ //# sourceMappingURL=wizardPortDocs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizardPortDocs.js","sourceRoot":"","sources":["../../src/photo/wizardPortDocs.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
1
  import { viewProfile, viewProfileWizard } from './read.js';
2
2
  import { writeProfileActivity } from './write.js';
3
+ import { profileReceiptDoc } from './receipt.js';
3
4
  export declare const PROFILE_COMMANDS: ({
4
5
  kind: "write";
5
6
  key: string;
6
- shape: "receipt";
7
7
  title: string;
8
8
  wakeWord: string;
9
9
  run: typeof writeProfileActivity;
10
+ doc: typeof profileReceiptDoc;
10
11
  example: string;
12
+ shape?: undefined;
11
13
  } | {
12
14
  kind: "read";
13
15
  key: string;
@@ -16,6 +18,7 @@ export declare const PROFILE_COMMANDS: ({
16
18
  run: typeof viewProfile;
17
19
  example: string;
18
20
  wakeWord?: undefined;
21
+ doc?: undefined;
19
22
  } | {
20
23
  kind: "read";
21
24
  key: string;
@@ -24,5 +27,6 @@ export declare const PROFILE_COMMANDS: ({
24
27
  wakeWord: string;
25
28
  run: typeof viewProfileWizard;
26
29
  example: string;
30
+ doc?: undefined;
27
31
  })[];
28
32
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/profile/commands.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAuC,MAAM,YAAY,CAAC;AAEvF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;IAMK,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/profile/commands.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAuC,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMK,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { viewProfile, viewProfileWizard } from './read.js';
2
2
  import { writeProfileActivity, writeProfileSet, writeProfileUpdate } from './write.js';
3
+ import { profileReceiptDoc } from './receipt.js';
3
4
  export const PROFILE_COMMANDS = [
4
- { kind: 'write', key: 'calorie.profile.activity', shape: 'receipt', title: '设活动量', wakeWord: '设活动量', run: writeProfileActivity, example: 'calorie-cmd-read calorie.profile.activity --params \'{"activityLevel":"active"}\'' },
5
- { kind: 'write', key: 'calorie.profile.set', shape: 'receipt', title: '设置档案', wakeWord: '设置档案', run: writeProfileSet, example: 'calorie-cmd-read calorie.profile.set --params \'{"heightCm":175,"activityLevel":"moderate"}\'' },
6
- { kind: 'write', key: 'calorie.profile.update', shape: 'receipt', title: '改档案', wakeWord: '改档案', run: writeProfileUpdate, example: 'calorie-cmd-read calorie.profile.update --params \'{"field":"heightCm","value":176}\'' },
5
+ { kind: 'write', key: 'calorie.profile.activity', title: '设活动量', wakeWord: '设活动量', run: writeProfileActivity, doc: profileReceiptDoc, example: 'calorie-cmd-read calorie.profile.activity --params \'{"activityLevel":"active"}\'' },
6
+ { kind: 'write', key: 'calorie.profile.set', title: '设置档案', wakeWord: '设置档案', run: writeProfileSet, doc: profileReceiptDoc, example: 'calorie-cmd-read calorie.profile.set --params \'{"heightCm":175,"activityLevel":"moderate"}\'' },
7
+ { kind: 'write', key: 'calorie.profile.update', title: '改档案', wakeWord: '改档案', run: writeProfileUpdate, doc: profileReceiptDoc, example: 'calorie-cmd-read calorie.profile.update --params \'{"field":"heightCm","value":176}\'' },
7
8
  { kind: 'read', key: 'calorie.view.profile', shape: 'stat', title: '档案视图', run: viewProfile, example: 'calorie-cmd-read calorie.view.profile' },
8
9
  { kind: 'read', key: 'calorie.view.profile-wizard', shape: 'stat', title: '档案预检', wakeWord: '看档案预检', run: viewProfileWizard, example: 'calorie-cmd-read calorie.view.profile-wizard' },
9
10
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/profile/commands.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,OAAO,EAAE,mFAAmF,EAAE;IAC9N,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO,EAAE,+FAA+F,EAAE;IAChO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,OAAO,EAAE,uFAAuF,EAAE;IAC5N,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,uCAAuC,EAAE;IAC/I,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,8CAA8C,EAAE;CACtJ,CAAC"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/profile/commands.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,mFAAmF,EAAE;IACpO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,+FAA+F,EAAE;IACtO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,kBAAkB,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,uFAAuF,EAAE;IAClO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,uCAAuC,EAAE;IAC/I,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,8CAA8C,EAAE;CACtJ,CAAC"}
@@ -1,23 +1,17 @@
1
- /** 基础信息能力对外的门(HELP 场景 07「基础信息」):命令分派两件整页回执端口一件 + 命令声明一件。
1
+ /** 基础信息能力对外的门(HELP 场景 07「基础信息」):命令声明整页回执端口。
2
2
  *
3
- * 对外四件(铁律五「不多于五个」):
3
+ * #703:门上的读/写命令入口(原 `runProfileView`/`runProfileWrite`)已删——生产一次都不走它们,
4
+ * 真正分派走生成物 `cli/registry.ts`(`cmd_read.ts`/`write.ts` 查表后直接调声明的 `run`)。
5
+ *
6
+ * 对外两件(铁律五「不多于五个」):
4
7
  * ① `PROFILE_COMMANDS`——命令声明(权威源在 `commands.ts`,这里只是转出);
5
- * ② `runProfileView`/③ `runProfileWrite`——读/写命令入口(查不到档案键即抛,不当静默兜底);
6
- * ④ `profileReceiptDoc`——档案写命令整页回执的端口:分派层(`src/cli/write.ts`)在用。
8
+ * ② `profileReceiptDoc`——档案写命令整页回执的端口。#703 起它的接线住写声明那一行(`doc:` 位);
7
9
  * 两页装配(`setup.ts`/`update.ts` 的两函数)是本目录内件,由 `receipt.ts` 直引,
8
10
  * 不再经这道门转出(#330 起:免得同一件回执页有两份出口)。
9
11
  *
10
12
  * 域内其他件(取数 `view.ts`、写链 `setup.ts`/`update.ts`/`labels.ts`、读写入口 `read.ts`/`write.ts`、
11
- * 回执端口实现 `receipt.ts` 的键集数据位)
12
- * **不出这个目录**,故不在这里转出;`src/index.ts`/`src/render/index.ts` 另按原样转出「档案视图」,
13
- * 既有调用方导入面不变。
13
+ * 回执端口实现 `receipt.ts` 的键集数据位)**不出这个目录**,故不在这里转出。
14
14
  */
15
- import type { DatabaseSync } from 'node:sqlite';
16
- import type { ViewOut, WriteOut } from '../shared/commandSpec.js';
17
15
  export { PROFILE_COMMANDS } from './commands.js';
18
16
  export { profileReceiptDoc } from './receipt.js';
19
- /** 读命令入口:命中即走它的处理函数;键不属基础信息(或其实是写键)即抛——**不猜**。 */
20
- export declare function runProfileView(key: string, params: Record<string, unknown>, db: DatabaseSync): ViewOut;
21
- /** 写命令入口:同上。 */
22
- export declare function runProfileWrite(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/profile/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAIjD,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,YAAY,GAAG,OAAO,CAMtG;AAED,gBAAgB;AAChB,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,YAAY,GAAG,QAAQ,CAMxG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,22 +1,17 @@
1
- import { CalorieRenderError } from '../render/errors.js';
2
- import { PROFILE_COMMANDS } from './commands.js';
1
+ /** 基础信息能力对外的门(HELP 场景 07「基础信息」):命令声明 整页回执端口。
2
+ *
3
+ * #703:门上的读/写命令入口(原 `runProfileView`/`runProfileWrite`)已删——生产一次都不走它们,
4
+ * 真正分派走生成物 `cli/registry.ts`(`cmd_read.ts`/`write.ts` 查表后直接调声明的 `run`)。
5
+ *
6
+ * 对外两件(铁律五「不多于五个」):
7
+ * ① `PROFILE_COMMANDS`——命令声明(权威源在 `commands.ts`,这里只是转出);
8
+ * ② `profileReceiptDoc`——档案写命令整页回执的端口。#703 起它的接线住写声明那一行(`doc:` 位);
9
+ * 两页装配(`setup.ts`/`update.ts` 的两函数)是本目录内件,由 `receipt.ts` 直引,
10
+ * 不再经这道门转出(#330 起:免得同一件回执页有两份出口)。
11
+ *
12
+ * 域内其他件(取数 `view.ts`、写链 `setup.ts`/`update.ts`/`labels.ts`、读写入口 `read.ts`/`write.ts`、
13
+ * 回执端口实现 `receipt.ts` 的键集数据位)**不出这个目录**,故不在这里转出。
14
+ */
3
15
  export { PROFILE_COMMANDS } from './commands.js';
4
16
  export { profileReceiptDoc } from './receipt.js';
5
- const BY_KEY = new Map(PROFILE_COMMANDS.map((c) => [c.key, c]));
6
- /** 读命令入口:命中即走它的处理函数;键不属基础信息(或其实是写键)即抛——**不猜**。 */
7
- export function runProfileView(key, params, db) {
8
- const spec = BY_KEY.get(key);
9
- if (!spec || spec.kind !== 'read') {
10
- throw new CalorieRenderError('bad-input', '不是基础信息的读命令:' + key);
11
- }
12
- return spec.run(params, db);
13
- }
14
- /** 写命令入口:同上。 */
15
- export function runProfileWrite(key, params, db) {
16
- const spec = BY_KEY.get(key);
17
- if (!spec || spec.kind !== 'write') {
18
- throw new CalorieRenderError('bad-input', '不是基础信息的写命令:' + key);
19
- }
20
- return spec.run(params, db);
21
- }
22
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE,kDAAkD;AAClD,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,MAA+B,EAAE,EAAgB;IAC3F,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,aAAa,GAAG,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,gBAAgB;AAChB,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,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,aAAa,GAAG,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -22,7 +22,7 @@
22
22
  * 那一份查询(同一个取数不留两处)。页面层不自算口径:活动量系数取
23
23
  * `analysis/utils.TDEE_ACTIVITY_FACTORS` 正本,TDEE 走同文件 `energyOf`(缺身高/年龄/
24
24
  * 性别/体重/活动量时**不算**,不填默认值冒充;#177 起这条判据只此一处,看档案结果页同走它)。
25
- * 未知参数抛 `bad-input`(与 `render/wizardPort.ts` 同字面「不支持字段: 」,出口 exit 2)。
25
+ * 未知参数抛 `bad-input`(与 `src/photo/wizardPort.ts` 同字面「不支持字段: 」,出口 exit 2)。
26
26
  */
27
27
  import type { DatabaseSync } from 'node:sqlite';
28
28
  import type { CrudReceipt } from '../render/receipt.js';
@@ -4,17 +4,17 @@
4
4
  * 组合相关走 analyzePair(11 配对原样,pair 非法即 bad-input);缺口/趋势为 T7 薄壳
5
5
  * (buildDeficitData/buildTrendData,不自算);饮食复盘三件套为 T5 口径
6
6
  * (dietCalorieTrend/dietMacroRatio/dietDeficitAnalysis,rejection 即阻断)。
7
- * 餐别窗口跟 diet.ts:复盘附带按餐桶汇总,归类走 inferMealType(与 MEAL_WINDOWS
8
- * 同源),加餐 = 下午茶 + 夜宵;窗口存在性先断言(老家旧口径作废)。
7
+ * 餐别(#717 批① 收口):窗口、归属、四桶只有一处定义,住共用位 `shared/meal.ts`。
8
+ * 复盘附带按餐桶汇总,归类走 `mealBucketOf`(加餐 = 下午茶 + 夜宵),桶名走 `MEAL_BUCKETS`。
9
9
  */
10
10
  import type { DatabaseSync } from 'node:sqlite';
11
+ import type { MealBucket } from '../shared/meal.js';
11
12
  import type { DaySeries } from '../analysis/series.js';
12
13
  import type { PairAnalysis } from '../analysis/cross.js';
13
14
  import type { DeficitData } from '../analysis/deficit.js';
14
15
  import type { TrendData } from '../analysis/trend.js';
15
16
  import type { CalorieTrend, DeficitAnalysis, MacroRatio } from '../diet/dietEngine.js';
16
17
  import type { AnalysisResult } from '../analysis/result.js';
17
- import type { MealBucket } from './diet.js';
18
18
  export declare const COMBINED_PAIRS: string[];
19
19
  export interface CombinedAnalysis {
20
20
  pair: string;
@@ -1 +1 @@
1
- {"version":3,"file":"analysisPlate.d.ts","sourceRoot":"","sources":["../../src/render/analysisPlate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,eAAO,MAAM,cAAc,UAAqB,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAQD,kEAAkE;AAClE,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,SAAQ,EACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,gBAAgB,CAgClB;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAU3F;AAED,wCAAwC;AACxC,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAUvF;AAgBD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IACpC,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAuCxF"}
1
+ {"version":3,"file":"analysisPlate.d.ts","sourceRoot":"","sources":["../../src/render/analysisPlate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,eAAO,MAAM,cAAc,UAAqB,CAAC;AAEjD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAQD,kEAAkE;AAClE,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,SAAQ,EACd,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,gBAAgB,CAgClB;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAU3F;AAED,wCAAwC;AACxC,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAUvF;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IACpC,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAsCxF"}
@@ -1,4 +1,5 @@
1
- import { MEAL_WINDOWS, inferMealType, listMeals } from '../fetch/diet.js';
1
+ import { listMeals } from '../fetch/diet.js';
2
+ import { MEAL_BUCKETS, mealBucketOf } from '../shared/meal.js';
2
3
  import { buildSeries, resolveWindow, seriesCount } from '../analysis/series.js';
3
4
  import { analyzePair, PAIRS } from '../analysis/cross.js';
4
5
  import { buildDeficitData } from '../analysis/deficit.js';
@@ -7,7 +8,6 @@ import { dietCalorieTrend, dietDeficitAnalysis, dietMacroRatio } from '../diet/d
7
8
  import { FetchError } from '../fetch/errors.js';
8
9
  import { round2 } from '../kcal.js';
9
10
  import { CalorieRenderError } from './errors.js';
10
- import { MEAL_BUCKETS } from './diet.js';
11
11
  export const COMBINED_PAIRS = Object.keys(PAIRS);
12
12
  function assertDate(s) {
13
13
  if (!/^\d{4}-\d{2}-\d{2}$/.test(s) || Number.isNaN(Date.parse(s + 'T12:00:00Z'))) {
@@ -85,29 +85,12 @@ export function buildTrendPlate(db, start, end) {
85
85
  throw e;
86
86
  }
87
87
  }
88
- function assertMealWindows() {
89
- for (const k of ['早餐', '午餐', '下午茶', '晚餐', '夜宵', '加餐']) {
90
- if (!MEAL_WINDOWS[k])
91
- throw new CalorieRenderError('missing-data', 'MEAL_WINDOWS 缺餐别: ' + k);
92
- }
93
- }
94
- function bucketOf(time) {
95
- if (!time)
96
- return '其他';
97
- const m = inferMealType(time);
98
- if (m === '早餐' || m === '午餐' || m === '晚餐')
99
- return m;
100
- if (m === '下午茶' || m === '夜宵')
101
- return '加餐';
102
- return '其他';
103
- }
104
88
  /** 饮食复盘盘(diet_review/nutrition_ratio):T5 三件套 + 按餐桶汇总(MEAL_WINDOWS 同源)。 */
105
89
  export function buildDietReview(db, start, end) {
106
90
  assertDate(start);
107
91
  assertDate(end);
108
92
  if (start > end)
109
93
  throw new CalorieRenderError('bad-input', 'start 不得晚于 end');
110
- assertMealWindows();
111
94
  const trend = dietCalorieTrend(db, start, end);
112
95
  const macro = dietMacroRatio(db, start, end);
113
96
  const deficit = dietDeficitAnalysis(db, start, end);
@@ -128,8 +111,8 @@ export function buildDietReview(db, start, end) {
128
111
  continue;
129
112
  }
130
113
  for (const r of rows) {
131
- const b = bucketOf(r.time);
132
- if (b === '其他')
114
+ const b = mealBucketOf(r.time);
115
+ if (b === null)
133
116
  continue;
134
117
  let e = agg.get(b);
135
118
  if (!e) {
@@ -1 +1 @@
1
- {"version":3,"file":"analysisPlate.js","sourceRoot":"","sources":["../../src/render/analysisPlate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analysisPlate.js","sourceRoot":"","sources":["../../src/render/analysisPlate.ts"],"names":[],"mappings":"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"}