skill-memo-ilife 0.3.2 → 0.3.13

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 (320) hide show
  1. package/SKILL.md +33 -34
  2. package/dist/checkin/index.d.ts +8 -0
  3. package/dist/checkin/index.d.ts.map +1 -0
  4. package/dist/checkin/index.js +8 -0
  5. package/dist/checkin/index.js.map +1 -0
  6. package/dist/checkin/receipt.d.ts +17 -0
  7. package/dist/checkin/receipt.d.ts.map +1 -0
  8. package/dist/checkin/receipt.js +63 -0
  9. package/dist/checkin/receipt.js.map +1 -0
  10. package/dist/checkin/routes.d.ts +4 -0
  11. package/dist/checkin/routes.d.ts.map +1 -1
  12. package/dist/checkin/routes.js +2 -2
  13. package/dist/checkin/routes.js.map +1 -1
  14. package/dist/cli/cmd_read.js +19 -53
  15. package/dist/cli/cmd_read.js.map +1 -1
  16. package/dist/cli/config.d.ts +4 -4
  17. package/dist/cli/config.d.ts.map +1 -1
  18. package/dist/cli/config.js +25 -4
  19. package/dist/cli/config.js.map +1 -1
  20. package/dist/cli/health/items.js +2 -2
  21. package/dist/cli/health/items.js.map +1 -1
  22. package/dist/cli/health.d.ts.map +1 -1
  23. package/dist/cli/health.js +3 -2
  24. package/dist/cli/health.js.map +1 -1
  25. package/dist/cli/keys.d.ts +6 -3
  26. package/dist/cli/keys.d.ts.map +1 -1
  27. package/dist/cli/keys.js +2 -5
  28. package/dist/cli/keys.js.map +1 -1
  29. package/dist/cli/registry.d.ts +1 -1
  30. package/dist/{fetch/db.d.ts → db/readonly.d.ts} +1 -1
  31. package/dist/db/readonly.d.ts.map +1 -0
  32. package/dist/{fetch/db.js → db/readonly.js} +5 -5
  33. package/dist/db/readonly.js.map +1 -0
  34. package/dist/help/lookup.d.ts +18 -1
  35. package/dist/help/lookup.d.ts.map +1 -1
  36. package/dist/help/lookup.js +53 -37
  37. package/dist/help/lookup.js.map +1 -1
  38. package/dist/help/sceneData.js +1 -1
  39. package/dist/help/scenes/checkin.d.ts +1 -1
  40. package/dist/help/scenes/checkin.js +1 -1
  41. package/dist/help/scenes/init.d.ts +1 -1
  42. package/dist/help/scenes/init.js +1 -1
  43. package/dist/help/scenes/memo.d.ts +1 -1
  44. package/dist/help/scenes/memo.js +1 -1
  45. package/dist/help/scenes/mood.d.ts +1 -1
  46. package/dist/help/scenes/mood.js +1 -1
  47. package/dist/help/scenes/remind.d.ts +1 -1
  48. package/dist/help/scenes/remind.js +2 -2
  49. package/dist/help/scenes/remind.js.map +1 -1
  50. package/dist/help/scenes/search.d.ts +1 -1
  51. package/dist/help/scenes/search.js +1 -1
  52. package/dist/help/scenes/sync.d.ts +1 -1
  53. package/dist/help/scenes/sync.js +1 -1
  54. package/dist/help/scenes/wish.d.ts +1 -1
  55. package/dist/help/scenes/wish.js +1 -1
  56. package/dist/index.d.ts +11 -4
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +11 -5
  59. package/dist/index.js.map +1 -1
  60. package/dist/init/diagnosis.d.ts +2 -1
  61. package/dist/init/diagnosis.d.ts.map +1 -1
  62. package/dist/init/diagnosis.js.map +1 -1
  63. package/dist/init/page.d.ts +3 -2
  64. package/dist/init/page.d.ts.map +1 -1
  65. package/dist/init/page.js +20 -10
  66. package/dist/init/page.js.map +1 -1
  67. package/dist/init/routes.d.ts +4 -1
  68. package/dist/init/routes.d.ts.map +1 -1
  69. package/dist/init/routes.js +14 -0
  70. package/dist/init/routes.js.map +1 -1
  71. package/dist/init/run.d.ts.map +1 -1
  72. package/dist/init/run.js +7 -1
  73. package/dist/init/run.js.map +1 -1
  74. package/dist/{fetch → memo}/batch.d.ts +6 -2
  75. package/dist/memo/batch.d.ts.map +1 -0
  76. package/dist/{fetch → memo}/batch.js +8 -4
  77. package/dist/memo/batch.js.map +1 -0
  78. package/dist/memo/category.d.ts.map +1 -0
  79. package/dist/{policy → memo}/category.js +1 -1
  80. package/dist/memo/category.js.map +1 -0
  81. package/dist/memo/commands.d.ts +3 -12
  82. package/dist/memo/commands.d.ts.map +1 -1
  83. package/dist/memo/commands.js +1 -9
  84. package/dist/memo/commands.js.map +1 -1
  85. package/dist/{policy → memo}/crud.d.ts +1 -1
  86. package/dist/memo/crud.d.ts.map +1 -0
  87. package/dist/{policy → memo}/crud.js +22 -7
  88. package/dist/memo/crud.js.map +1 -0
  89. package/dist/memo/index.d.ts +4 -2
  90. package/dist/memo/index.d.ts.map +1 -1
  91. package/dist/memo/index.js +4 -2
  92. package/dist/memo/index.js.map +1 -1
  93. package/dist/memo/media.d.ts.map +1 -0
  94. package/dist/{policy → memo}/media.js +2 -2
  95. package/dist/memo/media.js.map +1 -0
  96. package/dist/memo/receipt.d.ts +35 -0
  97. package/dist/memo/receipt.d.ts.map +1 -0
  98. package/dist/memo/receipt.js +62 -0
  99. package/dist/memo/receipt.js.map +1 -0
  100. package/dist/memo/receiptPage.d.ts +44 -0
  101. package/dist/memo/receiptPage.d.ts.map +1 -0
  102. package/dist/memo/receiptPage.js +50 -0
  103. package/dist/memo/receiptPage.js.map +1 -0
  104. package/dist/memo/routes.d.ts.map +1 -1
  105. package/dist/memo/routes.js +32 -0
  106. package/dist/memo/routes.js.map +1 -1
  107. package/dist/memo/run.d.ts +9 -8
  108. package/dist/memo/run.d.ts.map +1 -1
  109. package/dist/memo/run.js +140 -97
  110. package/dist/memo/run.js.map +1 -1
  111. package/dist/mood/routes.d.ts.map +1 -1
  112. package/dist/mood/routes.js +36 -0
  113. package/dist/mood/routes.js.map +1 -1
  114. package/dist/remind/index.d.ts +5 -2
  115. package/dist/remind/index.d.ts.map +1 -1
  116. package/dist/remind/index.js +5 -2
  117. package/dist/remind/index.js.map +1 -1
  118. package/dist/{policy/reminder.d.ts → remind/policy.d.ts} +1 -1
  119. package/dist/remind/policy.d.ts.map +1 -0
  120. package/dist/{policy/reminder.js → remind/policy.js} +2 -2
  121. package/dist/remind/policy.js.map +1 -0
  122. package/dist/remind/routes.d.ts +1 -2
  123. package/dist/remind/routes.d.ts.map +1 -1
  124. package/dist/remind/routes.js +32 -2
  125. package/dist/remind/routes.js.map +1 -1
  126. package/dist/remind/run.d.ts +1 -1
  127. package/dist/remind/run.d.ts.map +1 -1
  128. package/dist/remind/run.js +112 -7
  129. package/dist/remind/run.js.map +1 -1
  130. package/dist/{fetch/reminders.d.ts → remind/store.d.ts} +2 -2
  131. package/dist/remind/store.d.ts.map +1 -0
  132. package/dist/{fetch/reminders.js → remind/store.js} +3 -3
  133. package/dist/remind/store.js.map +1 -0
  134. package/dist/render/envelope.d.ts.map +1 -1
  135. package/dist/render/envelope.js +3 -2
  136. package/dist/render/envelope.js.map +1 -1
  137. package/dist/render/html.js +1 -1
  138. package/dist/render/html.js.map +1 -1
  139. package/dist/render/index.d.ts +4 -1
  140. package/dist/render/index.d.ts.map +1 -1
  141. package/dist/render/index.js +5 -3
  142. package/dist/render/index.js.map +1 -1
  143. package/dist/render/listPage.d.ts +34 -0
  144. package/dist/render/listPage.d.ts.map +1 -0
  145. package/dist/render/listPage.js +39 -0
  146. package/dist/render/listPage.js.map +1 -0
  147. package/dist/render/memoPageAssets.d.ts +32 -0
  148. package/dist/render/memoPageAssets.d.ts.map +1 -0
  149. package/dist/render/memoPageAssets.js +320 -0
  150. package/dist/render/memoPageAssets.js.map +1 -0
  151. package/dist/render/pageAssets.js +3 -3
  152. package/dist/render/pageAssets.js.map +1 -1
  153. package/dist/render/pages.d.ts +9 -2
  154. package/dist/render/pages.d.ts.map +1 -1
  155. package/dist/render/pages.js +8 -16
  156. package/dist/render/pages.js.map +1 -1
  157. package/dist/render/receipt.d.ts +12 -3
  158. package/dist/render/receipt.d.ts.map +1 -1
  159. package/dist/render/receipt.js +55 -10
  160. package/dist/render/receipt.js.map +1 -1
  161. package/dist/search/routes.d.ts.map +1 -1
  162. package/dist/search/routes.js +1 -0
  163. package/dist/search/routes.js.map +1 -1
  164. package/dist/search/run.d.ts +11 -3
  165. package/dist/search/run.d.ts.map +1 -1
  166. package/dist/search/run.js +130 -11
  167. package/dist/search/run.js.map +1 -1
  168. package/dist/shared/commandSpec.d.ts +4 -5
  169. package/dist/shared/commandSpec.d.ts.map +1 -1
  170. package/dist/shared/errors.d.ts.map +1 -0
  171. package/dist/shared/errors.js.map +1 -0
  172. package/dist/{fetch → shared}/paths.d.ts +1 -1
  173. package/dist/shared/paths.d.ts.map +1 -0
  174. package/dist/{fetch → shared}/paths.js +3 -3
  175. package/dist/shared/paths.js.map +1 -0
  176. package/dist/shared/validators.d.ts +3 -0
  177. package/dist/shared/validators.d.ts.map +1 -0
  178. package/dist/shared/validators.js +15 -0
  179. package/dist/shared/validators.js.map +1 -0
  180. package/dist/sync/auth.d.ts.map +1 -0
  181. package/dist/{fetch → sync}/auth.js +3 -3
  182. package/dist/sync/auth.js.map +1 -0
  183. package/dist/sync/commands.d.ts.map +1 -1
  184. package/dist/sync/commands.js.map +1 -1
  185. package/dist/sync/feishu.d.ts.map +1 -0
  186. package/dist/{fetch → sync}/feishu.js +9 -9
  187. package/dist/sync/feishu.js.map +1 -0
  188. package/dist/sync/index.d.ts +5 -2
  189. package/dist/sync/index.d.ts.map +1 -1
  190. package/dist/sync/index.js +4 -2
  191. package/dist/sync/index.js.map +1 -1
  192. package/dist/sync/run.d.ts +1 -1
  193. package/dist/sync/run.d.ts.map +1 -1
  194. package/dist/sync/run.js +2 -1
  195. package/dist/sync/run.js.map +1 -1
  196. package/dist/{fetch → sync}/sentinel.d.ts +1 -1
  197. package/dist/sync/sentinel.d.ts.map +1 -0
  198. package/dist/{fetch → sync}/sentinel.js +1 -2
  199. package/dist/sync/sentinel.js.map +1 -0
  200. package/dist/triggers/routes.generated.d.ts +1 -1
  201. package/dist/triggers/routes.generated.d.ts.map +1 -1
  202. package/dist/triggers/routes.generated.js +19 -6
  203. package/dist/triggers/routes.generated.js.map +1 -1
  204. package/dist/triggers/routing.d.ts +7 -0
  205. package/dist/triggers/routing.d.ts.map +1 -0
  206. package/dist/triggers/routing.js +35 -0
  207. package/dist/triggers/routing.js.map +1 -0
  208. package/dist/wish/complete.d.ts +1 -1
  209. package/dist/wish/complete.d.ts.map +1 -1
  210. package/dist/wish/complete.js +1 -1
  211. package/dist/wish/complete.js.map +1 -1
  212. package/dist/wish/due.d.ts +1 -1
  213. package/dist/wish/due.d.ts.map +1 -1
  214. package/dist/wish/due.js +1 -1
  215. package/dist/wish/due.js.map +1 -1
  216. package/dist/wish/ensure.d.ts +2 -2
  217. package/dist/wish/ensure.d.ts.map +1 -1
  218. package/dist/wish/ensure.js +2 -2
  219. package/dist/wish/ensure.js.map +1 -1
  220. package/dist/wish/gate.d.ts +1 -1
  221. package/dist/wish/gate.d.ts.map +1 -1
  222. package/dist/wish/gate.js +1 -1
  223. package/dist/wish/gate.js.map +1 -1
  224. package/dist/wish/index.d.ts +4 -0
  225. package/dist/wish/index.d.ts.map +1 -1
  226. package/dist/wish/index.js +7 -0
  227. package/dist/wish/index.js.map +1 -1
  228. package/dist/{policy/wish.d.ts → wish/policy.d.ts} +1 -1
  229. package/dist/wish/policy.d.ts.map +1 -0
  230. package/dist/{policy/wish.js → wish/policy.js} +3 -3
  231. package/dist/wish/policy.js.map +1 -0
  232. package/dist/wish/receipt.d.ts +45 -0
  233. package/dist/wish/receipt.d.ts.map +1 -0
  234. package/dist/wish/receipt.js +68 -0
  235. package/dist/wish/receipt.js.map +1 -0
  236. package/dist/wish/reconcile.d.ts +1 -1
  237. package/dist/wish/reconcile.d.ts.map +1 -1
  238. package/dist/wish/reconcile.js +2 -2
  239. package/dist/wish/reconcile.js.map +1 -1
  240. package/dist/wish/routes.d.ts.map +1 -1
  241. package/dist/wish/routes.js +11 -1
  242. package/dist/wish/routes.js.map +1 -1
  243. package/dist/wish/run.d.ts +11 -3
  244. package/dist/wish/run.d.ts.map +1 -1
  245. package/dist/wish/run.js +75 -7
  246. package/dist/wish/run.js.map +1 -1
  247. package/dist/wish/taskRemove.js +2 -2
  248. package/dist/wish/taskRemove.js.map +1 -1
  249. package/dist/wish/taskSync.d.ts +1 -1
  250. package/dist/wish/taskSync.d.ts.map +1 -1
  251. package/dist/wish/taskSync.js +3 -3
  252. package/dist/wish/taskSync.js.map +1 -1
  253. package/dist/wish/taskWrite.d.ts.map +1 -0
  254. package/dist/{fetch → wish}/taskWrite.js +2 -2
  255. package/dist/wish/taskWrite.js.map +1 -0
  256. package/dist/wish/tasks.d.ts.map +1 -0
  257. package/dist/{fetch → wish}/tasks.js +2 -2
  258. package/dist/wish/tasks.js.map +1 -0
  259. package/dist/wish/wizards.d.ts +1 -1
  260. package/dist/wish/wizards.d.ts.map +1 -1
  261. package/dist/wish/wizards.js +1 -1
  262. package/dist/wish/wizards.js.map +1 -1
  263. package/package.json +4 -7
  264. package/templates/change_category.html +52 -28
  265. package/templates/init_report.html +15 -14
  266. package/templates/memo_query.html +59 -24
  267. package/templates/receipt.html +97 -27
  268. package/templates/sync_report.html +106 -98
  269. package/templates/wish_complete.html +48 -30
  270. package/templates/wish_plan.html +35 -20
  271. package/dist/fetch/auth.d.ts.map +0 -1
  272. package/dist/fetch/auth.js.map +0 -1
  273. package/dist/fetch/batch.d.ts.map +0 -1
  274. package/dist/fetch/batch.js.map +0 -1
  275. package/dist/fetch/db.d.ts.map +0 -1
  276. package/dist/fetch/db.js.map +0 -1
  277. package/dist/fetch/errors.d.ts.map +0 -1
  278. package/dist/fetch/errors.js.map +0 -1
  279. package/dist/fetch/feishu.d.ts.map +0 -1
  280. package/dist/fetch/feishu.js.map +0 -1
  281. package/dist/fetch/index.d.ts +0 -19
  282. package/dist/fetch/index.d.ts.map +0 -1
  283. package/dist/fetch/index.js +0 -13
  284. package/dist/fetch/index.js.map +0 -1
  285. package/dist/fetch/paths.d.ts.map +0 -1
  286. package/dist/fetch/paths.js.map +0 -1
  287. package/dist/fetch/reminders.d.ts.map +0 -1
  288. package/dist/fetch/reminders.js.map +0 -1
  289. package/dist/fetch/sentinel.d.ts.map +0 -1
  290. package/dist/fetch/sentinel.js.map +0 -1
  291. package/dist/fetch/taskWrite.d.ts.map +0 -1
  292. package/dist/fetch/taskWrite.js.map +0 -1
  293. package/dist/fetch/tasks.d.ts.map +0 -1
  294. package/dist/fetch/tasks.js.map +0 -1
  295. package/dist/policy/category.d.ts.map +0 -1
  296. package/dist/policy/category.js.map +0 -1
  297. package/dist/policy/crud.d.ts.map +0 -1
  298. package/dist/policy/crud.js.map +0 -1
  299. package/dist/policy/index.d.ts +0 -11
  300. package/dist/policy/index.d.ts.map +0 -1
  301. package/dist/policy/index.js +0 -8
  302. package/dist/policy/index.js.map +0 -1
  303. package/dist/policy/media.d.ts.map +0 -1
  304. package/dist/policy/media.js.map +0 -1
  305. package/dist/policy/reminder.d.ts.map +0 -1
  306. package/dist/policy/reminder.js.map +0 -1
  307. package/dist/policy/wakewords.d.ts +0 -14
  308. package/dist/policy/wakewords.d.ts.map +0 -1
  309. package/dist/policy/wakewords.js +0 -68
  310. package/dist/policy/wakewords.js.map +0 -1
  311. package/dist/policy/wish.d.ts.map +0 -1
  312. package/dist/policy/wish.js.map +0 -1
  313. /package/dist/{policy → memo}/category.d.ts +0 -0
  314. /package/dist/{policy → memo}/media.d.ts +0 -0
  315. /package/dist/{fetch → shared}/errors.d.ts +0 -0
  316. /package/dist/{fetch → shared}/errors.js +0 -0
  317. /package/dist/{fetch → sync}/auth.d.ts +0 -0
  318. /package/dist/{fetch → sync}/feishu.d.ts +0 -0
  319. /package/dist/{fetch → wish}/taskWrite.d.ts +0 -0
  320. /package/dist/{fetch → wish}/tasks.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/remind/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAK7C,0CAA0C;AAC1C,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAejF;AAiCD,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CA4BnF"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/remind/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAmBhD,0CAA0C;AAC1C,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CA8DjF;AAuCD,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAkEnF"}
