skill-memo-ilife 0.3.1 → 0.3.2

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 (210) hide show
  1. package/SKILL.md +9 -6
  2. package/dist/checkin/routes.d.ts +9 -0
  3. package/dist/checkin/routes.d.ts.map +1 -0
  4. package/dist/checkin/routes.js +29 -0
  5. package/dist/checkin/routes.js.map +1 -0
  6. package/dist/cli/cmd_read.js +68 -254
  7. package/dist/cli/cmd_read.js.map +1 -1
  8. package/dist/cli/health/configRead.d.ts +22 -0
  9. package/dist/cli/health/configRead.d.ts.map +1 -0
  10. package/dist/cli/health/configRead.js +207 -0
  11. package/dist/cli/health/configRead.js.map +1 -0
  12. package/dist/cli/health/index.d.ts +18 -0
  13. package/dist/cli/health/index.d.ts.map +1 -0
  14. package/dist/cli/health/index.js +16 -0
  15. package/dist/cli/health/index.js.map +1 -0
  16. package/dist/cli/health/items.d.ts +19 -0
  17. package/dist/cli/health/items.d.ts.map +1 -0
  18. package/dist/cli/health/items.js +205 -0
  19. package/dist/cli/health/items.js.map +1 -0
  20. package/dist/cli/health/probe.d.ts +33 -0
  21. package/dist/cli/health/probe.d.ts.map +1 -0
  22. package/dist/cli/health/probe.js +194 -0
  23. package/dist/cli/health/probe.js.map +1 -0
  24. package/dist/cli/health.d.ts.map +1 -1
  25. package/dist/cli/health.js +3 -2
  26. package/dist/cli/health.js.map +1 -1
  27. package/dist/cli/keys.d.ts +15 -0
  28. package/dist/cli/keys.d.ts.map +1 -0
  29. package/dist/cli/keys.js +64 -0
  30. package/dist/cli/keys.js.map +1 -0
  31. package/dist/cli/registry.d.ts +10 -0
  32. package/dist/cli/registry.d.ts.map +1 -0
  33. package/dist/cli/registry.js +29 -0
  34. package/dist/cli/registry.js.map +1 -0
  35. package/dist/fetch/db.d.ts +6 -0
  36. package/dist/fetch/db.d.ts.map +1 -1
  37. package/dist/fetch/db.js +19 -0
  38. package/dist/fetch/db.js.map +1 -1
  39. package/dist/fetch/index.d.ts +1 -1
  40. package/dist/fetch/index.d.ts.map +1 -1
  41. package/dist/fetch/index.js +1 -1
  42. package/dist/fetch/index.js.map +1 -1
  43. package/dist/health.d.ts +15 -38
  44. package/dist/health.d.ts.map +1 -1
  45. package/dist/health.js +11 -594
  46. package/dist/health.js.map +1 -1
  47. package/dist/help/booklet.d.ts +49 -0
  48. package/dist/help/booklet.d.ts.map +1 -0
  49. package/dist/help/booklet.js +78 -0
  50. package/dist/help/booklet.js.map +1 -0
  51. package/dist/help/index.d.ts +2 -0
  52. package/dist/help/index.d.ts.map +1 -1
  53. package/dist/help/index.js +1 -0
  54. package/dist/help/index.js.map +1 -1
  55. package/dist/help/lookup.d.ts.map +1 -1
  56. package/dist/help/lookup.js +20 -2
  57. package/dist/help/lookup.js.map +1 -1
  58. package/dist/init/commands.d.ts +11 -0
  59. package/dist/init/commands.d.ts.map +1 -0
  60. package/dist/init/commands.js +13 -0
  61. package/dist/init/commands.js.map +1 -0
  62. package/dist/init/diagnosis.d.ts +43 -0
  63. package/dist/init/diagnosis.d.ts.map +1 -0
  64. package/dist/init/diagnosis.js +88 -0
  65. package/dist/init/diagnosis.js.map +1 -0
  66. package/dist/init/index.d.ts +31 -0
  67. package/dist/init/index.d.ts.map +1 -0
  68. package/dist/init/index.js +14 -0
  69. package/dist/init/index.js.map +1 -0
  70. package/dist/init/page.d.ts +16 -0
  71. package/dist/init/page.d.ts.map +1 -0
  72. package/dist/init/page.js +192 -0
  73. package/dist/init/page.js.map +1 -0
  74. package/dist/init/routes.d.ts +7 -0
  75. package/dist/init/routes.d.ts.map +1 -0
  76. package/dist/init/routes.js +10 -0
  77. package/dist/init/routes.js.map +1 -0
  78. package/dist/init/run.d.ts +12 -0
  79. package/dist/init/run.d.ts.map +1 -0
  80. package/dist/init/run.js +58 -0
  81. package/dist/init/run.js.map +1 -0
  82. package/dist/memo/commands.d.ts +19 -0
  83. package/dist/memo/commands.d.ts.map +1 -0
  84. package/dist/memo/commands.js +44 -0
  85. package/dist/memo/commands.js.map +1 -0
  86. package/dist/memo/index.d.ts +8 -0
  87. package/dist/memo/index.d.ts.map +1 -0
  88. package/dist/memo/index.js +8 -0
  89. package/dist/memo/index.js.map +1 -0
  90. package/dist/memo/routes.d.ts +11 -0
  91. package/dist/memo/routes.d.ts.map +1 -0
  92. package/dist/memo/routes.js +49 -0
  93. package/dist/memo/routes.js.map +1 -0
  94. package/dist/memo/run.d.ts +26 -0
  95. package/dist/memo/run.d.ts.map +1 -0
  96. package/dist/memo/run.js +292 -0
  97. package/dist/memo/run.js.map +1 -0
  98. package/dist/mood/routes.d.ts +9 -0
  99. package/dist/mood/routes.d.ts.map +1 -0
  100. package/dist/mood/routes.js +29 -0
  101. package/dist/mood/routes.js.map +1 -0
  102. package/dist/policy/wakewords.d.ts +1 -1
  103. package/dist/policy/wakewords.d.ts.map +1 -1
  104. package/dist/policy/wakewords.js +16 -3
  105. package/dist/policy/wakewords.js.map +1 -1
  106. package/dist/remind/commands.d.ts +19 -0
  107. package/dist/remind/commands.d.ts.map +1 -0
  108. package/dist/remind/commands.js +21 -0
  109. package/dist/remind/commands.js.map +1 -0
  110. package/dist/remind/index.d.ts +8 -0
  111. package/dist/remind/index.d.ts.map +1 -0
  112. package/dist/remind/index.js +8 -0
  113. package/dist/remind/index.js.map +1 -0
  114. package/dist/remind/routes.d.ts +9 -0
  115. package/dist/remind/routes.d.ts.map +1 -0
  116. package/dist/remind/routes.js +25 -0
  117. package/dist/remind/routes.js.map +1 -0
  118. package/dist/remind/run.d.ts +20 -0
  119. package/dist/remind/run.d.ts.map +1 -0
  120. package/dist/remind/run.js +90 -0
  121. package/dist/remind/run.js.map +1 -0
  122. package/dist/render/envelope.d.ts.map +1 -1
  123. package/dist/render/envelope.js +5 -1
  124. package/dist/render/envelope.js.map +1 -1
  125. package/dist/render/index.d.ts +3 -1
  126. package/dist/render/index.d.ts.map +1 -1
  127. package/dist/render/index.js +3 -1
  128. package/dist/render/index.js.map +1 -1
  129. package/dist/render/pages.d.ts +16 -0
  130. package/dist/render/pages.d.ts.map +1 -1
  131. package/dist/render/pages.js +45 -0
  132. package/dist/render/pages.js.map +1 -1
  133. package/dist/render/receipt.d.ts +37 -0
  134. package/dist/render/receipt.d.ts.map +1 -0
  135. package/dist/render/receipt.js +75 -0
  136. package/dist/render/receipt.js.map +1 -0
  137. package/dist/render/templates.d.ts +1 -1
  138. package/dist/render/templates.d.ts.map +1 -1
  139. package/dist/render/templates.js +3 -1
  140. package/dist/render/templates.js.map +1 -1
  141. package/dist/search/commands.d.ts +19 -0
  142. package/dist/search/commands.d.ts.map +1 -0
  143. package/dist/search/commands.js +22 -0
  144. package/dist/search/commands.js.map +1 -0
  145. package/dist/search/index.d.ts +10 -0
  146. package/dist/search/index.d.ts.map +1 -0
  147. package/dist/search/index.js +10 -0
  148. package/dist/search/index.js.map +1 -0
  149. package/dist/search/routes.d.ts +11 -0
  150. package/dist/search/routes.d.ts.map +1 -0
  151. package/dist/search/routes.js +56 -0
  152. package/dist/search/routes.js.map +1 -0
  153. package/dist/search/run.d.ts +17 -0
  154. package/dist/search/run.d.ts.map +1 -0
  155. package/dist/search/run.js +62 -0
  156. package/dist/search/run.js.map +1 -0
  157. package/dist/shared/commandSpec.d.ts +69 -0
  158. package/dist/shared/commandSpec.d.ts.map +1 -0
  159. package/dist/shared/commandSpec.js +2 -0
  160. package/dist/shared/commandSpec.js.map +1 -0
  161. package/dist/shared/exit.d.ts +10 -0
  162. package/dist/shared/exit.d.ts.map +1 -0
  163. package/dist/shared/exit.js +13 -0
  164. package/dist/shared/exit.js.map +1 -0
  165. package/dist/shared/rows.d.ts +13 -0
  166. package/dist/shared/rows.d.ts.map +1 -0
  167. package/dist/shared/rows.js +3 -0
  168. package/dist/shared/rows.js.map +1 -0
  169. package/dist/sync/commands.d.ts +19 -0
  170. package/dist/sync/commands.d.ts.map +1 -0
  171. package/dist/sync/commands.js +20 -0
  172. package/dist/sync/commands.js.map +1 -0
  173. package/dist/sync/index.d.ts +8 -0
  174. package/dist/sync/index.d.ts.map +1 -0
  175. package/dist/sync/index.js +8 -0
  176. package/dist/sync/index.js.map +1 -0
  177. package/dist/sync/routes.d.ts +8 -0
  178. package/dist/sync/routes.d.ts.map +1 -0
  179. package/dist/sync/routes.js +10 -0
  180. package/dist/sync/routes.js.map +1 -0
  181. package/dist/sync/run.d.ts +16 -0
  182. package/dist/sync/run.d.ts.map +1 -0
  183. package/dist/sync/run.js +44 -0
  184. package/dist/sync/run.js.map +1 -0
  185. package/dist/triggers/routeSpec.d.ts +35 -0
  186. package/dist/triggers/routeSpec.d.ts.map +1 -0
  187. package/dist/triggers/routeSpec.js +2 -0
  188. package/dist/triggers/routeSpec.js.map +1 -0
  189. package/dist/triggers/routes.generated.d.ts +9 -0
  190. package/dist/triggers/routes.generated.d.ts.map +1 -0
  191. package/dist/triggers/routes.generated.js +32 -0
  192. package/dist/triggers/routes.generated.js.map +1 -0
  193. package/dist/wish/commands.d.ts +11 -0
  194. package/dist/wish/commands.d.ts.map +1 -0
  195. package/dist/wish/commands.js +13 -0
  196. package/dist/wish/commands.js.map +1 -0
  197. package/dist/wish/index.d.ts +1 -0
  198. package/dist/wish/index.d.ts.map +1 -1
  199. package/dist/wish/index.js +2 -0
  200. package/dist/wish/index.js.map +1 -1
  201. package/dist/wish/routes.d.ts +12 -0
  202. package/dist/wish/routes.d.ts.map +1 -0
  203. package/dist/wish/routes.js +48 -0
  204. package/dist/wish/routes.js.map +1 -0
  205. package/dist/wish/run.d.ts +13 -0
  206. package/dist/wish/run.d.ts.map +1 -0
  207. package/dist/wish/run.js +57 -0
  208. package/dist/wish/run.js.map +1 -0
  209. package/package.json +3 -3
  210. package/templates/receipt.html +156 -0
