@rubytech/create-maxy 1.0.704 → 1.0.706

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 (209) hide show
  1. package/dist/__tests__/apt-resolve.test.js +179 -0
  2. package/dist/apt-resolve.js +73 -0
  3. package/dist/index.js +48 -46
  4. package/package.json +3 -3
  5. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.d.ts +2 -0
  6. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.d.ts.map +1 -0
  7. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.js +89 -0
  8. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.js.map +1 -0
  9. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.d.ts +42 -0
  10. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.d.ts.map +1 -0
  11. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.js +87 -0
  12. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.js.map +1 -0
  13. package/payload/platform/lib/graph-mcp/src/__tests__/schema-cypher-parser.test.ts +99 -0
  14. package/payload/platform/lib/graph-mcp/src/schema-cypher-parser.ts +84 -0
  15. package/payload/platform/neo4j/edge-annotations.json +134 -0
  16. package/payload/platform/package-lock.json +249 -67
  17. package/payload/platform/plugins/admin/PLUGIN.md +1 -0
  18. package/payload/platform/plugins/admin/mcp/dist/index.js +30 -0
  19. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  20. package/payload/platform/plugins/admin/skills/business-profile/SKILL.md +2 -2
  21. package/payload/platform/plugins/admin/skills/onboarding/SKILL.md +46 -5
  22. package/payload/platform/plugins/memory/PLUGIN.md +3 -1
  23. package/payload/platform/plugins/memory/mcp/dist/index.js +56 -6
  24. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  25. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.d.ts +2 -0
  26. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.d.ts.map +1 -0
  27. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js +92 -0
  28. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js.map +1 -0
  29. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.d.ts +2 -0
  30. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.d.ts.map +1 -0
  31. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js +51 -0
  32. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js.map +1 -0
  33. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.d.ts +2 -0
  34. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.d.ts.map +1 -0
  35. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js +222 -0
  36. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js.map +1 -0
  37. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts +16 -0
  38. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts.map +1 -1
  39. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js +38 -11
  40. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js.map +1 -1
  41. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts +136 -0
  42. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts.map +1 -0
  43. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js +180 -0
  44. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js.map +1 -0
  45. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts +11 -2
  46. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts.map +1 -1
  47. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js +6 -3
  48. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js.map +1 -1
  49. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts +44 -22
  50. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts.map +1 -1
  51. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js +94 -57
  52. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js.map +1 -1
  53. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts +7 -5
  54. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
  55. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +2 -2
  56. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
  57. package/payload/platform/plugins/memory/references/schema-base.md +4 -0
  58. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/index.d.ts +2 -0
  59. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/index.d.ts.map +1 -0
  60. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/index.js +293 -0
  61. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/index.js.map +1 -0
  62. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/crypto.d.ts +10 -0
  63. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/crypto.d.ts.map +1 -0
  64. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/crypto.js +88 -0
  65. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/crypto.js.map +1 -0
  66. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/loop-api.d.ts +80 -0
  67. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/loop-api.d.ts.map +1 -0
  68. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/loop-api.js +355 -0
  69. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/loop-api.js.map +1 -0
  70. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/neo4j.d.ts +5 -0
  71. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/neo4j.d.ts.map +1 -0
  72. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/neo4j.js +34 -0
  73. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/lib/neo4j.js.map +1 -0
  74. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/customer-preferences.d.ts +10 -0
  75. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/customer-preferences.d.ts.map +1 -0
  76. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/customer-preferences.js +24 -0
  77. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/customer-preferences.js.map +1 -0
  78. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback-list.d.ts +6 -0
  79. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback-list.d.ts.map +1 -0
  80. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback-list.js +18 -0
  81. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback-list.js.map +1 -0
  82. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback.d.ts +16 -0
  83. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback.d.ts.map +1 -0
  84. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback.js +35 -0
  85. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/feedback.js.map +1 -0
  86. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-deregister.d.ts +5 -0
  87. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-deregister.d.ts.map +1 -0
  88. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-deregister.js +19 -0
  89. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-deregister.js.map +1 -0
  90. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-list.d.ts +4 -0
  91. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-list.d.ts.map +1 -0
  92. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-list.js +14 -0
  93. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-list.js.map +1 -0
  94. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-register.d.ts +9 -0
  95. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-register.d.ts.map +1 -0
  96. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-register.js +60 -0
  97. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/key-register.js.map +1 -0
  98. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-enquiry.d.ts +13 -0
  99. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-enquiry.d.ts.map +1 -0
  100. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-enquiry.js +41 -0
  101. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-enquiry.js.map +1 -0
  102. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-batch.d.ts +9 -0
  103. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-batch.d.ts.map +1 -0
  104. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-batch.js +16 -0
  105. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-batch.js.map +1 -0
  106. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-request.d.ts +15 -0
  107. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-request.d.ts.map +1 -0
  108. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-request.js +11 -0
  109. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match-request.js.map +1 -0
  110. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match.d.ts +10 -0
  111. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match.d.ts.map +1 -0
  112. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match.js +39 -0
  113. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/marketing-match.js.map +1 -0
  114. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-detail.d.ts +9 -0
  115. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-detail.d.ts.map +1 -0
  116. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-detail.js +125 -0
  117. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-detail.js.map +1 -0
  118. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-list.d.ts +7 -0
  119. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-list.d.ts.map +1 -0
  120. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-list.js +16 -0
  121. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-list.js.map +1 -0
  122. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-search.d.ts +18 -0
  123. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-search.d.ts.map +1 -0
  124. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-search.js +87 -0
  125. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/people-search.js.map +1 -0
  126. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/properties-list.d.ts +7 -0
  127. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/properties-list.d.ts.map +1 -0
  128. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/properties-list.js +19 -0
  129. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/properties-list.js.map +1 -0
  130. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-detail.d.ts +10 -0
  131. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-detail.d.ts.map +1 -0
  132. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-detail.js +82 -0
  133. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-detail.js.map +1 -0
  134. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-listed.d.ts +12 -0
  135. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-listed.d.ts.map +1 -0
  136. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-listed.js +32 -0
  137. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-listed.js.map +1 -0
  138. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-request.d.ts +15 -0
  139. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-request.d.ts.map +1 -0
  140. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-request.js +11 -0
  141. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-request.js.map +1 -0
  142. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-search.d.ts +16 -0
  143. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-search.d.ts.map +1 -0
  144. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-search.js +41 -0
  145. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/property-search.js.map +1 -0
  146. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/supplier.d.ts +13 -0
  147. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/supplier.d.ts.map +1 -0
  148. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/supplier.js +49 -0
  149. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/supplier.js.map +1 -0
  150. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-availability.d.ts +7 -0
  151. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-availability.d.ts.map +1 -0
  152. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-availability.js +19 -0
  153. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-availability.js.map +1 -0
  154. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-info.d.ts +5 -0
  155. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-info.d.ts.map +1 -0
  156. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-info.js +32 -0
  157. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/team-info.js.map +1 -0
  158. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-create.d.ts +14 -0
  159. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-create.d.ts.map +1 -0
  160. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-create.js +11 -0
  161. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-create.js.map +1 -0
  162. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-detail.d.ts +9 -0
  163. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-detail.d.ts.map +1 -0
  164. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-detail.js +85 -0
  165. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-detail.js.map +1 -0
  166. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-search.d.ts +13 -0
  167. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-search.d.ts.map +1 -0
  168. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-search.js +44 -0
  169. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-search.js.map +1 -0
  170. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-update.d.ts +14 -0
  171. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-update.d.ts.map +1 -0
  172. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-update.js +18 -0
  173. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewing-update.js.map +1 -0
  174. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewings-list.d.ts +9 -0
  175. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewings-list.d.ts.map +1 -0
  176. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewings-list.js +25 -0
  177. package/payload/premium-plugins/real-agency/plugins/real-agency-loop/mcp/dist/tools/viewings-list.js.map +1 -0
  178. package/payload/server/chunk-32ZHQJNX.js +11395 -0
  179. package/payload/server/chunk-3RBKKDHC.js +783 -0
  180. package/payload/server/chunk-3VVHVJK2.js +11405 -0
  181. package/payload/server/chunk-5YIXIF6C.js +726 -0
  182. package/payload/server/chunk-B54KBAK4.js +72 -0
  183. package/payload/server/chunk-IAIGB5WN.js +11406 -0
  184. package/payload/server/chunk-LQ5GSMEW.js +12036 -0
  185. package/payload/server/chunk-O2FWENOD.js +11530 -0
  186. package/payload/server/chunk-PE76FPYP.js +12040 -0
  187. package/payload/server/chunk-Q6NDXCM6.js +11448 -0
  188. package/payload/server/chunk-U3W5YIXU.js +11450 -0
  189. package/payload/server/chunk-ZL2A4ROK.js +11416 -0
  190. package/payload/server/maxy-edge.js +1 -1
  191. package/payload/server/public/assets/{Checkbox-CDUmQ1Bu.js → Checkbox-CjbS9JcG.js} +1 -1
  192. package/payload/server/public/assets/{admin-picYWZfn.js → admin-Ce9DbUuu.js} +30 -30
  193. package/payload/server/public/assets/{data-yYbcrFrc.js → data-C-SxjLC9.js} +1 -1
  194. package/payload/server/public/assets/{file-CzLc4Rvq.js → file-D4cbAAuo.js} +1 -1
  195. package/payload/server/public/assets/{graph-BRzC0ZtS.js → graph-D-Rqh0Md.js} +1 -1
  196. package/payload/server/public/assets/{house-lM4gLKkH.js → house-CYsVygEQ.js} +1 -1
  197. package/payload/server/public/assets/jsx-runtime-DPXE45W9.css +1 -0
  198. package/payload/server/public/assets/{public-scZadgzt.js → public-BTOF98iO.js} +1 -1
  199. package/payload/server/public/assets/{share-2-CNdrRWue.js → share-2-B-sbkB36.js} +1 -1
  200. package/payload/server/public/assets/{useVoiceRecorder-D2kfoqVB.js → useVoiceRecorder-DLVFx3ms.js} +1 -1
  201. package/payload/server/public/assets/{x-CsDhB6Vr.js → x-BNidzSAn.js} +1 -1
  202. package/payload/server/public/data.html +6 -6
  203. package/payload/server/public/graph.html +7 -7
  204. package/payload/server/public/index.html +8 -8
  205. package/payload/server/public/public.html +5 -5
  206. package/payload/server/server.js +114 -54
  207. package/payload/server/upgrade-progress-server.js +83 -0
  208. package/payload/server/public/assets/jsx-runtime-I6ZqIGn8.css +0 -1
  209. /package/payload/server/public/assets/{jsx-runtime-BK2hplUC.js → jsx-runtime-BUs3sHtV.js} +0 -0
