@cogenta/agents 0.2.1 → 0.5.0

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 (242) hide show
  1. package/dist/agents/builtins.d.ts +51 -0
  2. package/dist/agents/builtins.d.ts.map +1 -0
  3. package/dist/agents/builtins.js +190 -0
  4. package/dist/agents/builtins.js.map +1 -0
  5. package/dist/agents/orchestrator.d.ts +98 -0
  6. package/dist/agents/orchestrator.d.ts.map +1 -0
  7. package/dist/agents/orchestrator.js +286 -0
  8. package/dist/agents/orchestrator.js.map +1 -0
  9. package/dist/agents/store.d.ts +71 -0
  10. package/dist/agents/store.d.ts.map +1 -0
  11. package/dist/agents/store.js +211 -0
  12. package/dist/agents/store.js.map +1 -0
  13. package/dist/agents/types.d.ts +10 -0
  14. package/dist/agents/types.d.ts.map +1 -1
  15. package/dist/assist/agent-identity.d.ts +44 -0
  16. package/dist/assist/agent-identity.d.ts.map +1 -0
  17. package/dist/assist/agent-identity.js +136 -0
  18. package/dist/assist/agent-identity.js.map +1 -0
  19. package/dist/assist/chat.d.ts +2 -0
  20. package/dist/assist/chat.d.ts.map +1 -1
  21. package/dist/assist/chat.js +14 -5
  22. package/dist/assist/chat.js.map +1 -1
  23. package/dist/assist/classify.d.ts +3 -2
  24. package/dist/assist/classify.d.ts.map +1 -1
  25. package/dist/assist/classify.js +30 -11
  26. package/dist/assist/classify.js.map +1 -1
  27. package/dist/assist/faq.d.ts +3 -2
  28. package/dist/assist/faq.d.ts.map +1 -1
  29. package/dist/assist/faq.js +31 -13
  30. package/dist/assist/faq.js.map +1 -1
  31. package/dist/assist/runtime.d.ts +8 -2
  32. package/dist/assist/runtime.d.ts.map +1 -1
  33. package/dist/assist/runtime.js +2 -2
  34. package/dist/assist/runtime.js.map +1 -1
  35. package/dist/assist/toolset.d.ts +10 -0
  36. package/dist/assist/toolset.d.ts.map +1 -1
  37. package/dist/assist/toolset.js +36 -8
  38. package/dist/assist/toolset.js.map +1 -1
  39. package/dist/assist/usage.d.ts +58 -0
  40. package/dist/assist/usage.d.ts.map +1 -0
  41. package/dist/assist/usage.js +53 -0
  42. package/dist/assist/usage.js.map +1 -0
  43. package/dist/assist/writing.d.ts +10 -9
  44. package/dist/assist/writing.d.ts.map +1 -1
  45. package/dist/assist/writing.js +126 -58
  46. package/dist/assist/writing.js.map +1 -1
  47. package/dist/audit/with-audit.d.ts +13 -0
  48. package/dist/audit/with-audit.d.ts.map +1 -1
  49. package/dist/audit/with-audit.js +6 -0
  50. package/dist/audit/with-audit.js.map +1 -1
  51. package/dist/autonomy/levels.d.ts +37 -0
  52. package/dist/autonomy/levels.d.ts.map +1 -0
  53. package/dist/autonomy/levels.js +51 -0
  54. package/dist/autonomy/levels.js.map +1 -0
  55. package/dist/conversations/store.d.ts +62 -0
  56. package/dist/conversations/store.d.ts.map +1 -0
  57. package/dist/conversations/store.js +0 -0
  58. package/dist/conversations/store.js.map +1 -0
  59. package/dist/identity/context.d.ts +8 -0
  60. package/dist/identity/context.d.ts.map +1 -1
  61. package/dist/identity/context.js +19 -4
  62. package/dist/identity/context.js.map +1 -1
  63. package/dist/identity/markdown.d.ts +38 -0
  64. package/dist/identity/markdown.d.ts.map +1 -0
  65. package/dist/identity/markdown.js +85 -0
  66. package/dist/identity/markdown.js.map +1 -0
  67. package/dist/index.d.ts +62 -5
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +33 -3
  70. package/dist/index.js.map +1 -1
  71. package/dist/progress/job-store.d.ts +41 -0
  72. package/dist/progress/job-store.d.ts.map +1 -0
  73. package/dist/progress/job-store.js +44 -0
  74. package/dist/progress/job-store.js.map +1 -0
  75. package/dist/progress/types.d.ts +21 -0
  76. package/dist/progress/types.d.ts.map +1 -0
  77. package/dist/progress/types.js +3 -0
  78. package/dist/progress/types.js.map +1 -0
  79. package/dist/prompts/render.d.ts +23 -0
  80. package/dist/prompts/render.d.ts.map +1 -0
  81. package/dist/prompts/render.js +35 -0
  82. package/dist/prompts/render.js.map +1 -0
  83. package/dist/prompts/seeds.d.ts +34 -0
  84. package/dist/prompts/seeds.d.ts.map +1 -0
  85. package/dist/prompts/seeds.js +166 -0
  86. package/dist/prompts/seeds.js.map +1 -0
  87. package/dist/prompts/store.d.ts +8 -0
  88. package/dist/prompts/store.d.ts.map +1 -0
  89. package/dist/prompts/store.js +153 -0
  90. package/dist/prompts/store.js.map +1 -0
  91. package/dist/prompts/types.d.ts +51 -0
  92. package/dist/prompts/types.d.ts.map +1 -0
  93. package/dist/prompts/types.js +24 -0
  94. package/dist/prompts/types.js.map +1 -0
  95. package/dist/providers/anthropic.d.ts +26 -3
  96. package/dist/providers/anthropic.d.ts.map +1 -1
  97. package/dist/providers/anthropic.js +60 -12
  98. package/dist/providers/anthropic.js.map +1 -1
  99. package/dist/providers/catalog.d.ts +41 -0
  100. package/dist/providers/catalog.d.ts.map +1 -0
  101. package/dist/providers/catalog.js +85 -0
  102. package/dist/providers/catalog.js.map +1 -0
  103. package/dist/providers/content-parts.d.ts +12 -0
  104. package/dist/providers/content-parts.d.ts.map +1 -0
  105. package/dist/providers/content-parts.js +18 -0
  106. package/dist/providers/content-parts.js.map +1 -0
  107. package/dist/providers/defaults.d.ts +44 -0
  108. package/dist/providers/defaults.d.ts.map +1 -0
  109. package/dist/providers/defaults.js +72 -0
  110. package/dist/providers/defaults.js.map +1 -0
  111. package/dist/providers/google.d.ts +20 -3
  112. package/dist/providers/google.d.ts.map +1 -1
  113. package/dist/providers/google.js +53 -12
  114. package/dist/providers/google.js.map +1 -1
  115. package/dist/providers/openai.d.ts +36 -4
  116. package/dist/providers/openai.d.ts.map +1 -1
  117. package/dist/providers/openai.js +113 -21
  118. package/dist/providers/openai.js.map +1 -1
  119. package/dist/providers/registry.d.ts +38 -21
  120. package/dist/providers/registry.d.ts.map +1 -1
  121. package/dist/providers/registry.js +64 -8
  122. package/dist/providers/registry.js.map +1 -1
  123. package/dist/providers/request-signal.d.ts +18 -0
  124. package/dist/providers/request-signal.d.ts.map +1 -0
  125. package/dist/providers/request-signal.js +21 -0
  126. package/dist/providers/request-signal.js.map +1 -0
  127. package/dist/providers/resolve.d.ts +13 -0
  128. package/dist/providers/resolve.d.ts.map +1 -0
  129. package/dist/providers/resolve.js +30 -0
  130. package/dist/providers/resolve.js.map +1 -0
  131. package/dist/providers/store.d.ts +70 -0
  132. package/dist/providers/store.d.ts.map +1 -0
  133. package/dist/providers/store.js +308 -0
  134. package/dist/providers/store.js.map +1 -0
  135. package/dist/providers/tool-names.d.ts +9 -0
  136. package/dist/providers/tool-names.d.ts.map +1 -0
  137. package/dist/providers/tool-names.js +56 -0
  138. package/dist/providers/tool-names.js.map +1 -0
  139. package/dist/providers/types.d.ts +87 -3
  140. package/dist/providers/types.d.ts.map +1 -1
  141. package/dist/rag/reference-documents/ingest.d.ts +22 -0
  142. package/dist/rag/reference-documents/ingest.d.ts.map +1 -0
  143. package/dist/rag/reference-documents/ingest.js +69 -0
  144. package/dist/rag/reference-documents/ingest.js.map +1 -0
  145. package/dist/rag/reference-documents/store.d.ts +23 -0
  146. package/dist/rag/reference-documents/store.d.ts.map +1 -0
  147. package/dist/rag/reference-documents/store.js +140 -0
  148. package/dist/rag/reference-documents/store.js.map +1 -0
  149. package/dist/rag/reference-documents/types.d.ts +52 -0
  150. package/dist/rag/reference-documents/types.d.ts.map +1 -0
  151. package/dist/rag/reference-documents/types.js +32 -0
  152. package/dist/rag/reference-documents/types.js.map +1 -0
  153. package/dist/runtime/loop.d.ts +29 -7
  154. package/dist/runtime/loop.d.ts.map +1 -1
  155. package/dist/runtime/loop.js +209 -44
  156. package/dist/runtime/loop.js.map +1 -1
  157. package/dist/runtime/retry.d.ts +2 -0
  158. package/dist/runtime/retry.d.ts.map +1 -1
  159. package/dist/runtime/retry.js +1 -0
  160. package/dist/runtime/retry.js.map +1 -1
  161. package/dist/runtime/types.d.ts +14 -3
  162. package/dist/runtime/types.d.ts.map +1 -1
  163. package/dist/site-plan/analyse-brief.d.ts +8 -0
  164. package/dist/site-plan/analyse-brief.d.ts.map +1 -1
  165. package/dist/site-plan/analyse-brief.js +17 -8
  166. package/dist/site-plan/analyse-brief.js.map +1 -1
  167. package/dist/site-plan/approval.d.ts +2 -2
  168. package/dist/site-plan/approval.d.ts.map +1 -1
  169. package/dist/site-plan/approval.js +34 -4
  170. package/dist/site-plan/approval.js.map +1 -1
  171. package/dist/site-plan/content-model.d.ts +14 -0
  172. package/dist/site-plan/content-model.d.ts.map +1 -1
  173. package/dist/site-plan/content-model.js +51 -9
  174. package/dist/site-plan/content-model.js.map +1 -1
  175. package/dist/site-plan/demo-content.d.ts.map +1 -1
  176. package/dist/site-plan/demo-content.js +1 -4
  177. package/dist/site-plan/demo-content.js.map +1 -1
  178. package/dist/site-plan/propose-plan.d.ts +10 -0
  179. package/dist/site-plan/propose-plan.d.ts.map +1 -1
  180. package/dist/site-plan/propose-plan.js +25 -1
  181. package/dist/site-plan/propose-plan.js.map +1 -1
  182. package/dist/site-plan/site-context.d.ts +81 -0
  183. package/dist/site-plan/site-context.d.ts.map +1 -0
  184. package/dist/site-plan/site-context.js +76 -0
  185. package/dist/site-plan/site-context.js.map +1 -0
  186. package/dist/site-plan/skin-candidates.d.ts +13 -1
  187. package/dist/site-plan/skin-candidates.d.ts.map +1 -1
  188. package/dist/site-plan/skin-candidates.js +15 -0
  189. package/dist/site-plan/skin-candidates.js.map +1 -1
  190. package/dist/site-plan/structural-gaps.d.ts +32 -0
  191. package/dist/site-plan/structural-gaps.d.ts.map +1 -0
  192. package/dist/site-plan/structural-gaps.js +77 -0
  193. package/dist/site-plan/structural-gaps.js.map +1 -0
  194. package/dist/site-plan/types.d.ts +7 -0
  195. package/dist/site-plan/types.d.ts.map +1 -1
  196. package/dist/skills/frontmatter.d.ts +19 -1
  197. package/dist/skills/frontmatter.d.ts.map +1 -1
  198. package/dist/skills/frontmatter.js +29 -5
  199. package/dist/skills/frontmatter.js.map +1 -1
  200. package/dist/skills/library.d.ts +133 -0
  201. package/dist/skills/library.d.ts.map +1 -0
  202. package/dist/skills/library.js +332 -0
  203. package/dist/skills/library.js.map +1 -0
  204. package/dist/skills/types.d.ts +8 -1
  205. package/dist/skills/types.d.ts.map +1 -1
  206. package/dist/skin/generate.d.ts +22 -1
  207. package/dist/skin/generate.d.ts.map +1 -1
  208. package/dist/skin/generate.js +60 -5
  209. package/dist/skin/generate.js.map +1 -1
  210. package/dist/theme-creator/propose-theme.d.ts +83 -0
  211. package/dist/theme-creator/propose-theme.d.ts.map +1 -0
  212. package/dist/theme-creator/propose-theme.js +234 -0
  213. package/dist/theme-creator/propose-theme.js.map +1 -0
  214. package/dist/tools/core/agent-delegate.d.ts +8 -5
  215. package/dist/tools/core/agent-delegate.d.ts.map +1 -1
  216. package/dist/tools/core/agent-delegate.js +16 -6
  217. package/dist/tools/core/agent-delegate.js.map +1 -1
  218. package/dist/tools/core/content-browse.d.ts +74 -0
  219. package/dist/tools/core/content-browse.d.ts.map +1 -0
  220. package/dist/tools/core/content-browse.js +63 -0
  221. package/dist/tools/core/content-browse.js.map +1 -0
  222. package/dist/tools/core/content-schema.d.ts +86 -0
  223. package/dist/tools/core/content-schema.d.ts.map +1 -0
  224. package/dist/tools/core/content-schema.js +83 -0
  225. package/dist/tools/core/content-schema.js.map +1 -0
  226. package/dist/tools/core/deps-scan.d.ts +25 -0
  227. package/dist/tools/core/deps-scan.d.ts.map +1 -0
  228. package/dist/tools/core/deps-scan.js +85 -0
  229. package/dist/tools/core/deps-scan.js.map +1 -0
  230. package/dist/tools/core/media.d.ts +18 -2
  231. package/dist/tools/core/media.d.ts.map +1 -1
  232. package/dist/tools/core/media.js +8 -2
  233. package/dist/tools/core/media.js.map +1 -1
  234. package/dist/tools/core/not-found-log.d.ts +44 -0
  235. package/dist/tools/core/not-found-log.d.ts.map +1 -0
  236. package/dist/tools/core/not-found-log.js +32 -0
  237. package/dist/tools/core/not-found-log.js.map +1 -0
  238. package/dist/tools/core/redirects.d.ts +51 -0
  239. package/dist/tools/core/redirects.d.ts.map +1 -0
  240. package/dist/tools/core/redirects.js +50 -0
  241. package/dist/tools/core/redirects.js.map +1 -0
  242. package/package.json +6 -4