package/SKILL.md CHANGED
@@ -41,7 +41,9 @@ memo-cmd-read memo.help.lookup # 说「备忘录 HELP」(
41
41
  <!-- HELP-AUTO-START -->
42
42
  | 唤醒词 | key | shape | 例 |
43
43
  |---|---|---|---|
44
- | 按时间搜备忘 | memo.search | list | `memo-cmd-read memo.search --params '{"timeRange":"2026-09"}'` |
44
+ | 首次使用 | memo.init | receipt | `memo-cmd-read memo.init` |
45
+ | 删备忘 | memo.remove | receipt | `memo-cmd-read memo.remove --params '{"id":"<id>"}'` |
46
+ | 按时间搜备忘 | memo.search | list | `memo-cmd-read memo.search --params '{"start":"2026-07-01","end":"2026-07-07"}'` |
45
47
  | 查已提醒备忘 | memo.remind | list | `memo-cmd-read memo.remind --params '{"done":false}'` |
46
48
  | 批量改分类 | memo.batch | receipt | `memo-cmd-read memo.batch` |
47
49
  | 改子分类 | memo.update | receipt | `memo-cmd-read memo.update --params '{"id":"<id>"}'` |
@@ -50,13 +52,14 @@ memo-cmd-read memo.help.lookup # 说「备忘录 HELP」(
50
52
  | 看备忘 | memo.detail | detail | `memo-cmd-read memo.detail --params '{"id":"<id>"}'` |
51
53
  | 看提醒 | memo.remind | list | `memo-cmd-read memo.remind` |
52
54
  | 查提醒 | memo.remind | list | `memo-cmd-read memo.remind` |
53
- | 设提醒 | memo.create | receipt | `memo-cmd-read memo.create --params '{"remindAt":"2026-10-01 09:00"}'` |
55
+ | 设提醒 | memo.reminder | receipt | `memo-cmd-read memo.reminder --params '{"remind_at":"2026-10-01 09:00"}'` |
54
56
  | 记提醒 | memo.create | receipt | `memo-cmd-read memo.create --params '{"remindAt":"2026-10-01 09:00"}'` |
55
57
  | 废弃提醒 | memo.remove | receipt | `memo-cmd-read memo.remove --params '{"mode":"abandon"}'` |
56
58
  | 完成心愿 | memo.update | receipt | `memo-cmd-read memo.update --params '{"done":true}'` |
57
59
  | 心愿排期 | memo.wish | list | `memo-cmd-read memo.wish` |
58
60
  | 记一条 | memo.create | receipt | `memo-cmd-read memo.create` |
59
61
  | 添加笔记 | memo.create | receipt | `memo-cmd-read memo.create` |