@@ -1,24 +1,86 @@
1
1
  import { fail } from '../shared/exit.js';
2
- import { addReminderRow, getNote, listReminderRows } from '../fetch/db.js';
3
- import { checkDueReminders, listCompletedReminders } from '../fetch/reminders.js';
4
- import { needId, normalizeRemindAt, normalizeRepeatType, normalizeRepeatRule } from '../policy/index.js';
2
+ import { addReminderRow, getNote, listReminderRows } from '../db/readonly.js';
3
+ import { checkDueReminders, listCompletedReminders } from './store.js';
4
+ import { needId } from '../shared/validators.js';
5
+ import { toRows } from '../shared/rows.js';
6
+ import { normalizeRemindAt, normalizeRepeatType, normalizeRepeatRule } from './policy.js';
7
+ import { buildListPage, buildReceiptPage, querySnapshot } from '../render/index.js';
8
+ /** 本条命令的**两格产物**(册子 seq 16/17):一个视图,两种页。
9
+ * 词随它服务的 HELP 场景住(#855 口径),故场景 id 由调用它的路由声明给;不带即「看提醒」那一格。 */
10
+ const SCENE_REMINDERS_ACTIVE = 'memo_reminders_active';
11
+ const SCENE_COMPLETED = 'memo_completed_reminders';
12
+ function sceneOf(params) {
13
+ const s = params.scene;
14
+ if (s === SCENE_COMPLETED)
15
+ return SCENE_COMPLETED;
16
+ if (s === undefined || s === '' || s === SCENE_REMINDERS_ACTIVE)
17
+ return SCENE_REMINDERS_ACTIVE;
18
+ fail(2, 'scene 只认 ' + SCENE_REMINDERS_ACTIVE + '/' + SCENE_COMPLETED);
19
+ }
5
20
  /** `memo.remind`:提醒四视图(到期/已完成/有效/已废弃)。 */
