skill-chef 0.3.0 → 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 (227) hide show
  1. package/SKILL.md +2 -2
  2. package/dist/add/commands.d.ts +15 -0
  3. package/dist/add/commands.d.ts.map +1 -0
  4. package/dist/add/commands.js +22 -0
  5. package/dist/add/commands.js.map +1 -0
  6. package/dist/add/index.d.ts +10 -0
  7. package/dist/add/index.d.ts.map +1 -0
  8. package/dist/add/index.js +10 -0
  9. package/dist/add/index.js.map +1 -0
  10. package/dist/add/routes.d.ts +11 -0
  11. package/dist/add/routes.d.ts.map +1 -0
  12. package/dist/add/routes.js +23 -0
  13. package/dist/add/routes.js.map +1 -0
  14. package/dist/add/run-write.d.ts +37 -0
  15. package/dist/add/run-write.d.ts.map +1 -0
  16. package/dist/add/run-write.js +187 -0
  17. package/dist/add/run-write.js.map +1 -0
  18. package/dist/cli/cmd_read.js +32 -289
  19. package/dist/cli/cmd_read.js.map +1 -1
  20. package/dist/cli/config.d.ts +6 -2
  21. package/dist/cli/config.d.ts.map +1 -1
  22. package/dist/cli/config.js +9 -3
  23. package/dist/cli/config.js.map +1 -1
  24. package/dist/cli/keys.d.ts +12 -0
  25. package/dist/cli/keys.d.ts.map +1 -0
  26. package/dist/cli/keys.js +58 -0
  27. package/dist/cli/keys.js.map +1 -0
  28. package/dist/config.d.ts +14 -6
  29. package/dist/config.d.ts.map +1 -1
  30. package/dist/config.js +73 -18
  31. package/dist/config.js.map +1 -1
  32. package/dist/cook/commands.d.ts +13 -0
  33. package/dist/cook/commands.d.ts.map +1 -0
  34. package/dist/cook/commands.js +21 -0
  35. package/dist/cook/commands.js.map +1 -0
  36. package/dist/cook/index.d.ts +9 -0
  37. package/dist/cook/index.d.ts.map +1 -0
  38. package/dist/cook/index.js +9 -0
  39. package/dist/cook/index.js.map +1 -0
  40. package/dist/cook/routes.d.ts +11 -0
  41. package/dist/cook/routes.d.ts.map +1 -0
  42. package/dist/cook/routes.js +35 -0
  43. package/dist/cook/routes.js.map +1 -0
  44. package/dist/cook/run.d.ts +24 -0
  45. package/dist/cook/run.d.ts.map +1 -0
  46. package/dist/cook/run.js +46 -0
  47. package/dist/cook/run.js.map +1 -0
  48. package/dist/data/commands.d.ts +12 -0
  49. package/dist/data/commands.d.ts.map +1 -0
  50. package/dist/data/commands.js +11 -0
  51. package/dist/data/commands.js.map +1 -0
  52. package/dist/data/index.d.ts +9 -0
  53. package/dist/data/index.d.ts.map +1 -0
  54. package/dist/data/index.js +9 -0
  55. package/dist/data/index.js.map +1 -0
  56. package/dist/data/routes.d.ts +12 -0
  57. package/dist/data/routes.d.ts.map +1 -0
  58. package/dist/data/routes.js +19 -0
  59. package/dist/data/routes.js.map +1 -0
  60. package/dist/data/run-query.d.ts +15 -0
  61. package/dist/data/run-query.d.ts.map +1 -0
  62. package/dist/data/run-query.js +73 -0
  63. package/dist/data/run-query.js.map +1 -0
  64. package/dist/fetch/db.d.ts +11 -31
  65. package/dist/fetch/db.d.ts.map +1 -1
  66. package/dist/fetch/db.js +39 -317
  67. package/dist/fetch/db.js.map +1 -1
  68. package/dist/fetch/index.d.ts +7 -1
  69. package/dist/fetch/index.d.ts.map +1 -1
  70. package/dist/fetch/index.js +9 -1
  71. package/dist/fetch/index.js.map +1 -1
  72. package/dist/fetch/paths.d.ts +37 -3
  73. package/dist/fetch/paths.d.ts.map +1 -1
  74. package/dist/fetch/paths.js +59 -8
  75. package/dist/fetch/paths.js.map +1 -1
  76. package/dist/fetch/schema.d.ts +7 -0
  77. package/dist/fetch/schema.d.ts.map +1 -0
  78. package/dist/fetch/schema.js +53 -0
  79. package/dist/fetch/schema.js.map +1 -0
  80. package/dist/health.d.ts.map +1 -1
  81. package/dist/health.js +7 -16
  82. package/dist/health.js.map +1 -1
  83. package/dist/help/manifest.d.ts +12 -5
  84. package/dist/help/manifest.d.ts.map +1 -1
  85. package/dist/help/manifest.js +15 -7
  86. package/dist/help/manifest.js.map +1 -1
  87. package/dist/history/commands.d.ts +32 -0
  88. package/dist/history/commands.d.ts.map +1 -0
  89. package/dist/history/commands.js +32 -0
  90. package/dist/history/commands.js.map +1 -0
  91. package/dist/history/index.d.ts +11 -0
  92. package/dist/history/index.d.ts.map +1 -0
  93. package/dist/history/index.js +9 -0
  94. package/dist/history/index.js.map +1 -0
  95. package/dist/history/routes.d.ts +19 -0
  96. package/dist/history/routes.d.ts.map +1 -0
  97. package/dist/history/routes.js +49 -0
  98. package/dist/history/routes.js.map +1 -0
  99. package/dist/history/run-query.d.ts +13 -0
  100. package/dist/history/run-query.d.ts.map +1 -0
  101. package/dist/history/run-query.js +44 -0
  102. package/dist/history/run-query.js.map +1 -0
  103. package/dist/history/run-record.d.ts +21 -0
  104. package/dist/history/run-record.d.ts.map +1 -0
  105. package/dist/history/run-record.js +71 -0
  106. package/dist/history/run-record.js.map +1 -0
  107. package/dist/relation/commands.d.ts +10 -0
  108. package/dist/relation/commands.d.ts.map +1 -0
  109. package/dist/relation/commands.js +9 -0
  110. package/dist/relation/commands.js.map +1 -0
  111. package/dist/relation/index.d.ts +8 -0
  112. package/dist/relation/index.d.ts.map +1 -0
  113. package/dist/relation/index.js +8 -0
  114. package/dist/relation/index.js.map +1 -0
  115. package/dist/relation/routes.d.ts +10 -0
  116. package/dist/relation/routes.d.ts.map +1 -0
  117. package/dist/relation/routes.js +28 -0
  118. package/dist/relation/routes.js.map +1 -0
  119. package/dist/render/index.d.ts +7 -1
  120. package/dist/render/index.d.ts.map +1 -1
  121. package/dist/render/index.js +9 -1
  122. package/dist/render/index.js.map +1 -1
  123. package/dist/render/views.d.ts +1 -39
  124. package/dist/render/views.d.ts.map +1 -1
  125. package/dist/render/views.js +6 -56
  126. package/dist/render/views.js.map +1 -1
  127. package/dist/search/commands.d.ts +14 -0
  128. package/dist/search/commands.d.ts.map +1 -0
  129. package/dist/search/commands.js +22 -0
  130. package/dist/search/commands.js.map +1 -0
  131. package/dist/search/index.d.ts +9 -0
  132. package/dist/search/index.d.ts.map +1 -0
  133. package/dist/search/index.js +9 -0
  134. package/dist/search/index.js.map +1 -0
  135. package/dist/search/routes.d.ts +11 -0
  136. package/dist/search/routes.d.ts.map +1 -0
  137. package/dist/search/routes.js +59 -0
  138. package/dist/search/routes.js.map +1 -0
  139. package/dist/search/run.d.ts +22 -0
  140. package/dist/search/run.d.ts.map +1 -0
  141. package/dist/search/run.js +105 -0
  142. package/dist/search/run.js.map +1 -0
  143. package/dist/setup/commands.d.ts +10 -0
  144. package/dist/setup/commands.d.ts.map +1 -0
  145. package/dist/setup/commands.js +9 -0
  146. package/dist/setup/commands.js.map +1 -0
  147. package/dist/setup/index.d.ts +8 -0
  148. package/dist/setup/index.d.ts.map +1 -0
  149. package/dist/setup/index.js +8 -0
  150. package/dist/setup/index.js.map +1 -0
  151. package/dist/setup/routes.d.ts +10 -0
  152. package/dist/setup/routes.d.ts.map +1 -0
  153. package/dist/setup/routes.js +16 -0
  154. package/dist/setup/routes.js.map +1 -0
  155. package/dist/shared/command-spec.d.ts +42 -0
  156. package/dist/shared/command-spec.d.ts.map +1 -0
  157. package/dist/shared/command-spec.js +15 -0
  158. package/dist/shared/command-spec.js.map +1 -0
  159. package/dist/shared/slots.d.ts +24 -0
  160. package/dist/shared/slots.d.ts.map +1 -0
  161. package/dist/shared/slots.js +63 -0
  162. package/dist/shared/slots.js.map +1 -0
  163. package/dist/shopping/commands.d.ts +13 -0
  164. package/dist/shopping/commands.d.ts.map +1 -0
  165. package/dist/shopping/commands.js +21 -0
  166. package/dist/shopping/commands.js.map +1 -0
  167. package/dist/shopping/index.d.ts +9 -0
  168. package/dist/shopping/index.d.ts.map +1 -0
  169. package/dist/shopping/index.js +9 -0
  170. package/dist/shopping/index.js.map +1 -0
  171. package/dist/shopping/routes.d.ts +11 -0
  172. package/dist/shopping/routes.d.ts.map +1 -0
  173. package/dist/shopping/routes.js +35 -0
  174. package/dist/shopping/routes.js.map +1 -0
  175. package/dist/shopping/run.d.ts +24 -0
  176. package/dist/shopping/run.d.ts.map +1 -0
  177. package/dist/shopping/run.js +74 -0
  178. package/dist/shopping/run.js.map +1 -0
  179. package/dist/triggers/chef-scenes.d.ts +47 -0
  180. package/dist/triggers/chef-scenes.d.ts.map +1 -0
  181. package/dist/triggers/chef-scenes.js +174 -0
  182. package/dist/triggers/chef-scenes.js.map +1 -0
  183. package/dist/update/commands.d.ts +12 -0
  184. package/dist/update/commands.d.ts.map +1 -0
  185. package/dist/update/commands.js +11 -0
  186. package/dist/update/commands.js.map +1 -0
  187. package/dist/update/index.d.ts +9 -0
  188. package/dist/update/index.d.ts.map +1 -0
  189. package/dist/update/index.js +9 -0
  190. package/dist/update/index.js.map +1 -0
  191. package/dist/update/routes.d.ts +12 -0
  192. package/dist/update/routes.d.ts.map +1 -0
  193. package/dist/update/routes.js +24 -0
  194. package/dist/update/routes.js.map +1 -0
  195. package/dist/update/run-write.d.ts +19 -0
  196. package/dist/update/run-write.d.ts.map +1 -0
  197. package/dist/update/run-write.js +99 -0
  198. package/dist/update/run-write.js.map +1 -0
  199. package/dist/view/commands.d.ts +14 -0
  200. package/dist/view/commands.d.ts.map +1 -0
  201. package/dist/view/commands.js +22 -0
  202. package/dist/view/commands.js.map +1 -0
  203. package/dist/view/index.d.ts +9 -0
  204. package/dist/view/index.d.ts.map +1 -0
  205. package/dist/view/index.js +9 -0
  206. package/dist/view/index.js.map +1 -0
  207. package/dist/view/routes.d.ts +11 -0
  208. package/dist/view/routes.d.ts.map +1 -0
  209. package/dist/view/routes.js +53 -0
  210. package/dist/view/routes.js.map +1 -0
  211. package/dist/view/run.d.ts +13 -0
  212. package/dist/view/run.d.ts.map +1 -0
  213. package/dist/view/run.js +34 -0
  214. package/dist/view/run.js.map +1 -0
  215. package/dist/zzshapeprobe/commands.d.ts +3 -0
  216. package/dist/zzshapeprobe/commands.d.ts.map +1 -0
  217. package/dist/zzshapeprobe/commands.js +3 -0
  218. package/dist/zzshapeprobe/commands.js.map +1 -0
  219. package/dist/zzshapeprobe/index.d.ts +3 -0
  220. package/dist/zzshapeprobe/index.d.ts.map +1 -0
  221. package/dist/zzshapeprobe/index.js +3 -0
  222. package/dist/zzshapeprobe/index.js.map +1 -0
  223. package/dist/zzshapeprobe/routes.d.ts +3 -0
  224. package/dist/zzshapeprobe/routes.d.ts.map +1 -0
  225. package/dist/zzshapeprobe/routes.js +3 -0
  226. package/dist/zzshapeprobe/routes.js.map +1 -0
  227. package/package.json +3 -3