62
+ | 备忘录同步 | memo.sync | receipt | `memo-cmd-read memo.sync` |
60
63
  | 记心愿 | memo.create | receipt | `memo-cmd-read memo.create --params '{"category":"心愿"}'` |
61
64
  | 记打卡 | memo.create | receipt | `memo-cmd-read memo.create --params '{"category":"打卡"}'` |
62
65
  | 记情绪日记 | memo.create | receipt | `memo-cmd-read memo.create --params '{"category":"情绪日记"}'` |
@@ -66,11 +69,11 @@ memo-cmd-read memo.help.lookup # 说「备忘录 HELP」(
66
69
  | 改心愿 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"心愿","id":"<id>"}'` |
67
70
  | 改打卡 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"打卡","id":"<id>"}'` |
68
71
  | 改情绪日记 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"情绪日记","id":"<id>"}'` |
69
- | 删心愿 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"心愿","id":"<id>"}'` |
70
- | 删打卡 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"打卡","id":"<id>"}'` |
71
- | 删情绪日记 | memo.update | receipt | `memo-cmd-read memo.update --params '{"category":"情绪日记","id":"<id>"}'` |
72
+ | 删心愿 | memo.remove | receipt | `memo-cmd-read memo.remove --params '{"category":"心愿","id":"<id>"}'` |
73
+ | 删打卡 | memo.remove | receipt | `memo-cmd-read memo.remove --params '{"category":"打卡","id":"<id>"}'` |
74
+ | 删情绪日记 | memo.remove | receipt | `memo-cmd-read memo.remove --params '{"category":"情绪日记","id":"<id>"}'` |
72
75
 
73
- 相关场景:memo.auth、memo.batch、memo.create、memo.detail、memo.help.lookup、memo.remind、memo.remove、memo.search、memo.stats、memo.sync、memo.update、memo.wish(12 联动,key 字符串 P8 落表时冻结)。
76
+ 相关场景:memo.auth、memo.batch、memo.create、memo.detail、memo.help.lookup、memo.init、memo.remind、memo.reminder、memo.remove、memo.search、memo.stats、memo.sync、memo.update、memo.wish(14 联动,key 字符串 P8 落表时冻结)。
74
77
  <!-- HELP-AUTO-END -->
75
78
 
76
79
  ## HELP 交付(说「备忘录 HELP」走这里,不分大小写)
@@ -0,0 +1,9 @@
1
+ /** 打卡域 · 路由声明(一个唤醒词一条记录;`order` 是全表顺序权威)。
2
+ *
3
+ * 本域**没有自己的命令键**:记/删/改打卡三条走备忘域的 `memo.create`/`memo.remove`/`memo.update`
4
+ *(键的事实住 `src/memo/commands.ts`)。词随它服务的 HELP 场景住本件——这就是本域在 #855 里的全部交付;
5
+ * 命令实现与页面的活归各属主域与 #830(本件不重复那份事实)。
6
+ */
7
+ import type { RouteDecl } from '../triggers/routeSpec.js';
8
+ export declare const CHECKIN_ROUTES: readonly RouteDecl[];
9
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/checkin/routes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EA2B9C,CAAC"}
@@ -0,0 +1,29 @@
1
+ export const CHECKIN_ROUTES = [
2
+ {
3
+ order: 21,
4
+ wakeWord: '记打卡',
5
+ scene: 'memo_add_checkin',
6
+ key: 'memo.create',
7
+ cli: 'memo-cmd-read memo.create --params \'{"title":"跑步5公里","category":"打卡"}\'',
8
+ preset: { category: '打卡' },
9
+ },
10
+ {
11
+ order: 22,
12
+ wakeWord: '删打卡',
13
+ scene: 'memo_delete_checkin',
14
+ key: 'memo.remove',
15
+ cli: 'memo-cmd-read memo.remove --params \'{"id":1,"confirm":true}\'',
16
+ needs: ['id'],
17
+ preset: { category: '打卡' },
18
+ },
19
+ {
20
+ order: 23,
21
+ wakeWord: '改打卡',
22
+ scene: 'memo_update_checkin',
23
+ key: 'memo.update',
24
+ cli: 'memo-cmd-read memo.update --params \'{"id":1,"body":"跑步5公里"}\'',
25
+ needs: ['id'],
26
+ preset: { category: '打卡' },
27
+ },
28
+ ];
29
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/checkin/routes.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,cAAc,GAAyB;IAClD;QACE,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,kBAAkB;QACzB,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE,0EAA0E;QAC/E,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC3B;IACD;QACE,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,qBAAqB;QAC5B,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE,gEAAgE;QACrE,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC3B;IACD;QACE,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,qBAAqB;QAC5B,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE,gEAAgE;QACrE,KAAK,EAAE,CAAC,IAAI,CAAC;QACb,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC3B;CACF,CAAC"}
@@ -5,24 +5,33 @@
5
5
  import { existsSync } from 'node:fs';
6
6
  import { basename, dirname, join, resolve } from 'node:path';
7
7
  import { saveHtmlFile, helpReuseWindowOf } from 'base-paint/save-html';
8
- import { openMemoDb, closeMemoDb, listNotes, getNote, searchNotes, abandonReminder, checkDueReminders, listCompletedReminders, listReminderRows, countReminderRowsOfNote, collectBatchItems, countNotesByCategory, applyBatchCategory, authStatus, runSentinel, MemoFetchError, } from '../fetch/index.js';
8
+ // #855:复制区载荷的装配与信封取形(`buildDataText`/`buildLogText`/`MemoCopyEnvelope` 位)随 `memo.init`
9
+ // 一起搬进 `src/init/run.ts`——只有那条命令在用,不留第二份。
10
+ import { openMemoDb, closeMemoDb, MemoFetchError, } from '../fetch/index.js';
9
11
  import { LARK_WEBSITE_LINE } from '../fetch/feishu.js';
10
- import { normalizeTop, normalizeSub, needId, normalizeMediaPath, crudCreate, crudUpdate, crudRemove } from '../policy/index.js';
11
- // #661:心愿类的对外面——记/改/删/批量排期四条写命令与反向对账都经这一个门(`src/wish/index.ts`)。
12
- // #665:完成心愿走原子转换(`completeWish`,老 `complete-wish`);排期/完成向导收集走 `wizards`。
13
- import { dueForCategory, dueMatches, ensureWish, updateWish, removeWish, setWishDue, reconcileWishes, completeWish, planWizard, completeWizard } from '../wish/index.js';
14
- import { memoShapeFor, buildMemoEnvelope, renderEnvelopeHtml, assertHtmlSize, fillMemoPage, pageEnvelope, wishPlanSnapshot, wishCompleteSnapshot, changeCategorySnapshot, syncSnapshot, MemoRenderError } from '../render/index.js';
12
+ // #855:参数校验口径(`crud*`/`normalize*`/`needId`)随备忘域命令一起搬进 `src/memo/run.ts`;
13
+ // 本件只剩开库前分派与交付装配,不再直接做域校验。
14
+ // #855:跨域的写侧合成(`reconcileWishes`)随 `memo.sync` 一起搬进 `src/sync/run.ts`;
15
+ // 本件只剩开库前分派与交付装配,不再直调域实现。
16
+ // #855:**命令登记查表**——各域自己的声明(`src/<域>/commands.ts`)由生成器汇成本表;命中即走该域的运行件。
17
+ import { REGISTRY } from './registry.js';
18
+ // #855:行适配已无人用本件这份(`toRows` 随 `memo.batch` 搬进 `src/memo/run.ts`,出口侧交付件不拼行)。
19
+ import { fail } from '../shared/exit.js';
20
+ import { memoShapeFor, buildMemoEnvelope, renderEnvelopeHtml, assertHtmlSize, MemoRenderError } from '../render/index.js';
15
21
  import { buildMemoHelpFileData, renderMemoHelpHtml } from '../help/helpFile.js';