6
21
  export function runRemind(params, db) {
7
- // 到期判定(老 `due`):读+写 notified,定时壳不搬。
22
+ // 到期判定(老 `due`):读+写 notified,定时壳不搬。**到期这一支不出页**——册子本域只有两格
23
+ // (seq 16「看提醒」/seq 17「查已提醒备忘」),到期是壳里的触发视图,等 #834 收口时另判。
8
24
  if (params.mode === 'due' || params.due === true) {
9
25
  const items = checkDueReminders(db);
10
26
  return { data: { items, total: items.length }, exit: 0 };
11
27
  }
12
- // 已完成视图(老 `completed`);`done:true` 是它的兼容写法。
28
+ // 已完成视图(老 `completed`):提醒行 + 它带出来的打卡笔记 + 触发时间(`listCompletedReminders`)。
13
29
  if (params.mode === 'done' || params.done === true) {
14
30
  const items = listCompletedReminders(db);
15
- return { data: { items, total: items.length }, exit: 0 };
31
+ const snap = querySnapshot(toRows(items));
32
+ return {
33
+ data: { items, total: items.length },
34
+ exit: 0,
35
+ deliver: buildListPage({
36
+ scene: SCENE_COMPLETED,
37
+ title: '查已提醒备忘',
38
+ subtitle: items.length === 0
39
+ ? '还没有「已触发并打了卡」的提醒'
40
+ : '已被打卡带回的提醒 ' + items.length + ' 条',
41
+ summary: snap.summary,
42
+ sections: snap.sections,
43
+ copyLog: {
44
+ thinking: '已触发提醒视图 · 提醒行经打卡笔记的 reminder_id 反查(老 completed_reminders 口径)',
45
+ data_structure: 'reminders 表 × notes 表(category=打卡)· reminder_content/checkin_content/checkin_at/period',
46
+ call_chain: 'memo.remind done:true → listCompletedReminders → querySnapshot → buildListPage(memo_query) → deliver 钩子落盘',
47
+ exception: '无',
48
+ },
49
+ items,
50
+ }),
51
+ };
16
52
  }
17
53
  const status = params.status === undefined ? 'active' : String(params.status);
18
54
  if (status !== 'active' && status !== 'dismissed')
19
55
  fail(2, 'status 只认 active/dismissed');
20
56
  const items = listReminderRows(db, status);
21
- return { data: { items, total: items.length }, exit: 0 };
57
+ const snap = querySnapshot(toRows(items));
58
+ const scene = sceneOf(params);
59
+ return {
60
+ data: { items, total: items.length },
61
+ exit: 0,
62
+ deliver: buildListPage({
63
+ scene,
64
+ title: '看提醒',
65
+ subtitle: items.length === 0
66
+ ? (status === 'active' ? '没有有效提醒' : '没有已废弃提醒')
67
+ : (status === 'active' ? '有效期内的提醒 ' : '已废弃的提醒 ') + items.length + ' 条',
68
+ summary: snap.summary,
69
+ sections: snap.sections,
70
+ copyLog: {
71
+ // #858:看提醒页的状态说明补上**已废弃语义与废弃调用形**——「废弃提醒」这条唤醒词已退役
72
+ // (#842 Q②),能力仍在 `memo.remove` 的 `mode:"abandon"` 支上,故调用形要在页内读得到,
73
+ // 不必翻速查表。HELP 交付面写不了这句:那份资产的可见文案闸(`VISIBLE_FORBIDDEN`)禁 `memo.`/`--`。
74
+ thinking: '提醒列表视图 · ' + (status === 'active'
75
+ ? '只看有效(status=active);已废弃=撤下这条提醒、笔记保留,调用形 memo.remove --params \'{"mode":"abandon","id":<提醒 id>}\'(独立废弃支,不经删确认闸)'
76
+ : '只看已废弃(status=dismissed);废弃=提醒撤下、笔记保留,调用形 memo.remove --params \'{"mode":"abandon","id":<提醒 id>}\'(独立废弃支,不经删确认闸)'),
77
+ data_structure: 'reminders 表 · id/note_id/remind_at/repeat_type/repeat_rule/content/status/note_content',
78
+ call_chain: 'memo.remind → listReminderRows → querySnapshot → buildListPage(memo_query) → deliver 钩子落盘',
79
+ exception: '无',
80
+ },
81
+ items,
82
+ }),
83
+ };
22
84
  }