@@ -1,6 +1,12 @@
1
1
  export { ChefFetchError, ChefPolicyError } from './errors.js';
2
2
  export { DEFAULT_DB_FILENAME, dbFilename, resolveDbDir, resolveDbPath } from './paths.js';
3
- export { openChefDb, closeChefDb, addRecipe, addIngredient, addStep, listRecipes, filterRecipes, searchRecipes, getRecipeDetail, deprecateRecipe, updateRecipe, recordHistory, queryHistory, historyStats, buildShoppingList, healthCheck } from './db.js';
3
+ export { openChefDb, closeChefDb, listRecipes, getRecipeDetail, queryHistory, historyStats } from './db.js';
4
+ export { filterRecipes, searchRecipes } from '../search/run.js';
5
+ export { recordHistory } from '../history/run-record.js';
6
+ export { buildShoppingList } from '../shopping/run.js';
7
+ export { healthCheck } from '../data/run-query.js';
8
+ export { addIngredient, addRecipe, addStep } from '../add/run-write.js';
9
+ export { deprecateRecipe, updateRecipe } from '../update/run-write.js';
4
10
  export type { RecipeRow, IngredientRow, StepRow, HistoryRow, HealthIssue, ChefDb } from './db.js';
5
11
  export type { ShoppingItem as ChefShoppingItem } from './db.js';
6
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3P,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAClG,YAAY,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5G,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAClG,YAAY,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
@@ -1,4 +1,12 @@
1
1
  export { ChefFetchError, ChefPolicyError } from './errors.js';
2
2
  export { DEFAULT_DB_FILENAME, dbFilename, resolveDbDir, resolveDbPath } from './paths.js';