16
22
  import { buildHelpSceneIndex } from '../help/sceneData.js';
17
23
  import { buildHelpLookup } from '../help/index.js';
18
24
  import { helpHtmlDirName, helpFileStem, lookupFileStem } from '../help/manifest.js';
25
+ // #855:产物名主体(`bookletFileStem`)与诊断读取/两页装配(`INIT_SCENE_ID`/`readInitDiagnosis`/
26
+ // `InitInputError`/`renderInitPage`/`InitPageMode`)随 `memo.sync`/`memo.init` 搬进各自的域——
27
+ // 本件只剩开库前分派与交付装配。
19
28
  import { resolveDbDir, dbFilename } from '../fetch/paths.js';
20
29
  import { isConfigKey, runConfigKey } from './config.js';
21
30
  // #706 · 配置体检:设置页专用的一条只读命令,同走「进分派层之前拦下」这条口(判据住 src/health.ts)。
22
31
  import { isHealthCheckKey, runHealthCheckKey } from './health.js';
23
32
  import { MemoPolicyError } from '../fetch/errors.js';
24
33
  const DEFAULT_TIMEOUT_MS = 30000;
25
- function fail(code, msg) { console.error('ERR ' + code + ': ' + msg); process.exit(code); }
34
+ // #855:失败约定(`fail`)提到共用位 `src/shared/exit.ts`——出口与各域运行件同一档退出码。
26
35
  function toast(msg) { console.error('TOAST: ' + msg); }
27
36
  function preflight() {
28
37
  const v = process.versions.node.split('.').map(Number);
@@ -145,256 +154,55 @@ function dispatchHelp(params, dbPath) {
145
154
  };
146
155
  }
147
156
  function ok(data) { return { data, exit: 0 }; }