23
85
  // #850 · 提醒写参数(HELP 蛇形为主,驼峰兼容既有 `memo.create` 两步合一):`note_id`/`noteId`/`id`
24
86
  // 三名同义(给了校验存在,不给即独立提醒);`content` 必填;`remind_at`/`remindAt`/`at` 三名同义;
@@ -52,6 +114,11 @@ function reminderTypeRuleOf(params, at) {
52
114
  fail(2, '一次性提醒必须给提醒时间');
53
115
  return { type, rule };
54
116
  }
117
+ /** 提醒状态 → 人话(#876):`reminders.status` 是 `active`/`dismissed` 两个**后端取值**,
118
+ * 印给用户看的要换成中文。两个中文说法取自本域既有的那一套(列表视图副标题写
119
+ * 「有效期内的提醒 N 条」/「已废弃的提醒 N 条」,`src/help/scenes/remind.ts` 的参数说明写
120
+ * 「有效(默认)/已废弃」),不去造第三套词。不认得的取值原样透出,不静默吞掉。 */
121
+ const STATUS_LABEL = { active: '有效', dismissed: '已废弃' };
55
122
  /** `memo.reminder`:给已有笔记加提醒(`note_id` 可选)或建一条独立提醒;只 INSERT,不建笔记。 */
56
123
  export function runReminder(params, db) {
57
124
  const noteId = reminderNoteIdOf(params);
@@ -73,6 +140,43 @@ export function runReminder(params, db) {
73
140
  repeat_rule: rule,
74
141
  content,
75
142
  });