3
- export { openChefDb, closeChefDb, addRecipe, addIngredient, addStep, listRecipes, filterRecipes, searchRecipes, getRecipeDetail, deprecateRecipe, updateRecipe, recordHistory, queryHistory, historyStats, buildShoppingList, healthCheck } from './db.js';
3
+ export { openChefDb, closeChefDb, listRecipes, getRecipeDetail, queryHistory, historyStats } from './db.js';
4
+ // #839 搬迁债务(到期=收口票把测试改打域接口后删):下十件的新家在域目录,
5
+ // 本 barrel 只转出、不断言内容(结构纪律铁律五:过渡期旧共用 barrel 对新家内部件的深路径直引用)。
6
+ export { filterRecipes, searchRecipes } from '../search/run.js';
7
+ export { recordHistory } from '../history/run-record.js';
8
+ export { buildShoppingList } from '../shopping/run.js';
9
+ export { healthCheck } from '../data/run-query.js';
10
+ export { addIngredient, addRecipe, addStep } from '../add/run-write.js';
11
+ export { deprecateRecipe, updateRecipe } from '../update/run-write.js';
4
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5G,0CAA0C;AAC1C,2DAA2D;AAC3D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,8 +1,42 @@
1
- /** 库文件名的默认值:=改造前的代码常量 `DB_FILENAME`(配置项 `db.name` 空串即用它)。 */
2
- export declare const DEFAULT_DB_FILENAME = "chef_data.db";
1
+ /** 库文件名(老常量):默认值表里那一项就是唯一定义地,本常量是它的**具名引用**,不是第二份。 */
2
+ export declare const DEFAULT_DB_FILENAME: string;
3
+ /** 产物目录名(`html.dir` 空串时用的默认):同上,具名引用。 */
4
+ export declare const DEFAULT_HTML_DIR: string;
5
+ /** 场景产物根名(`html.sceneDir` 空串时用的默认):同上,具名引用(#766 新增,#796 起面板第 4 只读行显示它)。 */
6
+ export declare const DEFAULT_SCENE_DIR: string;
7
+ /** 库目录算式:`db.dir` 非空即用它,空串=默认数据目录(默认 `~/.ilife/data/`)。
8
+ * 这是「面板上唯一可改的落点」,写盘时那一格写成算出来的绝对路径(见 `src/config.ts`)。 */
9
+ export declare function dbDirOf(dataDir: string, configured: string): string;
10
+ /** 库文件算式(目录 + 文件名)。 */
11
+ export declare function dbFileOf(dbDir: string, name: string): string;
12
+ /** 产物目录算式:`<库目录>/<html.dir 值>`(空串=默认子目录名)——设置页那一行与体检都调它。 */
13
+ export declare function htmlDirOf(dbDir: string, configured: string): string;
14
+ /** 场景产物根算式:`<库目录>/<html.sceneDir 值>`(空串=默认根名)——面板第 4 只读行显示它。
15
+ * 与 `htmlDirOf` 同形(#795 定稿:两行是父子目录,值不动,只把标题分开)。 */
16
+ export declare function sceneDirOf(dbDir: string, configured: string): string;
3
17
  /** 库文件名:配置 `db.name`,空串=默认(`chef_data.db`)。 */
4
18
  export declare function dbFilename(): string;
5
- /** 库目录:配置 `db.dir`,空串=数据目录(`~/.ilife/data/`,`ILIFE_CONFIG_DIR` 可整体接管)。 */
19
+ /** 库目录:配置 `db.dir` 的解析结果。 */
6
20
  export declare function resolveDbDir(): string;
21
+ /** 库文件完整路径(目录不存在即建,`mkdir -p` 语义)。 */
7
22
  export declare function resolveDbPath(filename?: string, dir?: string): string;
23
+ /** 产物目录:配置 `html.dir` 的解析结果(算式见 `htmlDirOf`)。只算路径,落盘归交付那条链。 */
24
+ export declare function resolveHtmlDir(dbDir?: string): string;
25
+ /** 场景产物根:配置 `html.sceneDir` 的解析结果(算式见 `sceneDirOf`)。只算路径。 */
26
+ export declare function resolveSceneDir(dbDir?: string): string;
27
+ /** 一组**解析后的绝对路径**(#796,照 #749 样板):设置页的只读行显示的就是这一组,面板不自己拼路径
28
+ * (#677 冻结的边界)。六家的 `*.config.read` 回执都扩这样一组,每家的格子按自家落点项来;
29
+ * 大厨这一组=面板那 3 行只读 + 生效数据目录(#766 落点后加 `sceneDir` 第 4 格,见 #796 遗留出口)。 */
30
+ export interface ChefResolvedPaths {
31
+ /** 生效数据目录(`db.dir` 非空用它,空=默认落点)——面板上唯一可改的那一项的生效值。 */
32
+ readonly dbDir: string;
33
+ /** 库文件绝对路径。 */
34
+ readonly dbFile: string;
35
+ /** HELP 产物目录绝对路径。 */
36
+ readonly htmlDir: string;
37
+ /** 场景产物根绝对路径(`html.dir` 的父级,标题与 HELP 产物目录区分开)。 */
38
+ readonly sceneDir: string;
39
+ }
40
+ /** 算那一组解析后的绝对路径。**只算路径、不建目录、不写盘**(设置页与体检都能随时调)。 */
41
+ export declare function resolvedChefPaths(): ChefResolvedPaths;
8
42
  //# sourceMappingURL=paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/fetch/paths.ts"],"names":[],"mappings":"AAUA,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAElD,+CAA+C;AAC/C,wBAAgB,UAAU,IAAI,MAAM,CAGnC;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED,wBAAgB,aAAa,CAAC,QAAQ,SAAe,EAAE,GAAG,SAAiB,GAAG,MAAM,CAGnF"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/fetch/paths.ts"],"names":[],"mappings":"AAcA,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,QAA+B,CAAC;AAEhE,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,QAAgC,CAAC;AAE9D,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,QAAqC,CAAC;AAEpE;0DAC0D;AAC1D,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,uBAAuB;AACvB,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D;AAQD,4DAA4D;AAC5D,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;oDACoD;AACpD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,+CAA+C;AAC/C,wBAAgB,UAAU,IAAI,MAAM,CAGnC;AAED,6BAA6B;AAC7B,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED,sCAAsC;AACtC,wBAAgB,aAAa,CAAC,QAAQ,SAAe,EAAE,GAAG,SAAiB,GAAG,MAAM,CAGnF;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,KAAK,SAAiB,GAAG,MAAM,CAE7D;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,KAAK,SAAiB,GAAG,MAAM,CAE9D;AAED;;wEAEwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,eAAe;IACf,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,mDAAmD;AACnD,wBAAgB,iBAAiB,IAAI,iBAAiB,CASrD"}
@@ -1,26 +1,77 @@
1
1
  // 库路径解析:**配置文件的唯一真相**(#695;口径见「配置的存与生效口径裁定」#675 的解决评论)。
2
2
  // 改造前这里读 `SKILLS_DB_PATH`(无默认值、缺失即抛),并按 `CHEF_FORCE_PROD=1` 守「非 tmp 不许写库」;
3
3
  // #695 按用户裁决把两个环境变量**一并删掉**:路径改从 `~/.ilife/chef.yaml` 取,写库边界改由
4
- // 「测试基座强制 `ILIFE_CONFIG_DIR`」(`base-link-core` 的 `CONFIG_TEST_ISOLATION_MISSING`)承担——
4
+ // 家目录注入+生产守卫(`base-link-core` 的 `CONFIG_TEST_ISOLATION_MISSING`,要落到真实家目录即抛)承担——
5
5
  // 把「忘了配」从静默写真实库变成响亮失败。
6
6
  // 老家 db_config._fallback_db_dir(D:/CookHub)TS 线仍有意不继承:拒绝隐式写生产。
7
+ //
8
+ // **#796 起本件是全部落点算式的唯一定义地**(设置页只读行显示的那一组绝对路径由这里算,
9
+ // `src/health.ts` 的体检报告与 `src/help/manifest.ts` 的产物段值都调这里,三处不许走散):
10
+ // 算式一律是**纯函数**(只拼路径、不读配置、不碰盘),读配置只在下面几个 `resolve*` 薄壳里发生。
7
11
  import { mkdirSync } from 'node:fs';
8
12
  import { join } from 'node:path';
