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,81 @@
1
+ /** 窗口条的类名词汇(族给)。 */
2
+ export interface WindowVocab {
3
+ readonly window: string;
4
+ readonly date: string;
5
+ readonly arrow: string;
6
+ readonly days: string;
7
+ }
8
+ /** 事实条的类名词汇(族给)。 */
9
+ export interface FactVocab {
10
+ readonly facts: string;
11
+ readonly fact: string;
12
+ readonly key: string;
13
+ readonly value: string;
14
+ }
15
+ /** 三族的类名词汇表(**唯一一份**;各族形状件从这里取自己那一套)。 */
16
+ export declare const WINDOW_VOCAB: {
17
+ readonly exercise: {
18
+ readonly window: "sui-window";
19
+ readonly date: "sui-date";
20
+ readonly arrow: "sui-arrow";
21
+ readonly days: "sui-days";
22
+ };
23
+ readonly weight: {
24
+ readonly window: "wui-window";
25
+ readonly date: "wui-date";
26
+ readonly arrow: "wui-arrow";
27
+ readonly days: "wui-days";
28
+ };
29
+ readonly diet: {
30
+ readonly window: "dui-window";
31
+ readonly date: "dui-date";
32
+ readonly arrow: "dui-arrow";
33
+ readonly days: "dui-chip";
34
+ };
35
+ };
36
+ /** 三族的类名词汇表(事实条只有运动族与体重族在用;饮食族不产事实条)。 */
37
+ export declare const FACT_VOCAB: {
38
+ readonly exercise: {
39
+ readonly facts: "sui-facts";
40
+ readonly fact: "sui-fact";
41
+ readonly key: "sui-fact-k";
42
+ readonly value: "sui-fact-v";
43
+ };
44
+ readonly weight: {
45
+ readonly facts: "wui-strip";
46
+ readonly fact: "wui-fact";
47
+ readonly key: "wui-fact-k";
48
+ readonly value: "wui-fact-v";
49
+ };
50
+ };
51
+ /** 窗口条:`2026-09-01 → 2026-09-07` + 天数(或条数)胶囊。
52
+ *
53
+ * `start === end`(单日窗)只出一枚日期块、不出箭头,块内写「(单日)」——不替读者断言一个
54
+ * 不存在的跨度(#510 立的退化分支,三族同口径)。日期文本走 `escapeHtml`。 */
55
+ export declare function windowStrip(start: string, end: string, chipText: string | undefined, vocab: WindowVocab): string;
56
+ /** 事实条:一组「标签 + 值」。`v` 为空串的那一条整条不出(缺值不留空槽)。
57
+ *
58
+ * `variant` 三位是**落点**不是形状(见 `variantClasses`)。 */
59
+ export declare function factStrip(facts: ReadonlyArray<{
60
+ k: string;
61
+ v: string;
62
+ }>, vocab: FactVocab, variant?: {
63
+ readonly vertical?: boolean;
64
+ readonly gap?: boolean;
65
+ readonly asNote?: boolean;
66
+ }): string;
67
+ /** 窗口条的 CSS(**裸串,不带 `<style>` 标签**;三族逐值保留各自的几何)。
68
+ *
69
+ * 体重族与饮食族取值相同,只类名前缀不同。本函数产出的是一段可直接拼进族样式段的字符串。 */
70
+ export declare function windowStripCss(): string;
71
+ /** 事实条的 CSS(**裸串,不带 `<style>` 标签**)。
72
+ *
73
+ * **本票唯一一处可见版式变更落在这里**:体重族的容器从「一行横排(`flex-wrap:wrap`)」改成
74
+ * 「等宽小格(`auto-fit` 栅格、窄屏塌单列)」——正本取运动族那套(票面 §二、§六 第 1 条,用户已授权)。
75
+ * 类名与其余属性(字号/色/权重)一律不动:体重族那三个变体位(`-v`/`-gap`/`-note`)的原规则
76
+ * 也逐值保留,故 `wui-strip-v` 的纵列版式与 `wui-strip-note` 的脚注口气字**一行未改**。
77
+ *
78
+ * 体重族与运动族的**键/值两小格在桌面档的取向不同**(运动族「键上值下」,体重族「键值同行」),
79
+ * 故 `.wui-fact` 不给 `flex-direction:column`;到了窄屏两族同归「键贴左、值贴右的纵列」。 */
80
+ export declare function factStripCss(): string;
81
+ //# sourceMappingURL=pageStrips.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageStrips.d.ts","sourceRoot":"","sources":["../../src/shared/pageStrips.ts"],"names":[],"mappings":"AA8BA,oBAAoB;AACpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,oBAAoB;AACpB,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,yCAAyC;AACzC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CAIuB,CAAC;AAEjD,yCAAyC;AACzC,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAGuB,CAAC;AAqB/C;;;mDAGmD;AACnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAWhH;AAED;;mDAEmD;AACnD,wBAAgB,SAAS,CACvB,KAAK,EAAE,aAAa,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/F,MAAM,CAOR;AAED;;kDAEkD;AAClD,wBAAgB,cAAc,IAAI,MAAM,CAiCvC;AAED;;;;;;;;qEAQqE;AACrE,wBAAgB,YAAY,IAAI,MAAM,CAsCrC"}
@@ -0,0 +1,166 @@
1
+ /** #719 · 页内两类形状的**唯一定义地**:**窗口条**与**事实条**。
2
+ *
3
+ * 为什么收在这里:这两类形状原先在三个能力族里各写一份(窗口条四份、事实条两份),
4
+ * 实测「函数体逐字同构、只差 CSS 类名前缀与几处几何值」——任何一处单独改动都会与另外几份漂移。
5
+ * 故按 `docs/agents/structure.md` 铁律二(概念唯一)收成一份:形状的拼装只写一次,
6
+ * 「族用什么类名」(`WindowVocab`/`FactVocab`)与「几处几何值」(下面两段 CSS 里的逐值差异)由族参数给。
7
+ *
8
+ * 谁在用(写得出哪两个能力在用):**运动族**(`src/exercise/sportUi.ts`)、**体重族**
9
+ * (`src/weight/weightUi.ts`,经 `src/goal/goalWeightDoc.ts` 与 `src/weight/plateDocs.ts` 间接使用)、
10
+ * **饮食族**(`src/diet/dietUi.ts`)。三族各自的形状件留一行包装并转出原名字,
11
+ * 调用方一行不动(既有 34 个文件的 import 与 65 处调用点全部原样)。
12
+ *
13
+ * ── 类名不统一,是**故意的** ──
14
+ * `sui-`/`wui-`/`dui-` 三套类名是既有**外部契约**:包内十余个测试件按字面断言它们
15
+ * (`sui-window`/`sui-facts`/`sui-fact-k`/`wui-strip`/`wui-strip-v`/`wui-strip-note`/
16
+ * `dui-window` 等)。统一类名会把十几件测试一起打红,而本票的红线之一是「测试只在外部行为上说话、
17
+ * 不为了绿而改断言」。故共用件收的是**形状的拼装逻辑**,不是类名。
18
+ *
19
+ * ── 几何值也不统一,同样是**故意的** ──
20
+ * 三族的圆角/内距/外边距逐值不同(日期块圆角 `8px` vs `10px`、内距 `4px 8px` vs `3px 9px`、
21
+ * 条外边距 `4px 0 16px` vs `2px 0 10px`、窄屏日期块内距 `8px 12px` vs `6px 10px`)。
22
+ * 那些不是随手写的,是各次视觉裁定落下的值;把它们统一=改三族外观,超出本票授权。
23
+ * 故两段 CSS 里按族逐值保留(体重族与饮食族除类名外**取值相同**,一行对齐即可)。
24
+ *
25
+ * 本件不取数、不取时钟、不出现任何一个能力目录的名字。
26
+ */
27
+ import { escapeHtml } from 'base-paint';
28
+ const esc = (s) => escapeHtml(s);
29
+ /** 三族的类名词汇表(**唯一一份**;各族形状件从这里取自己那一套)。 */
30
+ export const WINDOW_VOCAB = {
31
+ exercise: { window: 'sui-window', date: 'sui-date', arrow: 'sui-arrow', days: 'sui-days' },
32
+ weight: { window: 'wui-window', date: 'wui-date', arrow: 'wui-arrow', days: 'wui-days' },
33
+ diet: { window: 'dui-window', date: 'dui-date', arrow: 'dui-arrow', days: 'dui-chip' },
34
+ };
35
+ /** 三族的类名词汇表(事实条只有运动族与体重族在用;饮食族不产事实条)。 */
36
+ export const FACT_VOCAB = {
37
+ exercise: { facts: 'sui-facts', fact: 'sui-fact', key: 'sui-fact-k', value: 'sui-fact-v' },
38
+ weight: { facts: 'wui-strip', fact: 'wui-fact', key: 'wui-fact-k', value: 'wui-fact-v' },
39
+ };
40
+ /** 事实条容器/小格的附加类(体重族三个专用变体位;**不进共用件接口**,只作内部附加类串)。
41
+ *
42
+ * `vertical` → `<facts>-v`:整块恒纵列;`gap` → `<facts>-gap`:整块与上一件之间空一行;
43
+ * `asNote` → `<facts>-note`:值退成脚注口气的字。三者的名字都从 `facts` 类派生
44
+ * (`wui-strip` → `wui-strip-v`/`-gap`/`-note`),运动族的 `facts` 是 `sui-facts` 故给了也不出
45
+ * ——运动族的三个调用点从不给这三个位。
46
+ *
47
+ * **顺序固定 `facts` → `-v` → `-gap` → `-note`**:既有测试件按字面断言 `wui-strip-v`/
48
+ * `wui-strip-note`,且原实现就是这个顺序,重排会让产物变形。 */
49
+ function variantClasses(vocab, v) {
50
+ return (v.vertical === true ? ' ' + vocab.facts + '-v' : '')
51
+ + (v.gap === true ? ' ' + vocab.facts + '-gap' : '')
52
+ + (v.asNote === true ? ' ' + vocab.facts + '-note' : '');
53
+ }
54
+ /** 窗口条:`2026-09-01 → 2026-09-07` + 天数(或条数)胶囊。
55
+ *
56
+ * `start === end`(单日窗)只出一枚日期块、不出箭头,块内写「(单日)」——不替读者断言一个
57
+ * 不存在的跨度(#510 立的退化分支,三族同口径)。日期文本走 `escapeHtml`。 */
58
+ export function windowStrip(start, end, chipText, vocab) {
59
+ const chip = chipText === undefined || chipText === '' ? '' : '<span class="' + vocab.days + '">' + esc(chipText) + '</span>';
60
+ if (start === end) {
61
+ return '<div class="' + vocab.window + '"><span class="' + vocab.date + '">' + esc(start) + '(单日)</span>' + chip + '</div>';
62
+ }
63
+ return '<div class="' + vocab.window + '">'
64
+ + '<span class="' + vocab.date + '">' + esc(start) + '</span>'
65
+ + '<span class="' + vocab.arrow + '">→</span>'
66
+ + '<span class="' + vocab.date + '">' + esc(end) + '</span>'
67
+ + chip
68
+ + '</div>';
69
+ }
70
+ /** 事实条:一组「标签 + 值」。`v` 为空串的那一条整条不出(缺值不留空槽)。
71
+ *
72
+ * `variant` 三位是**落点**不是形状(见 `variantClasses`)。 */
73
+ export function factStrip(facts, vocab, variant = {}) {
74
+ const body = facts
75
+ .filter((f) => f.v !== '')
76
+ .map((f) => '<span class="' + vocab.fact + '"><span class="' + vocab.key + '">' + esc(f.k) + '</span>'
77
+ + '<span class="' + vocab.value + '">' + esc(f.v) + '</span></span>')
78
+ .join('');
79
+ return body === '' ? '' : '<div class="' + vocab.facts + variantClasses(vocab, variant) + '">' + body + '</div>';
80
+ }
81
+ /** 窗口条的 CSS(**裸串,不带 `<style>` 标签**;三族逐值保留各自的几何)。
82
+ *
83
+ * 体重族与饮食族取值相同,只类名前缀不同。本函数产出的是一段可直接拼进族样式段的字符串。 */
84
+ export function windowStripCss() {
85
+ return ''
86
+ // ── 运动族(`sui-`):圆角 8px/内距 4px 8px/条外边距 4px 0 16px/窄屏 8px 12px ──
87
+ + '.sui-window{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 16px}'
88
+ + '.sui-date{font-size:13px;font-weight:600;color:var(--fg);background:var(--card);'
89
+ + 'border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-variant-numeric:tabular-nums}'
90
+ + '.sui-arrow{color:var(--fg3);font-size:13px}'
91
+ + '.sui-days{font-size:12px;font-weight:700;color:var(--blue2);background:var(--soft);'
92
+ + 'border-radius:999px;padding:4px 8px}'
93
+ + '@media (max-width:820px){'
94
+ + ' .sui-window{gap:8px}'
95
+ + ' .sui-date{padding:8px 12px;min-height:32px;display:inline-flex;align-items:center}'
96
+ + ' .sui-days{padding:4px 12px}'
97
+ + '}'
98
+ // ── 体重族(`wui-`):圆角 10px/内距 3px 9px/条外边距 2px 0 10px/窄屏 6px 10px ──
99
+ + '.wui-window{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 10px}'
100
+ + '.wui-date{font-size:13px;font-weight:600;color:var(--fg);background:var(--card);border:1px solid var(--line);'
101
+ + 'border-radius:10px;padding:3px 9px;font-variant-numeric:tabular-nums}'
102
+ + '.wui-arrow{color:var(--fg3);font-size:13px}'
103
+ + '.wui-days{font-size:12px;font-weight:700;color:var(--blue2);background:var(--soft);border-radius:999px;padding:3px 10px}'
104
+ + '@media (max-width:820px){'
105
+ + ' .wui-window{gap:6px}'
106
+ + ' .wui-date{padding:6px 10px;min-height:32px;display:inline-flex;align-items:center}'
107
+ + ' .wui-days{padding:5px 10px}'
108
+ + '}'
109
+ // ── 饮食族(`dui-`;天数胶囊叫 `dui-chip`):逐值同体重族 ──
110
+ + '.dui-window{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 10px}'
111
+ + '.dui-date{font-size:13px;font-weight:600;color:var(--fg);background:var(--card);border:1px solid var(--line);'
112
+ + 'border-radius:10px;padding:3px 9px;font-variant-numeric:tabular-nums}'
113
+ + '.dui-arrow{color:var(--fg3);font-size:13px}'
114
+ + '.dui-chip{font-size:12px;font-weight:700;color:var(--blue2);background:var(--soft);border-radius:999px;padding:3px 10px}'
115
+ + '@media (max-width:820px){.dui-window{gap:6px}'
116
+ + '.dui-date{padding:6px 10px;min-height:32px;display:inline-flex;align-items:center}}';
117
+ }
118
+ /** 事实条的 CSS(**裸串,不带 `<style>` 标签**)。
119
+ *
120
+ * **本票唯一一处可见版式变更落在这里**:体重族的容器从「一行横排(`flex-wrap:wrap`)」改成
121
+ * 「等宽小格(`auto-fit` 栅格、窄屏塌单列)」——正本取运动族那套(票面 §二、§六 第 1 条,用户已授权)。
122
+ * 类名与其余属性(字号/色/权重)一律不动:体重族那三个变体位(`-v`/`-gap`/`-note`)的原规则
123
+ * 也逐值保留,故 `wui-strip-v` 的纵列版式与 `wui-strip-note` 的脚注口气字**一行未改**。
124
+ *
125
+ * 体重族与运动族的**键/值两小格在桌面档的取向不同**(运动族「键上值下」,体重族「键值同行」),
126
+ * 故 `.wui-fact` 不给 `flex-direction:column`;到了窄屏两族同归「键贴左、值贴右的纵列」。 */
127
+ export function factStripCss() {
128
+ return ''
129
+ // ── 运动族(`sui-`)──
130
+ + '.sui-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px 16px;margin:8px 0 16px}'
131
+ + '.sui-fact{display:flex;flex-direction:column;gap:2px;min-width:0}'
132
+ // 键色 `--fg3`(#86868b) 对白底仅 3.62:1,12px 正文要 4.5:1;`--fg2`(#6e6e73) 为 5.07:1
133
+ // (同包 `base-render/src/style.ts:567` 已为同类 12px 小字做过同一次改动,本处照办)。
134
+ + '.sui-fact-k{font-size:12px;color:var(--fg2);white-space:nowrap}'
135
+ + '.sui-fact-v{font-size:13px;font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums;min-width:0}'
136
+ // ── 体重族(`wui-strip`):容器**逐值换成运动族那套栅格**(本票唯一可见变更);键值两格与三个变体位原样 ──
137
+ + '.wui-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px 16px;margin:2px 0 10px}'
138
+ + '.wui-strip-v{flex-direction:column;align-items:stretch;gap:8px}'
139
+ // 空槽(`margin-top:16px`):**卡片的 `detail` 槽**里本件没有兄弟件可借距(KPI 值槽之下直接是本条)。
140
+ + '.wui-strip-gap{margin-top:16px}'
141
+ // 纵列里的一组「标签 + 值」:标签在左、值贴右,行行对齐(窄屏的事实一栏读法)。
142
+ + '.wui-strip-v .wui-fact{width:100%;justify-content:space-between;gap:12px}'
143
+ // 「标签 + **说明句**」那一型(`factStrip(facts, false, true, true)`):值不是量值而是一句脚注口气的
144
+ // 说明(「目标值超出刻度」),整块退一档(同 `.wui-note` 的字号/行高/色),不跟量值抢眼。
145
+ // #510:两半**分两档**——标签留 `--fg3`、说明那半落到 `--fg2` 且不加粗(原来两半同为 13px 加粗 `--fg`,
146
+ // 并排读成一句不通的话:`图上没画目标线 目标值超出刻度`)。
147
+ + '.wui-strip-note .wui-fact{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px}'
148
+ + '.wui-strip-note .wui-fact-k{font-size:12px;color:var(--fg3);font-weight:400;white-space:normal}'
149
+ + '.wui-strip-note .wui-fact-v{font-size:12px;font-weight:400;color:var(--fg2);line-height:1.6}'
150
+ // 体重族的键值两格:**逐值保留原写法**(桌面「键值同行」,与原 `.wui-fact` 一字不差)。
151
+ + '.wui-fact{display:inline-flex;align-items:baseline;gap:6px;min-width:0}'
152
+ + '.wui-fact-k{font-size:12px;color:var(--fg3);white-space:nowrap}'
153
+ + '.wui-fact-v{font-size:13px;font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums}'
154
+ // ── 两族的窄屏段(820):塌单列,键贴左/值贴右(两族同写法,逐值保留)──
155
+ + '@media (max-width:820px){'
156
+ + ' .sui-facts{grid-template-columns:minmax(0,1fr);gap:8px}'
157
+ + ' .sui-fact{flex-direction:row;justify-content:space-between;align-items:baseline;gap:12px}'
158
+ + ' .wui-strip{grid-template-columns:minmax(0,1fr);gap:8px}'
159
+ + ' .wui-strip-v{gap:8px}'
160
+ + ' .wui-fact{flex-direction:row;justify-content:space-between;align-items:baseline;gap:12px}'
161
+ + ' .wui-fact-v{font-size:13px}'
162
+ + '}'
163
+ // ── 触摸面(HELP 第 ①):两族的键值行/窗口条都是读者在手机上会按住的一块内容 ──
164
+ + '.sui-facts,.sui-window{-webkit-tap-highlight-color:transparent;touch-action:manipulation}';
165
+ }
166
+ //# sourceMappingURL=pageStrips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageStrips.js","sourceRoot":"","sources":["../../src/shared/pageStrips.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /** T351 · 健身计划页面底部复制区:prompt 段(预检确认页才有)+ 冻结双按钮段。
2
+ *
3
+ * 谁在用(写得出哪两个在用):**看训练计划**(`src/render/workoutPlanDocs.ts` 的结果页与过程页)
4
+ * 与**写后回执**(`src/workout/receipt.ts` 的十条会改数据库的命令)——四条调用点产物逐字同形,
5
+ * 故收成一份,免得各自漂移。只有过程型两页(预检确认页)传 `prompt`。
6
+ *
7
+ * 与 `src/shared/copyArea.ts` 的 `copyArea` 分家:`copyArea` 的数据位恒出三格式菜单
8
+ * (纯文本/JSON/CSV,场景 07 等页在用,本次不动它);本件按视觉审查口径**不出菜单**——
9
+ * `renderCopyBlock` 不传 `dataFormats`,并把两颗按钮的 `id` 补成冻结表那两颗
10
+ * (`ilife-copy-data`/`ilife-copy-log`,见 `COPY_ACTION_IDS.actionBar`),供页面运行时的
11
+ * 双通道复制认领。故本件只服务健身计划这一路,不替换 `copyArea` 的既有行为。
12
+ *
13
+ * 复制文本仍走唯一出处:数据位 `base-paint` 的 `buildDataText`(#77 数据投影),
14
+ * 日志位 `buildLogText` + 共用件 `copyLog`(#77 六段日志)。本件不取数、不取时钟。
15
+ */
16
+ import type { CopyLogFields, SerializableEnvelope } from 'base-paint';
17
+ /** 复制区入参:信封(八键载荷)+ 日志六段(由调用方 `copyLog({…})` 派生)。 */
18
+ interface PlanCopyInput {
19
+ /** 页面载荷信封(`version`/`skill`/`shape`/`key`/`data`)。 */
20
+ readonly envelope: SerializableEnvelope;
21
+ /** 日志六段(调用方给 `command`/`source`/`m5Line`/`actionAt`/`version` 后由 `copyLog` 派生)。 */
22
+ readonly log: CopyLogFields;
23
+ /** 复制数据文本的输出头;不给即按信封模板派生(`DataTextInput.title` 口径)。 */
24
+ readonly dataTitle?: string;
25
+ /** 本写词的逐字 prompt(只在预检确认页给;空串/不给即不出 prompt 段)。 */
26
+ readonly prompt?: string;
27
+ }
28
+ /** 复制区:数据位单格式、日志位直挂,按钮 `id` 补成冻结表那两颗;无三格式菜单、无英文菜单项。
29
+ * 日志位的信封先过 #550 归一(`key` 带 `calorie.` 前缀时剥一层),**数据位一字不动**。 */
30
+ export declare function planCopyBlock(input: PlanCopyInput): string;
31
+ export {};
32
+ //# sourceMappingURL=planCopyBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planCopyBlock.d.ts","sourceRoot":"","sources":["../../src/shared/planCopyBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAoBtE,oDAAoD;AACpD,UAAU,aAAa;IACrB,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,mFAAmF;IACnF,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;+DAC+D;AAC/D,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAa1D"}
@@ -0,0 +1,34 @@
1
+ import { buildDataText, buildLogText, renderActionBar } from 'base-paint';
2
+ import { renderCopyBlock, renderPreBlock } from 'base-paint/blocks';
3
+ import { CALORIE_COPY_ACTION } from '../render/copy.js';
4
+ import { sceneEnvelope } from './sceneEnvelope.js';
5
+ /** prompt 段:预览块 + 一颗「复制指令」(预检确认页「复制 prompt 回给 AI」那一环,老侧 `promptCopyArea` 的语序)。
6
+ *
7
+ * **这颗只能走 `renderActionBar` 的日志位**:`renderActionBar`(`base-render/src/controls.ts:1367`)
8
+ * 在「数据位在场而日志位缺席」时会按 #336 自动补一颗**禁用**「复制日志」,其 id 正是
9
+ * `COPY_ACTION_IDS.actionBar.copyLog`——与底部冻结那颗撞 id,页上就成了两颗同名按钮(其中一颗灰的)。
10
+ * 日志位单独给一颗复制按钮不触发 #336,且 actionId/文案由调用方定。「一排三颗」用冻结 API 表达不出来:
11
+ * `buttons` 位的场景按钮不写 `data-t`,运行时认领不到,做成第三颗就是个点不动的死按钮。 */
12
+ function promptArea(prompt) {
13
+ return renderPreBlock({ command: prompt })
14
+ + renderActionBar({
15
+ copyLog: { actionId: CALORIE_COPY_ACTION.actionId, label: CALORIE_COPY_ACTION.label, text: prompt },
16
+ });
17
+ }
18
+ /** 复制区:数据位单格式、日志位直挂,按钮 `id` 补成冻结表那两颗;无三格式菜单、无英文菜单项。
19
+ * 日志位的信封先过 #550 归一(`key` 带 `calorie.` 前缀时剥一层),**数据位一字不动**。 */
20
+ export function planCopyBlock(input) {
21
+ const title = input.dataTitle;
22
+ const prompt = input.prompt;
23
+ return (prompt === undefined || prompt === '' ? '' : promptArea(prompt))
24
+ + renderCopyBlock({
25
+ dataText: buildDataText({
26
+ envelope: input.envelope,
27
+ ...(title === undefined ? {} : { title }),
28
+ }),
29
+ logText: buildLogText({ envelope: sceneEnvelope(input.envelope), copyLog: input.log }),
30
+ })
31
+ .replace('data-action-id="ilife-copy-data"', 'id="ilife-copy-data" data-action-id="ilife-copy-data"')
32
+ .replace('data-action-id="ilife-copy-log"', 'id="ilife-copy-log" data-action-id="ilife-copy-log"');
33
+ }
34
+ //# sourceMappingURL=planCopyBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planCopyBlock.js","sourceRoot":"","sources":["../../src/shared/planCopyBlock.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;2DAM2D;AAC3D,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;UACtC,eAAe,CAAC;YAChB,OAAO,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;SACpG,CAAC,CAAC;AACP,CAAC;AAcD;+DAC+D;AAC/D,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;UACpE,eAAe,CAAC;YAChB,QAAQ,EAAE,aAAa,CAAC;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;aAC1C,CAAC;YACF,OAAO,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;SACvF,CAAC;aACC,OAAO,CAAC,kCAAkC,EAAE,uDAAuD,CAAC;aACpG,OAAO,CAAC,iCAAiC,EAAE,qDAAqD,CAAC,CAAC;AACzG,CAAC"}
@@ -1,10 +1,10 @@
1
- /** 来源脚注入参:`source` 不给/空串即只印窗口与条数(老件缺来源时的那种写法)。 */
2
- export interface SourceLineInput {
1
+ /** 来源脚注:`数据来源 · 来源 · 起 → 止 · 共 N 条`。
2
+ * 入参形状**内联在签名里**(#708 收掉原来那个零 import 的 `SourceLineInput` 导出名):
3
+ * `source` 不给/空串即只印窗口与条数(老件缺来源时的那种写法)。 */
4
+ export declare function sourceLine(input: {
3
5
  readonly source: string;
4
6
  readonly start: string;
5
7
  readonly end: string;
6
8
  readonly count: number;
7
- }
8
- /** 来源脚注:`数据来源 · 来源 · 起 → 止 · 共 N 条`。 */
9
- export declare function sourceLine(input: SourceLineInput): string;
9
+ }): string;
10
10
  //# sourceMappingURL=sourceLine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceLine.d.ts","sourceRoot":"","sources":["../../src/shared/sourceLine.ts"],"names":[],"mappings":"AAaA,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AASD,wCAAwC;AACxC,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAezD"}
1
+ {"version":3,"file":"sourceLine.d.ts","sourceRoot":"","sources":["../../src/shared/sourceLine.ts"],"names":[],"mappings":"AAoBA;;2CAE2C;AAC3C,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAe3I"}
@@ -16,7 +16,9 @@ function reqText(value, field) {
16
16
  }
17
17
  return value;
18
18
  }
19
- /** 来源脚注:`数据来源 · 来源 · 起 → 止 · 共 N 条`。 */
19
+ /** 来源脚注:`数据来源 · 来源 · 起 → 止 · 共 N 条`。
20
+ * 入参形状**内联在签名里**(#708 收掉原来那个零 import 的 `SourceLineInput` 导出名):
21
+ * `source` 不给/空串即只印窗口与条数(老件缺来源时的那种写法)。 */
20
22
  export function sourceLine(input) {
21
23
  if (input === null || typeof input !== 'object' || Array.isArray(input)) {
22
24
  throw new CalorieRenderError('bad-input', 'sourceLine: input 必须是对象');
@@ -1 +1 @@
1
- {"version":3,"file":"sourceLine.js","sourceRoot":"","sources":["../../src/shared/sourceLine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAUzD,SAAS,OAAO,CAAC,KAAc,EAAE,KAAa;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,KAAK,GAAG,qBAAqB,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,IAAI,GAAG,KAAwB,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,KAAK,GAAa,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACrC,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"sourceLine.js","sourceRoot":"","sources":["../../src/shared/sourceLine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,SAAS,OAAO,CAAC,KAAc,EAAE,KAAa;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,KAAK,GAAG,qBAAqB,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;2CAE2C;AAC3C,MAAM,UAAU,UAAU,CAAC,KAAwG;IACjI,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,KAAK,GAAa,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACrC,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,28 @@
1
+ /** 时钟的**唯一定义地**(#717 批③):「今天是哪一天」「现在是几点」只从这里取。
2
+ *
3
+ * 谁在用(写得出哪两个能力在用):
4
+ * ① 分析能力 `analysis/`(`analysis/utils.ts` 的 `todayISO` 正本在这里,原处按原名转出);
5
+ * ② 饮食能力 `diet/`(`fetch/diet.ts` 记一餐时的落库日期与时刻);
6
+ * ③ 运动能力 `exercise/`(`exercise/exerciseStore.ts` 记一条时的时刻);
7
+ * ④ 体重能力 `weight/`(`weight/records.ts` 记体重时的日期与时刻)。
8
+ *
9
+ * 本件**零依赖**:不 import 任何件,也不出现任何一个能力目录的名字。
10
+ *
11
+ * 收在这里之前的样子(#701 普查、#717 批③):`todayISO` 的正本住 `analysis/utils.ts`,而
12
+ * `fetch/diet.ts`/`exercise/exerciseStore.ts`/`weight/records.ts` **各写一份私有的本地时钟**
13
+ * (`new Date().toISOString().slice(0,10)` 与 `new Date().toTimeString().slice(0,8)`)——
14
+ * 抓取层被要求「不反向依赖 analysis」,于是绕路自己读系统钟,三份副本各自走散。
15
+ *
16
+ * 口径:**读系统钟**(进程级钉钟由测试的 `--require freeze-clock.cjs` 预载件盖住整个 `Date`,
17
+ * 故钉钟时本件三个读数同时跟走——写入日、回执日、累计读日不会再分家)。
18
+ */
19
+ /** 当刻的日(`YYYY-MM-DD`,UTC 日口径,与全包既有口径一致)。 */
20
+ export declare function todayISO(): string;
21
+ /** 当刻的时刻(`HH:MM:SS`,本地时刻口径)。 */
22
+ export declare function timeOfDayISO(): string;
23
+ /** 日期加减(按整天,`shiftISODate('2026-09-07', -6) === '2026-09-01'`)。
24
+ *
25
+ * 锚到 UTC 正午再加减,避开夏令时把某一天算成 23/25 小时那种边界。
26
+ * 非法日期当场抛(消息形状与全包既有写法一致)。 */
27
+ export declare function shiftISODate(iso: string, deltaDays: number): string;
28
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/shared/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,4CAA4C;AAC5C,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,gCAAgC;AAChC,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;8BAG8B;AAC9B,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAInE"}
@@ -0,0 +1,37 @@
1
+ /** 时钟的**唯一定义地**(#717 批③):「今天是哪一天」「现在是几点」只从这里取。
2
+ *
3
+ * 谁在用(写得出哪两个能力在用):
4
+ * ① 分析能力 `analysis/`(`analysis/utils.ts` 的 `todayISO` 正本在这里,原处按原名转出);
5
+ * ② 饮食能力 `diet/`(`fetch/diet.ts` 记一餐时的落库日期与时刻);
6
+ * ③ 运动能力 `exercise/`(`exercise/exerciseStore.ts` 记一条时的时刻);
7
+ * ④ 体重能力 `weight/`(`weight/records.ts` 记体重时的日期与时刻)。
8
+ *
9
+ * 本件**零依赖**:不 import 任何件,也不出现任何一个能力目录的名字。
10
+ *
11
+ * 收在这里之前的样子(#701 普查、#717 批③):`todayISO` 的正本住 `analysis/utils.ts`,而
12
+ * `fetch/diet.ts`/`exercise/exerciseStore.ts`/`weight/records.ts` **各写一份私有的本地时钟**
13
+ * (`new Date().toISOString().slice(0,10)` 与 `new Date().toTimeString().slice(0,8)`)——
14
+ * 抓取层被要求「不反向依赖 analysis」,于是绕路自己读系统钟,三份副本各自走散。
15
+ *
16
+ * 口径:**读系统钟**(进程级钉钟由测试的 `--require freeze-clock.cjs` 预载件盖住整个 `Date`,
17
+ * 故钉钟时本件三个读数同时跟走——写入日、回执日、累计读日不会再分家)。
18
+ */
19
+ /** 当刻的日(`YYYY-MM-DD`,UTC 日口径,与全包既有口径一致)。 */
20
+ export function todayISO() {
21
+ return new Date().toISOString().slice(0, 10);
22
+ }
23
+ /** 当刻的时刻(`HH:MM:SS`,本地时刻口径)。 */
24
+ export function timeOfDayISO() {
25
+ return new Date().toTimeString().slice(0, 8);
26
+ }
27
+ /** 日期加减(按整天,`shiftISODate('2026-09-07', -6) === '2026-09-01'`)。
28
+ *
29
+ * 锚到 UTC 正午再加减,避开夏令时把某一天算成 23/25 小时那种边界。
30
+ * 非法日期当场抛(消息形状与全包既有写法一致)。 */
31
+ export function shiftISODate(iso, deltaDays) {
32
+ const t = Date.parse(iso + 'T12:00:00Z');
33
+ if (Number.isNaN(t))
34
+ throw new Error('[calorie] 日期非法: ' + iso);
35
+ return new Date(t + deltaDays * 86400000).toISOString().slice(0, 10);
36
+ }
37
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/shared/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,4CAA4C;AAC5C,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;8BAG8B;AAC9B,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,SAAiB;IACzD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC;IAC/D,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * 本件只放类型与声明形状,不含任何记录数据:
4
4
  * - 路由记录类型(`RouteKey`/`SceneNo`/`NonExecBucket`/`ExecWakeRoute`/`NonExecWakeRoute`/`WakeRoute`)
5
5
  * —— 与 #81 裁定 D-1~D-4 的运行时事实逐字一致(原住 `src/triggers/routing.ts`)。
6
- * - 声明形状 `RouteDecl` —— 各声明件(`src/cli/legacy/routes-scene-NN.ts`、`src/<能力>/routes.ts`)
6
+ * - 声明形状 `RouteDecl` —— 各声明件(`src/<能力>/routes.ts`)
7
7
  * 写出的记录形状;比运行时记录多两个字段:它属于哪个列表(`list`)与它在原列表内的 0 基位次(`order`)。
8
8
  *
9
9
  * 顺序权威(#313 硬约束):`WAKE_ROUTES[i].wakeWord` 必须与 SoT 逐位对齐(断言见
@@ -14,8 +14,8 @@
14
14
  * `src/triggers/routes.generated.ts` 由声明派生,`src/triggers/routing.ts` 只留逻辑与类型再导出。
15
15
  *
16
16
  * 记账(#313 生成器席落实):`scripts/gen-cli.mjs` 的 `declarationSources()` 必须**显式**纳入
17
- * `src/cli/legacy/routes/*.ts` `src/weight/routes.ts`——它们住 `src/cli/legacy/routes/` 子目录,
18
- * 不在命令声明扫描面内,若不入印记则「改了声明没重建」会被直接放行(假绿)。
17
+ * 各能力 `src/<能力>/routes.ts`——它们不在命令声明扫描面内,若不入印记则「改了声明没重建」
18
+ * 会被直接放行(假绿)。
19
19
  */
20
20
  import type { CalorieComboKey, CalorieWriteKey } from '../cli/keys.js';
21
21
  /** 100 键内的路由键(读 65 + 写 35;两 registry 无重叠) */
@@ -3,7 +3,7 @@
3
3
  * 本件只放类型与声明形状,不含任何记录数据:
4
4
  * - 路由记录类型(`RouteKey`/`SceneNo`/`NonExecBucket`/`ExecWakeRoute`/`NonExecWakeRoute`/`WakeRoute`)
5
5
  * —— 与 #81 裁定 D-1~D-4 的运行时事实逐字一致(原住 `src/triggers/routing.ts`)。
6
- * - 声明形状 `RouteDecl` —— 各声明件(`src/cli/legacy/routes-scene-NN.ts`、`src/<能力>/routes.ts`)
6
+ * - 声明形状 `RouteDecl` —— 各声明件(`src/<能力>/routes.ts`)
7
7
  * 写出的记录形状;比运行时记录多两个字段:它属于哪个列表(`list`)与它在原列表内的 0 基位次(`order`)。
8
8
  *
9
9
  * 顺序权威(#313 硬约束):`WAKE_ROUTES[i].wakeWord` 必须与 SoT 逐位对齐(断言见
@@ -14,8 +14,8 @@
14
14
  * `src/triggers/routes.generated.ts` 由声明派生,`src/triggers/routing.ts` 只留逻辑与类型再导出。
15
15
  *
16
16
  * 记账(#313 生成器席落实):`scripts/gen-cli.mjs` 的 `declarationSources()` 必须**显式**纳入
17
- * `src/cli/legacy/routes/*.ts` `src/weight/routes.ts`——它们住 `src/cli/legacy/routes/` 子目录,
18
- * 不在命令声明扫描面内,若不入印记则「改了声明没重建」会被直接放行(假绿)。
17
+ * 各能力 `src/<能力>/routes.ts`——它们不在命令声明扫描面内,若不入印记则「改了声明没重建」
18
+ * 会被直接放行(假绿)。
19
19
  */
20
20
  export {};
21
21
  //# sourceMappingURL=routeSpec.js.map
@@ -1,7 +1,7 @@
1
1
  /** 本文件由 `scripts/gen-routes.mjs` 生成,勿手改(`pnpm gen` 重生成,`pnpm gen:check` 验真)。
2
2
  *
3
- * 权威是声明层:`src/cli/legacy/routes/scene-NN.ts`(未搬迁清单,一场景一件)与各能力
4
- * `src/<能力>/routes.ts`(已搬迁键,一能力一件)。本件只做「按 `list` 分组、按 `order` 升序」的
3
+ * 权威是声明层:各能力 `src/<能力>/routes.ts`(一能力一件,一条命令一个定义地)。
4
+ * 本件只做「按 `list` 分组、按 `order` 升序」的
5
5
  * 排序与拼接,不含任何顺序知识——顺序事实只住声明的 `order` 字段,换文件搬动不会打乱顺序。
6
6
  * 本次生成:WAKE_ROUTES 437 条 + NEW_KEY_ROUTES 69 条 + COVERAGE_REPAIR_ROUTES 1 条,合计 507 条(与声明逐条自洽:`pnpm gen:check` 验真)。
7
7
  */
@@ -1,4 +1,5 @@
1
1
  import { viewWeight, writeWeightLog } from './log.js';
2
+ import { weightReceiptDoc } from './receipt.js';
2
3
  export declare const WEIGHT_COMMANDS: ({
3
4
  kind: "read";
4
5
  key: string;
@@ -8,14 +9,16 @@ export declare const WEIGHT_COMMANDS: ({
8
9
  flows: string[];
9
10
  run: typeof viewWeight;
10
11
  example: string;
12
+ doc?: undefined;
11
13
  } | {
12
14
  kind: "write";
13
15
  key: string;
14
- shape: "receipt";
15
16
  title: string;
16
17
  wakeWord: string;
17
18
  flows: string[];
18
19
  run: typeof writeWeightLog;
20
+ doc: typeof weightReceiptDoc;
19
21
  example: string;
22
+ shape?: undefined;
20
23
  })[];
21
24
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/weight/commands.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,UAAU,EAAoB,cAAc,EAAE,MAAM,UAAU,CAAC;AAIxE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;IAUM,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/weight/commands.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,UAAU,EAAoB,cAAc,EAAE,MAAM,UAAU,CAAC;AAGxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;IAUM,CAAC"}
@@ -4,15 +4,16 @@ import { viewWeightHistory } from './history.js';
4
4
  import { viewWeight, writeWeightBatch, writeWeightLog } from './log.js';
5
5
  import { viewWeightReview } from './review.js';
6
6
  import { viewVolatility } from './volatility.js';
7
+ import { weightReceiptDoc } from './receipt.js';
7
8
  export const WEIGHT_COMMANDS = [
8
9
  { kind: 'read', key: 'calorie.view.weight', shape: 'stat', title: '体重盘', wakeWord: '看今日体重', flows: ['量体重', '体重复盘'], run: viewWeight, example: 'calorie-cmd-read calorie.view.weight' },
9
10
  { kind: 'read', key: 'calorie.view.weight-history', shape: 'stat', title: '体重历史', wakeWord: '看本周体重', flows: ['看体重明细', '看体重曲线', '看体重备注'], run: viewWeightHistory, example: 'calorie-cmd-read calorie.view.weight-history --params \'{"days":7}\'' },
10
11
  { kind: 'read', key: 'calorie.view.weight-compare', shape: 'stat', title: '体重对比', wakeWord: '对比体重:本月 vs 上月', flows: ['对比体重'], run: viewWeightCompare, example: 'calorie-cmd-read calorie.view.weight-compare --params \'{"window":"30d","compareWindow":"prev"}\'' },
11
12
  { kind: 'read', key: 'calorie.view.weight-review', shape: 'stat', title: '体重复核', wakeWord: '看体重复核', flows: ['体重复盘'], run: viewWeightReview, example: 'calorie-cmd-read calorie.view.weight-review' },
12
13
  { kind: 'read', key: 'calorie.view.volatility', shape: 'stat', title: '波动分析', wakeWord: '看体重稳不稳(增强版)', flows: ['看体重稳不稳'], run: viewVolatility, example: 'calorie-cmd-read calorie.view.volatility --params \'{"window":"7d"}\'' },
13
- { kind: 'write', key: 'calorie.weight.log', shape: 'receipt', title: '记体重', wakeWord: '记体重', flows: ['量体重'], run: writeWeightLog, example: 'calorie-cmd-read calorie.weight.log --params \'{"kg":70.5}\'' },
14
- { kind: 'write', key: 'calorie.weight.update', shape: 'receipt', title: '改体重', wakeWord: '改体重记录', flows: ['改体重记录'], run: writeWeightUpdate, example: 'calorie-cmd-read calorie.weight.update --params \'{"id":1,"kg":70.2}\'' },
15
- { kind: 'write', key: 'calorie.weight.remove', shape: 'receipt', title: '删体重', wakeWord: '删体重记录', flows: ['改体重记录'], run: writeWeightRemove, example: 'calorie-cmd-read calorie.weight.remove --params \'{"id":1}\'' },
16
- { kind: 'write', key: 'calorie.weight.batch', shape: 'receipt', title: '批量记体重', wakeWord: '批量补录体重', flows: ['量体重'], run: writeWeightBatch, example: 'calorie-cmd-read calorie.weight.batch --params \'{"items":[{"date":"<日期>","kg":70.5}]}\'' },
14
+ { kind: 'write', key: 'calorie.weight.log', title: '记体重', wakeWord: '记体重', flows: ['量体重'], run: writeWeightLog, doc: weightReceiptDoc, example: 'calorie-cmd-read calorie.weight.log --params \'{"kg":70.5}\'' },
15
+ { kind: 'write', key: 'calorie.weight.update', title: '改体重', wakeWord: '改体重记录', flows: ['改体重记录'], run: writeWeightUpdate, doc: weightReceiptDoc, example: 'calorie-cmd-read calorie.weight.update --params \'{"id":1,"kg":70.2}\'' },
16
+ { kind: 'write', key: 'calorie.weight.remove', title: '删体重', wakeWord: '删体重记录', flows: ['改体重记录'], run: writeWeightRemove, doc: weightReceiptDoc, example: 'calorie-cmd-read calorie.weight.remove --params \'{"id":1}\'' },
17
+ { kind: 'write', key: 'calorie.weight.batch', title: '批量记体重', wakeWord: '批量补录体重', flows: ['量体重'], run: writeWeightBatch, doc: weightReceiptDoc, example: 'calorie-cmd-read calorie.weight.batch --params \'{"items":[{"date":"<日期>","kg":70.5}]}\'' },
17
18
  ];
18
19
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/weight/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/weight/commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"figures.d.ts","sourceRoot":"","sources":["../../src/weight/figures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"figures.d.ts","sourceRoot":"","sources":["../../src/weight/figures.ts"],"names":[],"mappings":"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"}