@@ -1 +1 @@
1
- {"version":3,"file":"content-model.js","sourceRoot":"","sources":["../../src/site-plan/content-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EACL,eAAe,EAEf,gBAAgB,EAChB,WAAW,EAEX,CAAC,EACD,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAG7C;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,uEAAuE;IACvE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1F,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5F,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC;IAC7C,wEAAwE;IACxE,qEAAqE;IACrE,uEAAuE;IACvE,WAAW,EAAE,CAAC,CAAC,MAAM,CACnB,MAAM,CAAC,WAAW,CAChB,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CACU,CACtF;IACD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACzD,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC3B,CAAC,CACH;SACA,GAAG,CAAC,EAAE,CAAC;CACX,CAAC,CAAA;AAwBF,SAAS,OAAO,CAAmB,KAAQ;IACzC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CACxC,CAAA;AAC1B,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,IAAe;IAC/C,MAAM,IAAI,GAAG;QACX,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;KACpE,CAAA;IACD,MAAM,OAAO,GAA4B,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IAEpE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,GAAG,IAAI;gBACP,GAAI,OAA+D;aACpE,CAAC,CAAA;QACJ,KAAK,UAAU;YACb,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACzB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,GAAI,OAA2C,EAAE,CAAC,CAAA;QAC7E,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,MAAM,CAAC;gBACd,GAAG,IAAI;gBACP,GAAI,OAA6D;aAClE,CAAC,CAAA;QACJ,KAAK,SAAS;YACZ,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACxB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,KAAK,UAAU;YACb,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACzB,KAAK,OAAO;YACV,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,GAAI,OAAyC,EAAE,CAAC,CAAA;QAC5E,uEAAuE;QACvE,wEAAwE;QACxE,4CAA4C;QAC5C,KAAK,UAAU,EAAE,CAAC;YAChB,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;YACrB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACxC,MAAM,IAAI,YAAY,CAAC;oBACrB,IAAI,EAAE,gCAAgC;oBACtC,OAAO,EAAE,UAAU,IAAI,iDAAiD;oBACxE,IAAI,EAAE,2HAA2H;oBACjI,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;iBACzB,CAAC,CAAA;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;YACjC,OAAO,CAAC,CAAC,QAAQ,CAAC;gBAChB,GAAG,IAAI;gBACP,EAAE;gBACF,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;oBAC7E,CAAC,CAAC,EAAE,QAAQ,EAAE;oBACd,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,YAAY,CAAC;oBACrB,IAAI,EAAE,gCAAgC;oBACtC,OAAO,EAAE,UAAU,IAAI,qCAAqC;oBAC5D,IAAI,EAAE,gFAAgF;oBACtF,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;iBACzB,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,CAAC,CAAC,MAAM,CAAC;gBACd,GAAG,IAAI;gBACP,OAAO,EAAE,OAAoD;gBAC7D,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpB,KAAK,OAAO;YACV,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACtB,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,GAAI,OAA0C,EAAE,CAAC,CAAA;QAC9E,wEAAwE;QACxE,yEAAyE;QACzE,sEAAsE;QACtE,qEAAqE;QACrE,gEAAgE;QAChE,KAAK,UAAU;YACb,MAAM,IAAI,YAAY,CAAC;gBACrB,IAAI,EAAE,gCAAgC;gBACtC,OAAO,EAAE,UAAU,IAAI,+DAA+D;gBACtF,IAAI,EAAE,kKAAkK;gBACxK,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;aACzB,CAAC,CAAA;QACJ,SAAS,CAAC;YACR,sEAAsE;YACtE,gEAAgE;YAChE,2DAA2D;YAC3D,MAAM,WAAW,GAAU,IAAI,CAAC,IAAI,CAAA;YACpC,MAAM,IAAI,YAAY,CAAC;gBACrB,IAAI,EAAE,gCAAgC;gBACtC,OAAO,EAAE,UAAU,IAAI,gBAAgB,MAAM,CAAC,WAAW,CAAC,sCAAsC;gBAChG,IAAI,EAAE,gIAAgI;gBACtI,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;aACpD,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,wBAAwB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;AAExE,SAAS,wBAAwB,CAAC,IAAoB;IACpD,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACxD,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACpD,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC/B,MAAM,IAAI,YAAY,CAAC;QACrB,IAAI,EAAE,2CAA2C;QACjD,OAAO,EAAE,eAAe,IAAI,CAAC,IAAI,4BAA4B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD;QACpI,IAAI,EAAE,qJAAqJ;QAC3J,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;KACpD,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAoB;IAC3C,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAoC,EAAE,CAAA;IAClD,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,gBAAgB,CAAC;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzE,MAAM;QACN,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;KACvC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,KAAK,GAAqC;QAC9C,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,0DAA0D;QACpE,IAAI,EAAE,+CAA+C;QACrD,MAAM,EAAE,4BAA4B;QACpC,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,0CAA0C;QAChD,QAAQ,EAAE,qCAAqC;QAC/C,KAAK,EAAE,mDAAmD;QAC1D,QAAQ,EAAE,qEAAqE;QAC/E,MAAM,EAAE,yEAAyE;QACjF,IAAI,EAAE,iDAAiD;QACvD,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,mEAAmE;KAC5E,CAAA;IACD,0EAA0E;IAC1E,wEAAwE;IACxE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC;SACrD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;SAC5D,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CAAC,KAAgB;IACrC,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC3D,UAAU,CAAC,IAAI,KAAK,UAAU;QAC5B,CAAC,CAAC,2CAA2C,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG;QAC9I,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,IAAI,UAAU,CAAC,KAAK,IAAI,MAAM,kBAAkB,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,CACzK,CAAA;IAED,OAAO;QACL,aAAa,KAAK,CAAC,QAAQ,EAAE;QAC7B,aAAa,KAAK,CAAC,QAAQ,EAAE;QAC7B,SAAS,KAAK,CAAC,IAAI,EAAE;QACrB,YAAY,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACxC,YAAY,KAAK,CAAC,OAAO,EAAE;QAC3B,EAAE;QACF,2BAA2B;QAC3B,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,EAAE;QACF,gCAAgC;QAChC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1E,EAAE;QACF,GAAG,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,CAAC,0CAA0C,CAAC;YAC9C,CAAC,CAAC;gBACE,uEAAuE;gBACvE,GAAG,eAAe;aACnB,CAAC;KACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAgB,EAAE,UAA8B;IACnE,MAAM,KAAK,GAAG;QACZ,oIAAoI;QACpI,6MAA6M;QAC7M,4FAA4F;QAC5F,EAAE;QACF,+EAA+E;QAC/E,kBAAkB,EAAE;QACpB,EAAE;QACF,kCAAkC;QAClC,GAAG;QACH,qBAAqB;QACrB,2EAA2E;QAC3E,gEAAgE;QAChE,8CAA8C;QAC9C,6FAA6F;QAC7F,6HAA6H;QAC7H,mEAAmE;QACnE,OAAO;QACP,mFAAmF;QACnF,GAAG;QACH,EAAE;QACF,QAAQ;QACR,yDAAyD;QACzD,oGAAoG;QACpG,qHAAqH;QACrH,0EAA0E;QAC1E,iEAAiE;KAClE,CAAA;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,EAAE,EACF,uCAAuC,UAAU,EAAE,EACnD,6DAA6D,CAC9D,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAoBD,MAAM,oBAAoB,GAAG,CAAC,CAAA;AAC9B,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB,SAAS,aAAa,CAAC,KAAmB;IACxC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAmC;IAEnC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,oBAAoB,CAAA;IAC/D,IAAI,UAA8B,CAAA;IAClC,IAAI,UAAU,GAAG,qBAAqB,CAAA;IAEtC,MAAM,OAAO,GAAG,eAAe,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;QAC9D,KAAK,EAAE;YACL,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,yDAAyD;YAC/D,UAAU,EAAE;gBACV,sFAAsF;gBACtF,uEAAuE;gBACvE,0EAA0E;aAC3E;YACD,KAAK,EAAE,0DAA0D;SAClE;QACD,IAAI,EAAE,EAAE,WAAW,EAAE,uDAAuD,EAAE;QAC9E,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;KAC5E,CAAC,CAAA;IAEF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,OAAsB,CAAA;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBACzC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE;oBACR,GAAG,OAAO,CAAC,YAAY;oBACvB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE;iBAClE;gBACD,SAAS,EAAE,UAAU;aACtB,CAAC,CAAA;YACF,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,GAAG,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;YAC3F,UAAU,GAAG,UAAU,CAAA;YACvB,SAAQ;QACV,CAAC;QAED,IAAI,SAAkB,CAAA;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,wCAAwC,CAAA;YACrD,UAAU;gBACR,qHAAqH,CAAA;YACvH,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;iBACvE,IAAI,CAAC,IAAI,CAAC,CAAA;YACb,UAAU,GAAG,UAAU,CAAA;YACvB,SAAQ;QACV,CAAC;QAED,IAAI,WAA4C,CAAA;QAChD,IAAI,CAAC;YACH,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YAC1D,qBAAqB,CAAC,WAAW,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAA;YACvC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAA;YAC1B,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;YACjC,SAAQ;QACV,CAAC;QAED,MAAM,GAAG,GAAyB;YAChC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnD,UAAU;gBACV,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE;aAC3D,CAAC,CAAC;SACJ,CAAA;QAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACnE,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAE1E,OAAO;YACL,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;YACtD,QAAQ,EAAE,OAAO;SAClB,CAAA;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;AACjE,CAAC"}
1
+ {"version":3,"file":"content-model.js","sourceRoot":"","sources":["../../src/site-plan/content-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EACL,eAAe,EAEf,gBAAgB,EAChB,WAAW,EAEX,CAAC,EACD,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAEL,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAA;AAG1B;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9B,uEAAuE;IACvE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC1F,CAAC,CAAA;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5F,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC;IAC7C,wEAAwE;IACxE,qEAAqE;IACrE,uEAAuE;IACvE,WAAW,EAAE,CAAC,CAAC,MAAM,CACnB,MAAM,CAAC,WAAW,CAChB,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CACU,CACtF;IACD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7B,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACzD,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC3B,CAAC,CACH;SACA,GAAG,CAAC,EAAE,CAAC;CACX,CAAC,CAAA;AAwBF,SAAS,OAAO,CAAmB,KAAQ;IACzC,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CACxC,CAAA;AAC1B,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,IAAe;IAC/C,MAAM,IAAI,GAAG;QACX,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;KACpE,CAAA;IACD,MAAM,OAAO,GAA4B,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IAEpE,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,GAAG,IAAI;gBACP,GAAI,OAA+D;aACpE,CAAC,CAAA;QACJ,KAAK,UAAU;YACb,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACzB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,GAAI,OAA2C,EAAE,CAAC,CAAA;QAC7E,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,MAAM,CAAC;gBACd,GAAG,IAAI;gBACP,GAAI,OAA6D;aAClE,CAAC,CAAA;QACJ,KAAK,SAAS;YACZ,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACxB,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,KAAK,UAAU;YACb,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACzB,KAAK,OAAO;YACV,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,GAAI,OAAyC,EAAE,CAAC,CAAA;QAC5E,uEAAuE;QACvE,wEAAwE;QACxE,4CAA4C;QAC5C,KAAK,UAAU,EAAE,CAAC;YAChB,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;YACrB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACxC,MAAM,IAAI,YAAY,CAAC;oBACrB,IAAI,EAAE,gCAAgC;oBACtC,OAAO,EAAE,UAAU,IAAI,iDAAiD;oBACxE,IAAI,EAAE,2HAA2H;oBACjI,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;iBACzB,CAAC,CAAA;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;YACjC,OAAO,CAAC,CAAC,QAAQ,CAAC;gBAChB,GAAG,IAAI;gBACP,EAAE;gBACF,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;oBAC7E,CAAC,CAAC,EAAE,QAAQ,EAAE;oBACd,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,YAAY,CAAC;oBACrB,IAAI,EAAE,gCAAgC;oBACtC,OAAO,EAAE,UAAU,IAAI,qCAAqC;oBAC5D,IAAI,EAAE,gFAAgF;oBACtF,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;iBACzB,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,CAAC,CAAC,MAAM,CAAC;gBACd,GAAG,IAAI;gBACP,OAAO,EAAE,OAAoD;gBAC7D,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,MAAM;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,KAAK,KAAK;YACR,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACpB,KAAK,OAAO;YACV,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACtB,KAAK,QAAQ;YACX,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,GAAI,OAA0C,EAAE,CAAC,CAAA;QAC9E,wEAAwE;QACxE,yEAAyE;QACzE,sEAAsE;QACtE,qEAAqE;QACrE,gEAAgE;QAChE,KAAK,UAAU;YACb,MAAM,IAAI,YAAY,CAAC;gBACrB,IAAI,EAAE,gCAAgC;gBACtC,OAAO,EAAE,UAAU,IAAI,+DAA+D;gBACtF,IAAI,EAAE,kKAAkK;gBACxK,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;aACzB,CAAC,CAAA;QACJ,SAAS,CAAC;YACR,sEAAsE;YACtE,gEAAgE;YAChE,2DAA2D;YAC3D,MAAM,WAAW,GAAU,IAAI,CAAC,IAAI,CAAA;YACpC,MAAM,IAAI,YAAY,CAAC;gBACrB,IAAI,EAAE,gCAAgC;gBACtC,OAAO,EAAE,UAAU,IAAI,gBAAgB,MAAM,CAAC,WAAW,CAAC,sCAAsC;gBAChG,IAAI,EAAE,gIAAgI;gBACtI,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE;aACpD,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,wBAAwB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;AAExE,SAAS,wBAAwB,CAAC,IAAoB;IACpD,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACxD,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACpD,CAAA;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC/B,MAAM,IAAI,YAAY,CAAC;QACrB,IAAI,EAAE,2CAA2C;QACjD,OAAO,EAAE,eAAe,IAAI,CAAC,IAAI,4BAA4B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD;QACpI,IAAI,EAAE,qJAAqJ;QAC3J,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;KACpD,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAoB;IAC3C,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAoC,EAAE,CAAA;IAClD,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,gBAAgB,CAAC;QACtB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzE,MAAM;QACN,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;KACvC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,KAAK,GAAqC;QAC9C,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,0DAA0D;QACpE,IAAI,EAAE,+CAA+C;QACrD,MAAM,EAAE,4BAA4B;QACpC,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,0CAA0C;QAChD,QAAQ,EAAE,qCAAqC;QAC/C,KAAK,EAAE,mDAAmD;QAC1D,QAAQ,EAAE,qEAAqE;QAC/E,MAAM,EAAE,yEAAyE;QACjF,IAAI,EAAE,iDAAiD;QACvD,GAAG,EAAE,oBAAoB;QACzB,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,mEAAmE;KAC5E,CAAA;IACD,0EAA0E;IAC1E,wEAAwE;IACxE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC;SACrD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;SAC5D,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CAAC,KAAgB;IACrC,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC3D,UAAU,CAAC,IAAI,KAAK,UAAU;QAC5B,CAAC,CAAC,2CAA2C,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG;QAC9I,CAAC,CAAC,KAAK,UAAU,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,IAAI,UAAU,CAAC,KAAK,IAAI,MAAM,kBAAkB,UAAU,CAAC,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,CACzK,CAAA;IAED,OAAO;QACL,aAAa,KAAK,CAAC,QAAQ,EAAE;QAC7B,aAAa,KAAK,CAAC,QAAQ,EAAE;QAC7B,SAAS,KAAK,CAAC,IAAI,EAAE;QACrB,YAAY,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACxC,YAAY,KAAK,CAAC,OAAO,EAAE;QAC3B,EAAE;QACF,2BAA2B;QAC3B,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,EAAE;QACF,gCAAgC;QAChC,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1E,EAAE;QACF,GAAG,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,CAAC,0CAA0C,CAAC;YAC9C,CAAC,CAAC;gBACE,uEAAuE;gBACvE,GAAG,eAAe;aACnB,CAAC;KACP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,WAAW,CAClB,UAA8B,EAC9B,YAA8C;IAE9C,MAAM,QAAQ,GAAG,YAAY,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAA;IACjF,MAAM,KAAK,GAAG;QACZ,oIAAoI;QACpI,6MAA6M;QAC7M,4FAA4F;QAC5F,GAAG,CAAC,QAAQ;YACV,CAAC,CAAC;gBACE,EAAE;gBACF,2bAA2b;aAC5b;YACH,CAAC,CAAC,EAAE,CAAC;QACP,EAAE;QACF,+EAA+E;QAC/E,kBAAkB,EAAE;QACpB,EAAE;QACF,kCAAkC;QAClC,GAAG;QACH,qBAAqB;QACrB,2EAA2E;QAC3E,gEAAgE;QAChE,8CAA8C;QAC9C,6FAA6F;QAC7F,6HAA6H;QAC7H,mEAAmE;QACnE,OAAO;QACP,mFAAmF;QACnF,GAAG;QACH,EAAE;QACF,QAAQ;QACR,yDAAyD;QACzD,oGAAoG;QACpG,qHAAqH;QACrH,0EAA0E;QAC1E,GAAG,CAAC,QAAQ;YACV,CAAC,CAAC,CAAC,6EAA6E,CAAC;YACjF,CAAC,CAAC,EAAE,CAAC;QACP,iEAAiE;KAClE,CAAA;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,EAAE,EACF,uCAAuC,UAAU,EAAE,EACnD,6DAA6D,CAC9D,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAkCD,SAAS,aAAa,CAAC,KAAmB;IACxC,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAmC;IAEnC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAA;IAC/E,IAAI,UAA8B,CAAA;IAClC,IAAI,UAAU,GAAG,qBAAqB,CAAA;IAEtC,MAAM,eAAe,GACnB,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAClF,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAC/E,CAAA;IAED,MAAM,OAAO,GAAG,eAAe,CAAC;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;QAC9D,KAAK,EAAE;YACL,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,yDAAyD;YAC/D,UAAU,EAAE;gBACV,sFAAsF;gBACtF,uEAAuE;gBACvE,0EAA0E;gBAC1E,GAAG,CAAC,eAAe;oBACjB,CAAC,CAAC;wBACE,oHAAoH;qBACrH;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;YACD,KAAK,EAAE,0DAA0D;SAClE;QACD,IAAI,EAAE,EAAE,WAAW,EAAE,uDAAuD,EAAE;QAC9E,IAAI,EAAE;YACJ,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnE,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS;gBACvD,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,2BAA2B,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1F,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC,CAAA;IAEF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,OAAsB,CAAA;QAC1B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBACzC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE;oBACR,GAAG,OAAO,CAAC,YAAY;oBACvB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE;iBACzE;aACF,CAAC,CAAA;YACF,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,UAAU,GAAG,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;YAC3F,UAAU,GAAG,UAAU,CAAA;YACvB,SAAQ;QACV,CAAC;QAED,IAAI,SAAkB,CAAA;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,wCAAwC,CAAA;YACrD,UAAU;gBACR,qHAAqH,CAAA;YACvH,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC7B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;iBACvE,IAAI,CAAC,IAAI,CAAC,CAAA;YACb,UAAU,GAAG,UAAU,CAAA;YACvB,SAAQ;QACV,CAAC;QAED,kEAAkE;QAClE,qDAAqD;QACrD,MAAM,eAAe,GAAgC,EAAE,CAAA;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACpD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;YAC9C,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EACJ,0GAA0G;aAC7G,CAAC,CAAA;YACF,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;QAEF,IAAI,WAA4C,CAAA;QAChD,IAAI,CAAC;YACH,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YACxC,qBAAqB,CAAC,WAAW,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAA;YACvC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAA;YAC1B,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;YACjC,SAAQ;QACV,CAAC;QAED,MAAM,GAAG,GAAyB;YAChC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnD,UAAU;gBACV,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE;aACzC,CAAC,CAAC;SACJ,CAAA;QAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACnE,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAE1E,OAAO;YACL,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;YACtD,eAAe;YACf,QAAQ,EAAE,OAAO;SAClB,CAAA;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA;AACjE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"demo-content.d.ts","sourceRoot":"","sources":["../../src/site-plan/demo-content.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAwB5E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;IAC3C,uDAAuD;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,wBAAwB,GAChC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAuD9E,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CA8GnC"}
1
+ {"version":3,"file":"demo-content.d.ts","sourceRoot":"","sources":["../../src/site-plan/demo-content.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAwB5E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;IAC3C,uDAAuD;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,wBAAwB,GAChC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAA;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAoD9E,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CA6GnC"}
@@ -21,8 +21,6 @@ const EntrySchema = z.object({
21
21
  const ResponseSchema = z.object({
22
22
  entries: z.array(EntrySchema).max(40),
23
23
  });
24
- const DEFAULT_MAX_ATTEMPTS = 2;
25
- const MAX_TOKENS = 4000;
26
24
  function describeCollections(contentModel) {
27
25
  return contentModel.collections
28
26
  .map((collection) => {
@@ -70,7 +68,7 @@ export async function proposeDemoContent(options) {
70
68
  if (options.contentModel.collections.length === 0) {
71
69
  return { ok: true, entries: [], rejected: [], attempts: 0 };
72
70
  }
73
- const maxAttempts = options.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
71
+ const maxAttempts = options.maxAttempts ?? options.client.maxCorrectionAttempts;
74
72
  const schemas = new Map(options.contentModel.collections.map((collection) => [
75
73
  collection.definition.name,
76
74
  collectionInputSchema(collection.definition),
@@ -114,7 +112,6 @@ export async function proposeDemoContent(options) {
114
112
  ...context.dataMessages,
115
113
  { role: 'user', content: buildPrompt(options, correction) },
116
114
  ],
117
- maxTokens: MAX_TOKENS,
118
115
  });
119
116
  content = response.content;
120
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"demo-content.js","sourceRoot":"","sources":["../../src/site-plan/demo-content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"demo-content.js","sourceRoot":"","sources":["../../src/site-plan/demo-content.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ExtractedDocument } from '../documents/extract-text.js';
2
2
  import type { ProviderClient } from '../providers/types.js';
3
+ import { type ExistingSiteSnapshot } from './site-context.js';
3
4
  import type { SitePlanDraft } from './types.js';
4
5
  /**
5
6
  * The four agents of L19, run in order, producing one draft.
@@ -28,6 +29,15 @@ export interface ProposeSitePlanOptions {
28
29
  readonly skinCount?: number;
29
30
  /** Shown to the skin generator as the site's kind — the blueprint label when there is one. */
30
31
  readonly blueprintLabel?: string;
32
+ /**
33
+ * Fiche 60 — the site this plan would join, when there already is one.
34
+ * Absent, or an empty snapshot, on a fresh install: the installer's own
35
+ * entry point never builds one, so this fiche leaves it byte-for-byte
36
+ * unchanged (R2/non-regression is the same guarantee here as everywhere
37
+ * else — nothing in this pipeline behaves differently just because a
38
+ * caller chose not to supply site context).
39
+ */
40
+ readonly existingSite?: ExistingSiteSnapshot;
31
41
  readonly now?: () => Date;
32
42
  readonly idFactory?: () => string;
33
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"propose-plan.d.ts","sourceRoot":"","sources":["../../src/site-plan/propose-plan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAK3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,cAAc,GAAG,OAAO,GAAG,aAAa,CAAA;AAE1E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,8FAA8F;IAC9F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,MAAM,CAAA;CAClC;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9E,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAmEhC"}
1
+ {"version":3,"file":"propose-plan.d.ts","sourceRoot":"","sources":["../../src/site-plan/propose-plan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAI3D,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,cAAc,GAAG,OAAO,GAAG,aAAa,CAAA;AAE1E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAChD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,8FAA8F;IAC9F,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAA;IAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,MAAM,CAAA;CAClC;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9E,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CA4FhC"}
@@ -2,15 +2,19 @@ import { newId } from '@cogenta/schema';
2
2
  import { analyseBrief } from './analyse-brief.js';
3
3
  import { proposeContentModel } from './content-model.js';
4
4
  import { proposeDemoContent } from './demo-content.js';
5
+ import { EMPTY_EXISTING_SITE, isExistingSiteEmpty, } from './site-context.js';
5
6
  import { generateSkinCandidates } from './skin-candidates.js';
7
+ import { detectStructuralGaps } from './structural-gaps.js';
6
8
  export async function proposeSitePlan(options) {
7
9
  const now = options.now ?? (() => new Date());
8
10
  const newDraftId = options.idFactory ?? newId;
11
+ const existingSite = options.existingSite ?? EMPTY_EXISTING_SITE;
9
12
  const analysed = await analyseBrief({
10
13
  client: options.client,
11
14
  model: options.model,
12
15
  documents: options.documents,
13
16
  ...(options.siteName === undefined ? {} : { siteName: options.siteName }),
17
+ ...(options.existingSite === undefined ? {} : { existingSite: options.existingSite }),
14
18
  });
15
19
  if (!analysed.ok)
16
20
  return { ok: false, stage: 'brief', reason: analysed.reason };
@@ -21,13 +25,19 @@ export async function proposeSitePlan(options) {
21
25
  `Tone: ${brief.tone}.`,
22
26
  ].join(' ');
23
27
  const [model, skins] = await Promise.all([
24
- proposeContentModel({ client: options.client, model: options.model, brief }),
28
+ proposeContentModel({
29
+ client: options.client,
30
+ model: options.model,
31
+ brief,
32
+ ...(options.existingSite === undefined ? {} : { existingSite: options.existingSite }),
33
+ }),
25
34
  generateSkinCandidates({
26
35
  client: options.client,
27
36
  model: options.model,
28
37
  description: skinDescription,
29
38
  blueprintLabel: options.blueprintLabel ?? brief.activity,
30
39
  ...(options.skinCount === undefined ? {} : { count: options.skinCount }),
40
+ ...(options.existingSite === undefined ? {} : { existingSite: options.existingSite }),
31
41
  }),
32
42
  ]);
33
43
  if (!model.ok)
@@ -40,9 +50,22 @@ export async function proposeSitePlan(options) {
40
50
  brief,
41
51
  contentModel: model.proposal,
42
52
  });
53
+ // Fiche 60's own non-regression bar: "l'installeur (site neuf) se comporte
54
+ // exactement comme avant cette fiche." A fresh install never supplies
55
+ // `existingSite`, so this pass — which the fiche frames throughout as
56
+ // comparing the plan against a site that already exists — stays silent
57
+ // for it, the same "premier jet" gate task 4 uses for its own prompt.
58
+ const structuralGaps = isExistingSiteEmpty(existingSite)
59
+ ? []
60
+ : detectStructuralGaps({
61
+ proposedPages: model.pages,
62
+ existingSite,
63
+ ...(brief.languages[0] === undefined ? {} : { locale: brief.languages[0] }),
64
+ });
43
65
  const warnings = [
44
66
  ...brief.warnings,
45
67
  ...skins.failures.map((failure) => `The "${failure.label}" design was not offered: ${failure.reason}.`),
68
+ ...model.skippedExisting.map((skipped) => `A collection named "${skipped.name}" was not proposed: ${skipped.reason}.`),
46
69
  ...(demo.ok
47
70
  ? demo.rejected.map((rejection) => `A demonstration entry for "${rejection.collection}" was dropped: ${rejection.reason}.`)
48
71
  : [`No demonstration content was proposed: ${demo.reason}.`]),
@@ -58,6 +81,7 @@ export async function proposeSitePlan(options) {
58
81
  skins: skins.candidates,
59
82
  demoContent: demo.ok ? demo.entries : [],
60
83
  violations: model.violations,
84
+ structuralGaps,
61
85
  warnings,
62
86
  },
63
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"propose-plan.js","sourceRoot":"","sources":["../../src/site-plan/propose-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAGvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAwC7D,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA+B;IAE/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAA;IAE7C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC1E,CAAC,CAAA;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;IAC/E,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;IAE5B,MAAM,eAAe,GAAG;QACtB,KAAK,CAAC,QAAQ;QACd,aAAa,KAAK,CAAC,QAAQ,GAAG;QAC9B,SAAS,KAAK,CAAC,IAAI,GAAG;KACvB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEX,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvC,mBAAmB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;QAC5E,sBAAsB,CAAC;YACrB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,eAAe;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ;YACxD,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;SACzE,CAAC;KACH,CAAC,CAAA;IAEF,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IAChF,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IAEzE,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK;QACL,YAAY,EAAE,KAAK,CAAC,QAAQ;KAC7B,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG;QACf,GAAG,KAAK,CAAC,QAAQ;QACjB,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CACnB,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,OAAO,CAAC,KAAK,6BAA6B,OAAO,CAAC,MAAM,GAAG,CACjF;QACD,GAAG,CAAC,IAAI,CAAC,EAAE;YACT,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,CAAC,SAAS,EAAE,EAAE,CACZ,8BAA8B,SAAS,CAAC,UAAU,kBAAkB,SAAS,CAAC,MAAM,GAAG,CAC1F;YACH,CAAC,CAAC,CAAC,0CAA0C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KAChE,CAAA;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,KAAK,EAAE;YACL,EAAE,EAAE,UAAU,EAAE;YAChB,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;YAC9B,KAAK;YACL,YAAY,EAAE,KAAK,CAAC,QAAQ;YAC5B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,UAAU;YACvB,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACxC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ;SACT;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"propose-plan.js","sourceRoot":"","sources":["../../src/site-plan/propose-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import type { CollectionDefinition, TaxonomyDefinition } from '@cogenta/schema';
2
+ /**
3
+ * Fiche 60 task 2 — the instant snapshot of a site that already exists,
4
+ * built once per proposal and handed to the three agents that need it
5
+ * (`./analyse-brief.js`, `./content-model.js`, `./skin-candidates.js`).
6
+ *
7
+ * Before this, a plan proposed from the admin, on a site with two hundred
8
+ * articles and a live shop, read exactly like a plan proposed on an empty
9
+ * database — the only contact with reality was `site-plan.ts`'s late,
10
+ * defensive "this collection name is already taken" refusal at *apply* time.
11
+ * `describeExistingSite` is what makes the state an input to the agent's own
12
+ * reasoning instead: `content-model.ts` reads it to steer proposals towards
13
+ * addition rather than duplication (task 4), and `structural-gaps.ts` reads
14
+ * it to say what a usual site still lacks (task 5).
15
+ *
16
+ * This module does no I/O of its own, on purpose. `@cogenta/agents` has no
17
+ * database dependency anywhere else, and this is not the file that starts —
18
+ * the counts, the active theme name and the list of configured integrations
19
+ * are all read by the caller (`@cogenta/cli`'s `site-plan.ts`, which already
20
+ * owns the database handle and the resolved config) and handed in as plain
21
+ * data. That is also what makes `describeExistingSite` testable against a
22
+ * fabricated "empty site" and a fabricated "populated site" without a real
23
+ * database (fiche 60's own acceptance criterion for this task).
24
+ */
25
+ export interface ExistingCollectionField {
26
+ readonly name: string;
27
+ readonly kind: string;
28
+ }
29
+ export interface ExistingCollectionSnapshot {
30
+ readonly name: string;
31
+ readonly labels: {
32
+ readonly singular: string;
33
+ readonly plural: string;
34
+ };
35
+ readonly fields: readonly ExistingCollectionField[];
36
+ readonly routed: boolean;
37
+ readonly entryCount: number;
38
+ /** Published entries. Only meaningful for a routed collection — `null` otherwise. */
39
+ readonly publishedCount: number | null;
40
+ }
41
+ export interface ExistingTaxonomySnapshot {
42
+ readonly name: string;
43
+ readonly termCount: number;
44
+ }
45
+ export interface ExistingSiteSnapshot {
46
+ readonly collections: readonly ExistingCollectionSnapshot[];
47
+ readonly taxonomies: readonly ExistingTaxonomySnapshot[];
48
+ /** The theme package name, e.g. `@cogenta/theme-canonical`. Empty string when unknown. */
49
+ readonly activeTheme: string;
50
+ /** Names of configured integrations, detected by the caller from config presence alone — never guessed here. */
51
+ readonly integrations: readonly string[];
52
+ }
53
+ /** What a brand-new site — the installer's own path, unchanged by this fiche — looks like. */
54
+ export declare const EMPTY_EXISTING_SITE: ExistingSiteSnapshot;
55
+ export interface ExistingEntryCounts {
56
+ readonly total: number;
57
+ readonly published: number;
58
+ }
59
+ export interface DescribeExistingSiteInput {
60
+ readonly collections: readonly CollectionDefinition[];
61
+ readonly taxonomies?: readonly TaxonomyDefinition[];
62
+ /** Per-collection counts, by collection name. A collection missing here is treated as having zero entries. */
63
+ readonly entryCounts?: Readonly<Record<string, ExistingEntryCounts>>;
64
+ /** Per-taxonomy term counts, by taxonomy name. Missing means zero. */
65
+ readonly termCounts?: Readonly<Record<string, number>>;
66
+ readonly activeTheme?: string;
67
+ readonly integrations?: readonly string[];
68
+ }
69
+ export declare function describeExistingSite(input: DescribeExistingSiteInput): ExistingSiteSnapshot;
70
+ /** A fresh install, or a site whose schema declares nothing yet — "premier jet" mode (task 4). */
71
+ export declare function isExistingSiteEmpty(snapshot: ExistingSiteSnapshot): boolean;
72
+ /**
73
+ * Plain text, meant to travel through `assembleContext`'s `data` channel —
74
+ * escaping and tagging happen there (R8), never here. A collection's own
75
+ * `name` is a bare, schema-validated identifier (`^[a-z][a-z0-9_]*$`), but
76
+ * its `labels` are free text an operator or an earlier agent chose, so
77
+ * nothing here treats any part of this as safe to paste into a trusted
78
+ * instruction — the whole rendering goes through the data channel uniformly.
79
+ */
80
+ export declare function renderExistingSiteForPrompt(snapshot: ExistingSiteSnapshot): string;
81
+ //# sourceMappingURL=site-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-context.d.ts","sourceRoot":"","sources":["../../src/site-plan/site-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAE/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACvE,QAAQ,CAAC,MAAM,EAAE,SAAS,uBAAuB,EAAE,CAAA;IACnD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,qFAAqF;IACrF,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CACvC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,SAAS,0BAA0B,EAAE,CAAA;IAC3D,QAAQ,CAAC,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAA;IACxD,0FAA0F;IAC1F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,gHAAgH;IAChH,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC;AAED,8FAA8F;AAC9F,eAAO,MAAM,mBAAmB,EAAE,oBAKjC,CAAA;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACnD,8GAA8G;IAC9G,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAA;IACpE,sEAAsE;IACtE,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1C;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,oBAAoB,CA4B3F;AAED,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAE3E;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAmClF"}
@@ -0,0 +1,76 @@
1
+ /** What a brand-new site — the installer's own path, unchanged by this fiche — looks like. */
2
+ export const EMPTY_EXISTING_SITE = {
3
+ collections: [],
4
+ taxonomies: [],
5
+ activeTheme: '',
6
+ integrations: [],
7
+ };
8
+ export function describeExistingSite(input) {
9
+ const collections = input.collections.map((collection) => {
10
+ const counts = input.entryCounts?.[collection.name];
11
+ const routed = collection.routing !== undefined;
12
+ return {
13
+ name: collection.name,
14
+ labels: collection.labels,
15
+ fields: Object.entries(collection.fields).map(([name, field]) => ({
16
+ name,
17
+ kind: field.kind,
18
+ })),
19
+ routed,
20
+ entryCount: counts?.total ?? 0,
21
+ publishedCount: routed ? (counts?.published ?? 0) : null,
22
+ };
23
+ });
24
+ const taxonomies = (input.taxonomies ?? []).map((taxonomy) => ({
25
+ name: taxonomy.name,
26
+ termCount: input.termCounts?.[taxonomy.name] ?? 0,
27
+ }));
28
+ return {
29
+ collections,
30
+ taxonomies,
31
+ activeTheme: input.activeTheme ?? EMPTY_EXISTING_SITE.activeTheme,
32
+ integrations: input.integrations ?? [],
33
+ };
34
+ }
35
+ /** A fresh install, or a site whose schema declares nothing yet — "premier jet" mode (task 4). */
36
+ export function isExistingSiteEmpty(snapshot) {
37
+ return snapshot.collections.length === 0 && snapshot.taxonomies.length === 0;
38
+ }
39
+ /**
40
+ * Plain text, meant to travel through `assembleContext`'s `data` channel —
41
+ * escaping and tagging happen there (R8), never here. A collection's own
42
+ * `name` is a bare, schema-validated identifier (`^[a-z][a-z0-9_]*$`), but
43
+ * its `labels` are free text an operator or an earlier agent chose, so
44
+ * nothing here treats any part of this as safe to paste into a trusted
45
+ * instruction — the whole rendering goes through the data channel uniformly.
46
+ */
47
+ export function renderExistingSiteForPrompt(snapshot) {
48
+ if (isExistingSiteEmpty(snapshot)) {
49
+ return 'This is a brand-new site: no collection and no taxonomy is declared yet.';
50
+ }
51
+ const lines = [
52
+ snapshot.activeTheme === ''
53
+ ? 'Active theme: unknown.'
54
+ : `Active theme: ${snapshot.activeTheme}.`,
55
+ snapshot.integrations.length === 0
56
+ ? 'No integration is configured.'
57
+ : `Configured integrations: ${snapshot.integrations.join(', ')}.`,
58
+ '',
59
+ 'Collections already declared on this site:',
60
+ ];
61
+ for (const collection of snapshot.collections) {
62
+ const fieldList = collection.fields.map((field) => `${field.name} (${field.kind})`).join(', ') || 'no field';
63
+ const state = collection.routed
64
+ ? `routed, ${collection.publishedCount ?? 0} published of ${collection.entryCount} total`
65
+ : `not routed, ${collection.entryCount} entries`;
66
+ lines.push(`- ${collection.name} ("${collection.labels.plural}"): ${state}. Fields: ${fieldList}.`);
67
+ }
68
+ if (snapshot.taxonomies.length > 0) {
69
+ lines.push('', 'Taxonomies already declared on this site:');
70
+ for (const taxonomy of snapshot.taxonomies) {
71
+ lines.push(`- ${taxonomy.name}: ${taxonomy.termCount} term(s).`);
72
+ }
73
+ }
74
+ return lines.join('\n');
75
+ }
76
+ //# sourceMappingURL=site-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-context.js","sourceRoot":"","sources":["../../src/site-plan/site-context.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import type { ProviderClient } from '../providers/types.js';
1
+ import { type ProgressReporter } from '../progress/types.js';
2
+ import type { ChatImagePart, ProviderClient } from '../providers/types.js';
3
+ import { type ExistingSiteSnapshot } from './site-context.js';
2
4
  import type { SkinCandidate } from './types.js';
3
5
  /**
4
6
  * L19 task 3 — "l'utilisateur voit et choisit explicitement entre deux et
@@ -40,6 +42,16 @@ export interface GenerateSkinCandidatesOptions {
40
42
  readonly count?: number;
41
43
  /** Passed to each candidate's own validation loop. */
42
44
  readonly maxAttemptsPerCandidate?: number;
45
+ /**
46
+ * Fiche 60 task 3 — the site these candidates would style, when one
47
+ * already exists. Threaded to every `generateSkin` call as tagged,
48
+ * escaped data (R8), never folded into `description`.
49
+ */
50
+ readonly existingSite?: ExistingSiteSnapshot;
51
+ /** Fiche feedback — threaded to every direction's own `generateSkin` call, so a reference screenshot informs colour/typography, not only the base-theme choice (`theme-creator/propose-theme.ts`). */
52
+ readonly images?: readonly ChatImagePart[];
53
+ /** Fiche feedback — "je ne sais pas si le traitement est en cours ou pas". Reports which of the (up to five, run in parallel) design directions is starting or has settled, since nothing else distinguishes "still working" from "stuck" for the seconds this call takes. */
54
+ readonly onProgress?: ProgressReporter;
43
55
  }
44
56
  export interface SkinCandidateFailure {
45
57
  readonly id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"skin-candidates.d.ts","sourceRoot":"","sources":["../../src/site-plan/skin-candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EA+BnD,CAAA;AAED,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uGAAuG;IACvG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,4BAA4B,GACpC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;CACnD,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,8FAA8F;IAC9F,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;CACnD,CAAA;AAOL,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,4BAA4B,CAAC,CA6DvC"}
1
+ {"version":3,"file":"skin-candidates.d.ts","sourceRoot":"","sources":["../../src/site-plan/skin-candidates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE1E,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EA+BnD,CAAA;AAED,eAAO,MAAM,mBAAmB,IAAI,CAAA;AACpC,eAAO,MAAM,mBAAmB,IAAI,CAAA;AAEpC,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,uGAAuG;IACvG,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IACzC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,oBAAoB,CAAA;IAC5C,sMAAsM;IACtM,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;IAC1C,8QAA8Q;IAC9Q,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,4BAA4B,GACpC;IACE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;CACnD,GACD;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAA;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,8FAA8F;IAC9F,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAA;CACnD,CAAA;AAOL,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,4BAA4B,CAAC,CA+EvC"}
@@ -1,4 +1,6 @@
1
+ import { NOOP_PROGRESS } from '../progress/types.js';
1
2
  import { generateSkin } from '../skin/generate.js';
3
+ import { isExistingSiteEmpty, renderExistingSiteForPrompt, } from './site-context.js';
2
4
  /**
3
5
  * Five directions, ordered. Asking one model for "three different skins"
4
6
  * in one call reliably produces three near-identical ones; asking three
@@ -43,10 +45,16 @@ function clampCount(count) {
43
45
  }
44
46
  export async function generateSkinCandidates(options) {
45
47
  const directions = SKIN_DIRECTIONS.slice(0, clampCount(options.count));
48
+ const hasExistingSite = options.existingSite !== undefined && !isExistingSiteEmpty(options.existingSite);
49
+ const context = hasExistingSite && options.existingSite !== undefined
50
+ ? [{ source: 'current site', content: renderExistingSiteForPrompt(options.existingSite) }]
51
+ : undefined;
52
+ const progress = options.onProgress ?? NOOP_PROGRESS;
46
53
  // Run in parallel: the installer's whole promise is measured in seconds,
47
54
  // and five sequential three-attempt loops is a minute of staring at a
48
55
  // spinner. Each call is independent — no candidate reads another's result.
49
56
  const settled = await Promise.all(directions.map(async (direction) => {
57
+ progress.report(`Generating "${direction.label}"…`);
50
58
  const result = await generateSkin({
51
59
  client: options.client,
52
60
  model: options.model,
@@ -55,7 +63,14 @@ export async function generateSkinCandidates(options) {
55
63
  ...(options.maxAttemptsPerCandidate === undefined
56
64
  ? {}
57
65
  : { maxAttempts: options.maxAttemptsPerCandidate }),
66
+ ...(context === undefined ? {} : { context }),
67
+ ...(options.images === undefined || options.images.length === 0
68
+ ? {}
69
+ : { images: options.images }),
58
70
  });
71
+ progress.report(result.ok
72
+ ? `"${direction.label}" done (${result.attempts} attempt${result.attempts === 1 ? '' : 's'}).`
73
+ : `"${direction.label}" failed: ${result.reason}`);
59
74
  return { direction, result };
60
75
  }));
61
76
  const candidates = [];
@@ -1 +1 @@
1
- {"version":3,"file":"skin-candidates.js","sourceRoot":"","sources":["../../src/site-plan/skin-candidates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skin-candidates.js","sourceRoot":"","sources":["../../src/site-plan/skin-candidates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { ExistingSiteSnapshot } from './site-context.js';
2
+ import type { ProposedPage } from './types.js';
3
+ /**
4
+ * Fiche 60 task 5 — "un site sans page « contact » reçoit une suggestion
5
+ * nommée comme telle, refusable comme tout le reste."
6
+ *
7
+ * Deterministic, like `./constraints.js`: this never asks a model. It
8
+ * compares what the plan already proposes, plus what the site already
9
+ * declares, against a closed list of pages most sites need — and says
10
+ * nothing about the ones already covered. A suggestion is never applied by
11
+ * itself (R6): it becomes its own reviewable item (`./approval.js`'s
12
+ * `structuralGaps` section), accepted or rejected exactly like a proposed
13
+ * collection or a proposed page.
14
+ */
15
+ export declare const STRUCTURAL_GAP_TOPICS: readonly ['contact', 'legal', 'privacy'];
16
+ export type StructuralGapTopic = (typeof STRUCTURAL_GAP_TOPICS)[number];
17
+ export interface StructuralGapSuggestion {
18
+ /** Stable within a draft — one topic can appear at most once. */
19
+ readonly id: StructuralGapTopic;
20
+ readonly topic: StructuralGapTopic;
21
+ readonly title: string;
22
+ readonly slug: string;
23
+ readonly reason: string;
24
+ }
25
+ export interface DetectStructuralGapsInput {
26
+ readonly proposedPages: readonly ProposedPage[];
27
+ readonly existingSite: ExistingSiteSnapshot;
28
+ /** Which language to phrase a suggestion's title/reason in. Defaults to `en`. */
29
+ readonly locale?: string;
30
+ }
31
+ export declare function detectStructuralGaps(input: DetectStructuralGapsInput): readonly StructuralGapSuggestion[];
32
+ //# sourceMappingURL=structural-gaps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structural-gaps.d.ts","sourceRoot":"","sources":["../../src/site-plan/structural-gaps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,qBAAqB,YAAI,SAAS,EAAE,OAAO,EAAE,SAAS,CAAU,CAAA;AAC7E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvE,MAAM,WAAW,uBAAuB;IACtC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAyDD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAA;IAC/C,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAA;IAC3C,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,GAC/B,SAAS,uBAAuB,EAAE,CAuBpC"}
@@ -0,0 +1,77 @@
1
+ import { fold } from './constraints.js';
2
+ /**
3
+ * Fiche 60 task 5 — "un site sans page « contact » reçoit une suggestion
4
+ * nommée comme telle, refusable comme tout le reste."
5
+ *
6
+ * Deterministic, like `./constraints.js`: this never asks a model. It
7
+ * compares what the plan already proposes, plus what the site already
8
+ * declares, against a closed list of pages most sites need — and says
9
+ * nothing about the ones already covered. A suggestion is never applied by
10
+ * itself (R6): it becomes its own reviewable item (`./approval.js`'s
11
+ * `structuralGaps` section), accepted or rejected exactly like a proposed
12
+ * collection or a proposed page.
13
+ */
14
+ export const STRUCTURAL_GAP_TOPICS = ['contact', 'legal', 'privacy'];
15
+ const GAP_TEMPLATES = [
16
+ {
17
+ topic: 'contact',
18
+ pattern: /\b(contact|nous contacter|contactez[- ]nous|reach us|get in touch)\b/,
19
+ title: { en: 'Contact', fr: 'Contact' },
20
+ slug: { en: 'contact', fr: 'contact' },
21
+ reason: {
22
+ en: 'Most sites need a way for a visitor to reach the site owner.',
23
+ fr: 'La plupart des sites ont besoin d’un moyen pour qu’un visiteur puisse joindre le responsable du site.',
24
+ },
25
+ },
26
+ {
27
+ topic: 'legal',
28
+ pattern: /\b(mentions legales|legal notice|imprint|impressum)\b/,
29
+ title: { en: 'Legal notice', fr: 'Mentions légales' },
30
+ slug: { en: 'legal-notice', fr: 'mentions-legales' },
31
+ reason: {
32
+ en: 'Legally required in most jurisdictions once a site names an identified owner.',
33
+ fr: 'Obligatoire dans la plupart des juridictions dès qu’un site nomme un responsable identifié.',
34
+ },
35
+ },
36
+ {
37
+ topic: 'privacy',
38
+ pattern: /\b(politique de confidentialite|vie privee|privacy policy|donnees personnelles)\b/,
39
+ title: { en: 'Privacy policy', fr: 'Politique de confidentialité' },
40
+ slug: { en: 'privacy-policy', fr: 'politique-de-confidentialite' },
41
+ reason: {
42
+ en: 'Expected wherever the site collects any personal data — a contact form, an account, analytics.',
43
+ fr: 'Attendue dès que le site collecte des données personnelles — un formulaire de contact, un compte, des statistiques de visite.',
44
+ },
45
+ },
46
+ ];
47
+ function covered(pattern, texts) {
48
+ return texts.some((text) => pattern.test(fold(text)));
49
+ }
50
+ function pick(text, locale) {
51
+ return locale.toLowerCase().startsWith('fr') ? text.fr : text.en;
52
+ }
53
+ export function detectStructuralGaps(input) {
54
+ const locale = input.locale ?? 'en';
55
+ const known = [
56
+ ...input.proposedPages.flatMap((page) => [page.title, page.slug]),
57
+ ...input.existingSite.collections.flatMap((collection) => [
58
+ collection.name,
59
+ collection.labels.singular,
60
+ collection.labels.plural,
61
+ ]),
62
+ ];
63
+ const suggestions = [];
64
+ for (const template of GAP_TEMPLATES) {
65
+ if (covered(template.pattern, known))
66
+ continue;
67
+ suggestions.push({
68
+ id: template.topic,
69
+ topic: template.topic,
70
+ title: pick(template.title, locale),
71
+ slug: pick(template.slug, locale),
72
+ reason: pick(template.reason, locale),
73
+ });
74
+ }
75
+ return suggestions;
76
+ }
77
+ //# sourceMappingURL=structural-gaps.js.map