9
- import { loadChefConfig } from '../config.js';
10
- /** 库文件名的默认值:=改造前的代码常量 `DB_FILENAME`(配置项 `db.name` 空串即用它)。 */
11
- export const DEFAULT_DB_FILENAME = 'chef_data.db';
13
+ import { CHEF_CONFIG_DEFAULTS, loadChefConfig } from '../config.js';
14
+ /** 库文件名(老常量):默认值表里那一项就是唯一定义地,本常量是它的**具名引用**,不是第二份。 */
15
+ export const DEFAULT_DB_FILENAME = CHEF_CONFIG_DEFAULTS.db.name;
16
+ /** 产物目录名(`html.dir` 空串时用的默认):同上,具名引用。 */
17
+ export const DEFAULT_HTML_DIR = CHEF_CONFIG_DEFAULTS.html.dir;
18
+ /** 场景产物根名(`html.sceneDir` 空串时用的默认):同上,具名引用(#766 新增,#796 起面板第 4 只读行显示它)。 */
19
+ export const DEFAULT_SCENE_DIR = CHEF_CONFIG_DEFAULTS.html.sceneDir;
20
+ /** 库目录算式:`db.dir` 非空即用它,空串=默认数据目录(默认 `~/.ilife/data/`)。
21
+ * 这是「面板上唯一可改的落点」,写盘时那一格写成算出来的绝对路径(见 `src/config.ts`)。 */
22
+ export function dbDirOf(dataDir, configured) {
23
+ return configured !== '' ? configured : dataDir;
24
+ }
25
+ /** 库文件算式(目录 + 文件名)。 */
26
+ export function dbFileOf(dbDir, name) {
27
+ return join(dbDir, name !== '' ? name : DEFAULT_DB_FILENAME);
28
+ }
29
+ /** 目录名配置值 → 目录段:值里带分隔符时按段拼(`cook_html/help` 是两层子目录,不是两处落点)。
30
+ * **不绝对化**:段串保持相对拼在库目录下(#795 定稿)。 */
31
+ function dirSegments(value) {
32
+ return value.split(/[\\/]+/).filter((seg) => seg !== '' && seg !== '.');
33
+ }
34
+ /** 产物目录算式:`<库目录>/<html.dir 值>`(空串=默认子目录名)——设置页那一行与体检都调它。 */
35
+ export function htmlDirOf(dbDir, configured) {
36
+ return join(dbDir, ...dirSegments(configured !== '' ? configured : DEFAULT_HTML_DIR));
37
+ }
38
+ /** 场景产物根算式:`<库目录>/<html.sceneDir 值>`(空串=默认根名)——面板第 4 只读行显示它。
39
+ * 与 `htmlDirOf` 同形(#795 定稿:两行是父子目录,值不动,只把标题分开)。 */
40
+ export function sceneDirOf(dbDir, configured) {
41
+ return join(dbDir, ...dirSegments(configured !== '' ? configured : DEFAULT_SCENE_DIR));
42
+ }
12
43
  /** 库文件名:配置 `db.name`,空串=默认(`chef_data.db`)。 */
13
44
  export function dbFilename() {
14
45
  const name = loadChefConfig().values.db.name;
15
46
  return name === '' ? DEFAULT_DB_FILENAME : name;
16
47
  }
17
- /** 库目录:配置 `db.dir`,空串=数据目录(`~/.ilife/data/`,`ILIFE_CONFIG_DIR` 可整体接管)。 */
48
+ /** 库目录:配置 `db.dir` 的解析结果。 */
18
49
  export function resolveDbDir() {
19
- const dir = loadChefConfig().values.db.dir;
20
- return dir === '' ? loadChefConfig().dataDir : dir;
50
+ const cfg = loadChefConfig();
51
+ return dbDirOf(cfg.dataDir, cfg.values.db.dir);
21
52
  }
53
+ /** 库文件完整路径(目录不存在即建,`mkdir -p` 语义)。 */
22
54
  export function resolveDbPath(filename = dbFilename(), dir = resolveDbDir()) {
23
55
  mkdirSync(dir, { recursive: true });
24
- return join(dir, filename);
56
+ return dbFileOf(dir, filename);
57
+ }
58
+ /** 产物目录:配置 `html.dir` 的解析结果(算式见 `htmlDirOf`)。只算路径,落盘归交付那条链。 */
59
+ export function resolveHtmlDir(dbDir = resolveDbDir()) {
60
+ return htmlDirOf(dbDir, loadChefConfig().values.html.dir);
61
+ }
62
+ /** 场景产物根:配置 `html.sceneDir` 的解析结果(算式见 `sceneDirOf`)。只算路径。 */
63
+ export function resolveSceneDir(dbDir = resolveDbDir()) {
64
+ return sceneDirOf(dbDir, loadChefConfig().values.html.sceneDir);
65
+ }
66
+ /** 算那一组解析后的绝对路径。**只算路径、不建目录、不写盘**(设置页与体检都能随时调)。 */
67
+ export function resolvedChefPaths() {
68
+ const cfg = loadChefConfig();
69
+ const dbDir = resolveDbDir();
70
+ return {
71
+ dbDir,
72
+ dbFile: dbFileOf(dbDir, dbFilename()),
73
+ htmlDir: htmlDirOf(dbDir, cfg.values.html.dir),
74
+ sceneDir: sceneDirOf(dbDir, cfg.values.html.sceneDir),
75
+ };
25
76
  }