143
+ // #828 · 缺省落「设提醒」那一格(册子 seq 15,通用回执族)。关联笔记时对象行写那条笔记,
144
+ // 独立提醒时写提醒自己——两种都从库里的行取(权威),不照抄入参。
145
+ const note = noteId === null ? null : getNote(db, noteId);
146
+ const deliver = buildReceiptPage({
147
+ scene: 'memo_remind_existing',
148
+ title: '设提醒',
149
+ message: '提醒已设置' + (noteId !== null ? '(笔记 ' + noteId + ')' : '(独立提醒)'),
150
+ badges: { category: note === null ? '独立提醒' : note.category, sub: note === null ? null : note.sub_category },
151
+ summary: [
152
+ // #820 收尾:四格一律「标签:值」;空值不再写「(未定)」这种括号注记,直接写「未定」。
153
+ // #820 收尾:① 第一格改「笔记内容」(原写「对象」,而下面「处理结果」里也有一格「对象」,
154
+ // 同页两个「对象」指两件事);② 独立提醒不再写「(未关联笔记)」这种括号注记。
155
+ note === null ? '笔记内容:无(独立提醒)' : '笔记内容:' + note.content.slice(0, 40),
156
+ '提醒时间:' + (at ?? '未定'),
157
+ '重复:' + type + (rule === null ? '' : '(' + rule + ')'),
158
+ '提醒内容:' + content,
159
+ ],
160
+ sections: [
161
+ // #876 · 这三行原先是库行 dump(`提醒 ID:4`/`状态:active`):`ID` 是**列名裸奔**、
162
+ // `active` 是**后端取值上屏**。改成人话后同两样信息都还在,且 4 号那条提醒仍指代得清。
163
+ { heading: '这条提醒', rows: ['提醒编号:' + row.id, '状态:' + (STATUS_LABEL[row.status] ?? row.status), '写入时间:' + row.created_at] },
164
+ ],
165
+ receipt: {
166
+ entityLabel: note === null ? '提醒' : note.category,
167
+ entityId: note === null ? row.id : note.id,
168
+ local: 'created',
169
+ remote: 'not-applicable',
170
+ remoteId: null,
171
+ },
172
+ copyLog: {
173
+ thinking: '设提醒 · 只 INSERT 提醒行,不建笔记(老 `remind [note_id] --at --content` 口径)',
174
+ data_structure: 'reminders 表 · note_id/remind_at/repeat_type/repeat_rule/content/status',
175
+ call_chain: 'memo.reminder → addReminderRow → buildReceiptPage → fillMemoPage(receipt) → deliver 钩子落盘',
176
+ exception: '无',
177
+ },
178
+ retryPrompt: '若这条提醒不对,请把要改的提醒编号与要改成的样子发我,我废弃旧条重开一条:设提醒',
179
+ });
76
180
  return {
77
181
  data: {
78
182
  ok: true,
@@ -85,6 +189,7 @@ export function runReminder(params, db) {
85
189
  content: row.content,
86
190
  },
87
191
  exit: 0,
192
+ deliver,
88
193
  };
89
194
  }
90
195
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/remind/run.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzG,0CAA0C;AAC1C,MAAM,UAAU,SAAS,CAAC,MAA+B,EAAE,EAAU;IACnE,oCAAoC;IACpC,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC3D,CAAC;IACD,4CAA4C;IAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC3D,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9E,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW;QAAE,IAAI,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC;IACzF,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,4EAA4E;AAC5E,sEAAsE;AACtE,kEAAkE;AAClE,SAAS,gBAAgB,CAAC,MAA+B;IACvD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAClH,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA+B;IACxD,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACjH,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACvE,OAAQ,CAAY,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,YAAY,CAAC,MAA+B;IACnD,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1H,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,IAAI,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;IAC9D,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA+B,EAAE,EAAiB;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;IAC1F,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1I,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IACnD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,WAAW,CAAC,MAA+B,EAAE,EAAU;IACrE,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC;YAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;QAAC,CAAC;IACnE,CAAC;IACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,cAAc,CAAC,EAAE,EAAE;QAC7B,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,IAAI;QACjB,OAAO;KACR,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE;YACJ,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,OAAO,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;YACtF,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB;QACD,IAAI,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/remind/run.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type MemoDb } from './db.js';
1
+ import { type MemoDb } from '../db/readonly.js';
2
2
  export declare const REMIND_ADVANCE_MINUTES = 10;
3
3
  export declare const REMIND_CRON_INTERVAL_MINUTES = 5;
4
4
  export declare const REMIND_GRACE_MINUTES: number;