148
- function asIds(value) {
149
- if (!Array.isArray(value) || value.length === 0)
150
- fail(2, 'ids 须为非空数组');
151
- return value.map((v) => needId(v, 'ids'));
152
- }
153
- const toRows = (xs) => xs.map((x) => ({ ...x }));
157
+ // #855:`asIds` 随 `memo.update`/`memo.batch` 一起搬进 `src/memo/run.ts`——只有备忘域在用,不留第二份。
158
+ // #855:`noteIdOfMessage`/`receiptOptsOf`/`buildReceipt` 随 `memo.create`/`memo.update`/`memo.remove`
159
+ // 一起搬进 `src/memo/run.ts`——只有备忘域在用,不留第二份。
160
+ // #855:行适配(`toRows`/`PageRow`)已提到共用位 `src/shared/rows.ts`——出口与各域运行件共用一份。
161
+ // #855:区间参数的三件校验(`needRangeDate`/`rangeLimitOf`/`categoryFilterOf`)随 `memo.search`
162
+ // 一起搬进 `src/search/run.ts`——只有那一条命令在用,不留第二份。
163
+ // #855:提醒写参数的四件解析(`reminderNoteIdOf`/`reminderContentOf`/`reminderAtOf`/
164
+ // `reminderTypeRuleOf`)随 `memo.reminder` 一起搬进 `src/remind/run.ts`——只有那一条命令在用,不留第二份。
165
+ // #855:删分层三件解析(`deleteIdsOf`/`deleteConfirmOf`/`deleteWithRemindersOf`)随 `memo.remove`
166
+ // 一起搬进 `src/memo/run.ts`——只有那一条命令在用,不留第二份。
167
+ // #833:初始化渲染的入参读取(老 `init-report --data` 契约)已搬到本域能力目录
168
+ // —— `readInitDiagnosis`(`src/init/diagnosis.ts`,坏输入抛 `InitInputError`,`dispatchInit` 认它归 exit 2)。
169
+ // 放在本件的旧实现(`initDiagOf`)连同 `init_report` 那套自持页一起退役:一条命令的事实只住它自己的能力目录。
154
170
  function dispatch(key, params, db) {
171
+ // #855:**先查登记表**——已搬迁的域把自己的命令声明在 `src/<域>/commands.ts`,生成物 `registry.ts`
172
+ // 汇成一张表,命中即调该域的运行件;没搬的键落下面的 switch(搬迁每落一域,switch 就少一段)。
173
+ const spec = REGISTRY[key];
174
+ if (spec !== undefined)
175
+ return spec.kind === 'pre-open' ? spec.run(params) : spec.run(params, db);
155
176
  switch (key) {
156
- case 'memo.search': {
157
- const items = params.q !== undefined
158
- ? searchNotes(db, String(params.q), { category: params.category, sub: params.sub })
159
- : listNotes(db).filter((n) => (params.category === undefined || n.category === params.category));
160
- const hit = items.filter((n) => dueMatches(n, params));
161
- return ok({ items: hit, total: hit.length });
162
- }
163
- case 'memo.detail': return ok({ item: getNote(db, needId(params.id, '详情')) });
164
- case 'memo.create': {
165
- const c = crudCreate(params);
166
- const top = normalizeTop(params.category);
167
- const sub = normalizeSub(params.sub);
168
- const media = params.media !== undefined ? normalizeMediaPath(params.media) : null;
169
- const r = ensureWish(db, {
170
- title: c.title,
171
- body: c.body,
172
- category: top,
173
- sub,
174
- media,
175
- remindAt: params.remindAt,
176
- repeatType: params.repeatType,
177
- repeatRule: params.repeatRule,
178
- due: params.due,
179
- });
180
- return { data: r.receipt, exit: r.exit };
181
- }
182
- case 'memo.update': {
183
- // 批量排期(老 `set-due`):一批 id + 一个排期日期(空值=清期),走心愿那条合成写。
184
- if (params.ids !== undefined) {
185
- const r = setWishDue(db, { ids: asIds(params.ids), due: params.due });
186
- return { data: r.receipt, exit: r.exit };
187
- }
188
- const id = crudUpdate(params).id;
189
- // 完成心愿走原子转换(老 `complete-wish`:删心愿 + 生成打卡;`content` 即打卡内容,缺省拷贝心愿原文)。
190
- if (params.done === true) {
191
- const r = completeWish(db, { id, content: params.content });
192
- return { data: r.receipt, exit: r.exit };
193
- }
194
- if (params.done !== undefined)
195
- fail(2, 'done 只认 true(完成心愿);改字段另给参数');
196
- const patch = {};
197
- if (params.title !== undefined || params.body !== undefined) {
198
- const t = typeof params.title === 'string' ? params.title.trim() : '';
199
- const b = typeof params.body === 'string' ? params.body.trim() : '';
200
- if (!t && !b)
201
- fail(2, '正文不可改成空');
202
- patch.content = b !== '' ? b : t !== '' ? t : getNote(db, id).content;
203
- }
204
- if (params.category !== undefined)
205
- patch.category = normalizeTop(params.category);
206
- if (params.sub !== undefined)
207
- patch.sub_category = normalizeSub(params.sub);
208
- if (params.media !== undefined)
209
- patch.media_path = normalizeMediaPath(params.media);
210
- if (params.reminderId !== undefined)
211
- patch.reminder_id = needId(params.reminderId, '关联提醒');
212
- // 老实现没有「改提醒时间」这一路:提醒时间定盘即不可改,错了废弃重建,大声失败不静默。
213
- if (params.remindAt !== undefined)
214
- fail(2, '提醒时间不可改(废弃旧提醒、重建一条)');
215
- if (params.due !== undefined)
216
- patch.due = dueForCategory(patch.category ?? getNote(db, id).category, params.due);
217
- if (Object.keys(patch).length === 0)
218
- fail(2, '至少需要提供一个更新字段:content/category/sub/media/reminderId/due');
219
- const r = updateWish(db, { id, patch });
220
- return { data: r.receipt, exit: r.exit };
221
- }
222
- case 'memo.remove': {
223
- // 废弃提醒(老 `dismiss`):按提醒 id 标 dismissed,笔记保留。
224
- if (params.mode === 'abandon') {
225
- const rid = needId(params.id, '废弃提醒');
226
- abandonReminder(db, rid);
227
- return ok({ ok: true, message: '提醒已废弃(笔记保留):' + rid });
228
- }
229
- const r = crudRemove(params);
230
- // 老 `delete`:有关联提醒必须显式级联(`--with-reminders`),否则大声失败;
231
- // 有未触发提醒时的二次确认是交互动作,出口非交互,改显式参数一次讲清。
232
- const related = countReminderRowsOfNote(db, r.id);
233
- if (related > 0 && params.withReminders !== true) {
234
- fail(2, '笔记 ' + r.id + ' 关联 ' + related + ' 个提醒,请加 withReminders:true 级联删除(提醒不会被自动删除)');
235
- }
236
- // #661 · C 口径:默认照老「远端标完成」,显式 `purge:true` 才连飞书任务一起删(两种语义用参数讲清)。
237
- const w = removeWish(db, r.id, params.purge === true);
238
- return { data: w.receipt, exit: w.exit };
239
- }
240
- case 'memo.remind': {
241
- // 到期判定(老 `due`):读+写 notified,定时壳不搬。
242
- if (params.mode === 'due' || params.due === true) {
243
- const items = checkDueReminders(db);
244
- return ok({ items, total: items.length });
245
- }
246
- // 已完成视图(老 `completed`);`done:true` 是它的兼容写法。
247
- if (params.mode === 'done' || params.done === true) {
248
- const items = listCompletedReminders(db);
249
- return ok({ items, total: items.length });
250
- }
251
- const status = params.status === undefined ? 'active' : String(params.status);
252
- if (status !== 'active' && status !== 'dismissed')
253
- fail(2, 'status 只认 active/dismissed');
254
- const items = listReminderRows(db, status);
255
- return ok({ items, total: items.length });
256
- }
257
- case 'memo.wish': {
258
- // #665 向导:`wizard: plan` 出排期向导页(默认全勾选),`wizard: complete` 出完成向导页(默认不勾选);
259
- // 不带即老形状(只回列表,#661 行为)。
260
- if (params.wizard === 'plan' || params.wizard === 'complete') {
261
- if (params.wizard === 'plan') {
262
- const w = planWizard(db, { ids: params.ids, all: params.all, suggestDue: params.suggestDue });
263
- const snap = wishPlanSnapshot(toRows(w.items), w.suggestDue, w.includeAll);
264
- const message = '找到 ' + w.items.length + ' 个心愿' + (w.includeAll ? '(含已排期)' : '(仅未排期)');
265
- const payload = pageEnvelope({
266
- commandCn: '心愿排期', wakeWord: '心愿排期', sceneId: 'wish-batch-plan',
267
- title: snap.title, summary: snap.summary, sections: snap.sections,
268
- copyLog: {
269
- thinking: '过程型向导 · 只读收集心愿列表,勾选+填排期后复制指令回 AI(HTML 不写库)',
270
- data_structure: "notes 表(category='心愿')· id/content/category/sub_category/due/feishu_task_guid",
271
- call_chain: 'memo.wish wizard:plan → render_wish_plan → 共享 filler',
272
- exception: '无',
273
- },
274
- extra: { items: w.items, suggest_due: w.suggestDue, all: w.includeAll },
275
- message,
276
- });
277
- return {
278
- data: { items: w.items, total: w.items.length, suggestDue: w.suggestDue, all: w.includeAll },
279
- exit: 0,
280
- deliver: { html: fillMemoPage('wish_plan', payload), stem: '心愿排期向导' },
281
- };
282
- }
283
- const w = completeWizard(db, { ids: params.ids, onlyOverdue: params.onlyOverdue, all: params.all, content: params.content });
284
- const snap = wishCompleteSnapshot(toRows(w.items));
285
- const message = '找到 ' + w.items.length + ' 个心愿' + (w.onlyOverdue ? '(仅未排期+已过期)' : '');
286
- const payload = pageEnvelope({
287
- commandCn: '心愿完成', wakeWord: '完成心愿', sceneId: 'wish-complete',
288
- title: snap.title, summary: snap.summary, sections: snap.sections,
289
- copyLog: {
290
- thinking: '过程型向导 · 勾选+填打卡内容后复制指令回 AI(completeWish 原子转换)',
291
- data_structure: "notes 表(category='心愿')· id/content/due/feishu_task_guid",
292
- call_chain: 'memo.wish wizard:complete → render_wish_complete → 共享 filler',
293
- exception: '无',
294
- },
295
- extra: { items: w.items, default_content: w.defaultContent, only_overdue: w.onlyOverdue },
296
- message,
297
- });
298
- return {
299
- data: { items: w.items, total: w.items.length, defaultContent: w.defaultContent, onlyOverdue: w.onlyOverdue },
300
- exit: 0,
301
- deliver: { html: fillMemoPage('wish_complete', payload), stem: '心愿完成向导' },
302
- };
303
- }
304
- const items = listNotes(db).filter((n) => n.category === '心愿').filter((n) => dueMatches(n, params));
305
- return ok({ items, total: items.length });
306
- }
307
- case 'memo.sync': {
308
- // #661:反向对账三步(本地缺标识补建/远端完成→本地/远端改期→本地),回执带 11 项统计。
309
- // #665:同步报告页随行(#661 遗留 HELP 承诺,出页归这一支)。
310
- const r = reconcileWishes(db);
311
- const snap = syncSnapshot(r.receipt);
312
- const payload = pageEnvelope({
313
- commandCn: '备忘录同步', wakeWord: '备忘录同步', sceneId: 'sync-from-feishu',
314
- title: snap.title, summary: snap.summary, sections: snap.sections,
315
- copyLog: {
316
- thinking: '双向对账 · 飞书 done/due 反向同步到本机(只读扫描 + 有变更才写)',
317
- data_structure: 'reconcile 11 项统计(backfilled/synced/due_*/skipped_*/errors)',
318
- call_chain: 'memo.sync → reconcileWishes → render_sync_report → 共享 filler',
319
- exception: r.receipt.errors.length ? r.receipt.errors.join('; ') : '无',
320
- },
321
- extra: { ...r.receipt },
322
- message: r.receipt.message,
323
- });
324
- return { data: r.receipt, exit: r.exit, deliver: { html: fillMemoPage('sync_report', payload), stem: '同步报告' } };
325
- }
326
- case 'memo.batch': {
327
- // #665 批量改分类:不带目标分类即收集(出向导页);带目标分类+ids 即执行。
328
- const from = params.fromCategory !== undefined ? normalizeTop(params.fromCategory) : null;
329
- const to = params.toCategory !== undefined ? normalizeTop(params.toCategory) : null;
330
- if (from !== null && to !== null && from === to)
331
- fail(2, '原分类与目标分类相同:' + from);
332
- // 执行(老 `update-category` 逐条):目标分类+一批 id;只给目标分类不给 id 即收集预览。
333
- if (params.ids !== undefined) {
334
- if (to === null)
335
- fail(2, '执行改分类须给 toCategory(只收集不执行时别给 ids)');
336
- const r = applyBatchCategory(db, asIds(params.ids), to);
337
- const doneAll = r.errors.length === 0;
338
- return {
339
- data: {
340
- ok: doneAll,
341
- message: '改分类完成:更新=' + r.updated + ',跳过=' + r.skipped,
342
- updated: r.updated,
343
- skipped: r.skipped,
344
- errors: r.errors,
345
- },
346
- exit: doneAll ? 0 : 4,
347
- };
348
- }
349
- const items = collectBatchItems(db, from);
350
- const snap = changeCategorySnapshot(toRows(items), from, to);
351
- const message = "原分类 '" + (from ?? '<全部>') + "' 下 " + items.length + ' 条笔记';
352
- const payload = pageEnvelope({
353
- commandCn: '批量改分类', wakeWord: '备忘改分类', sceneId: 'batch-update-category',
354
- title: snap.title, summary: snap.summary, sections: snap.sections,
355
- copyLog: {
356
- thinking: '过程型向导 · 勾选后复制改分类指令回 AI(只改顶层分类,sub_category 不动)',
357
- data_structure: 'notes 表 · id/content/category/sub_category/media_path/due',
358
- call_chain: 'memo.batch → render_change_category → 共享 filler',
359
- exception: '无',
360
- },
361
- extra: { items, from_category: from, to_category: to, target_conflict_count: to ? countNotesByCategory(db, to) : 0 },
362
- message,
363
- });
364
- return {
365
- data: { ok: true, message, items, total: items.length, fromCategory: from, toCategory: to },
366
- exit: 0,
367
- deliver: { html: fillMemoPage('change_category', payload), stem: '批量改分类' },
368
- };
369
- }
370
- case 'memo.auth': {
371
- // #760 起只剩只读诊断:`status`(授权状态)/`diag`(任务域自检 sentinel,显式才跑,零写)。
372
- // 授权三支(`init`/`qr`/`poll`)随 `lark.cliPath` 删键退役(定稿 #759:授权交由复制安装指引那段
373
- // prompt,内容见 `memo.config.read` 回执的 `lark.prompt`);「飞书授权」唤醒词同步退役。
374
- const step = params.step === undefined ? 'status' : String(params.step);
375
- if (step === 'status') {
376
- return ok({ ok: true, message: '授权状态', step: 'status', ...authStatus() });
377
- }
378
- if (step === 'diag') {
379
- // #666 自检 sentinel(D-03 任务半场):显式才跑;默认四步不碰它,零写。
380
- const r = runSentinel(params.dryRun === true ? { dryRun: true } : undefined);
381
- return { data: r.receipt, exit: r.exit };
382
- }
383
- fail(2, 'step 只认 status/diag(授权引导 init/qr/poll 已退役:完整安装指引见 memo.config.read 回执的 lark.prompt)');
384
- return ok(null);
385
- }
386
- case 'memo.stats': {
387
- const all = listNotes(db);
388
- const metrics = { count: all.length };
389
- for (const n of all)
390
- metrics['cat.' + n.category] = (metrics['cat.' + n.category] || 0) + 1;
391
- return ok({ metrics });
392
- }
177
+ // #855:`memo.search`/`memo.detail` 已搬回 `src/search/`(声明住 `search/commands.ts`,运行件住 `search/run.ts`),
178
+ // 上面那张登记查表先命中它们——这两条 case 已删。**别再长回来**:加命令改的是自己域里的声明。
179
+ // #855:`memo.create` 已搬回 `src/memo/`(声明住 `memo/commands.ts`,运行件住 `memo/run.ts`),
180
+ // 上面那张登记查表先命中它——本条 case 已删。**别再长回来**。
181
+ // #855:`memo.update` 已搬回 `src/memo/`(声明住 `memo/commands.ts`,运行件住 `memo/run.ts`),
182
+ // 上面那张登记查表先命中它——本条 case 已删。**别再长回来**。
183
+ // #855:`memo.remove` 已搬回 `src/memo/`(声明住 `memo/commands.ts`,运行件住 `memo/run.ts`),
184
+ // 上面那张登记查表先命中它——本条 case 已删。**别再长回来**。
185
+ // #855:`memo.remind`/`memo.reminder` 已搬回 `src/remind/`(声明住 `remind/commands.ts`,
186
+ // 运行件住 `remind/run.ts`),上面那张登记查表先命中它们——这两条 case 已删。
187
+ // #855:`memo.wish` 已搬回 `src/wish/`(声明住 `wish/commands.ts`,运行件住 `wish/run.ts`)——
188
+ // 上面那张登记查表先命中它,本 case 已删。**别再长回来**:加命令改的是自己域里的声明。
189
+ // #855:`memo.sync` 已搬回 `src/sync/`(声明住 `sync/commands.ts`,运行件住 `sync/run.ts`),
190
+ // 上面那张登记查表先命中它——本条 case 已删。**别再长回来**。
191
+ // #855:`memo.batch` 已搬回 `src/memo/`(声明住 `memo/commands.ts`,运行件住 `memo/run.ts`),
192
+ // 上面那张登记查表先命中它——本条 case 已删。**别再长回来**。
193
+ // #855:`memo.auth` 已搬回 `src/sync/`(声明住 `sync/commands.ts`,运行件住 `sync/run.ts`),
194
+ // 上面那张登记查表先命中它——本条 case 已删。**别再长回来**。
195
+ // #855:`memo.stats` 已搬回 `src/memo/`(声明住 `memo/commands.ts`,运行件住 `memo/run.ts`),
196
+ // 上面那张登记查表先命中它——本条 case 已删。**别再长回来**。
393
197
  // #229:本键由 `dispatchHelp` 在**开库之前**处理(只读页不建库);走到这里说明 main 的路由被改坏了。
394
198
  // 照 skill-bill/src/cli/cmd_read.ts:449-451 的同一道内部断言——防的是「改回无条件开库」这个静默回退。
395
199
  case 'memo.help.lookup':
396
200
  fail(1, '内部错误:memo.help.lookup 须走 dispatchHelp(开库之前)');
397
201
  return ok(null);
202
+ // #850:本键由 `dispatchInit` 在**开库之前**处理(只渲染不建库;库不存在时也能跑);走到这里同上。
203
+ case 'memo.init':
204
+ fail(1, '内部错误:memo.init 须走 dispatchInit(开库之前)');
205
+ return ok(null);
398
206
  default:
399
207
  fail(3, '未知 memo key:' + key);
400
208
  return ok(null);
@@ -471,16 +279,22 @@ async function main() {
471
279
  try {
472
280
  // #229:`memo.help.lookup` 在**开库之前**分派(只读页不建库);其余键照旧走 dispatch。
473
281
  // #665:开的是老库文件(直连,不建库);用完即关,失败也关。
282
+ // #855:开库前分派统一走登记表——`pre-open` 类的命令(今天只有 `memo.init`,声明住 `src/init/commands.ts`)
283
+ // 在开库之前调,库不存在时也能跑;`memo.help.lookup` 的交付装配仍走框架位 `dispatchHelp`(HELP 面,不进域门)。
474
284
  const help = o.key === 'memo.help.lookup' ? dispatchHelp(params, dbPath) : null;
285
+ const pre = o.key === 'memo.help.lookup' ? undefined : REGISTRY[o.key];
475
286
  let db = null;
476
287
  let out;
477
288
  try {
478
- if (help === null) {
479
- db = openMemoDb(dbPath);
480
- out = dispatch(o.key, params, db);
289
+ if (help !== null) {
290
+ out = { data: help.data, exit: 0 };
291
+ }
292
+ else if (pre !== undefined && pre.kind === 'pre-open') {
293
+ out = pre.run(params);
481
294
  }
482
295
  else {
483
- out = { data: help.data, exit: 0 };
296
+ db = openMemoDb(dbPath);
297
+ out = dispatch(o.key, params, db);
484
298
  }
485
299
  }
486
300
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"cmd_read.js","sourceRoot":"","sources":["../../src/cli/cmd_read.ts"],"names":[],"mappings":";AACA,0FAA0F;AAC1F,uEAAuE;AACvE,mCAAmC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAsC,MAAM,sBAAsB,CAAC;AAC3G,OAAO,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChI,iEAAiE;AACjE,yEAAyE;AACzE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzK,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpO,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,+DAA+D;AAC/D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAEjC,SAAS,IAAI,CAAC,IAAY,EAAE,GAAW,IAAW,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClH,SAAS,KAAK,CAAC,GAAW,IAAU,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAErE,SAAS,SAAS;IAChB,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAAE,IAAI,CAAC,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,OAAO,CAAC,MAA+B,EAAE,IAAY;IAC5D,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACpE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,sFAAsF;AACtF,EAAE;AACF,0FAA0F;AAC1F,uEAAuE;AACvE,iEAAiE;AACjE,2DAA2D;AAC3D,kEAAkE;AAClE,6DAA6D;AAC7D,yEAAyE;AACzE,+DAA+D;AAC/D,2CAA2C;AAC3C,EAAE;AACF,0DAA0D;AAC1D,kGAAkG;AAClG,oEAAoE;AACpE,mEAAmE;AACnE,MAAM,cAAc,GAAG,MAAe,CAAC;AAQvC;;;kCAGkC;AAClC,MAAM,eAAe,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE7D;2EAC2E;AAC3E,SAAS,SAAS,CAAC,MAAc,EAAE,IAAY;IAC7C,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;wCAWwC;AACxC,SAAS,eAAe,CAAC,KAKxB;IACC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,YAAY,CAAC;QAClB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;QACtB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;KACxF,CAAC,CAAC;AACL,CAAC;AAED;mEACmE;AACnE,SAAS,eAAe,CAAC,MAAc;IACrC,IAAI,CAAC;QAAC,OAAO,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AAChF,CAAC;AAED,mEAAmE;AACnE,SAAS,gBAAgB;IACvB,OAAO,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,EAAE,EAAE,CAAC,CAAC,MAAM;QACZ,KAAK,EAAE,CAAC,CAAC,GAAG;QACZ,QAAQ,EAAE,CAAC,CAAC,GAAG;QACf,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,MAA+B,EAAE,MAAc;IACnE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,IAAI,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;IACrF,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ;QAAE,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,eAAe,CAAC,CAAC;IAC1F,oEAAoE;IACpE,8DAA8D;IAC9D,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;IAC5E,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QACjC,OAAO;YACL,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpD,OAAO,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE;SAClE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,qBAAqB,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,mBAAmB,EAAE,CAAC,OAAO,EAAE,CAAC;QAC3D,IAAI,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,GAAG,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,6DAA6D;IAC7D,OAAO;QACL,IAAI,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;QACxD,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE;KACtE,CAAC;AACJ,CAAC;AASD,SAAS,EAAE,CAAC,IAAa,IAAiB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAErE,SAAS,KAAK,CAAC,KAAc;IAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAID,MAAM,MAAM,GAAG,CAAC,EAAqB,EAAa,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAI,CAAa,EAAE,CAAC,CAAC,CAAC;AAE5F,SAAS,QAAQ,CAAC,GAAW,EAAE,MAA+B,EAAE,EAAU;IACxE,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,SAAS;gBAClC,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAA8B,EAAE,GAAG,EAAE,MAAM,CAAC,GAAyB,EAAE,CAAC;gBAC/H,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnG,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACnF,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE;gBACvB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,GAAG;gBACb,GAAG;gBACH,KAAK;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,GAAG,EAAE,MAAM,CAAC,GAAG;aAChB,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,oDAAoD;YACpD,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,CAAC;YACD,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACjC,oEAAoE;YACpE,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC5D,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC;YACrE,MAAM,KAAK,GAAc,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5D,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;oBAAE,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBACjC,KAAK,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC;YACxE,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClF,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBAAE,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5E,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,KAAK,CAAC,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpF,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;gBAAE,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC3F,6CAA6C;YAC7C,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAAE,IAAI,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;YAClE,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBAAE,KAAK,CAAC,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACjH,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,IAAI,CAAC,CAAC,EAAE,wDAAwD,CAAC,CAAC;YACvG,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACxC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,6CAA6C;YAC7C,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACtC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBACzB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAC7B,qDAAqD;YACrD,qCAAqC;YACrC,MAAM,OAAO,GAAG,uBAAuB,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;gBACjD,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,GAAG,OAAO,GAAG,4CAA4C,CAAC,CAAC;YAC1F,CAAC;YACD,gEAAgE;YAChE,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,oCAAoC;YACpC,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;gBACpC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,4CAA4C;YAC5C,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC;gBACzC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9E,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW;gBAAE,IAAI,CAAC,CAAC,EAAE,4BAA4B,CAAC,CAAC;YACzF,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,yEAAyE;YACzE,wBAAwB;YACxB,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;oBAC9F,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC3E,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACvF,MAAM,OAAO,GAAG,YAAY,CAAC;wBAC3B,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB;wBAC/D,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACjE,OAAO,EAAE;4BACP,QAAQ,EAAE,4CAA4C;4BACtD,cAAc,EAAE,+EAA+E;4BAC/F,UAAU,EAAE,sDAAsD;4BAClE,SAAS,EAAE,GAAG;yBACf;wBACD,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE;wBACvE,OAAO;qBACR,CAAC,CAAC;oBACH,OAAO;wBACL,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE;wBAC5F,IAAI,EAAE,CAAC;wBACP,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACtE,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7H,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnD,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtF,MAAM,OAAO,GAAG,YAAY,CAAC;oBAC3B,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe;oBAC7D,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACjE,OAAO,EAAE;wBACP,QAAQ,EAAE,8CAA8C;wBACxD,cAAc,EAAE,yDAAyD;wBACzE,UAAU,EAAE,8DAA8D;wBAC1E,SAAS,EAAE,GAAG;qBACf;oBACD,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC,WAAW,EAAE;oBACzF,OAAO;iBACR,CAAC,CAAC;gBACH,OAAO;oBACL,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE;oBAC7G,IAAI,EAAE,CAAC;oBACP,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1E,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACpG,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,mDAAmD;YACnD,wCAAwC;YACxC,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;YAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,OAAO,GAAG,YAAY,CAAC;gBAC3B,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB;gBAClE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACjE,OAAO,EAAE;oBACP,QAAQ,EAAE,0CAA0C;oBACpD,cAAc,EAAE,4DAA4D;oBAC5E,UAAU,EAAE,8DAA8D;oBAC1E,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;iBACvE;gBACD,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE;gBACvB,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO;aAC3B,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QAClH,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,4CAA4C;YAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1F,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpF,IAAI,IAAI,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;gBAAE,IAAI,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;YAC/E,2DAA2D;YAC3D,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,EAAE,KAAK,IAAI;oBAAE,IAAI,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC;gBAC9D,MAAM,CAAC,GAAG,kBAAkB,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;gBACtC,OAAO;oBACL,IAAI,EAAE;wBACJ,EAAE,EAAE,OAAO;wBACX,OAAO,EAAE,WAAW,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO;wBACrD,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,MAAM,EAAE,CAAC,CAAC,MAAM;qBACjB;oBACD,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACtB,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC5E,MAAM,OAAO,GAAG,YAAY,CAAC;gBAC3B,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,uBAAuB;gBACvE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACjE,OAAO,EAAE;oBACP,QAAQ,EAAE,gDAAgD;oBAC1D,cAAc,EAAE,2DAA2D;oBAC3E,UAAU,EAAE,iDAAiD;oBAC7D,SAAS,EAAE,GAAG;iBACf;gBACD,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpH,OAAO;aACR,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC3F,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;aAC3E,CAAC;QACJ,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,8DAA8D;YAC9D,qEAAqE;YACrE,kEAAkE;YAClE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,+CAA+C;gBAC/C,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC7E,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,CAAC,EAAE,qFAAqF,CAAC,CAAC;YAC/F,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YAC1B,MAAM,OAAO,GAA2B,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YAC9D,KAAK,MAAM,CAAC,IAAI,GAAG;gBAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5F,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,mEAAmE;QACnE,yEAAyE;QACzE,KAAK,kBAAkB;YACrB,IAAI,CAAC,CAAC,EAAE,6CAA6C,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB;YAAS,IAAI,CAAC,CAAC,EAAE,cAAc,GAAG,GAAG,CAAC,CAAC;YAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,CAAW;IAC5B,MAAM,CAAC,GAAuG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC7L,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1D,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;YAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC3D,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;YAClD,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC;gBAAE,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACjF,CAAC;;YACI,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,CAAC,CAAC,EAAE,4EAA4E,CAAC,CAAC;IAClG,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC;YAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAAC,CAAC;QACjF,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC7G,CAAC;IACD,gEAAgE;IAChE,sEAAsE;IACtE,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IACD,6DAA6D;IAC7D,kDAAkD;IAClD,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IACD,SAAS,EAAE,CAAC;IACZ,6CAA6C;IAC7C,yCAAyC;IACzC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC;QAAC,MAAM,GAAG,YAAY,EAAE,CAAC;IAAC,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC;QAAC,IAAI,CAAC,CAAC,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAClE,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,CAAC;QAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,IAAI,CAAC,CAAC,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IACjF,KAAK,KAAK,CAAC;IACX,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,wBAAwB,GAAG,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAC3H,KAAK,CAAC,KAAK,EAAE,CAAC;IACd,IAAI,GAAG,GAAoB,IAAI,CAAC;IAChC,IAAI,QAAiC,CAAC;IACtC,4DAA4D;IAC5D,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,CAAC;QACH,+DAA+D;QAC/D,kCAAkC;QAClC,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChF,IAAI,EAAE,GAAkB,IAAI,CAAC;QAC7B,IAAI,GAAgB,CAAC;QACrB,IAAI,CAAC;YACH,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gBACxB,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,EAAE,CAAC;gBACP,IAAI,CAAC;oBACH,WAAW,CAAC,EAAE,CAAC,CAAC;gBAClB,CAAC;gBAAC,MAAM,CAAC;oBACP,gBAAgB;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QACD,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,GAAG,CAAC;QAClB,6EAA6E;QAC7E,MAAM,WAAW,GAAG,GAAW,EAAE;YAC/B,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACvC,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QACF,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,oEAAoE;YACpE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;YAChD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1D,QAAQ,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACrH,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACrC,+DAA+D;YAC/D,QAAQ,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACzH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAClB,QAAQ,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,sDAAsD;QACtD,IAAI,CAAC,YAAY,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,GAAG,GAAG,iBAAiB,GAAG,6DAA6D,CAAC,CAAC;QACzH,CAAC;QACD,IAAI,CAAC,YAAY,cAAc;YAAE,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,eAAe;YAAE,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,YAAY,eAAe;YAAE,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/D,8DAA8D;QAC9D,IAAK,CAA2B,EAAE,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAE,CAA2B,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACtG,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAE,CAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,wDAAwD;QACxD,IAAI,kBAAkB,CAAC,IAAI,CAAE,CAAW,CAAC,OAAO,IAAI,EAAE,CAAC;YAAE,IAAI,CAAC,CAAC,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;QACvF,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,CAAE,CAAW,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;YAAS,CAAC;QAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAClC,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACnF,+DAA+D;IAC/D,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,mCAAmC,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"cmd_read.js","sourceRoot":"","sources":["../../src/cli/cmd_read.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /** 只读解析结果:文件不在/读得出取值与「哪些键真在文件里」/读不出来(报文带行号与文件名)。 */
2
+ export type ConfigRead = {
3
+ readonly kind: 'missing';
4
+ } | {
5
+ readonly kind: 'ok';
6
+ readonly values: Record<string, Record<string, unknown>>;
7
+ readonly present: ReadonlySet<string>;
8
+ } | {
9
+ readonly kind: 'bad';
10
+ readonly message: string;
11
+ };
12
+ /** 只读解析那份配置文件(文件不在时不落默认件,其余口径与配置件同)。 */
13
+ export declare function readMemoConfigReadOnly(): ConfigRead;
14
+ /** 把文件里读到的取值投到默认值表的形状上(缺项补默认值;组内只取默认值表认得的键)。 */
15
+ export declare function projectOnDefaults(values: Record<string, unknown>): Record<string, Record<string, unknown>>;
16
+ /** 取值:一层嵌套按 `组.键` 读(缺层或类型不符回 undefined)。 */
17
+ export declare function readValue(values: Record<string, Record<string, unknown>>, group: string, key: string): unknown;
18
+ /** 有值的字符串(空串=未配,按 `undefined` 处理,语义与各取用处一致)。 */
19
+ export declare function textOf(value: unknown): string;
20
+ /** 「这个值从哪来」:真在文件里写了就是「配置文件」,否则按默认值(文件不存在则全按默认值)。 */
21
+ export declare function sourceOf(present: ReadonlySet<string>, key: string): string;
22
+ //# sourceMappingURL=configRead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configRead.d.ts","sourceRoot":"","sources":["../../../src/cli/health/configRead.ts"],"names":[],"mappings":"AAaA,oDAAoD;AACpD,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAE,GACxH;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,wCAAwC;AACxC,wBAAgB,sBAAsB,IAAI,UAAU,CAYnD;AAkJD,gDAAgD;AAChD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAa1G;AAED,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9G;AAED,gDAAgD;AAChD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE7C;AAED,oDAAoD;AACpD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1E"}