26
77
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/fetch/paths.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,2EAA2E;AAC3E,+DAA+D;AAC/D,sFAAsF;AACtF,uBAAuB;AACvB,+DAA+D;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAElD,+CAA+C;AAC/C,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;IAC7C,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC;IAC3C,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAQ,GAAG,UAAU,EAAE,EAAE,GAAG,GAAG,YAAY,EAAE;IACzE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/fetch/paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /** 取数层·建表语句(老家 17 表 schema 对应):DDL 稳定、查询常变,变化频率分层(#839 整包落位票从 db.ts 抽出)。
2
+ *
3
+ * 唯一定义地:开库建表(db.ts openChefDb)与体检门槛(health.ts DB_TABLE_THRESHOLD=17)都以它为准,
4
+ * 不另抄第二份表清单。改表=改这里(本次不改 schema,只搬家)。
5
+ */
6
+ export declare const CHEF_TABLE_DDL: string[];
7
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/fetch/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,cAAc,EAAE,MAAM,EA8ClC,CAAC"}
@@ -0,0 +1,53 @@
1
+ /** 取数层·建表语句(老家 17 表 schema 对应):DDL 稳定、查询常变,变化频率分层(#839 整包落位票从 db.ts 抽出)。
2
+ *
3
+ * 唯一定义地:开库建表(db.ts openChefDb)与体检门槛(health.ts DB_TABLE_THRESHOLD=17)都以它为准,
4
+ * 不另抄第二份表清单。改表=改这里(本次不改 schema,只搬家)。
5
+ */
6
+ export const CHEF_TABLE_DDL = [] = [
7
+ `CREATE TABLE IF NOT EXISTS recipes (id TEXT PRIMARY KEY, name TEXT NOT NULL UNIQUE, description TEXT DEFAULT '', difficulty TEXT DEFAULT '', servings INTEGER DEFAULT 2, total_time_minutes INTEGER DEFAULT 30, status TEXT DEFAULT '未做', photo_url TEXT DEFAULT '', source TEXT DEFAULT '', source_url TEXT DEFAULT '', created_at TEXT DEFAULT '', updated_at TEXT DEFAULT '')`,
8
+ `CREATE INDEX IF NOT EXISTS idx_recipes_name ON recipes(name)`,
9
+ `CREATE INDEX IF NOT EXISTS idx_recipes_difficulty ON recipes(difficulty)`,
10
+ `CREATE INDEX IF NOT EXISTS idx_recipes_status ON recipes(status)`,
11
+ `CREATE TABLE IF NOT EXISTS recipe_categories (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, cuisine_type TEXT DEFAULT '', region TEXT DEFAULT '', country TEXT DEFAULT '', FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
12
+ `CREATE INDEX IF NOT EXISTS idx_recipe_categories_recipe ON recipe_categories(recipe_id)`,
13
+ `CREATE INDEX IF NOT EXISTS idx_recipe_categories_cuisine ON recipe_categories(cuisine_type)`,
14
+ `CREATE TABLE IF NOT EXISTS recipe_seasons (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, season TEXT NOT NULL, FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
15
+ `CREATE INDEX IF NOT EXISTS idx_recipe_seasons_recipe ON recipe_seasons(recipe_id)`,
16
+ `CREATE TABLE IF NOT EXISTS recipe_cooking_methods (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, method TEXT NOT NULL, FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
17
+ `CREATE INDEX IF NOT EXISTS idx_recipe_cooking_methods_recipe ON recipe_cooking_methods(recipe_id)`,
18
+ `CREATE TABLE IF NOT EXISTS recipe_flavors (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, flavor TEXT NOT NULL, FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
19
+ `CREATE INDEX IF NOT EXISTS idx_recipe_flavors_recipe ON recipe_flavors(recipe_id)`,
20
+ `CREATE TABLE IF NOT EXISTS recipe_diet_tags (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, tag TEXT NOT NULL, FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
21
+ `CREATE INDEX IF NOT EXISTS idx_recipe_diet_tags_recipe ON recipe_diet_tags(recipe_id)`,
22
+ `CREATE TABLE IF NOT EXISTS recipe_meal_types (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, meal_type TEXT NOT NULL, FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
23
+ `CREATE INDEX IF NOT EXISTS idx_recipe_meal_types_recipe ON recipe_meal_types(recipe_id)`,
24
+ `CREATE TABLE IF NOT EXISTS ingredients (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, sequence INTEGER DEFAULT 0, name TEXT NOT NULL, category TEXT DEFAULT '', quantity REAL DEFAULT NULL, unit TEXT DEFAULT '', quantity_text TEXT DEFAULT '', is_optional INTEGER DEFAULT 0, substitute TEXT DEFAULT '', FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
25
+ `CREATE INDEX IF NOT EXISTS idx_ingredients_recipe ON ingredients(recipe_id)`,
26
+ `CREATE INDEX IF NOT EXISTS idx_ingredients_name ON ingredients(name)`,
27
+ `CREATE TABLE IF NOT EXISTS cooking_steps (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, sequence INTEGER NOT NULL, action TEXT NOT NULL, duration_minutes INTEGER DEFAULT NULL, heat_level TEXT DEFAULT '', temperature TEXT DEFAULT '', expected_result TEXT DEFAULT '', FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
28
+ `CREATE INDEX IF NOT EXISTS idx_cooking_steps_recipe ON cooking_steps(recipe_id)`,
29
+ `CREATE INDEX IF NOT EXISTS idx_cooking_steps_sequence ON cooking_steps(recipe_id, sequence)`,
30
+ `CREATE TABLE IF NOT EXISTS step_ingredients (id TEXT PRIMARY KEY, step_id TEXT NOT NULL, ingredient_id TEXT NOT NULL, quantity_used REAL DEFAULT NULL, introduced_at TEXT DEFAULT '', unit TEXT DEFAULT '', FOREIGN KEY (step_id) REFERENCES cooking_steps(id) ON DELETE CASCADE, FOREIGN KEY (ingredient_id) REFERENCES ingredients(id) ON DELETE CASCADE)`,
31
+ `CREATE INDEX IF NOT EXISTS idx_step_ingredients_step ON step_ingredients(step_id)`,
32
+ `CREATE INDEX IF NOT EXISTS idx_step_ingredients_ingredient ON step_ingredients(ingredient_id)`,
33
+ `CREATE TABLE IF NOT EXISTS step_techniques (id TEXT PRIMARY KEY, step_id TEXT NOT NULL, recipe_id TEXT NOT NULL, technique_name TEXT NOT NULL, description TEXT DEFAULT '', key_points TEXT DEFAULT '', FOREIGN KEY (step_id) REFERENCES cooking_steps(id) ON DELETE CASCADE, FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
34
+ `CREATE INDEX IF NOT EXISTS idx_step_techniques_step ON step_techniques(step_id)`,
35
+ `CREATE INDEX IF NOT EXISTS idx_step_techniques_recipe ON step_techniques(recipe_id)`,
36
+ `CREATE TABLE IF NOT EXISTS tips (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, step_id TEXT DEFAULT NULL, ingredient_id TEXT DEFAULT NULL, category TEXT DEFAULT '', content TEXT NOT NULL, priority INTEGER DEFAULT 0, FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE, FOREIGN KEY (step_id) REFERENCES cooking_steps(id) ON DELETE SET NULL, FOREIGN KEY (ingredient_id) REFERENCES ingredients(id) ON DELETE SET NULL)`,
37
+ `CREATE INDEX IF NOT EXISTS idx_tips_recipe ON tips(recipe_id)`,
38
+ `CREATE INDEX IF NOT EXISTS idx_tips_step ON tips(step_id)`,
39
+ `CREATE INDEX IF NOT EXISTS idx_tips_ingredient ON tips(ingredient_id)`,
40
+ `CREATE TABLE IF NOT EXISTS recipe_history (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, cook_date TEXT NOT NULL, cook_sequence INTEGER DEFAULT 1, rating REAL DEFAULT NULL, feedback TEXT DEFAULT '', photo TEXT DEFAULT NULL, FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
41
+ `CREATE INDEX IF NOT EXISTS idx_recipe_history_recipe ON recipe_history(recipe_id)`,
42
+ `CREATE INDEX IF NOT EXISTS idx_recipe_history_date ON recipe_history(cook_date)`,
43
+ `CREATE TABLE IF NOT EXISTS background_knowledge (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL UNIQUE, origin_story TEXT DEFAULT '', historical_background TEXT DEFAULT '', cultural_significance TEXT DEFAULT '', FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
44
+ `CREATE INDEX IF NOT EXISTS idx_background_recipe ON background_knowledge(recipe_id)`,
45
+ `CREATE TABLE IF NOT EXISTS recipe_relations (id TEXT PRIMARY KEY, parent_id TEXT NOT NULL, child_id TEXT NOT NULL, relation_type TEXT DEFAULT '', change_summary TEXT DEFAULT '', FOREIGN KEY (parent_id) REFERENCES recipes(id) ON DELETE CASCADE, FOREIGN KEY (child_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
46
+ `CREATE INDEX IF NOT EXISTS idx_recipe_relations_parent ON recipe_relations(parent_id)`,
47
+ `CREATE INDEX IF NOT EXISTS idx_recipe_relations_child ON recipe_relations(child_id)`,
48
+ `CREATE TABLE IF NOT EXISTS cookware (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL, name TEXT NOT NULL, category TEXT DEFAULT '', FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
49
+ `CREATE INDEX IF NOT EXISTS idx_cookware_recipe ON cookware(recipe_id)`,
50
+ `CREATE TABLE IF NOT EXISTS nutrition_info (id TEXT PRIMARY KEY, recipe_id TEXT NOT NULL UNIQUE, serving_size REAL DEFAULT NULL, serving_unit TEXT DEFAULT '', calories INTEGER DEFAULT NULL, protein REAL DEFAULT NULL, fat REAL DEFAULT NULL, carbs REAL DEFAULT NULL, fiber REAL DEFAULT NULL, sodium REAL DEFAULT NULL, FOREIGN KEY (recipe_id) REFERENCES recipes(id) ON DELETE CASCADE)`,
51
+ `CREATE INDEX IF NOT EXISTS idx_nutrition_recipe ON nutrition_info(recipe_id)`,
52
+ ];
53
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/fetch/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAa,EAAE,GAAG;IAC3C,kXAAkX;IAClX,8DAA8D;IAC9D,0EAA0E;IAC1E,kEAAkE;IAClE,8OAA8O;IAC9O,yFAAyF;IACzF,6FAA6F;IAC7F,kLAAkL;IAClL,mFAAmF;IACnF,0LAA0L;IAC1L,mGAAmG;IACnG,kLAAkL;IAClL,mFAAmF;IACnF,iLAAiL;IACjL,uFAAuF;IACvF,wLAAwL;IACxL,yFAAyF;IACzF,+WAA+W;IAC/W,6EAA6E;IAC7E,sEAAsE;IACtE,6UAA6U;IAC7U,iFAAiF;IACjF,6FAA6F;IAC7F,6VAA6V;IAC7V,mFAAmF;IACnF,+FAA+F;IAC/F,iVAAiV;IACjV,iFAAiF;IACjF,qFAAqF;IACrF,6aAA6a;IAC7a,+DAA+D;IAC/D,2DAA2D;IAC3D,uEAAuE;IACvE,mSAAmS;IACnS,mFAAmF;IACnF,iFAAiF;IACjF,qRAAqR;IACrR,qFAAqF;IACrF,sTAAsT;IACtT,uFAAuF;IACvF,qFAAqF;IACrF,oMAAoM;IACpM,uEAAuE;IACvE,8XAA8X;IAC9X,8EAA8E;CAC/E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AA4BA,0BAA0B;AAC1B,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AAED,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,EAAG,EAAW,CAAC;AAc9C,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;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CAYnD;AAqQD,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,gBAAgB,CAoJxD"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AA8BA,0BAA0B;AAC1B,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AAED,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,EAAG,EAAW,CAAC;AAc9C,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;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,UAAU,CAYnD;AAkQD,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,gBAAgB,CAgJxD"}
package/dist/health.js CHANGED
@@ -19,12 +19,12 @@
19
19
  * 同一个 `node:sqlite` 只读读表数),只换本家那份配置表与自有项——读的人一眼认得出是同一条链。
20
20
  */
21
21
  import { existsSync, readdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from 'node:fs';
22
- import { homedir } from 'node:os';
23
22
  import { dirname, join } from 'node:path';
24
23
  import { fileURLToPath } from 'node:url';
25
24
  import { DatabaseSync } from 'node:sqlite';
26
25
  import { configPaths } from 'base-link-core';
27
26
  import { CHEF_CONFIG_DEFAULTS, CHEF_CONFIG_STEM } from './config.js';
27
+ import { dbDirOf, dbFileOf, htmlDirOf } from './fetch/paths.js';
28
28
  /** 库表数门槛:`src/fetch/db.ts` 的建库 DDL 里那 17 张表齐了才算正常(少了报黄:还能用,但缺功能的表要重建)。 */
29
29
  export const DB_TABLE_THRESHOLD = 17;
30
30
  const SKILL = 'chef';
@@ -237,11 +237,6 @@ function textOf(value) {
237
237
  function sourceOf(present, key) {
238
238
  return present.has(key) ? '配置文件' : '默认值';
239
239
  }
240
- /** 目录那一项的形状是**段串**(本家默认 `cook_html/help` 两段),段数与 `src/config.ts` 自己的
241
- * `splitDirSegments` 同一口径。本件不 import 它:health 面与配置面互锁没有好处,而这条规则只有三行。 */
242
- function splitDirSegments(value) {
243
- return value.split(/[\\/]+/).filter((s) => s.length > 0);
244
- }
245
240
  /** 目录能不能写:建一个探针文件再删掉(老技能三家同一套做法)。**不建目录本身**。 */
246
241
  function writeProbe(dir) {
247
242
  const probe = join(dir, '.ilife-health-probe-' + String(process.pid) + '-' + String(Date.now()));
@@ -323,10 +318,7 @@ export function buildChefHealthReport() {
323
318
  const read = readChefConfigReadOnly();
324
319
  const values = read.kind === 'ok' ? read.values : projectOnDefaults({});
325
320
  const present = read.kind === 'ok' ? read.present : new Set();
326
- // ① 配置文件本身:能不能解析;它落在默认位置还是被 ILIFE_CONFIG_DIR 指到别处(只陈述,不评价)。
327
- const defaultConfigFile = join(homedir(), '.ilife', CHEF_CONFIG_STEM + '.yaml');
328
- const relocated = paths.configFile !== defaultConfigFile;
329
- const where = relocated ? '位置被 ILIFE_CONFIG_DIR 指到这里' : '默认位置';
321
+ // ① 配置文件本身:能不能解析(只陈述,不评价)。
330
322
  if (read.kind === 'bad') {
331
323
  items.push({
332
324
  id: 'config.file', title: '配置文件', status: 'red',
@@ -346,14 +338,14 @@ export function buildChefHealthReport() {
346
338
  else {
347
339
  items.push({
348
340
  id: 'config.file', title: '配置文件', status: 'green',
349
- message: '能解析:' + p(paths.configFile) + '(' + where + ')。',
341
+ message: '能解析:' + p(paths.configFile) + '。',
350
342
  action: '',
351
343
  source: '配置文件',
352
344
  });
353
345
  }
354
346
  // ② 数据目录:在不在、能不能写。
355
347
  const dbDirConfigured = textOf(readValue(values, 'db', 'dir'));
356
- const dataDir = dbDirConfigured !== '' ? dbDirConfigured : paths.dataDir;
348
+ const dataDir = dbDirOf(paths.dataDir, dbDirConfigured);
357
349
  const dataDirSource = sourceOf(present, 'db.dir');
358
350
  const dataDirVerdict = dirVerdict(dataDir);
359
351
  items.push({
@@ -371,8 +363,7 @@ export function buildChefHealthReport() {
371
363
  });
372
364
  // ③ 库文件:在不在 + 表数够不够。
373
365
  const dbNameConfigured = textOf(readValue(values, 'db', 'name'));
374
- const dbName = dbNameConfigured !== '' ? dbNameConfigured : String(CHEF_CONFIG_DEFAULTS.db.name);
375
- const dbFile = join(dataDir, dbName);
366
+ const dbFile = dbFileOf(dataDir, dbNameConfigured);
376
367
  const dbSource = sourceOf(present, 'db.name');
377
368
  if (!existsSync(dbFile)) {
378
369
  items.push({
@@ -411,7 +402,7 @@ export function buildChefHealthReport() {
411
402
  }
412
403
  // ④ 产物目录:在不在、能不能写(还没建=绿:交付页面时才落这里,那时自动建)。
413
404
  const htmlDirValue = textOf(readValue(values, 'html', 'dir'));
414
- const htmlDir = join(dataDir, ...splitDirSegments(htmlDirValue !== '' ? htmlDirValue : String(CHEF_CONFIG_DEFAULTS.html.dir)));
405
+ const htmlDir = htmlDirOf(dataDir, htmlDirValue);
415
406
  const htmlVerdict = dirVerdict(htmlDir);
416
407
  const htmlSource = sourceOf(present, 'html.dir');
417
408
  items.push({
@@ -422,7 +413,7 @@ export function buildChefHealthReport() {
422
413
  : htmlVerdict.writable
423
414
  ? '在且能写:' + p(htmlDir) + '。'
424
415
  : '在,但写不进去:' + p(htmlDir) + '(交付会转成内联回执,不再落盘)。',
425
- action: !htmlVerdict.exists || htmlVerdict.writable ? '' : '去掉这个目录的只读属性,或把「HTML 产物目录名」改到别处。',
416
+ action: !htmlVerdict.exists || htmlVerdict.writable ? '' : '去掉这个目录的只读属性;要换目录,编辑配置文件里的 html.dir。',
426
417
  source: htmlSource,
427
418
  });
428
419
  // ⑤ 这个值从哪来:只陈述数据目录与库文件名的来源,不判好坏(六家通用最后一条)。
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAqBrE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAW,CAAC;AAE9C,MAAM,KAAK,GAAG,MAAe,CAAC;AAE9B,+BAA+B;AAC/B,SAAS,WAAW;IAClB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,qCAAqC;AACrC,SAAS,CAAC,CAAC,IAAY;IACrB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAQD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,IAAI,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC;IACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAClD,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;IAChH,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAChE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACzG,CAAC;AAED;;;6CAG6C;AAC7C,SAAS,aAAa,CAAC,MAA+B;IACpD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACf,SAAS;QACX,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAA8B,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,0CAA0C;AAC1C,SAAS,WAAW,CAAC,IAAY,EAAE,IAAY;IAG7C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,oEAAoE;IACpE,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAc,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,MAAM,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;IAC1I,MAAM,UAAU,GAAG,GAAkB,EAAE;QACrC,IAAI,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAA4B,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjG,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,SAAS,GAAG,eAAe,CAAC,CAAC,OAAO,CAAC;QACzE,CAAC;QACD,SAAS,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QAChC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QAChC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,+CAA+C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAW,CAAC;QACjC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC,MAAM,EAAE,8BAA8B,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;YAC1G,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,GAAG,GAAG,cAAc,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAA4B,CAAC;YAC3D,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;YACxH,CAAC;YACD,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;gBACzD,WAAW,GAAG,OAAO,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,IAAI,WAAW,KAAK,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;YACnE,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,GAAG,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;QACjC,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QACrE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YACtD,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACjB,SAAS,GAAG,GAAG,CAAC;YAChB,aAAa,GAAG,MAAM,CAAC;YACvB,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;YACzD,WAAW,GAAG,OAAO,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,KAAK,EAAE;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC/B,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACjE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,+CAA+C;AAC/C,SAAS,WAAW,CAClB,IAAY,EACZ,MAAc,EACd,IAAqF,EACrF,OAAkC;IAElC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC;QACpB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACnB,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;gBACjB,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACzC,GAAG,IAAI,GAAG,CAAC;oBACX,CAAC,IAAI,CAAC,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM;YACR,CAAC;YACD,IAAI,KAAK,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzB,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBAChE,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;YACD,GAAG,IAAI,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YAChD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,GAAG,CAAC,CAAC;YACR,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gDAAgD;AAChD,SAAS,iBAAiB,CAAC,MAA+B;IACxD,MAAM,GAAG,GAA4C,EAAE,CAAC;IACxD,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAChE,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAE,GAA+B,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC,EAAE,CAAC;YAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,KAAK,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAClE,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4CAA4C;AAC5C,SAAS,SAAS,CAAC,MAA+C,EAAE,KAAa,EAAE,GAAW;IAC5F,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,gDAAgD;AAChD,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,oDAAoD;AACpD,SAAS,QAAQ,CAAC,OAA4B,EAAE,GAAW;IACzD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3C,CAAC;AAED;yEACyE;AACzE,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC;AASD,gDAAgD;AAChD,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACjG,IAAI,CAAC;QACH,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,yCAAyC;AACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE9C,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC5E,IAAI,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;YAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACpG,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACpE,CAAC;AAED;mDACmD;AACnD,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE;YACxB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uCAAuC;AACvC,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,EAAE,GAAwB,IAAI,CAAC;IACnC,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,EAA+B,CAAC;QAClH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACrH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,EAAE,EAAE,KAAK,EAAE,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACxE,MAAM,OAAO,GAAwB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;IAE3F,4DAA4D;IAC5D,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC;IAChF,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,KAAK,iBAAiB,CAAC;IACzD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK;YAC/C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,4CAA4C;YACpD,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ;YAClD,OAAO,EAAE,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,aAAa;YAC1D,MAAM,EAAE,2BAA2B;YACnC,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;YACjD,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI;YAC1D,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,eAAe,KAAK,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IACzE,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM;QAC3B,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;QAC5E,OAAO,EAAE,CAAC,cAAc,CAAC,MAAM;YAC7B,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,cAAc,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9F,CAAC,CAAC,cAAc,CAAC,QAAQ;gBACvB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG;gBAC5B,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC,MAAM,GAAG,IAAI;QAClE,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM;YAC5B,CAAC,CAAC,gCAAgC;YAClC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B;QAC9D,MAAM,EAAE,aAAa;KACtB,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACjG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;YAC1C,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;YAChC,MAAM,EAAE,wCAAwC;YAChD,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK;gBAC1C,OAAO,EAAE,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI;gBAC3D,MAAM,EAAE,mCAAmC;gBAC3C,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,GAAG,kBAAkB,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ;gBAC7C,OAAO,EAAE,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC,GAAG,OAAO;gBAC1G,MAAM,EAAE,mCAAmC;gBAC3C,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;gBAC5C,OAAO,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG;gBAChE,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/H,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM;QAC7B,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;QACjF,OAAO,EAAE,CAAC,WAAW,CAAC,MAAM;YAC1B,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,oBAAoB;YAC5C,CAAC,CAAC,WAAW,CAAC,QAAQ;gBACpB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG;gBAC5B,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,mBAAmB;QACnD,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iCAAiC;QAC5F,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,2CAA2C;IAC3C,KAAK,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;QACpD,OAAO,EAAE,QAAQ,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,GAAG,GAAG;cAC3D,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3D,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa;KAClC,CAAC,CAAC;IAEH,mDAAmD;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,KAAK,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ;QACpC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;QACrC,OAAO,EAAE,WAAW;YAClB,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,GAAG;YAChE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,GAAG;QACjC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,4BAA4B;KACxD,CAAC,CAAC;IAEH,sDAAsD;IACtD,qFAAqF;IACrF,6CAA6C;IAC7C,8BAA8B;IAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC;QACT,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM;QACnC,kFAAkF;QAClF,mDAAmD;QACnD,wDAAwD;QACxD,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;QACzC,OAAO,EAAE,eAAe;YACtB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,GAAG,kBAAkB;YAC9C,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,GAAG,+BAA+B;QAC9D,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;KACvD,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;AACvF,CAAC"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,18 @@
1
- /** 落点子目录的默认值(=改造前的代码常量 `HELP_DIR_SEGMENTS` 两段;实测落点
2
- * `D:\2Study\StudyNotes\.db\cook_html\help\`)。配置项 `html.dir` 空串即用它。 */
3
- export declare const DEFAULT_HELP_DIR: "cook_html/help";
1
+ /** 落点子目录的默认值:就是 `src/fetch/paths.ts` 的 `DEFAULT_HTML_DIR`(=改造前的代码常量
2
+ * `HELP_DIR_SEGMENTS` 两段;实测落点 `D:\2Study\StudyNotes\.db\cook_html\help\`)。
3
+ * 本常量是它的**具名引用**,不是第二份。配置项 `html.dir` 空串即用它。 */
4
+ export declare const DEFAULT_HELP_DIR: string;
4
5
  /** 落点子目录的段数组:配置 `html.dir`(空串=默认)拆成段。 */
5
6
  export declare function helpDirSegments(): string[];
6
- /** HELP 文件名主体(配置 `files.help`;产物=`<主体>_<YYYYMMDD_HHMMSS>[_N].html`,`_N` 从 1 起步)。 */
7
+ /** HELP 文件名主体(产物=`<主体>_<YYYYMMDD_HHMMSS>[_N].html`,`_N` 从 1 起步)。
8
+ * **#796 起回代码常量**:配置项 `files.help` 已删(#795 定稿),老配置文件里残留的值走退休键过渡。 */
7
9
  export declare function helpFileStem(): string;
10
+ /** HELP 文件名主体的代码常量(=改造前的老常量,产物名逐字不变)。 */
11
+ export declare const HELP_FILE_STEM: "\u79C1\u5BB6\u5927\u53A8_HELP";
8
12
  /** 速查支的文件名主体:与 HELP 文件**分名**(照 #139 判法——别让用户按一个名字打开到另一个东西)。
9
- * 老家只有 HELP 一支、无老名可循;取名照样板图 #143(记账的 `饼干记账_速查表`)的同一后缀。 */
13
+ * 老家只有 HELP 一支、无老名可循;取名照样板图 #143(记账的 `饼干记账_速查表`)的同一后缀。
14
+ * **#796 起回代码常量**:配置项 `files.lookup` 已删(#795 定稿)。 */
10
15
  export declare function lookupFileStem(): string;
16
+ /** 速查支文件名主体的代码常量(=改造前的老常量,产物名逐字不变)。 */
17
+ export declare const LOOKUP_FILE_STEM: "\u79C1\u5BB6\u5927\u53A8_\u901F\u67E5\u8868";
11
18
  //# sourceMappingURL=manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/help/manifest.ts"],"names":[],"mappings":"AAqBA;wEACwE;AACxE,eAAO,MAAM,gBAAgB,EAAG,gBAAyB,CAAC;AAE1D,yCAAyC;AACzC,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAG1C;AAED,oFAAoF;AACpF,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;2DAC2D;AAC3D,wBAAgB,cAAc,IAAI,MAAM,CAEvC"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/help/manifest.ts"],"names":[],"mappings":"AAsBA;;iDAEiD;AACjD,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AAEjD,yCAAyC;AACzC,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAG1C;AAED;qEACqE;AACrE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,yCAAyC;AACzC,eAAO,MAAM,cAAc,EAAG,+BAAoB,CAAC;AAEnD;;sDAEsD;AACtD,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,uCAAuC;AACvC,eAAO,MAAM,gBAAgB,EAAG,6CAAmB,CAAC"}
@@ -18,21 +18,29 @@
18
18
  * `biscuit_accountant_html/`/`home_manager_html/` 同形),`help/` 子目录保留;文件名主体不变。
19
19
  */
20
20
  import { loadChefConfig, splitDirSegments } from '../config.js';
21
- /** 落点子目录的默认值(=改造前的代码常量 `HELP_DIR_SEGMENTS` 两段;实测落点
22
- * `D:\2Study\StudyNotes\.db\cook_html\help\`)。配置项 `html.dir` 空串即用它。 */
23
- export const DEFAULT_HELP_DIR = 'cook_html/help';
21
+ import { DEFAULT_HTML_DIR } from '../fetch/paths.js';
22
+ /** 落点子目录的默认值:就是 `src/fetch/paths.ts` 的 `DEFAULT_HTML_DIR`(=改造前的代码常量
23
+ * `HELP_DIR_SEGMENTS` 两段;实测落点 `D:\2Study\StudyNotes\.db\cook_html\help\`)。
24
+ * 本常量是它的**具名引用**,不是第二份。配置项 `html.dir` 空串即用它。 */
25
+ export const DEFAULT_HELP_DIR = DEFAULT_HTML_DIR;
24
26
  /** 落点子目录的段数组:配置 `html.dir`(空串=默认)拆成段。 */
25
27
  export function helpDirSegments() {
26
28
  const dir = loadChefConfig().values.html.dir;
27
29
  return splitDirSegments(dir === '' ? DEFAULT_HELP_DIR : dir);
28
30
  }
29
- /** HELP 文件名主体(配置 `files.help`;产物=`<主体>_<YYYYMMDD_HHMMSS>[_N].html`,`_N` 从 1 起步)。 */
31
+ /** HELP 文件名主体(产物=`<主体>_<YYYYMMDD_HHMMSS>[_N].html`,`_N` 从 1 起步)。
32
+ * **#796 起回代码常量**:配置项 `files.help` 已删(#795 定稿),老配置文件里残留的值走退休键过渡。 */
30
33
  export function helpFileStem() {
31
- return loadChefConfig().values.files.help;
34
+ return HELP_FILE_STEM;
32
35
  }
36
+ /** HELP 文件名主体的代码常量(=改造前的老常量,产物名逐字不变)。 */
37
+ export const HELP_FILE_STEM = '私家大厨_HELP';
33
38
  /** 速查支的文件名主体:与 HELP 文件**分名**(照 #139 判法——别让用户按一个名字打开到另一个东西)。
34
- * 老家只有 HELP 一支、无老名可循;取名照样板图 #143(记账的 `饼干记账_速查表`)的同一后缀。 */
39
+ * 老家只有 HELP 一支、无老名可循;取名照样板图 #143(记账的 `饼干记账_速查表`)的同一后缀。
40
+ * **#796 起回代码常量**:配置项 `files.lookup` 已删(#795 定稿)。 */
35
41
  export function lookupFileStem() {
36
- return loadChefConfig().values.files.lookup;
42
+ return LOOKUP_FILE_STEM;
37
43
  }
44
+ /** 速查支文件名主体的代码常量(=改造前的老常量,产物名逐字不变)。 */
45
+ export const LOOKUP_FILE_STEM = '私家大厨_速查表';
38
46
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/help/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhE;wEACwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAyB,CAAC;AAE1D,yCAAyC;AACzC,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7C,OAAO,gBAAgB,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,YAAY;IAC1B,OAAO,cAAc,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED;2DAC2D;AAC3D,MAAM,UAAU,cAAc;IAC5B,OAAO,cAAc,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/help/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD;;iDAEiD;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD,yCAAyC;AACzC,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7C,OAAO,gBAAgB,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED;qEACqE;AACrE,MAAM,UAAU,YAAY;IAC1B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,WAAoB,CAAC;AAEnD;;sDAEsD;AACtD,MAAM,UAAU,cAAc;IAC5B,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,uCAAuC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAmB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /** 历史能力的命令声明(权威源:一条命令的事实只住这里)。
2
+ *
3
+ * 本能力即 HELP 一级分组「历史」。两条命令各管一摊:
4
+ * · `chef.history.record`(会改数据库的命令):记录做菜/补录做菜/改评分三句唤醒词都进这一条;
5
+ * · `chef.history.query`(查询命令):查看历史/查看统计/体检三句唤醒词都进这一条。
6
+ * 处理函数仍在老分派层(`src/cli/cmd_read.ts`),本票只立声明不搬实现——行为不变,
7
+ * 实现下沉由历史域端到端票接走。
8
+ *
9
+ * 字段口径照命令登记纪律形状一:会改数据库的命令不写 `shape`(一律回执形,
10
+ * 那件事实的唯一定义地是生成器合成的 `src/cli/keys.ts`);查询命令写 `shape`。
11
+ * 代表唤醒词与可执行示例须是真词真串:代表词进 `src/policy/wakewords.ts` 的那张表即命中同命令,
12
+ * 示例照 `packages/skill-chef/SKILL.md` 的同命令行照抄。
13
+ */
14
+ import type { EnvelopeShape } from 'base-link-core';
15
+ /** 历史能力一条命令的声明。 */
16
+ export type HistoryCommandSpec = {
17
+ readonly kind: 'read';
18
+ readonly key: string;
19
+ readonly shape: EnvelopeShape;
20
+ readonly title: string;
21
+ readonly wakeWord?: string;
22
+ readonly example: string;
23
+ } | {
24
+ readonly kind: 'write';
25
+ readonly key: string;
26
+ readonly title: string;
27
+ readonly wakeWord?: string;
28
+ readonly example: string;
29
+ };
30
+ /** 历史能力的声明表:恰好导出一个声明数组(生成器只认这一个)。写命令在前、查询命令在后。 */
31
+ export declare const HISTORY_COMMANDS: readonly HistoryCommandSpec[];
32
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/history/commands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,mBAAmB;AACnB,MAAM,MAAM,kBAAkB,GAC1B;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,EAAE,SAAS,kBAAkB,EAgBzD,CAAC"}
@@ -0,0 +1,32 @@
1
+ /** 历史能力的命令声明(权威源:一条命令的事实只住这里)。
2
+ *
3
+ * 本能力即 HELP 一级分组「历史」。两条命令各管一摊:
4
+ * · `chef.history.record`(会改数据库的命令):记录做菜/补录做菜/改评分三句唤醒词都进这一条;
5
+ * · `chef.history.query`(查询命令):查看历史/查看统计/体检三句唤醒词都进这一条。
6
+ * 处理函数仍在老分派层(`src/cli/cmd_read.ts`),本票只立声明不搬实现——行为不变,
7
+ * 实现下沉由历史域端到端票接走。
8
+ *
9
+ * 字段口径照命令登记纪律形状一:会改数据库的命令不写 `shape`(一律回执形,
10
+ * 那件事实的唯一定义地是生成器合成的 `src/cli/keys.ts`);查询命令写 `shape`。
11
+ * 代表唤醒词与可执行示例须是真词真串:代表词进 `src/policy/wakewords.ts` 的那张表即命中同命令,
12
+ * 示例照 `packages/skill-chef/SKILL.md` 的同命令行照抄。
13
+ */
14
+ /** 历史能力的声明表:恰好导出一个声明数组(生成器只认这一个)。写命令在前、查询命令在后。 */
15
+ export const HISTORY_COMMANDS = [
16
+ {
17
+ kind: 'write',
18
+ key: 'chef.history.record',
19
+ title: '记录做菜',
20
+ wakeWord: '记录做菜',
21
+ example: 'chef-cmd-read chef.history.record --params \'{"name":"宫保虾球"}\'',
22
+ },
23
+ {
24
+ kind: 'read',
25
+ key: 'chef.history.query',
26
+ shape: 'list',
27
+ title: '查看历史',
28
+ wakeWord: '查看历史',
29
+ example: 'chef-cmd-read chef.history.query --params \'{"kind":"stats"}\'',
30
+ },
31
+ ];
32
+ //# sourceMappingURL=commands.js.map