@@ -27,4 +27,4 @@ export interface CompletedReminder {
27
27
  export declare function listCompletedReminders(db: MemoDb, now?: Date): CompletedReminder[];
28
28
  /** 废弃(老 `dismiss_reminder`):已是 dismissed 即大声失败,不静默。 */
29
29
  export declare function abandonReminder(db: MemoDb, id: number): number;
30
- //# sourceMappingURL=reminders.d.ts.map
30
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/remind/store.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,MAAM,EAEZ,MAAM,mBAAmB,CAAC;AAG3B,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,oBAAoB,QAAmC,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,SAAS,GAAG,OAAO,CAAC;CAC9C;AAqBD;kEACkE;AAClE,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,OAAa,GAAG,WAAW,EAAE,CAoB7E;AAsID,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;sCACsC;AACtC,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,OAAa,GAAG,iBAAiB,EAAE,CA2DxF;AAsBD,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAK9D"}
@@ -3,8 +3,8 @@
3
3
  //
4
4
  // 三条常量照老原文:提前预通知 10 分钟、延后窗口=cron 间隔×2(`memo_cli.py:23-27`)。
5
5
  // `now` 可注入(默认当下):判定是时间的纯函数,测试给定钟面即得确定读数。
6
- import { getReminderRow, listReminderRows, setReminderRow, } from './db.js';
7
- import { MemoFetchError } from './errors.js';
6
+ import { getReminderRow, listReminderRows, setReminderRow, } from '../db/readonly.js';
7
+ import { MemoFetchError } from '../shared/errors.js';
8
8
  export const REMIND_ADVANCE_MINUTES = 10;
9
9
  export const REMIND_CRON_INTERVAL_MINUTES = 5;
10
10
  export const REMIND_GRACE_MINUTES = REMIND_CRON_INTERVAL_MINUTES * 2;
@@ -281,4 +281,4 @@ export function abandonReminder(db, id) {
281
281
  setReminderRow(db, id, { status: 'dismissed' });
282
282
  return id;
283
283
  }
284
- //# sourceMappingURL=reminders.js.map
284
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/remind/store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/render/envelope.ts"],"names":[],"mappings":"AACA,OAAO,EAAmD,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAoBzD,CAAC;AAEF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAIvD;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAatE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAG1D"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/render/envelope.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmD,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAmBzD,CAAC;AAEF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAIvD;AAGD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAatE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAG1D"}
@@ -1,4 +1,6 @@
1
- // 渲染层·envelope(M4):14 联动 key×shape 映射(M1 拆分表 10 条 + #229 的 memo.help.lookup + #665 的 memo.auth + #850 的 memo.init/memo.reminder);key 字符串 P8 落表时冻结,此处只做形状分配与全字段校验。
1
+ // 渲染层·envelope(M4):13 联动 key×shape 映射(各域声明 12 条 + 框架位 memo.help.lookup 一条;
2
+ // 沿革:M1 拆分表 → #229 help.lookup → #665 auth → #850 init/reminder → #858 删掉退役的 memo.stats);
3
+ // key 字符串 P8 落表时冻结,此处只做形状分配与全字段校验。
2
4
  import { createEnvelope, parseEnvelope, parseRegistryKey } from 'base-link-core';
3
5
  import { MemoRenderError } from './errors.js';