@@ -0,0 +1,11 @@
1
+ import { loopPost, withTeamKey } from "../lib/loop-api.js";
2
+ export async function viewingCreate(params) {
3
+ const { accountId, teamName, department, ...body } = params;
4
+ const result = await withTeamKey(accountId, teamName, "viewings", "loop-viewing-create", async (apiKey) => {
5
+ const path = `/residential/${department}/viewings`;
6
+ return loopPost(apiKey, path, body, "loop-viewing-create", teamName);
7
+ });
8
+ const viewingId = result.result ?? "unknown";
9
+ return `Viewing created (ID: ${viewingId}) for property ${params.propertyId} on ${params.date} at ${params.time} via team "${teamName}".`;
10
+ }
11
+ //# sourceMappingURL=viewing-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewing-create.js","sourceRoot":"","sources":["../../src/tools/viewing-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAc3D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAUnC;IACC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAE5D,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,SAAS,EACT,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,IAAI,GAAG,gBAAgB,UAAU,WAAW,CAAC;QACnD,OAAO,QAAQ,CAAqB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAC3F,CAAC,CACF,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC;IAC7C,OAAO,wBAAwB,SAAS,kBAAkB,MAAM,CAAC,UAAU,OAAO,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,cAAc,QAAQ,IAAI,CAAC;AAC5I,CAAC"}
@@ -0,0 +1,9 @@
1
+ type Department = "sales" | "lettings";
2
+ export declare function viewingDetail(params: {
3
+ accountId: string;
4
+ viewingId: number;
5
+ department: Department;
6
+ teamName?: string;
7
+ }): Promise<string>;
8
+ export {};
9
+ //# sourceMappingURL=viewing-detail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewing-detail.d.ts","sourceRoot":"","sources":["../../src/tools/viewing-detail.ts"],"names":[],"mappings":"AA4EA,KAAK,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;AAEvC,wBAAsB,aAAa,CAAC,MAAM,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiFlB"}
@@ -0,0 +1,85 @@
1
+ import { aggregateAcrossTeams, formatAggregationResult, loopGet, } from "../lib/loop-api.js";
2
+ export async function viewingDetail(params) {
3
+ const { accountId, viewingId, department, teamName } = params;
4
+ const result = await aggregateAcrossTeams(accountId, "viewings", "loop-viewing-detail", async (apiKey, team) => {
5
+ const path = `/residential/${department}/viewings/${viewingId}`;
6
+ const data = await loopGet(apiKey, path, "loop-viewing-detail", team);
7
+ if (data && typeof data === "object" && !Array.isArray(data)) {
8
+ return [data];
9
+ }
10
+ return [];
11
+ }, { teamName });
12
+ return formatAggregationResult(result, (v) => {
13
+ const propAddr = v.property?.propertyAddress ?? "Unknown property";
14
+ const lines = [`**${propAddr}** [Viewing ID: ${v.id}]`];
15
+ // Appointment time
16
+ if (v.dateOfAppointment) {
17
+ const start = formatDateTime(v.dateOfAppointment);
18
+ const end = v.dateOfAppointmentEnd ? formatDateTime(v.dateOfAppointmentEnd) : "";
19
+ lines.push(`Date/Time: ${start}${end ? ` — ${end}` : ""}`);
20
+ }
21
+ if (v.status)
22
+ lines.push(`Status: ${v.status}`);
23
+ if (v.type)
24
+ lines.push(`Type: ${v.type}`);
25
+ // Confirmation status
26
+ const confirmParts = [];
27
+ if (v.buyerConfirmed != null)
28
+ confirmParts.push(`Buyer: ${v.buyerConfirmed ? "yes" : "no"}`);
29
+ if (v.sellerConfirmed != null)
30
+ confirmParts.push(`Seller: ${v.sellerConfirmed ? "yes" : "no"}`);
31
+ if (v.agentConfirmed != null)
32
+ confirmParts.push(`Agent: ${v.agentConfirmed ? "yes" : "no"}`);
33
+ if (confirmParts.length)
34
+ lines.push(`Confirmed — ${confirmParts.join(", ")}`);
35
+ // Property details
36
+ if (v.property) {
37
+ const prop = v.property;
38
+ if (prop.price != null)
39
+ lines.push(`Property price: £${prop.price.toLocaleString("en-GB")}`);
40
+ if (prop.propertyType)
41
+ lines.push(`Property type: ${prop.propertyType}`);
42
+ if (prop.bedrooms != null)
43
+ lines.push(`Bedrooms: ${prop.bedrooms}`);
44
+ if (prop.id)
45
+ lines.push(`Property ID: ${prop.id}`);
46
+ }
47
+ // Buyer
48
+ if (v.buyer) {
49
+ const b = v.buyer;
50
+ lines.push(`\n**Buyer:** ${b.buyerGroupName ?? "Unknown"} [ID: ${b.id}]`);
51
+ if (b.maxPrice != null)
52
+ lines.push(` Max price: £${b.maxPrice.toLocaleString("en-GB")}`);
53
+ if (b.position && b.position !== "none")
54
+ lines.push(` Position: ${b.position}`);
55
+ }
56
+ // Seller
57
+ if (v.seller) {
58
+ const s = v.seller;
59
+ lines.push(`\n**Seller:** ${s.sellerGroupName ?? "Unknown"} [ID: ${s.id}]`);
60
+ }
61
+ // Attending agent
62
+ if (v.attendingAgent) {
63
+ const a = v.attendingAgent;
64
+ const agentName = [a.firstName, a.lastName].filter(Boolean).join(" ");
65
+ const title = a.jobTitle ? ` (${a.jobTitle})` : "";
66
+ const contact = a.email ?? a.mobilePhone ?? "";
67
+ lines.push(`\n**Attending agent:** ${agentName}${title}${contact ? ` — ${contact}` : ""}`);
68
+ }
69
+ // Feedback
70
+ if (v.buyerFeedback)
71
+ lines.push(`\nBuyer feedback: ${v.buyerFeedback}`);
72
+ if (v.sellerFeedback)
73
+ lines.push(`Seller feedback: ${v.sellerFeedback}`);
74
+ if (v.comment)
75
+ lines.push(`Notes: ${v.comment}`);
76
+ return lines.join("\n");
77
+ }, "viewing details");
78
+ }
79
+ function formatDateTime(iso) {
80
+ const [datePart, timePart] = iso.split("T");
81
+ if (!timePart)
82
+ return datePart;
83
+ return `${datePart} ${timePart.slice(0, 5)}`;
84
+ }
85
+ //# sourceMappingURL=viewing-detail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewing-detail.js","sourceRoot":"","sources":["../../src/tools/viewing-detail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ type Department = "sales" | "lettings" | "both";
2
+ export declare function viewingSearch(params: {
3
+ accountId: string;
4
+ department?: Department;
5
+ searchTerm?: string;
6
+ appointmentStartDate?: string;
7
+ appointmentEndDate?: string;
8
+ status?: string;
9
+ teamName?: string;
10
+ limit?: number;
11
+ }): Promise<string>;
12
+ export {};
13
+ //# sourceMappingURL=viewing-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewing-search.d.ts","sourceRoot":"","sources":["../../src/tools/viewing-search.ts"],"names":[],"mappings":"AAyBA,KAAK,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEhD,wBAAsB,aAAa,CAAC,MAAM,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiDlB"}
@@ -0,0 +1,44 @@
1
+ import { aggregateAcrossTeams, formatAggregationResult, loopGet, } from "../lib/loop-api.js";
2
+ export async function viewingSearch(params) {
3
+ const { accountId, department = "both", searchTerm, appointmentStartDate, appointmentEndDate, status, teamName, limit, } = params;
4
+ const result = await aggregateAcrossTeams(accountId, "viewings", "loop-viewing-search", async (apiKey, team) => {
5
+ const depts = department === "both" ? ["sales", "lettings"] : [department];
6
+ const all = [];
7
+ for (const dept of depts) {
8
+ const qp = [];
9
+ if (searchTerm)
10
+ qp.push(`SearchTerm=${encodeURIComponent(searchTerm)}`);
11
+ if (appointmentStartDate)
12
+ qp.push(`AppointmentStartDate=${encodeURIComponent(appointmentStartDate)}`);
13
+ if (appointmentEndDate)
14
+ qp.push(`AppointmentEndDate=${encodeURIComponent(appointmentEndDate)}`);
15
+ if (status)
16
+ qp.push(`Status=${encodeURIComponent(status)}`);
17
+ const query = qp.length > 0 ? `?${qp.join("&")}` : "";
18
+ const path = `/residential/${dept}/viewings${query}`;
19
+ const data = await loopGet(apiKey, path, "loop-viewing-search", team);
20
+ if (Array.isArray(data))
21
+ all.push(...data);
22
+ }
23
+ return all;
24
+ }, { teamName, limitPerTeam: limit ?? 50, limitTotal: limit ?? 200 });
25
+ return formatAggregationResult(result, (v) => {
26
+ const addr = v.propertyAddress ?? "Unknown property";
27
+ const id = v.id != null ? ` [ID: ${v.id}]` : "";
28
+ // dateOfAppointment is ISO datetime e.g. "2026-04-10T15:30:00"
29
+ const when = v.dateOfAppointment
30
+ ? formatDateTime(v.dateOfAppointment)
31
+ : "No date";
32
+ const viewStatus = v.status ? ` [${v.status}]` : "";
33
+ const buyer = v.buyerName ? ` — ${v.buyerName}` : "";
34
+ const viewType = v.type ? ` (${v.type})` : "";
35
+ return `- ${addr}${id} — ${when}${viewType}${buyer}${viewStatus}`;
36
+ }, "viewings");
37
+ }
38
+ function formatDateTime(iso) {
39
+ const [datePart, timePart] = iso.split("T");
40
+ if (!timePart)
41
+ return datePart;
42
+ return `${datePart} ${timePart.slice(0, 5)}`;
43
+ }
44
+ //# sourceMappingURL=viewing-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewing-search.js","sourceRoot":"","sources":["../../src/tools/viewing-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ type Department = "sales" | "lettings";
2
+ type FeedbackParty = "buyer" | "seller" | "renter" | "landlord";
3
+ type Action = "note" | "feedback";
4
+ export declare function viewingUpdate(params: {
5
+ accountId: string;
6
+ teamName: string;
7
+ viewingId: number;
8
+ department: Department;
9
+ action: Action;
10
+ text: string;
11
+ feedbackParty?: FeedbackParty;
12
+ }): Promise<string>;
13
+ export {};
14
+ //# sourceMappingURL=viewing-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewing-update.d.ts","sourceRoot":"","sources":["../../src/tools/viewing-update.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;AAKvC,KAAK,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAChE,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAYlC,wBAAsB,aAAa,CAAC,MAAM,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBlB"}
@@ -0,0 +1,18 @@
1
+ import { loopPost, withTeamKey } from "../lib/loop-api.js";
2
+ export async function viewingUpdate(params) {
3
+ const { accountId, teamName, viewingId, department, action, text, feedbackParty } = params;
4
+ if (action === "feedback" && !feedbackParty) {
5
+ throw new Error("feedbackParty is required when action is 'feedback'. Use: buyer, seller, renter, or landlord.");
6
+ }
7
+ await withTeamKey(accountId, teamName, "viewings", "loop-viewing-update", async (apiKey) => {
8
+ const suffix = action === "note"
9
+ ? "note"
10
+ : `${feedbackParty}-feedback`;
11
+ const path = `/residential/${department}/viewings/${viewingId}/${suffix}`;
12
+ // Loop expects the text as a StringResponse body
13
+ return loopPost(apiKey, path, { result: text }, "loop-viewing-update", teamName);
14
+ });
15
+ const actionLabel = action === "note" ? "Note added" : `${feedbackParty} feedback recorded`;
16
+ return `${actionLabel} for viewing ${viewingId} (${department}) via team "${teamName}".`;
17
+ }
18
+ //# sourceMappingURL=viewing-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewing-update.js","sourceRoot":"","sources":["../../src/tools/viewing-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAoB3D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAQnC;IACC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAE3F,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;IACnH,CAAC;IAED,MAAM,WAAW,CACf,SAAS,EACT,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,MAAM,KAAK,MAAM;YAC9B,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,GAAG,aAAa,WAAW,CAAC;QAChC,MAAM,IAAI,GAAG,gBAAgB,UAAU,aAAa,SAAS,IAAI,MAAM,EAAE,CAAC;QAC1E,iDAAiD;QACjD,OAAO,QAAQ,CAAsB,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IACxG,CAAC,CACF,CAAC;IAEF,MAAM,WAAW,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,aAAa,oBAAoB,CAAC;IAC5F,OAAO,GAAG,WAAW,gBAAgB,SAAS,KAAK,UAAU,eAAe,QAAQ,IAAI,CAAC;AAC3F,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare function viewingsList(params: {
2
+ accountId: string;
3
+ type?: string;
4
+ teamName?: string;
5
+ dateFrom?: string;
6
+ dateTo?: string;
7
+ limit?: number;
8
+ }): Promise<string>;
9
+ //# sourceMappingURL=viewings-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewings-list.d.ts","sourceRoot":"","sources":["../../src/tools/viewings-list.ts"],"names":[],"mappings":"AAiBA,wBAAsB,YAAY,CAAC,MAAM,EAAE;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqClB"}
@@ -0,0 +1,25 @@
1
+ import { aggregateAcrossTeams, formatAggregationResult, loopGet, } from "../lib/loop-api.js";
2
+ export async function viewingsList(params) {
3
+ const { accountId, type, teamName, dateFrom, dateTo, limit } = params;
4
+ const result = await aggregateAcrossTeams(accountId, "viewings", "loop-viewings-list", async (apiKey, team) => {
5
+ const queryParts = [];
6
+ if (type && type !== "both")
7
+ queryParts.push(`type=${encodeURIComponent(type)}`);
8
+ if (dateFrom)
9
+ queryParts.push(`dateFrom=${encodeURIComponent(dateFrom)}`);
10
+ if (dateTo)
11
+ queryParts.push(`dateTo=${encodeURIComponent(dateTo)}`);
12
+ const query = queryParts.length > 0 ? `?${queryParts.join("&")}` : "";
13
+ const data = await loopGet(apiKey, `/viewings${query}`, "loop-viewings-list", team);
14
+ return Array.isArray(data) ? data : [];
15
+ }, { teamName, limitPerTeam: limit ?? 50, limitTotal: limit ?? 200 });
16
+ return formatAggregationResult(result, (v) => {
17
+ const addr = v.propertyAddress ?? "Unknown property";
18
+ const when = [v.date, v.time].filter(Boolean).join(" ");
19
+ const status = v.status ? ` [${v.status}]` : "";
20
+ const attendee = v.attendeeName ? ` — ${v.attendeeName}` : "";
21
+ const viewType = v.type ? ` (${v.type})` : "";
22
+ return `- ${addr} — ${when || "No date"}${viewType}${attendee}${status}`;
23
+ }, "viewings");
24
+ }
25
+ //# sourceMappingURL=viewings-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewings-list.js","sourceRoot":"","sources":["../../src/tools/viewings-list.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,OAAO,GACR,MAAM,oBAAoB,CAAC;AAa5B,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAOlC;IACC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAEtE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,SAAS,EACT,UAAU,EACV,oBAAoB,EACpB,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,IAAI,IAAI,IAAI,KAAK,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjF,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,YAAY,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtE,MAAM,IAAI,GAAG,MAAM,OAAO,CACxB,MAAM,EACN,YAAY,KAAK,EAAE,EACnB,oBAAoB,EACpB,IAAI,CACL,CAAC;QACF,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC,EACD,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,IAAI,GAAG,EAAE,CAClE,CAAC;IAEF,OAAO,uBAAuB,CAC5B,MAAM,EACN,CAAC,CAAC,EAAE,EAAE;QACJ,MAAM,IAAI,GAAG,CAAC,CAAC,eAAe,IAAI,kBAAkB,CAAC;QACrD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,KAAK,IAAI,MAAM,IAAI,IAAI,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC;IAC3E,CAAC,EACD,UAAU,CACX,CAAC;AACJ,CAAC"}