4
6
  export const MEMO_KEY_SHAPES = {
@@ -11,7 +13,6 @@ export const MEMO_KEY_SHAPES = {
11
13
  'memo.wish': 'list',
12
14
  'memo.sync': 'receipt',
13
15
  'memo.batch': 'receipt',
14
- 'memo.stats': 'stat',
15
16
  // #229:「备忘录 help」这条主路(照 bill.help.lookup/home.help.lookup 命名)。载荷=域级索引(list 形),
16
17
  // 由出口层 `dispatchHelp` 在**开库之前**装配——本键必须登表,否则出口早期就抛 `ERR 3: 未知联动 key`。
17
18
  'memo.help.lookup': 'list',
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/render/envelope.ts"],"names":[],"mappings":"AAAA,kKAAkK;AAClK,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAqC,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAkC;IAC5D,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,MAAM;IACrB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,MAAM;IACpB,+EAA+E;IAC/E,sEAAsE;IACtE,kBAAkB,EAAE,MAAM;IAC1B,iDAAiD;IACjD,WAAW,EAAE,SAAS;IACtB,gEAAgE;IAChE,wEAAwE;IACxE,WAAW,EAAE,SAAS;IACtB,eAAe,EAAE,SAAS;CAC3B,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,WAAW,GAAG,GAAG,CAAC,CAAC;IACzE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,IAAa;IAC1D,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC;QAAC,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;IAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,SAAS,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAa,EAAE,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,KAAK,GAAG,SAAS,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC;QAAC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,cAAc,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;AACrG,CAAC"}
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/render/envelope.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0FAA0F;AAC1F,mCAAmC;AACnC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAqC,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,eAAe,GAAkC;IAC5D,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,MAAM;IACrB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,SAAS;IACvB,+EAA+E;IAC/E,sEAAsE;IACtE,kBAAkB,EAAE,MAAM;IAC1B,iDAAiD;IACjD,WAAW,EAAE,SAAS;IACtB,gEAAgE;IAChE,wEAAwE;IACxE,WAAW,EAAE,SAAS;IACtB,eAAe,EAAE,SAAS;CAC3B,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,WAAW,GAAG,GAAG,CAAC,CAAC;IACzE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,IAAa;IAC1D,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC;QAAC,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;IAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,SAAS,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IAC9F,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAa,EAAE,CAAC,CAAC;IACvF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CAAC,qBAAqB,EAAE,KAAK,GAAG,SAAS,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC;QAAC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,eAAe,CAAC,kBAAkB,EAAE,cAAc,GAAI,CAAW,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;AACrG,CAAC"}
@@ -12,7 +12,7 @@ function itemHtml(n) {
12
12
  }
13
13
  function listHtml(items) {
14
14
  if (!items.length)
15
- return '<div class="hm-empty">暂无记录</div>';
15
+ return '<div class="ilife-empty">暂无记录</div>';
16
16
  return items.map((x) => itemHtml(x)).join('');
17
17
  }
18
18
  // 按形状渲染 envelope 为 section 页;未知形状(理论不可达)throw 不返空页。
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/render/html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/render/html.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,12 @@ export { MEMO_KEY_SHAPES, memoShapeFor, buildMemoEnvelope, parseMemoEnvelope } f
3
3
  export { MEMO_HTML_MAX_BYTES, escapeHtml, renderEnvelopeHtml, estimateBytes, assertHtmlSize } from './html.js';
4
4
  export { MEMO_TEMPLATES, loadTemplate } from './templates.js';
5
5
  export type { MemoTemplate } from './templates.js';
6
- export { MEMO_PAGE_CSS, MEMO_PAGE_RUNTIME } from './pageAssets.js';
6
+ export { memoPageAssets, memoRuntimeJs } from './memoPageAssets.js';
7
+ export type { MemoPageAssets } from './memoPageAssets.js';
7
8
  export { pageEnvelope, querySnapshot, syncSnapshot, wishPlanSnapshot, wishCompleteSnapshot, changeCategorySnapshot, initSnapshot, fillMemoPage, fillTemplate, } from './pages.js';
8
9
  export type { PageSnapshot, PageCopyLog } from './pages.js';
9
10
  export { buildReceiptPage, RECEIPT_SCENES } from './receipt.js';
10
11
  export type { ReceiptPageInput, ReceiptRows, ReceiptBadges, ReceiptScene } from './receipt.js';
12
+ export { buildListPage, listSectionsOf } from './listPage.js';
13
+ export type { ListPageInput, ListPageScene, PageRow } from './listPage.js';
11
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE/F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -2,10 +2,12 @@ export { MemoRenderError } from './errors.js';
2
2
  export { MEMO_KEY_SHAPES, memoShapeFor, buildMemoEnvelope, parseMemoEnvelope } from './envelope.js';
3
3
  export { MEMO_HTML_MAX_BYTES, escapeHtml, renderEnvelopeHtml, estimateBytes, assertHtmlSize } from './html.js';
4
4
  export { MEMO_TEMPLATES, loadTemplate } from './templates.js';
5
- // #665 D-28:整页填充走共享 filler(`base-paint/fillTemplate`),资产走窄兼容对(`pageAssets.ts`)。
6
- // 自持的两标记填充器(`fillSharedMarkers`)已退役——机制归共享层,不在技能侧另立第二份。
7
- export { MEMO_PAGE_CSS, MEMO_PAGE_RUNTIME } from './pageAssets.js';
5
+ // #665 D-28:整页填充走共享 filler(`base-paint/fillTemplate`);#870 起资产走公共层产出
6
+ // (`memoPageAssets.ts`),自持窄镜像 `pageAssets.ts` 已退役。
7
+ export { memoPageAssets, memoRuntimeJs } from './memoPageAssets.js';
8
8
  export { pageEnvelope, querySnapshot, syncSnapshot, wishPlanSnapshot, wishCompleteSnapshot, changeCategorySnapshot, initSnapshot, fillMemoPage, fillTemplate, } from './pages.js';
9
9
  // #831:「通用回执」页族(34 格里 19 格那一族)的唯一定义地;各域只填槽位。
10
10
  export { buildReceiptPage, RECEIPT_SCENES } from './receipt.js';
11
+ // #828:「列表查询」页族(34 格里 9 格那一族)的唯一定义地;各域只填槽位。
12
+ export { buildListPage, listSectionsOf } from './listPage.js';
11
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,gFAAgF;AAChF,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,6CAA6C;AAC7C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9D,qEAAqE;AACrE,mDAAmD;AACnD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,6CAA6C;AAC7C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEhE,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type PageSnapshot, type PageCopyLog } from './pages.js';
2
+ import { type PageRow } from '../shared/rows.js';
3
+ /** 本族的场景 id(`src/help/scenes/*.ts` 的 HELP 场景,须真在册子里)。
4
+ * 9 格全列在此:册子 seq 7–13 与 16–17;各域拿 `satisfies readonly ListPageScene[]` 收自己的子集。 */
5
+ export type ListPageScene = 'memo_search_keyword' | 'memo_search_alias' | 'memo_get_detail' | 'memo_search_by_date' | 'memo_search_wish' | 'memo_search_checkin' | 'memo_search_mood' | 'memo_reminders_active' | 'memo_completed_reminders';
6
+ export interface ListPageInput {
7
+ readonly scene: ListPageScene;
8
+ /** 页题(清单一处取:场景主名)。 */
9
+ readonly title: string;
10
+ /** 页内标题旁那句话(如「共 3 条有效期内的提醒」)。 */
11
+ readonly subtitle: string;
12
+ /** 这一趟生效的查询条件(**一条一枚**):屏上落成一排胶囊,不拼进 subtitle 那一句里。
13
+ * #820 收尾加的位:原先「共 N 条,条件:关键词『X』」是一句话里两件事实。 */
14
+ readonly condition?: readonly string[];
15
+ /** 事实条(≤4 条,只放这一次的读数)。 */
16
+ readonly summary: readonly string[];
17
+ readonly sections: PageSnapshot['sections'];
18
+ readonly copyLog: PageCopyLog;
19
+ /** 查询结果的行(原样交给页内筛选与复制区;`memo_query` 读 `payload.data.items`)。 */
20
+ readonly items: readonly object[];
21
+ }
22
+ /** 整页组装:槽位 → 信封(`pageEnvelope`)→ 模板填充(`fillMemoPage`)+ 文件名主体(册子唯一定义)。
23
+ *
24
+ * `memo_query` 模板读的是 `payload.data` 下的 `items`/`meta`/`generated_at`(见模板 `dataRows()`/`snapshotText()`),
25
+ * 故 `items` 由 `extra` 平铺进 `data`;`scene.snapshot` 同时留给页内文本摘要链(与 `wish_plan` 同形)。
26
+ * 库侧落盘由出口的 `deliver` 钩子交给共用件 `base-paint/save-html`(时间戳与独占递补都在那儿)。 */
27
+ export declare function buildListPage(input: ListPageInput): {
28
+ html: string;
29
+ stem: string;
30
+ };
31
+ /** 快照 → 槽位的直通:各族 snapshot 件已经把「读什么数」定死了,本件不再重算一遍。 */
32
+ export declare function listSectionsOf(snapshot: PageSnapshot): PageSnapshot['sections'];
33
+ export type { PageRow };
34
+ //# sourceMappingURL=listPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listPage.d.ts","sourceRoot":"","sources":["../../src/render/listPage.ts"],"names":[],"mappings":"AAaA,OAAO,EAA8B,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEzD;mFACmF;AACnF,MAAM,MAAM,aAAa,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,GACrB,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,GAClB,uBAAuB,GACvB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,sBAAsB;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;mDAC+C;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,0BAA0B;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;uEAIuE;AACvE,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAalF;AAED,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAAC,UAAU,CAAC,CAE/E;AAED,YAAY,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ /** 「列表查询」页族(#828 首建)—— 本族的**唯一定义地**。
2
+ *
3
+ * 族归属出处:`src/help/booklet.ts` 的 `BOOKLET_ROWS`(34 格里本族占 9 格:搜索 5 + 提醒 2 + 单条详情 1 + 别名 1)。
4
+ * `t822-册子冻结.md` §四对本族的约束:**只参数化标题与字段,不单独设计**。所以本件只给
5
+ * 「一份页壳 + 一份槽位契约」,各场景只填槽位、不各写布局。
6
+ *
7
+ * 与 `pages.ts`/`receipt.ts` 的分工:`pages.ts` 管各族的 snapshot(`querySnapshot` 等纯函数),
8
+ * `receipt.ts` 管回执族整页组装,本件管列表查询族整页组装;三边都只调共用件
9
+ * (`fillMemoPage`/`pageEnvelope`),不各立第二份填充机制。
10
+ *
11
+ * 落盘名只经 `bookletFileStem(sceneId)` 取,本件**不自己拼名字**。
12
+ */
13
+ import { bookletFileStem } from '../help/booklet.js';
14
+ import { pageEnvelope, fillMemoPage } from './pages.js';
15
+ import { toRows } from '../shared/rows.js';
16
+ /** 整页组装:槽位 → 信封(`pageEnvelope`)→ 模板填充(`fillMemoPage`)+ 文件名主体(册子唯一定义)。
17
+ *
18
+ * `memo_query` 模板读的是 `payload.data` 下的 `items`/`meta`/`generated_at`(见模板 `dataRows()`/`snapshotText()`),
19
+ * 故 `items` 由 `extra` 平铺进 `data`;`scene.snapshot` 同时留给页内文本摘要链(与 `wish_plan` 同形)。
20
+ * 库侧落盘由出口的 `deliver` 钩子交给共用件 `base-paint/save-html`(时间戳与独占递补都在那儿)。 */
21
+ export function buildListPage(input) {
22
+ const payload = pageEnvelope({
23
+ commandCn: input.title,
24
+ wakeWord: input.title,
25
+ sceneId: input.scene,
26
+ title: input.title,
27
+ summary: [...input.summary],
28
+ sections: [...input.sections],
29
+ copyLog: input.copyLog,
30
+ extra: { items: toRows(input.items), subtitle: input.subtitle, condition: [...(input.condition ?? [])] },
31
+ message: input.subtitle,
32
+ });
33
+ return { html: fillMemoPage('memo_query', payload), stem: bookletFileStem(input.scene) };
34
+ }
35
+ /** 快照 → 槽位的直通:各族 snapshot 件已经把「读什么数」定死了,本件不再重算一遍。 */
36
+ export function listSectionsOf(snapshot) {
37
+ return [...snapshot.sections];
38
+ }
39
+ //# sourceMappingURL=listPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listPage.js","sourceRoot":"","sources":["../../src/render/listPage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAuC,MAAM,YAAY,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAgB,MAAM,mBAAmB,CAAC;AAgCzD;;;;uEAIuE;AACvE,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,MAAM,OAAO,GAAG,YAAY,CAAC;QAC3B,SAAS,EAAE,KAAK,CAAC,KAAK;QACtB,QAAQ,EAAE,KAAK,CAAC,KAAK;QACrB,OAAO,EAAE,KAAK,CAAC,KAAK;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QAC3B,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,EAAE;QACxG,OAAO,EAAE,KAAK,CAAC,QAAQ;KACxB,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3F,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,cAAc,CAAC,QAAsB;IACnD,OAAO,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /** `fillTemplate` 的两个资产槽(与 `TemplateAssets` 的 `sharedCssText`/`sharedHelpersJs` 同名同义)。 */
2
+ export interface MemoPageAssets {
3
+ readonly sharedCssText: string;
4
+ readonly sharedHelpersJs: string;
5
+ }
6
+ /** 备忘录七个数据页的唯一资产产出者。
7
+ *
8
+ * **两处一起给**:只换 CSS 不换运行时=按钮点了没反应(按钮只带 `data-action-id`,激活靠
9
+ * `buildSharedHelpersJs()` 的委派);只换运行时不换 CSS=公共层那条委派产出的 toast 与回执卡无样式。 */
10
+ export declare function memoPageAssets(): MemoPageAssets;
11
+ /** 模板仍在用的页面级全局的源码(裸 JS 文本,`fillTemplate` 按 `ASSET_WRAPPERS` 自己包
12
+ * `<script>`;与 `buildSharedHelpersJs()` 同一条约约定)。**下表是这套全局的全部**——加一个名字就补一行。
13
+ *
14
+ * | 全局 | 谁给的 |
15
+ * |---|---|
16
+ * | `esc` | 五字符转义表与公共层 `esc` 逐值同(`&<>"'` 的映射与序照抄,不自造第二份形状) |
17
+ * | `copyText` / `toast` | 公共层的激活通道:把文案写进 `data-t`,交给已注入的公共层委派(`data-action-id` + `data-t` 两个冻结属性名同源)。**成功提示归公共层**(「已复制/粘贴给 AI」) |
18
+ * | `memoAttachCopyArea` | 页尾接线:把「复制数据/复制日志」两枚按钮的载荷写进 `data-t`(模板末尾调一次;页面自己已写好的载荷让路) |
19
+ * | 空态卡 | 公共层的 `ilife-empty-*` 三件(样式住 `buildStyleSheet()` 的 `emptyState` 区) |
20
+ * | 错误回执卡 | 公共层的 `ilife-error` / `ilife-error-title` / `ilife-error-actions` + `ilife-copy-btn` 家族(样式住 `errorReceipt` 区);三颗按钮各带 `data-action-id` + `data-t`,激活走同一条委派 |
21
+ * | 键值行 | 公共层的 `ilife-block-fact-strip` 三件(一格「标签 + 值」;类名、字号与间距全吃 `pageShapeCss()` 的形状①)——**#878 追加** |
22
+ * | `buildDataText` / `buildLogText` | **本域口径**:`scene.snapshot` 与 `copy_log` 怎么投影成一段可粘贴文本 |
23
+ * | `__hmToastFlush` | 截图与测试清屏用的一次性收尾(不参与页面行为) |
24
+ *
25
+ * **记账(与旧镜像的差异)**:旧镜像自带一套剪贴板降级与自己的 toast 栈、关闭按钮写死
26
+ * `min-height:40px`(改前基线「触摸档 <44px 共 82 处」里的一份);本件不产样式,尺寸一律吃公共层
27
+ * (`ACTION_BAR_DEFAULTS.minHeightPx` = 44)。复制成功的提示文案由公共层给,与旧镜像的
28
+ * 「已复制/粘贴给 AI」同句同字,失败提示走公共层同一条(`复制失败/长按选择文本手动复制`)。
29
+ * **#878 追加**:键值行的页面侧产出者 `factStrip`(只拼公共层类名,不产样式)—— 同步报告页状态卡
30
+ * 与两份向导页页头那三处「生成时间 · 场景」的串,由它落成键值行。 */
31
+ export declare function memoRuntimeJs(): string;
32
+ //# sourceMappingURL=memoPageAssets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoPageAssets.d.ts","sourceRoot":"","sources":["../../src/render/memoPageAssets.ts"],"names":[],"mappings":"AAqBA,0FAA0F;AAC1F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAgCD;;;0EAG0E;AAC1E,wBAAgB,cAAc,IAAI,cAAc,CAK/C;AAED;;;;;;;;;;;;;;;;;;;wCAmBwC;AACxC,wBAAgB,aAAa,IAAI,MAAM,CAiPtC"}