@rubytech/create-maxy-code 0.1.114 → 0.1.115

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 (711) hide show
  1. package/dist/__tests__/installer-specialist-registration.test.js +40 -1
  2. package/dist/__tests__/premium-bundle-gate.test.js +59 -0
  3. package/dist/index.js +24 -1
  4. package/dist/specialist-registration.js +15 -0
  5. package/package.json +1 -1
  6. package/payload/platform/config/brand.json +1 -1
  7. package/payload/platform/neo4j/schema.cypher +1 -1
  8. package/payload/platform/plugins/.claude-plugin/marketplace.json +0 -5
  9. package/payload/platform/plugins/contacts/mcp/dist/index.js +3 -3
  10. package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
  11. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js +1 -1
  12. package/payload/platform/plugins/docs/references/contacts-guide.md +1 -9
  13. package/payload/platform/plugins/docs/references/getting-started.md +1 -1
  14. package/payload/platform/plugins/docs/references/internals.md +1 -1
  15. package/payload/platform/plugins/docs/references/platform.md +1 -1
  16. package/payload/platform/plugins/docs/references/plugins-guide.md +1 -2
  17. package/payload/platform/plugins/linkedin-import/PLUGIN.md +1 -1
  18. package/payload/platform/plugins/memory/PLUGIN.md +1 -1
  19. package/payload/platform/plugins/sales/.claude-plugin/plugin.json +1 -1
  20. package/payload/platform/plugins/sales/PLUGIN.md +9 -9
  21. package/payload/platform/plugins/sales/references/close-tracking.md +6 -6
  22. package/payload/platform/plugins/sales/references/faq.md +1 -5
  23. package/payload/platform/plugins/sales/references/objection-handling.md +2 -2
  24. package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
  25. package/payload/platform/plugins/scheduling/mcp/dist/index.js +2 -2
  26. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
  27. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js +1 -1
  28. package/payload/platform/plugins/venture-studio/skills/office-hours/SKILL.md +3 -3
  29. package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +4 -4
  30. package/payload/platform/plugins/workflows/PLUGIN.md +1 -1
  31. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +1 -1
  32. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +2 -2
  33. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -1
  34. package/payload/platform/scripts/conversation-id-allowlist.txt +0 -7
  35. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  36. package/payload/platform/services/claude-session-manager/dist/http-server.js +42 -1
  37. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  38. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +34 -0
  39. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  40. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +83 -2
  41. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  42. package/payload/platform/templates/specialists/agents/project-manager.md +1 -3
  43. package/payload/premium-plugins/.claude-plugin/marketplace.json +0 -10
  44. package/payload/premium-plugins/venture-studio/skills/office-hours/SKILL.md +3 -3
  45. package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +4 -4
  46. package/payload/server/{chunk-FSPPVVWM.js → chunk-FJCI6X3H.js} +192 -0
  47. package/payload/server/maxy-edge.js +1 -1
  48. package/payload/server/public/assets/{ChatInput-CsnIedhS.js → ChatInput-CJo_77bp.js} +5 -1
  49. package/payload/server/public/assets/{Checkbox-CWugFyFT.js → Checkbox-YrQovXpN.js} +1 -1
  50. package/payload/server/public/assets/{admin-D3gZuyUn.js → admin-DOxHsV7g.js} +25 -25
  51. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CeTRKWDb.js → architectureDiagram-Q4EWVU46-Breg9-99.js} +1 -1
  52. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DeeIX5U3.js → blockDiagram-DXYQGD6D-DXf1_673.js} +1 -1
  53. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-CFsqZuil.js → c4Diagram-AHTNJAMY-CSZ36W4-.js} +1 -1
  54. package/payload/server/public/assets/channel-BmZnt3PP.js +1 -0
  55. package/payload/server/public/assets/{chunk-336JU56O-DpIXuFM0.js → chunk-336JU56O-DsrLk2eK.js} +2 -2
  56. package/payload/server/public/assets/{chunk-426QAEUC-Qk8qqrvA.js → chunk-426QAEUC-JpNfNf81.js} +1 -1
  57. package/payload/server/public/assets/{chunk-4TB4RGXK-DtM8-CUn.js → chunk-4TB4RGXK-DmClEAD0.js} +1 -1
  58. package/payload/server/public/assets/{chunk-5FUZZQ4R-CrSQ4ySU.js → chunk-5FUZZQ4R-BI9blW3N.js} +1 -1
  59. package/payload/server/public/assets/{chunk-5PVQY5BW-Bn2nQwdj.js → chunk-5PVQY5BW-BbgttEFO.js} +1 -1
  60. package/payload/server/public/assets/{chunk-EDXVE4YY-CzCPnR0P.js → chunk-EDXVE4YY-BX_LCFOx.js} +1 -1
  61. package/payload/server/public/assets/{chunk-ENJZ2VHE-CgZj9RoG.js → chunk-ENJZ2VHE-Bb7EoD0w.js} +1 -1
  62. package/payload/server/public/assets/{chunk-ICPOFSXX-wy-eNjwW.js → chunk-ICPOFSXX-DH8uQk-s.js} +1 -1
  63. package/payload/server/public/assets/{chunk-OYMX7WX6-CMmJtL8S.js → chunk-OYMX7WX6-FH5kgXsw.js} +1 -1
  64. package/payload/server/public/assets/{chunk-U2HBQHQK-CFCW7OaT.js → chunk-U2HBQHQK-D_ljlkHr.js} +1 -1
  65. package/payload/server/public/assets/{chunk-X2U36JSP-Bgh-CJSN.js → chunk-X2U36JSP-BX3EmZvm.js} +1 -1
  66. package/payload/server/public/assets/{chunk-YZCP3GAM-BXKwZ4vN.js → chunk-YZCP3GAM-Vu7-E93h.js} +1 -1
  67. package/payload/server/public/assets/{chunk-ZZ45TVLE-BiOuK5NP.js → chunk-ZZ45TVLE-CwjhNPX5.js} +1 -1
  68. package/payload/server/public/assets/classDiagram-6PBFFD2Q-kmMLFUpV.js +1 -0
  69. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BV7Ae8ct.js +1 -0
  70. package/payload/server/public/assets/clone-B5eqoN9I.js +1 -0
  71. package/payload/server/public/assets/{dagre-DyCxa9Q2.js → dagre-Ce6gsj0C.js} +1 -1
  72. package/payload/server/public/assets/{dagre-KV5264BT-Cffo_hmf.js → dagre-KV5264BT-BaMGpsoy.js} +1 -1
  73. package/payload/server/public/assets/data-NMvGx6jm.js +1 -0
  74. package/payload/server/public/assets/{diagram-5BDNPKRD-Bt93Du3V.js → diagram-5BDNPKRD-CHEE9rjq.js} +1 -1
  75. package/payload/server/public/assets/{diagram-G4DWMVQ6-v4r-tBsC.js → diagram-G4DWMVQ6-C98sZLW1.js} +1 -1
  76. package/payload/server/public/assets/{diagram-MMDJMWI5-DKrVPOP-.js → diagram-MMDJMWI5-DNvMGsTZ.js} +1 -1
  77. package/payload/server/public/assets/{diagram-TYMM5635-B1PzWQb9.js → diagram-TYMM5635-Cdte4IBa.js} +1 -1
  78. package/payload/server/public/assets/{erDiagram-SMLLAGMA-ClQzsQAs.js → erDiagram-SMLLAGMA-C9VZsWXK.js} +1 -1
  79. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-h3IbpN_7.js → flowDiagram-DWJPFMVM-tuP5fzzR.js} +1 -1
  80. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-ClaxOJi8.js → ganttDiagram-T4ZO3ILL-SJgRPUwx.js} +1 -1
  81. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-pM-U4ClD.js → gitGraphDiagram-UUTBAWPF-DU_cI_50.js} +1 -1
  82. package/payload/server/public/assets/graph-BkwTCV2Y.js +1 -0
  83. package/payload/server/public/assets/graph-labels-h39S93Xo.js +1 -0
  84. package/payload/server/public/assets/{graphlib-CwimOv_M.js → graphlib-D_nAsvmx.js} +1 -1
  85. package/payload/server/public/assets/{infoDiagram-42DDH7IO-DcO3Giwe.js → infoDiagram-42DDH7IO-Cj2Y19m6.js} +1 -1
  86. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-BcdSL5VS.js → ishikawaDiagram-UXIWVN3A-DMc1xq1y.js} +1 -1
  87. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CYahHYzf.js → journeyDiagram-VCZTEJTY-C4CRAQma.js} +1 -1
  88. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Cl5KhoS4.js → kanban-definition-6JOO6SKY-CTr4AldU.js} +1 -1
  89. package/payload/server/public/assets/lib-Bnh57com.js +29 -0
  90. package/payload/server/public/assets/{line-d_2oTxLp.js → line-Btlm_IAl.js} +1 -1
  91. package/payload/server/public/assets/{mermaid-parser.core-CMMDGv3x.js → mermaid-parser.core-DXFdj_y1.js} +1 -1
  92. package/payload/server/public/assets/{mermaid.core-DK9ENGbr.js → mermaid.core-DFBhoCr5.js} +3 -3
  93. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-mA3x3MFG.js → mindmap-definition-QFDTVHPH-r9gVQybo.js} +1 -1
  94. package/payload/server/public/assets/{page-CgDmg_fX.js → page-B0iMmY6t.js} +1 -1
  95. package/payload/server/public/assets/{page-D9lluVl7.js → page-zQ79YCEt.js} +2 -2
  96. package/payload/server/public/assets/{pieDiagram-DEJITSTG-CW1nGFlY.js → pieDiagram-DEJITSTG-CHKZjSaH.js} +1 -1
  97. package/payload/server/public/assets/{public-DdLMkNdS.js → public-DyGWgfaZ.js} +4 -4
  98. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DI5igJhR.js → quadrantDiagram-34T5L4WZ-CSGR1HJr.js} +1 -1
  99. package/payload/server/public/assets/{requirementDiagram-MS252O5E-DyVeI4e_.js → requirementDiagram-MS252O5E-DZ6hX9D6.js} +1 -1
  100. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-CCTTBYKY.js → sankeyDiagram-XADWPNL6-DbZBKh0m.js} +1 -1
  101. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-hVVf35ly.js → sequenceDiagram-FGHM5R23-BHHpb8dt.js} +1 -1
  102. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CSLuQDUX.js → stateDiagram-FHFEXIEX-DQ1jiLB4.js} +1 -1
  103. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CByT2RzF.js +1 -0
  104. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-sxC3W8Q4.js → timeline-definition-GMOUNBTQ-BlGiEU7p.js} +1 -1
  105. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-Ro-ton6Z.js → vennDiagram-DHZGUBPP-DmEH-hsB.js} +1 -1
  106. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-T-dKD0Zx.js → wardleyDiagram-NUSXRM2D-C7KJJ40d.js} +1 -1
  107. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-CfProPts.js → xychartDiagram-5P7HB3ND-JDnusCaa.js} +1 -1
  108. package/payload/server/public/data.html +4 -4
  109. package/payload/server/public/graph.html +5 -5
  110. package/payload/server/public/index.html +7 -7
  111. package/payload/server/public/public.html +4 -4
  112. package/payload/server/server.js +52 -8
  113. package/payload/platform/plugins/waitlist/.claude-plugin/plugin.json +0 -17
  114. package/payload/platform/plugins/waitlist/PLUGIN.md +0 -86
  115. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts +0 -2
  116. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts.map +0 -1
  117. package/payload/platform/plugins/waitlist/mcp/dist/index.js +0 -388
  118. package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +0 -1
  119. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts +0 -16
  120. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts.map +0 -1
  121. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js +0 -58
  122. package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js.map +0 -1
  123. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts +0 -3
  124. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts.map +0 -1
  125. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js +0 -48
  126. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js.map +0 -1
  127. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts +0 -5
  128. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts.map +0 -1
  129. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js +0 -40
  130. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js.map +0 -1
  131. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts +0 -2
  132. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts.map +0 -1
  133. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js +0 -70
  134. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js.map +0 -1
  135. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts +0 -34
  136. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts.map +0 -1
  137. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js +0 -129
  138. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js.map +0 -1
  139. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts +0 -27
  140. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts.map +0 -1
  141. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js +0 -127
  142. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js.map +0 -1
  143. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts +0 -23
  144. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts.map +0 -1
  145. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js +0 -58
  146. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js.map +0 -1
  147. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts +0 -83
  148. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts.map +0 -1
  149. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js +0 -433
  150. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js.map +0 -1
  151. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts +0 -19
  152. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts.map +0 -1
  153. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js +0 -81
  154. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js.map +0 -1
  155. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts +0 -28
  156. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts.map +0 -1
  157. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js +0 -50
  158. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js.map +0 -1
  159. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts +0 -33
  160. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts.map +0 -1
  161. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js +0 -297
  162. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js.map +0 -1
  163. package/payload/platform/plugins/waitlist/mcp/package.json +0 -23
  164. package/payload/platform/plugins/waitlist/mcp/vitest.config.ts +0 -9
  165. package/payload/premium-plugins/real-agent/BUNDLE.md +0 -47
  166. package/payload/premium-plugins/real-agent/agents/buyer-enquiry/IDENTITY.md +0 -13
  167. package/payload/premium-plugins/real-agent/agents/buyer-enquiry/SOUL.md +0 -19
  168. package/payload/premium-plugins/real-agent/agents/buyer-enquiry/template.json +0 -9
  169. package/payload/premium-plugins/real-agent/agents/compliance.md +0 -317
  170. package/payload/premium-plugins/real-agent/agents/listing-curator.md +0 -152
  171. package/payload/premium-plugins/real-agent/agents/negotiator.md +0 -167
  172. package/payload/premium-plugins/real-agent/agents/valuer.md +0 -155
  173. package/payload/premium-plugins/real-agent/plugins/.claude-plugin/marketplace.json +0 -68
  174. package/payload/premium-plugins/real-agent/plugins/brochures/.claude-plugin/plugin.json +0 -8
  175. package/payload/premium-plugins/real-agent/plugins/brochures/PLUGIN.md +0 -38
  176. package/payload/premium-plugins/real-agent/plugins/brochures/commands/make-brochure.md +0 -11
  177. package/payload/premium-plugins/real-agent/plugins/brochures/skills/a4-print-documents/SKILL.md +0 -478
  178. package/payload/premium-plugins/real-agent/plugins/brochures/skills/brand-design/SKILL.md +0 -235
  179. package/payload/premium-plugins/real-agent/plugins/brochures/skills/make-brochure/SKILL.md +0 -355
  180. package/payload/premium-plugins/real-agent/plugins/brochures/skills/make-brochure/references/seller-brief-template.md +0 -115
  181. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/SKILL.md +0 -195
  182. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/build.md +0 -689
  183. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/copy.md +0 -211
  184. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/images.md +0 -166
  185. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/index-landing.md +0 -376
  186. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/index.html +0 -1290
  187. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/placeholders.md +0 -250
  188. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/registers.md +0 -105
  189. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/seller-brief.md +0 -56
  190. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/structure.md +0 -249
  191. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/template.html +0 -2400
  192. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-extract/SKILL.md +0 -366
  193. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-market-report/SKILL.md +0 -100
  194. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-market-report/references/render.py +0 -267
  195. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-market-report/references/template.html +0 -266
  196. package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-socials/SKILL.md +0 -143
  197. package/payload/premium-plugins/real-agent/plugins/buyers/.claude-plugin/plugin.json +0 -8
  198. package/payload/premium-plugins/real-agent/plugins/buyers/PLUGIN.md +0 -35
  199. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-feedback/SKILL.md +0 -109
  200. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/SKILL.md +0 -42
  201. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-qualification-questions.md +0 -16
  202. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-qualification.md +0 -59
  203. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-scripts.md +0 -63
  204. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-working-scripts.md +0 -54
  205. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/feedback-collection.md +0 -42
  206. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/offer-capture.md +0 -38
  207. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/viewing-booking.md +0 -32
  208. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/viewing-management.md +0 -52
  209. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/SKILL.md +0 -407
  210. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/care-fees-guide.md +0 -68
  211. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/divorce-sales-guide.md +0 -61
  212. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/downsizing-guide.md +0 -45
  213. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/first-time-buyers.md +0 -92
  214. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/first-time-sellers.md +0 -78
  215. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/probate-guide.md +0 -53
  216. package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/upsizing-guide.md +0 -41
  217. package/payload/premium-plugins/real-agent/plugins/buyers/skills/property-enquiry/SKILL.md +0 -126
  218. package/payload/premium-plugins/real-agent/plugins/buyers/skills/property-recommender/SKILL.md +0 -116
  219. package/payload/premium-plugins/real-agent/plugins/buyers/skills/viewing-management/SKILL.md +0 -111
  220. package/payload/premium-plugins/real-agent/plugins/estate-business/.claude-plugin/plugin.json +0 -8
  221. package/payload/premium-plugins/real-agent/plugins/estate-business/PLUGIN.md +0 -64
  222. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/SKILL.md +0 -133
  223. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/buy-back-your-time.md +0 -37
  224. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/firewave-gost-scorecards.md +0 -14
  225. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/keller-org-model.md +0 -17
  226. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/lencioni-team-models.md +0 -22
  227. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/listing-management-system.md +0 -11
  228. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/net-figure-form.md +0 -11
  229. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/serhant-bizinbox-notes.md +0 -13
  230. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/team-roles-commission.md +0 -14
  231. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/va-2026-ops.md +0 -43
  232. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/wingman-structure.md +0 -13
  233. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/SKILL.md +0 -32
  234. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/crm-systems.md +0 -57
  235. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/hiring-guide.md +0 -59
  236. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/impact-framework.md +0 -47
  237. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/minutes-equal-money.md +0 -55
  238. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/team-management.md +0 -48
  239. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/commission-calculator/SKILL.md +0 -40
  240. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/SKILL.md +0 -52
  241. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/12-reasons.md +0 -39
  242. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/95-5-system.md +0 -66
  243. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/agent-attraction-scripts.md +0 -90
  244. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/business-partnership.md +0 -92
  245. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/exp-model-overview.md +0 -66
  246. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/model-comparison.md +0 -66
  247. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/revenue-share-explained.md +0 -57
  248. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/month-end-close/SKILL.md +0 -69
  249. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/payment-batch-stager/SKILL.md +0 -42
  250. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/period-reconciler/SKILL.md +0 -42
  251. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/SKILL.md +0 -117
  252. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/attraction-agent-notes.md +0 -31
  253. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/attraction-agent.md +0 -58
  254. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/authenticity-boundaries.md +0 -28
  255. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/become-a-brand-leader-notes.md +0 -19
  256. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/blast-formula.md +0 -42
  257. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/brand-leader.md +0 -48
  258. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/brand-strategy-system.md +0 -59
  259. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/content-engine.md +0 -49
  260. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/firewave-blast-and-blogging.md +0 -23
  261. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/gary-v-content.md +0 -52
  262. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/gary-v-principles.md +0 -20
  263. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/oversubscribed-positioning.md +0 -18
  264. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/platforms.md +0 -41
  265. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/priestley-oversubscribed.md +0 -54
  266. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/storeys-style-examples.md +0 -25
  267. package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/visual-identity.md +0 -27
  268. package/payload/premium-plugins/real-agent/plugins/estate-coaching/.claude-plugin/plugin.json +0 -8
  269. package/payload/premium-plugins/real-agent/plugins/estate-coaching/PLUGIN.md +0 -54
  270. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/SKILL.md +0 -371
  271. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/atomic-habits.md +0 -52
  272. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/daily-routine-scorecard.md +0 -104
  273. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/hp6-model.md +0 -63
  274. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/twelve-week-year.md +0 -71
  275. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/SKILL.md +0 -36
  276. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/references/coaching-boundaries.md +0 -56
  277. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/references/feedback-framework.md +0 -61
  278. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/references/performance-framework.md +0 -109
  279. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/SKILL.md +0 -421
  280. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/coaching-exercises.md +0 -86
  281. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/goal-setting.md +0 -78
  282. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/one-to-one-framework.md +0 -92
  283. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/soi-workbook.md +0 -103
  284. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/SKILL.md +0 -410
  285. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/agent-training-guide.md +0 -70
  286. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/business-in-a-box.md +0 -72
  287. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/buyers-guide.md +0 -53
  288. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/codo-method.md +0 -72
  289. package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/website-planning-guide.md +0 -79
  290. package/payload/premium-plugins/real-agent/plugins/estate-sales/.claude-plugin/plugin.json +0 -8
  291. package/payload/premium-plugins/real-agent/plugins/estate-sales/PLUGIN.md +0 -52
  292. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/chase-progression/SKILL.md +0 -107
  293. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/SKILL.md +0 -35
  294. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/deal-saving.md +0 -47
  295. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/negotiation-deep-guide.md +0 -64
  296. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/negotiation-prep-principles.md +0 -29
  297. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/negotiation-techniques.md +0 -42
  298. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/offer-presentation.md +0 -43
  299. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/risk-scorer/SKILL.md +0 -42
  300. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-closer/SKILL.md +0 -24
  301. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-closer/references/serhant-emotion-stages.md +0 -36
  302. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/SKILL.md +0 -30
  303. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/chris-voss-discovery.md +0 -88
  304. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/firewave-gost-journey.md +0 -68
  305. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/phil-jones-openers.md +0 -78
  306. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/pre-listing-checklist.md +0 -77
  307. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/serhant-improv.md +0 -22
  308. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/tom-ferry-discovery.md +0 -103
  309. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/vendor-motivation-competitor.md +0 -52
  310. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/SKILL.md +0 -29
  311. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/chris-voss-negotiation.md +0 -70
  312. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/phil-jones-price-words.md +0 -40
  313. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/serhant-negotiation-plus.md +0 -55
  314. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/tom-panos-commission-pricing.md +0 -57
  315. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/tony-morris-questioning.md +0 -54
  316. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-progression/SKILL.md +0 -27
  317. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-progression/references/conveyancing-guide.md +0 -54
  318. package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-progression/references/transaction-tracking.md +0 -66
  319. package/payload/premium-plugins/real-agent/plugins/estate-teaching/.claude-plugin/plugin.json +0 -8
  320. package/payload/premium-plugins/real-agent/plugins/estate-teaching/PLUGIN.md +0 -30
  321. package/payload/premium-plugins/real-agent/plugins/estate-teaching/skills/content-directory/SKILL.md +0 -39
  322. package/payload/premium-plugins/real-agent/plugins/estate-teaching/skills/content-directory/references/module-delivery.md +0 -65
  323. package/payload/premium-plugins/real-agent/plugins/estate-teaching/skills/content-directory/references/progress-tracking.md +0 -47
  324. package/payload/premium-plugins/real-agent/plugins/leads/.claude-plugin/plugin.json +0 -8
  325. package/payload/premium-plugins/real-agent/plugins/leads/PLUGIN.md +0 -61
  326. package/payload/premium-plugins/real-agent/plugins/leads/skills/chain-progression-tracker/SKILL.md +0 -51
  327. package/payload/premium-plugins/real-agent/plugins/leads/skills/diary-builder/SKILL.md +0 -38
  328. package/payload/premium-plugins/real-agent/plugins/leads/skills/enquiry-triage/SKILL.md +0 -36
  329. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/SKILL.md +0 -137
  330. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/buyer-search-letter.md +0 -28
  331. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/buyer-search-letters.md +0 -37
  332. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/database-reactivation.md +0 -30
  333. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/email-nurture-sequences.md +0 -45
  334. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/facebook-referrals.md +0 -30
  335. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/firewave-email-nurture-sequences.md +0 -41
  336. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/keller-33-touch.md +0 -34
  337. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/neighbour-letters.md +0 -31
  338. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/neighbour-notification-letter.md +0 -20
  339. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/ofi-follow-up-dialogue.md +0 -22
  340. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/ofi-follow-up.md +0 -26
  341. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/serhant-three-fs-plus.md +0 -21
  342. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sharran-10x10x10.md +0 -18
  343. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sms-templates.md +0 -40
  344. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sphere-of-influence-notes.md +0 -34
  345. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sphere-of-influence.md +0 -60
  346. package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/tom-panos-sms-templates.md +0 -59
  347. package/payload/premium-plugins/real-agent/plugins/leads/skills/morning-round/SKILL.md +0 -72
  348. package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/SKILL.md +0 -33
  349. package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/database-matching.md +0 -30
  350. package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/database-value.md +0 -53
  351. package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/prospecting-dialogues.md +0 -24
  352. package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/reactivation.md +0 -34
  353. package/payload/premium-plugins/real-agent/plugins/listings/.claude-plugin/plugin.json +0 -8
  354. package/payload/premium-plugins/real-agent/plugins/listings/PLUGIN.md +0 -100
  355. package/payload/premium-plugins/real-agent/plugins/listings/skills/comparable-finder/SKILL.md +0 -52
  356. package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/SKILL.md +0 -28
  357. package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/kerb-appeal.md +0 -38
  358. package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/photo-day.md +0 -59
  359. package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/situational-tips.md +0 -50
  360. package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/staging-guide.md +0 -52
  361. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-copy-writer/SKILL.md +0 -55
  362. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/SKILL.md +0 -286
  363. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/booking-script.md +0 -51
  364. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/objection-scripts.md +0 -193
  365. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/penhaul-presentation.md +0 -123
  366. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/pre-listing-kit.md +0 -139
  367. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/set-to-sell.md +0 -55
  368. package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/sharran-frameworks.md +0 -107
  369. package/payload/premium-plugins/real-agent/plugins/listings/skills/local-market-stats/SKILL.md +0 -33
  370. package/payload/premium-plugins/real-agent/plugins/listings/skills/new-instruction/SKILL.md +0 -77
  371. package/payload/premium-plugins/real-agent/plugins/listings/skills/particulars-builder/SKILL.md +0 -48
  372. package/payload/premium-plugins/real-agent/plugins/listings/skills/portal-launch-scheduler/SKILL.md +0 -49
  373. package/payload/premium-plugins/real-agent/plugins/listings/skills/pricing-scenario-builder/SKILL.md +0 -35
  374. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/SKILL.md +0 -337
  375. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/auction-report-template.md +0 -41
  376. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/coming-soon-campaign.md +0 -43
  377. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/direct-mail-templates.md +0 -121
  378. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/eoi-form-template.md +0 -62
  379. package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/monthly-scorecard.md +0 -63
  380. package/payload/premium-plugins/real-agent/plugins/listings/skills/supplier-booker/SKILL.md +0 -39
  381. package/payload/premium-plugins/real-agent/plugins/listings/skills/talk-track-composer/SKILL.md +0 -36
  382. package/payload/premium-plugins/real-agent/plugins/listings/skills/terms-of-business-drafter/SKILL.md +0 -54
  383. package/payload/premium-plugins/real-agent/plugins/listings/skills/valuation-prep/SKILL.md +0 -69
  384. package/payload/premium-plugins/real-agent/plugins/loop/.claude-plugin/plugin.json +0 -8
  385. package/payload/premium-plugins/real-agent/plugins/loop/PLUGIN.md +0 -261
  386. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.d.ts +0 -2
  387. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.d.ts.map +0 -1
  388. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.js +0 -320
  389. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.js.map +0 -1
  390. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.d.ts +0 -10
  391. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.d.ts.map +0 -1
  392. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.js +0 -88
  393. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.js.map +0 -1
  394. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.d.ts +0 -3
  395. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.d.ts.map +0 -1
  396. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.js +0 -48
  397. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.js.map +0 -1
  398. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.d.ts +0 -22
  399. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.d.ts.map +0 -1
  400. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.js +0 -165
  401. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.js.map +0 -1
  402. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.d.ts +0 -82
  403. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.d.ts.map +0 -1
  404. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.js +0 -392
  405. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.js.map +0 -1
  406. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.d.ts +0 -5
  407. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.d.ts.map +0 -1
  408. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.js +0 -40
  409. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.js.map +0 -1
  410. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.d.ts +0 -12
  411. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.d.ts.map +0 -1
  412. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.js +0 -22
  413. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.js.map +0 -1
  414. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.d.ts +0 -10
  415. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.d.ts.map +0 -1
  416. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.js +0 -24
  417. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.js.map +0 -1
  418. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.d.ts +0 -16
  419. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.d.ts.map +0 -1
  420. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.js +0 -35
  421. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.js.map +0 -1
  422. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.d.ts +0 -5
  423. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.d.ts.map +0 -1
  424. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.js +0 -9
  425. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.js.map +0 -1
  426. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.d.ts +0 -4
  427. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.d.ts.map +0 -1
  428. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.js +0 -14
  429. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.js.map +0 -1
  430. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.d.ts +0 -9
  431. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.d.ts.map +0 -1
  432. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.js +0 -43
  433. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.js.map +0 -1
  434. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts +0 -6
  435. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts.map +0 -1
  436. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.js +0 -7
  437. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.js.map +0 -1
  438. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts +0 -9
  439. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts.map +0 -1
  440. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.js +0 -16
  441. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.js.map +0 -1
  442. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts +0 -15
  443. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts.map +0 -1
  444. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.js +0 -11
  445. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.js.map +0 -1
  446. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.d.ts +0 -10
  447. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.d.ts.map +0 -1
  448. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.js +0 -39
  449. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.js.map +0 -1
  450. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.d.ts +0 -9
  451. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.d.ts.map +0 -1
  452. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.js +0 -125
  453. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.js.map +0 -1
  454. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.d.ts +0 -18
  455. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.d.ts.map +0 -1
  456. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.js +0 -87
  457. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.js.map +0 -1
  458. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.d.ts +0 -10
  459. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.d.ts.map +0 -1
  460. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.js +0 -82
  461. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.js.map +0 -1
  462. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.d.ts +0 -33
  463. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.d.ts.map +0 -1
  464. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.js +0 -19
  465. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.js.map +0 -1
  466. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.d.ts +0 -11
  467. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.d.ts.map +0 -1
  468. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.js +0 -26
  469. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.js.map +0 -1
  470. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.d.ts +0 -15
  471. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.d.ts.map +0 -1
  472. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.js +0 -11
  473. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.js.map +0 -1
  474. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.d.ts +0 -16
  475. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.d.ts.map +0 -1
  476. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.js +0 -41
  477. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.js.map +0 -1
  478. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.d.ts +0 -9
  479. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.d.ts.map +0 -1
  480. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.js +0 -19
  481. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.js.map +0 -1
  482. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.d.ts +0 -13
  483. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.d.ts.map +0 -1
  484. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.js +0 -49
  485. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.js.map +0 -1
  486. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.d.ts +0 -7
  487. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.d.ts.map +0 -1
  488. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.js +0 -19
  489. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.js.map +0 -1
  490. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.d.ts +0 -5
  491. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.d.ts.map +0 -1
  492. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.js +0 -32
  493. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.js.map +0 -1
  494. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.d.ts +0 -14
  495. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.d.ts.map +0 -1
  496. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.js +0 -11
  497. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.js.map +0 -1
  498. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.d.ts +0 -9
  499. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.d.ts.map +0 -1
  500. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.js +0 -85
  501. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.js.map +0 -1
  502. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.d.ts +0 -13
  503. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.d.ts.map +0 -1
  504. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.js +0 -44
  505. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.js.map +0 -1
  506. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.d.ts +0 -14
  507. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.d.ts.map +0 -1
  508. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.js +0 -18
  509. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.js.map +0 -1
  510. package/payload/premium-plugins/real-agent/plugins/loop/mcp/package-lock.json +0 -2549
  511. package/payload/premium-plugins/real-agent/plugins/loop/mcp/package.json +0 -21
  512. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/loop-swagger.snapshot.json +0 -26467
  513. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/new-tool-shape.test.ts +0 -99
  514. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/plugin-md-time-doctrine.test.ts +0 -132
  515. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/swagger-write-coverage.test.ts +0 -154
  516. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/index.ts +0 -498
  517. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/crypto.ts +0 -105
  518. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/file-crypto.ts +0 -54
  519. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/key-store.ts +0 -221
  520. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/loop-api.ts +0 -567
  521. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/neo4j.ts +0 -51
  522. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/auto-responder.ts +0 -80
  523. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/customer-preferences.ts +0 -66
  524. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/feedback.ts +0 -86
  525. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/key-deregister.ts +0 -12
  526. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/key-list.ts +0 -19
  527. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/key-register.ts +0 -70
  528. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-enquiry.ts +0 -27
  529. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-match-batch.ts +0 -53
  530. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-match-request.ts +0 -42
  531. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-match.ts +0 -84
  532. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/people-detail.ts +0 -245
  533. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/people-search.ts +0 -180
  534. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-detail.ts +0 -145
  535. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-intent.ts +0 -84
  536. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-listed.ts +0 -81
  537. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-search.ts +0 -92
  538. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-sold.ts +0 -67
  539. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/supplier.ts +0 -129
  540. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/team-availability.ts +0 -52
  541. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/team-info.ts +0 -95
  542. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-create.ts +0 -41
  543. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-detail.ts +0 -171
  544. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-search.ts +0 -92
  545. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-update.ts +0 -53
  546. package/payload/premium-plugins/real-agent/plugins/loop/mcp/tsconfig.json +0 -20
  547. package/payload/premium-plugins/real-agent/plugins/loop/mcp/vitest.config.ts +0 -9
  548. package/payload/premium-plugins/real-agent/plugins/loop/skills/compliance-flag-checker/SKILL.md +0 -53
  549. package/payload/premium-plugins/real-agent/plugins/loop/skills/priority-ranker/SKILL.md +0 -40
  550. package/payload/premium-plugins/real-agent/plugins/loop/skills/tone-matched-drafter/SKILL.md +0 -53
  551. package/payload/premium-plugins/real-agent/plugins/loop/skills/variance-narrator/SKILL.md +0 -50
  552. package/payload/premium-plugins/real-agent/plugins/loop/skills/vendor-research/SKILL.md +0 -54
  553. package/payload/premium-plugins/real-agent/plugins/preval/.claude-plugin/plugin.json +0 -8
  554. package/payload/premium-plugins/real-agent/plugins/preval/PLUGIN.md +0 -55
  555. package/payload/premium-plugins/real-agent/plugins/preval/hooks/preval-prompt-required.sh +0 -140
  556. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/SKILL.md +0 -198
  557. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/__tests__/adherence.test.py +0 -373
  558. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/render.py +0 -814
  559. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template-inputs.schema.json +0 -204
  560. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template.html +0 -381
  561. package/payload/premium-plugins/real-agent/plugins/property-data/.claude-plugin/plugin.json +0 -8
  562. package/payload/premium-plugins/real-agent/plugins/property-data/PLUGIN.md +0 -181
  563. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.d.ts +0 -2
  564. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.d.ts.map +0 -1
  565. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js +0 -236
  566. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js.map +0 -1
  567. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.d.ts +0 -3
  568. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.d.ts.map +0 -1
  569. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.js +0 -72
  570. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.js.map +0 -1
  571. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.d.ts +0 -3
  572. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.d.ts.map +0 -1
  573. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.js +0 -49
  574. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.js.map +0 -1
  575. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.d.ts +0 -15
  576. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.d.ts.map +0 -1
  577. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.js +0 -135
  578. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.js.map +0 -1
  579. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.d.ts +0 -5
  580. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.d.ts.map +0 -1
  581. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.js +0 -38
  582. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.js.map +0 -1
  583. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts +0 -28
  584. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts.map +0 -1
  585. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.js +0 -101
  586. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.js.map +0 -1
  587. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.d.ts +0 -24
  588. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.d.ts.map +0 -1
  589. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.js +0 -33
  590. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.js.map +0 -1
  591. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.d.ts +0 -4
  592. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.d.ts.map +0 -1
  593. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.js +0 -9
  594. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.js.map +0 -1
  595. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.d.ts +0 -4
  596. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.d.ts.map +0 -1
  597. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.js +0 -10
  598. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.js.map +0 -1
  599. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.d.ts +0 -5
  600. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.d.ts.map +0 -1
  601. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.js +0 -50
  602. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.js.map +0 -1
  603. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/package-lock.json +0 -2566
  604. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/package.json +0 -21
  605. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/endpoints.test.ts +0 -252
  606. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/key-roundtrip.test.ts +0 -107
  607. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/propertydata-api.test.ts +0 -184
  608. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/schema-parity.test.ts +0 -62
  609. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/index.ts +0 -409
  610. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/crypto.ts +0 -79
  611. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/file-crypto.ts +0 -55
  612. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/key-store.ts +0 -181
  613. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/neo4j.ts +0 -47
  614. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/propertydata-api.ts +0 -120
  615. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/endpoints.ts +0 -47
  616. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-deregister.ts +0 -9
  617. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-list.ts +0 -10
  618. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-register.ts +0 -54
  619. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/tsconfig.json +0 -20
  620. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/vitest.config.ts +0 -8
  621. package/payload/premium-plugins/real-agent/plugins/property-data/skills/property-data/SKILL.md +0 -77
  622. package/payload/premium-plugins/real-agent/plugins/vendors/.claude-plugin/plugin.json +0 -8
  623. package/payload/premium-plugins/real-agent/plugins/vendors/PLUGIN.md +0 -33
  624. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/SKILL.md +0 -42
  625. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/fee-protection-and-agenda.md +0 -28
  626. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/listing-scripts.md +0 -44
  627. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/negotiation-deep-guide.md +0 -70
  628. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/price-alignment-scripts.md +0 -33
  629. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/price-alignment.md +0 -34
  630. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/scenario-scripts.md +0 -38
  631. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/seller-engagement.md +0 -51
  632. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/valuation-booking.md +0 -76
  633. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/vendor-scripts.md +0 -63
  634. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/vendor-updates.md +0 -41
  635. package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-updates/SKILL.md +0 -153
  636. package/payload/premium-plugins/real-agent/specs/00-architecture-and-customization.md +0 -122
  637. package/payload/premium-plugins/real-agent/specs/01-morning-round.md +0 -76
  638. package/payload/premium-plugins/real-agent/specs/02-valuation-prep.md +0 -81
  639. package/payload/premium-plugins/real-agent/specs/03-new-instruction.md +0 -96
  640. package/payload/premium-plugins/real-agent/specs/04-chase-progression.md +0 -120
  641. package/payload/premium-plugins/real-agent/specs/05-month-end-close.md +0 -79
  642. package/payload/premium-plugins/teaching/.claude-plugin/plugin.json +0 -8
  643. package/payload/premium-plugins/teaching/PLUGIN.md +0 -58
  644. package/payload/premium-plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
  645. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
  646. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
  647. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
  648. package/payload/premium-plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
  649. package/payload/premium-plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
  650. package/payload/premium-plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
  651. package/payload/premium-plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
  652. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
  653. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
  654. package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +0 -8
  655. package/payload/premium-plugins/writer-craft/PLUGIN.md +0 -88
  656. package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
  657. package/payload/premium-plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
  658. package/payload/premium-plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
  659. package/payload/premium-plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
  660. package/payload/premium-plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
  661. package/payload/premium-plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
  662. package/payload/premium-plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
  663. package/payload/premium-plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
  664. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
  665. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
  666. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
  667. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
  668. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
  669. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
  670. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
  671. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
  672. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
  673. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
  674. package/payload/premium-plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
  675. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
  676. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
  677. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
  678. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
  679. package/payload/premium-plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
  680. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
  681. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
  682. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
  683. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
  684. package/payload/premium-plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
  685. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
  686. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
  687. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
  688. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
  689. package/payload/premium-plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
  690. package/payload/premium-plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
  691. package/payload/premium-plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
  692. package/payload/premium-plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
  693. package/payload/premium-plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
  694. package/payload/premium-plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
  695. package/payload/premium-plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
  696. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
  697. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
  698. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
  699. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
  700. package/payload/premium-plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
  701. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
  702. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
  703. package/payload/server/public/assets/channel-CrSx5mnG.js +0 -1
  704. package/payload/server/public/assets/classDiagram-6PBFFD2Q-C3IDJsqN.js +0 -1
  705. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BOIrJ5Zb.js +0 -1
  706. package/payload/server/public/assets/clone-P8Fkz7JD.js +0 -1
  707. package/payload/server/public/assets/data-DRfwJPja.js +0 -1
  708. package/payload/server/public/assets/graph-B4FFYwus.js +0 -1
  709. package/payload/server/public/assets/graph-labels-Cpk9Ktt0.js +0 -1
  710. package/payload/server/public/assets/lib--yuBd0Xi.js +0 -33
  711. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C5JejhQU.js +0 -1
@@ -1,1290 +0,0 @@
1
- <!--
2
- ════════════════════════════════════════════════════════════════════════════
3
- COMPANION LANDING PAGE — index.html · canonical reference template
4
- ════════════════════════════════════════════════════════════════════════════
5
-
6
- This file is the canonical starting point for the property micro-site that
7
- ships inside <property>/output/web/ alongside brochure.html. Every property
8
- brochure run that produces a web bundle MUST start by copying this file —
9
- do NOT rebuild it from scratch from the SKILL.md prose. The prose
10
- describes the spec; this file IS the spec.
11
-
12
- SUBSTITUTION CONTRACT
13
- ─────────────────────
14
- Every property-specific value in this file is a {{ token }} placeholder.
15
- There is no exemplar copy left to accidentally inherit. After substitution,
16
- `grep "{{" output/web/index.html` must return ZERO matches — any remaining
17
- {{ x }} is a bug.
18
-
19
- The full token list (with source field, format, length, voice) lives in
20
- references/placeholders.md, shared with brochure.html. Each <!- - REPLACE: - ->
21
- inline annotation here gives the short version (what fills the token, how
22
- long, what voice). Style guidance per section is in references/copy.md.
23
-
24
- Contract:
25
-
26
- 1. Copy this file to <property>/output/web/index.html.
27
- 2. Substitute every {{ placeholder }} token from the master placeholders.md.
28
- 3. Update <title>, meta description, OG/Twitter image refs.
29
- 4. If a section does not apply (e.g. property has no garden complex), follow
30
- the SKILL's "Page-count expansion / repurposing" guidance — repurpose the
31
- section title and copy. Do NOT delete sections; the layout assumes the
32
- full set.
33
-
34
- Editorial decisions baked into this file (KEEP, do not re-derive):
35
- - Drop cap: .body-block p:first-of-type::first-letter (Cormorant ink, 3.6em
36
- float-left). Every body-block opens with one. Mirrors the brochure's
37
- opener treatment.
38
- - Hero: 3-slide Ken-Burns rotator on an 18s cycle, pure CSS, with reduced-
39
- motion fallback. See .hero-stage / .hero-slide CSS comments.
40
- - Mobile collapse: top-nav → hamburger drawer at ≤960px; hero stacks at
41
- ≤760px; hero aspect 5/4 at ≤440px.
42
- - Type system: Cormorant Garamond (display) + Lora (body serif) + Inter
43
- (UI labels). DO NOT swap these per-brand — the index.html register is
44
- tuned to the canonical premium tier; brand identity lives in the logo,
45
- copy and brand-specific colour accents that may be added via :root
46
- overrides if needed (rare).
47
-
48
- Authoring note — keep the body of this docstring free of inner HTML
49
- comment delimiters. HTML does not allow nested comments: an inner "- - >"
50
- would terminate this outer comment early and the rest of these
51
- instructions would render as visible text on the live page (the bug that
52
- prompted this note). When referring to the inline REPLACE markers, use
53
- prose ("REPLACE comment block") not the literal delimiter pair.
54
- ════════════════════════════════════════════════════════════════════════════
55
- -->
56
- <html lang="en-GB">
57
- <head>
58
- <meta charset="UTF-8">
59
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
60
- <!-- REPLACE {{ page_title }}: "<Property name> · <street>, <locality> · For Sale".
61
- Used as the browser tab title and search-result link. -->
62
- <title>{{ page_title }}</title>
63
- <!-- REPLACE {{ meta_description }}: single-sentence elevator pitch (25-45 words).
64
- Same content as {{ backpage_tagline }} in the brochure; the two should mirror
65
- each other. Used by social previews and search. -->
66
- <meta name="description" content="{{ meta_description }}">
67
- <link rel="preconnect" href="https://fonts.googleapis.com">
68
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
69
- <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Lora:ital,wght@0,400;0,500;1,400&family=Inter:wght@400;500&display=swap" rel="stylesheet">
70
- <style>
71
- :root {
72
- --paper: #FBF9F4;
73
- --paper-2: #F4EFE5;
74
- --ink: #0E1418;
75
- --ink-2: #2A3036;
76
- --slate: #5C6470;
77
- --rule: rgba(14,20,24,0.14);
78
- --rule-fine: #E2D5BD;
79
- --gold: #7A6235;
80
- --gold-soft: #A4884C;
81
-
82
- --serif: 'Cormorant Garamond', 'EB Garamond', Garamond, serif;
83
- --body-serif: 'Lora', 'Source Serif Pro', Georgia, serif;
84
- --sans: 'Inter', system-ui, -apple-system, sans-serif;
85
-
86
- /* BRAND_TOKENS_OVERRIDE_SLOT — branded register MUST emit a `<style id="brand-tokens">`
87
- block here, AFTER the template defaults, so cascade ordering selects the brand
88
- values. The block replaces --paper, --paper-2, --ink, --ink-2, --gold,
89
- --gold-soft, --serif, --body-serif, --sans (plus the template.html-vocabulary
90
- twins per build.md → Brand-token override emission). Without this slot the agent
91
- has nowhere to inject and the landing page ships in Premium register even when
92
- register=branded. */
93
- }
94
-
95
- * { margin: 0; padding: 0; box-sizing: border-box; }
96
- html { font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; scroll-behavior: smooth; }
97
- body {
98
- font-family: var(--body-serif);
99
- background: var(--paper);
100
- color: var(--ink);
101
- line-height: 1.65;
102
- }
103
- img { display: block; max-width: 100%; height: auto; }
104
- a { color: inherit; }
105
-
106
- /* ───────── TOP NAV ───────── */
107
- .topnav {
108
- position: relative;
109
- z-index: 50;
110
- height: 60px;
111
- display: flex; align-items: center; justify-content: space-between;
112
- padding: 0 32px;
113
- background: var(--paper);
114
- border-bottom: 1px solid var(--rule);
115
- }
116
-
117
- /* Hamburger button — hidden on desktop, visible at ≤ 960px */
118
- .burger {
119
- display: none;
120
- background: transparent;
121
- border: none;
122
- padding: 10px;
123
- cursor: pointer;
124
- margin-left: -10px;
125
- }
126
- .burger span {
127
- display: block;
128
- width: 22px;
129
- height: 1.5px;
130
- background: var(--ink);
131
- margin: 4px 0;
132
- transition: transform 250ms ease, opacity 250ms ease;
133
- }
134
- .burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
135
- .burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
136
- .burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
137
-
138
- /* Drawer overlay — hidden by default, slides in from the right when opened */
139
- .drawer {
140
- position: fixed;
141
- top: 0; right: 0; bottom: 0;
142
- width: min(360px, 86vw);
143
- background: var(--paper);
144
- box-shadow: -2px 0 36px rgba(14,20,24,0.18);
145
- transform: translateX(100%);
146
- transition: transform 320ms ease;
147
- z-index: 60;
148
- padding: 64px 28px 28px;
149
- display: flex; flex-direction: column; gap: 18px;
150
- overflow-y: auto;
151
- }
152
- .drawer.open { transform: translateX(0); }
153
- .drawer-close {
154
- position: absolute;
155
- top: 16px; right: 18px;
156
- width: 36px; height: 36px;
157
- background: transparent;
158
- border: none;
159
- font-size: 32px; line-height: 1;
160
- color: var(--ink);
161
- cursor: pointer;
162
- }
163
- .drawer-nav {
164
- display: flex; flex-direction: column;
165
- gap: 4px;
166
- }
167
- .drawer-nav a {
168
- font-family: var(--sans);
169
- font-size: 12px; font-weight: 500;
170
- letter-spacing: 0.18em; text-transform: uppercase;
171
- color: var(--ink-2);
172
- text-decoration: none;
173
- padding: 14px 0;
174
- border-bottom: 1px solid var(--rule);
175
- }
176
- .drawer-nav a:hover { color: var(--gold); }
177
- .drawer-nav a.drawer-cta {
178
- margin-top: 12px;
179
- padding: 14px 18px;
180
- background: var(--ink);
181
- color: var(--paper);
182
- text-align: center;
183
- border-bottom: none;
184
- }
185
- .drawer-nav a.drawer-cta:hover { background: var(--gold); color: var(--paper); }
186
- .drawer-foot {
187
- margin-top: auto;
188
- padding-top: 24px;
189
- border-top: 1px solid var(--rule);
190
- font-family: var(--body-serif);
191
- font-size: 13px;
192
- color: var(--slate);
193
- line-height: 1.55;
194
- }
195
- .drawer-foot a {
196
- color: var(--ink-2);
197
- text-decoration: underline;
198
- text-decoration-color: rgba(122, 98, 53, 0.4);
199
- text-underline-offset: 3px;
200
- font-variant-numeric: tabular-nums;
201
- }
202
-
203
- /* Backdrop behind the drawer */
204
- .drawer-backdrop {
205
- position: fixed; inset: 0;
206
- background: rgba(14,20,24,0.45);
207
- opacity: 0;
208
- pointer-events: none;
209
- transition: opacity 320ms ease;
210
- z-index: 55;
211
- }
212
- .drawer-backdrop.open {
213
- opacity: 1;
214
- pointer-events: auto;
215
- }
216
- body.drawer-open { overflow: hidden; }
217
- .topnav .left, .topnav .right {
218
- display: flex; align-items: center; gap: 28px;
219
- font-family: var(--sans);
220
- font-size: 11px;
221
- font-weight: 500;
222
- letter-spacing: 0.18em;
223
- text-transform: uppercase;
224
- color: var(--ink-2);
225
- }
226
- .topnav .left a, .topnav .right a { text-decoration: none; }
227
- .topnav .left a:hover, .topnav .right a:hover { color: var(--gold); }
228
- .topnav .center {
229
- position: absolute; left: 50%; top: 50%;
230
- transform: translate(-50%, -50%);
231
- display: flex; align-items: center;
232
- }
233
- .topnav .center img { height: 18px; width: auto; }
234
-
235
- /* ───────── HERO — rotating Ken-Burns stage ─────────
236
- Three slides cross-fade on an 18s cycle (each visible ~5.5s,
237
- ~0.5s crossfade), each with a slow Ken-Burns pan/zoom on its
238
- <img> so the camera "moves" while the slide is visible. Pure
239
- CSS — no JS dependency, no layout reflow. */
240
- .hero {
241
- position: relative;
242
- width: 100%;
243
- height: 78vh;
244
- min-height: 560px;
245
- overflow: hidden;
246
- background: var(--ink);
247
- }
248
- .hero-stage {
249
- position: absolute; inset: 0;
250
- overflow: hidden;
251
- }
252
- .hero-slide {
253
- position: absolute; inset: 0;
254
- opacity: 0;
255
- will-change: opacity;
256
- }
257
- .hero-slide img {
258
- width: 100%; height: 100%;
259
- object-fit: cover;
260
- object-position: 50% 50%;
261
- transform-origin: 50% 50%;
262
- will-change: transform;
263
- }
264
-
265
- /* Stagger: each slide's animation starts 6s apart so they
266
- never overlap except during the 0.5s crossfade. */
267
- .hero-slide.s1 { animation: heroFade 18s 0s infinite; }
268
- .hero-slide.s2 { animation: heroFade 18s 6s infinite; }
269
- .hero-slide.s3 { animation: heroFade 18s 12s infinite; }
270
- .hero-slide.s1 img { animation: heroKb1 18s 0s infinite ease-out; }
271
- .hero-slide.s2 img { animation: heroKb2 18s 6s infinite ease-out; }
272
- .hero-slide.s3 img { animation: heroKb3 18s 12s infinite ease-out; }
273
-
274
- @keyframes heroFade {
275
- 0% { opacity: 0; }
276
- 3% { opacity: 1; } /* fade in over ~540ms */
277
- 33% { opacity: 1; } /* hold visible ~5.4s out of the 6s window */
278
- 36% { opacity: 0; } /* fade out over ~540ms */
279
- 100% { opacity: 0; }
280
- }
281
-
282
- /* Slide 1 — main exterior. Slow push-in from a slight pull-back. */
283
- @keyframes heroKb1 {
284
- 0% { transform: scale(1.04) translate(0%, 0%); }
285
- 36% { transform: scale(1.16) translate(-1.2%, 0.4%); }
286
- 100% { transform: scale(1.16) translate(-1.2%, 0.4%); }
287
- }
288
- /* Slide 2 — interior moment. Pan right while pushing in. */
289
- @keyframes heroKb2 {
290
- 0% { transform: scale(1.06) translate(1.5%, 0%); }
291
- 36% { transform: scale(1.18) translate(-1%, -0.8%); }
292
- 100% { transform: scale(1.18) translate(-1%, -0.8%); }
293
- }
294
- /* Slide 3 — garden / outdoor. Tilt up while pushing in. */
295
- @keyframes heroKb3 {
296
- 0% { transform: scale(1.05) translate(0%, 1%); }
297
- 36% { transform: scale(1.18) translate(0.8%, -1.4%); }
298
- 100% { transform: scale(1.18) translate(0.8%, -1.4%); }
299
- }
300
-
301
- /* Reduced-motion users: hold slide 1, no crossfade, no zoom. */
302
- @media (prefers-reduced-motion: reduce) {
303
- .hero-slide.s1 { opacity: 1; animation: none; }
304
- .hero-slide.s2, .hero-slide.s3 { opacity: 0; animation: none; }
305
- .hero-slide img { animation: none; transform: none; }
306
- }
307
-
308
- .info-card {
309
- position: absolute;
310
- left: 6vw; bottom: 6vh;
311
- background: rgba(252, 250, 246, 0.97);
312
- padding: 20px 26px 22px;
313
- width: 380px;
314
- border-top: 1px solid var(--gold-soft);
315
- box-shadow: 0 8px 36px rgba(14,20,24,0.14);
316
- }
317
- .info-card .tag {
318
- display: inline-block;
319
- font-family: var(--sans);
320
- font-size: 9px; font-weight: 600;
321
- letter-spacing: 0.32em; text-transform: uppercase;
322
- color: var(--gold);
323
- margin-bottom: 12px;
324
- }
325
- .info-card .title {
326
- font-family: var(--serif);
327
- font-style: italic;
328
- font-weight: 400;
329
- font-size: 32px;
330
- line-height: 1.1;
331
- color: var(--ink);
332
- margin-bottom: 8px;
333
- }
334
- .info-card .address {
335
- font-family: var(--body-serif);
336
- font-size: 14px;
337
- color: var(--ink-2);
338
- line-height: 1.45;
339
- margin-bottom: 14px;
340
- }
341
- .info-card .price {
342
- font-family: var(--serif);
343
- font-size: 19px;
344
- color: var(--ink);
345
- margin-bottom: 4px;
346
- letter-spacing: 0.005em;
347
- }
348
- .info-card .price em { font-style: italic; color: var(--gold); }
349
- .info-card .meta {
350
- font-family: var(--body-serif);
351
- font-size: 12.5px;
352
- color: var(--slate);
353
- line-height: 1.55;
354
- margin-bottom: 14px;
355
- }
356
- .info-card .specs {
357
- display: flex; flex-wrap: nowrap;
358
- gap: 0;
359
- padding: 10px 0;
360
- margin-bottom: 14px;
361
- border-top: 1px solid var(--rule);
362
- border-bottom: 1px solid var(--rule);
363
- font-family: var(--sans);
364
- font-size: 9.5px; font-weight: 500;
365
- letter-spacing: 0.10em; text-transform: uppercase;
366
- color: var(--ink-2);
367
- font-variant-numeric: tabular-nums;
368
- justify-content: space-between;
369
- align-items: baseline;
370
- }
371
- .info-card .specs span { white-space: nowrap; flex: 0 0 auto; }
372
- .info-card .specs span + span::before {
373
- content: "·";
374
- color: var(--gold-soft);
375
- margin: 0 8px;
376
- }
377
- .info-card .links {
378
- display: flex; flex-wrap: nowrap; gap: 16px;
379
- font-family: var(--sans);
380
- font-size: 9.5px; font-weight: 500;
381
- letter-spacing: 0.14em; text-transform: uppercase;
382
- color: var(--ink-2);
383
- margin-bottom: 16px;
384
- }
385
- .info-card .links a {
386
- text-decoration: none;
387
- border-bottom: 1px solid var(--gold-soft);
388
- padding-bottom: 2px;
389
- white-space: nowrap;
390
- transition: color 200ms;
391
- }
392
- .info-card .links a:hover { color: var(--gold); }
393
- .info-card .cta {
394
- display: block;
395
- width: 100%;
396
- padding: 12px 16px;
397
- background: var(--ink);
398
- color: var(--paper);
399
- font-family: var(--sans);
400
- font-size: 11px; font-weight: 500;
401
- letter-spacing: 0.28em; text-transform: uppercase;
402
- text-align: center;
403
- text-decoration: none;
404
- border: none;
405
- cursor: pointer;
406
- transition: background 200ms;
407
- }
408
- .info-card .cta:hover { background: var(--gold); }
409
-
410
- /* ───────── STICKY SUB-NAV (after scroll) ───────── */
411
- .subnav {
412
- position: sticky;
413
- top: 0;
414
- z-index: 40;
415
- background: var(--paper);
416
- border-bottom: 1px solid var(--rule);
417
- padding: 14px 32px;
418
- display: flex; align-items: center; justify-content: space-between;
419
- transform: translateY(-100%);
420
- transition: transform 300ms ease;
421
- }
422
- .subnav.visible { transform: translateY(0); }
423
- .subnav .left {
424
- font-family: var(--serif);
425
- font-size: 17px;
426
- color: var(--ink);
427
- }
428
- .subnav .left .price {
429
- color: var(--slate);
430
- font-size: 12px;
431
- font-family: var(--sans);
432
- letter-spacing: 0.12em;
433
- margin-left: 14px;
434
- font-variant-numeric: tabular-nums;
435
- }
436
- .subnav .right {
437
- display: flex; align-items: center; gap: 16px;
438
- }
439
- .subnav .right a {
440
- font-family: var(--sans);
441
- font-size: 10px; font-weight: 500;
442
- letter-spacing: 0.22em; text-transform: uppercase;
443
- color: var(--ink-2);
444
- text-decoration: none;
445
- padding: 6px 10px;
446
- border: 1px solid var(--rule);
447
- }
448
- .subnav .right a:hover { background: var(--paper-2); }
449
- .subnav .right a.cta {
450
- background: var(--ink);
451
- color: var(--paper);
452
- border-color: var(--ink);
453
- }
454
- .subnav .right a.cta:hover { background: var(--gold); border-color: var(--gold); }
455
-
456
- /* ───────── BODY SECTIONS ───────── */
457
- main {
458
- padding: 0;
459
- }
460
- .body-block {
461
- max-width: 720px;
462
- margin: 0 auto;
463
- padding: 64px 32px 32px;
464
- }
465
- .body-block.short { padding-bottom: 16px; }
466
- .body-block h2 {
467
- font-family: var(--serif);
468
- font-style: italic;
469
- font-weight: 400;
470
- font-size: 22px;
471
- color: var(--ink);
472
- margin-bottom: 18px;
473
- letter-spacing: -0.005em;
474
- }
475
- .body-block h2::before {
476
- content: '';
477
- display: block;
478
- width: 36px;
479
- height: 1px;
480
- background: var(--gold-soft);
481
- margin-bottom: 16px;
482
- }
483
- .body-block p {
484
- font-family: var(--body-serif);
485
- font-size: 15.5px;
486
- line-height: 1.7;
487
- color: var(--ink-2);
488
- letter-spacing: 0.005em;
489
- }
490
- .body-block p + p { margin-top: 16px; }
491
- .body-block p strong { color: var(--ink); font-weight: 500; }
492
- .body-block p em { color: var(--gold); font-style: italic; }
493
-
494
- /* Drop cap on the first paragraph of each body-block. Cormorant Garamond
495
- to echo the section h2 voice; ink rather than gold so the existing gold
496
- accent (eyebrows, em-text, hairlines) stays the only chromatic editorial
497
- note on the page. KEEP — this is the signature editorial detail of the
498
- landing page, mirroring the brochure's opener treatment. */
499
- .body-block p:first-of-type::first-letter {
500
- font-family: var(--serif);
501
- font-weight: 400;
502
- font-size: 3.6em;
503
- line-height: 0.85;
504
- float: left;
505
- margin: 0.08em 0.12em -0.04em 0;
506
- color: var(--ink);
507
- letter-spacing: -0.02em;
508
- }
509
-
510
- .section-eyebrow {
511
- font-family: var(--sans);
512
- font-size: 10px; font-weight: 600;
513
- letter-spacing: 0.36em; text-transform: uppercase;
514
- color: var(--gold);
515
- margin-bottom: 14px;
516
- }
517
-
518
- /* ───────── PHOTO GRID ───────── */
519
- .photo-grid {
520
- max-width: 1100px;
521
- margin: 32px auto;
522
- padding: 0 32px;
523
- display: grid;
524
- grid-template-columns: 1fr 1fr;
525
- gap: 16px;
526
- }
527
- .photo-grid .cell {
528
- position: relative;
529
- overflow: hidden;
530
- aspect-ratio: 4/3;
531
- background: var(--paper-2);
532
- }
533
- .photo-grid .cell img {
534
- width: 100%; height: 100%;
535
- object-fit: cover;
536
- transition: transform 600ms ease;
537
- }
538
- .photo-grid .cell:hover img { transform: scale(1.02); }
539
-
540
- .photo-grid.tall .cell {
541
- aspect-ratio: 4/5;
542
- }
543
-
544
- /* Wider single full-width image for atmospheric breaks */
545
- .photo-full {
546
- margin: 32px 0;
547
- }
548
- .photo-full img {
549
- width: 100%;
550
- height: auto;
551
- max-height: 80vh;
552
- object-fit: cover;
553
- }
554
-
555
- /* ───────── FLOOR PLAN ───────── */
556
- .floorplan-section {
557
- background: var(--paper-2);
558
- padding: 80px 32px;
559
- margin-top: 32px;
560
- }
561
- .floorplan-section .inner {
562
- max-width: 1100px;
563
- margin: 0 auto;
564
- display: grid;
565
- grid-template-columns: 1.3fr 1fr;
566
- gap: 48px;
567
- align-items: start;
568
- }
569
- .floorplan-section img {
570
- width: 100%;
571
- height: auto;
572
- background: white;
573
- padding: 16px;
574
- }
575
- .floorplan-section .meta h2 {
576
- font-family: var(--serif);
577
- font-style: italic;
578
- font-weight: 400;
579
- font-size: 26px;
580
- color: var(--ink);
581
- margin-bottom: 8px;
582
- }
583
- .floorplan-section .meta .lead {
584
- font-family: var(--body-serif);
585
- font-size: 14px;
586
- color: var(--ink-2);
587
- margin-bottom: 24px;
588
- line-height: 1.6;
589
- }
590
- .floorplan-section .areas {
591
- display: grid;
592
- grid-template-columns: 1fr 1fr;
593
- gap: 12px 18px;
594
- border-top: 1px solid var(--rule);
595
- padding-top: 20px;
596
- font-variant-numeric: tabular-nums;
597
- }
598
- .floorplan-section .areas .row .k {
599
- display: block;
600
- font-family: var(--sans);
601
- font-size: 9px; font-weight: 600;
602
- letter-spacing: 0.28em; text-transform: uppercase;
603
- color: var(--slate);
604
- margin-bottom: 4px;
605
- }
606
- .floorplan-section .areas .row .v {
607
- font-family: var(--serif);
608
- font-size: 17px;
609
- color: var(--ink);
610
- }
611
- .floorplan-section .areas .row .v em { font-style: italic; color: var(--gold); }
612
-
613
- /* ───────── KEY FACTS / MATERIAL INFO ───────── */
614
- .key-facts {
615
- max-width: 1100px;
616
- margin: 64px auto 32px;
617
- padding: 0 32px;
618
- }
619
- .key-facts h2 {
620
- font-family: var(--serif);
621
- font-style: italic;
622
- font-size: 22px;
623
- color: var(--ink);
624
- margin-bottom: 24px;
625
- text-align: center;
626
- }
627
- .key-facts h2::after {
628
- content: '';
629
- display: block;
630
- width: 36px;
631
- height: 1px;
632
- background: var(--gold-soft);
633
- margin: 12px auto 0;
634
- }
635
- .key-facts .grid {
636
- display: grid;
637
- grid-template-columns: repeat(3, 1fr);
638
- gap: 18px 36px;
639
- font-variant-numeric: tabular-nums;
640
- }
641
- .key-facts .row {
642
- border-bottom: 1px solid var(--rule);
643
- padding: 12px 0 14px;
644
- }
645
- .key-facts .row .k {
646
- font-family: var(--sans);
647
- font-size: 9px; font-weight: 600;
648
- letter-spacing: 0.28em; text-transform: uppercase;
649
- color: var(--slate);
650
- margin-bottom: 5px;
651
- }
652
- .key-facts .row .v {
653
- font-family: var(--body-serif);
654
- font-size: 14px;
655
- color: var(--ink);
656
- }
657
- .key-facts .footnote {
658
- grid-column: 1 / -1;
659
- margin-top: 18px;
660
- font-family: var(--body-serif);
661
- font-style: italic;
662
- font-size: 12px;
663
- color: var(--slate);
664
- text-align: center;
665
- }
666
-
667
- /* ───────── CTA STRIP ───────── */
668
- .cta-strip {
669
- background: var(--ink);
670
- color: var(--paper);
671
- text-align: center;
672
- padding: 64px 32px;
673
- margin-top: 64px;
674
- }
675
- .cta-strip h2 {
676
- font-family: var(--serif);
677
- font-style: italic;
678
- font-weight: 400;
679
- font-size: 32px;
680
- margin-bottom: 28px;
681
- color: var(--paper);
682
- }
683
- .cta-strip .cta-row {
684
- display: flex; gap: 32px; justify-content: center; align-items: center;
685
- flex-wrap: wrap;
686
- }
687
- .cta-strip .cta-row a {
688
- font-family: var(--sans);
689
- font-size: 11px; font-weight: 500;
690
- letter-spacing: 0.28em; text-transform: uppercase;
691
- color: var(--paper);
692
- text-decoration: none;
693
- padding: 12px 22px;
694
- border: 1px solid rgba(252,250,246,0.32);
695
- transition: background 200ms, border-color 200ms;
696
- }
697
- .cta-strip .cta-row a:hover {
698
- background: var(--gold);
699
- border-color: var(--gold);
700
- }
701
- .cta-strip .cta-row a.solid {
702
- background: var(--paper);
703
- color: var(--ink);
704
- border-color: var(--paper);
705
- }
706
- .cta-strip .cta-row a.solid:hover {
707
- background: var(--gold);
708
- color: var(--paper);
709
- border-color: var(--gold);
710
- }
711
-
712
- /* ───────── FOOTER ───────── */
713
- footer {
714
- background: var(--paper);
715
- padding: 48px 32px 32px;
716
- border-top: 1px solid var(--rule);
717
- }
718
- footer .inner {
719
- max-width: 1100px;
720
- margin: 0 auto;
721
- display: flex;
722
- justify-content: space-between;
723
- align-items: flex-start;
724
- flex-wrap: wrap;
725
- gap: 32px;
726
- }
727
- footer .agent {
728
- font-family: var(--body-serif);
729
- font-size: 13px;
730
- color: var(--ink-2);
731
- line-height: 1.6;
732
- max-width: 320px;
733
- }
734
- footer .agent .name {
735
- font-family: var(--serif);
736
- font-size: 17px;
737
- color: var(--ink);
738
- margin-bottom: 4px;
739
- }
740
- footer .agent .name em { font-style: italic; color: var(--gold); }
741
- footer .agent .label {
742
- font-family: var(--sans);
743
- font-size: 9px; font-weight: 600;
744
- letter-spacing: 0.32em; text-transform: uppercase;
745
- color: var(--slate);
746
- margin-bottom: 8px;
747
- }
748
- footer .legal {
749
- font-family: var(--body-serif);
750
- font-style: italic;
751
- font-size: 11px;
752
- color: var(--slate);
753
- line-height: 1.55;
754
- max-width: 600px;
755
- }
756
- footer .colophon {
757
- width: 100%;
758
- border-top: 1px solid var(--rule);
759
- padding-top: 18px;
760
- margin-top: 24px;
761
- display: flex;
762
- justify-content: space-between;
763
- align-items: center;
764
- font-family: var(--sans);
765
- font-size: 10px; font-weight: 500;
766
- letter-spacing: 0.22em; text-transform: uppercase;
767
- color: var(--slate);
768
- }
769
- footer .colophon img { height: 14px; width: auto; opacity: 0.75; }
770
-
771
- /* ───────── RESPONSIVE ─────────
772
- The desktop top-nav (deep-section links + centred logo +
773
- utility links) needs ~1100 px to breathe. Below 960 px the
774
- deep-section labels overlap the centred logo, so we collapse
775
- the entire desktop nav into a hamburger-revealed drawer.
776
-
777
- The hero overlay → vertical-stack rule kicks in slightly later
778
- at 760 px (where the floating info-card starts to occlude
779
- the rotator). */
780
-
781
- @media (max-width: 960px) {
782
- .burger { display: block; }
783
- .topnav .left, .topnav .right { display: none; }
784
- /* The centred logo stays — it's the only element left on the bar */
785
- .topnav .center { left: auto; right: auto; transform: none; position: static; margin-left: auto; margin-right: auto; }
786
- }
787
-
788
- @media (max-width: 760px) {
789
- .hero {
790
- height: auto;
791
- min-height: 0;
792
- display: flex;
793
- flex-direction: column;
794
- background: var(--paper);
795
- }
796
- .hero-stage {
797
- position: relative;
798
- width: 100%;
799
- aspect-ratio: 4/3;
800
- flex: 0 0 auto;
801
- background: var(--ink);
802
- }
803
- .info-card {
804
- position: static;
805
- left: auto; right: auto; bottom: auto;
806
- width: auto;
807
- margin: 0;
808
- padding: 24px 24px 28px;
809
- box-shadow: none;
810
- border-top: 1px solid var(--rule);
811
- background: var(--paper);
812
- }
813
- .info-card .title { font-size: 30px; }
814
- .info-card .specs { font-size: 10px; }
815
- .info-card .links { font-size: 10px; }
816
-
817
- .photo-grid { grid-template-columns: 1fr; gap: 12px; }
818
- .floorplan-section .inner { grid-template-columns: 1fr; gap: 28px; }
819
- .key-facts .grid { grid-template-columns: 1fr 1fr; }
820
- .subnav .right a:not(.cta) { display: none; }
821
- .body-block { padding: 48px 24px 24px; }
822
- .topnav { padding: 0 18px; }
823
- /* Footer colophon stacks on mobile: property line on its own row,
824
- copyright on its own row beneath. Matches the rest of the mobile
825
- stack pattern (every multi-column block becomes single-column). */
826
- footer .colophon {
827
- flex-direction: column;
828
- align-items: flex-start;
829
- gap: 8px;
830
- }
831
- }
832
-
833
- @media (max-width: 440px) {
834
- .hero-stage { aspect-ratio: 5/4; }
835
- .key-facts .grid { grid-template-columns: 1fr; }
836
- .subnav .left .price { display: none; }
837
- }
838
- /* BRAND_TYPE_ROLES_OVERRIDE_SLOT — branded register may inject role overrides here */
839
- </style>
840
- </head>
841
- <body>
842
-
843
- <!-- ════════════════ TOP NAV ════════════════ -->
844
- <nav class="topnav">
845
- <button class="burger" aria-label="Open menu" aria-expanded="false" aria-controls="drawer">
846
- <span></span><span></span><span></span>
847
- </button>
848
- <!-- REPLACE: Deep-section links — section names + #anchor IDs that match the
849
- <article id="..."> blocks below. Keep the four-link rhythm; rename only
850
- if the property's narrative arc differs from the canonical
851
- (Story / The Home / The Garden / The Area). All four anchors are also
852
- used in the drawer + sub-nav below. -->
853
- <div class="left">
854
- <a href="#story">{{ nav_section_1 }}</a>
855
- <a href="#home">{{ nav_section_2 }}</a>
856
- <a href="#garden">{{ nav_section_3 }}</a>
857
- <a href="#area">{{ nav_section_4 }}</a>
858
- </div>
859
- <div class="center">
860
- <!-- The brand DARK-art logo (placed on the warm-paper top-nav).
861
- {{ brand_slug }} resolves to the agent's brand slug; the file is
862
- <brand>-logo-dark.png per the brand-design SKILL convention. -->
863
- <img src="images/{{ brand_slug }}-logo-dark.png" alt="{{ brand_name }}">
864
- </div>
865
- <!-- REPLACE: Utility links — Brochure (downloads the in-bundle PDF, named
866
- {{ property_slug }}-brochure.pdf), Listing (the agent's live listing
867
- URL), Enquire (mailto: agent). Three links, in that order. -->
868
- <div class="right">
869
- <a href="{{ property_slug }}-brochure.pdf" download>Brochure</a>
870
- <a href="{{ listing_url }}" target="_blank">Listing</a>
871
- <a href="mailto:{{ office_email }}">Enquire</a>
872
- </div>
873
- </nav>
874
-
875
- <!-- Mobile drawer (revealed by the hamburger).
876
- IMPORTANT: drawer must contain EVERY nav link the desktop has, PLUS the
877
- extra utility links (Floor plan, Key facts, Watch video tour) and a CTA.
878
- Mobile users get more navigation, not less. Order is: deep sections,
879
- then utility links, then a closing CTA. -->
880
- <div class="drawer" id="drawer" aria-hidden="true">
881
- <button class="drawer-close" aria-label="Close menu">&times;</button>
882
- <!-- REPLACE: Drawer nav — same anchors as the desktop deep-links plus
883
- the utility links + a closing CTA. Mobile users get MORE navigation,
884
- not less. The "View on Brand" label uses the brand's name verbatim
885
- ("View on Beacons", "View on Muvin", etc.). -->
886
- <nav class="drawer-nav">
887
- <a href="#story">{{ nav_section_1 }}</a>
888
- <a href="#home">{{ nav_section_2 }}</a>
889
- <a href="#garden">{{ nav_section_3 }}</a>
890
- <a href="#area">{{ nav_section_4 }}</a>
891
- <a href="#floorplan">Floor plan</a>
892
- <a href="#facts">Key facts</a>
893
- <a href="{{ property_slug }}-brochure.pdf" download>Download brochure</a>
894
- <a href="{{ video_url }}" target="_blank">Watch video tour</a>
895
- <a href="{{ listing_url }}" target="_blank">View on {{ brand_name }}</a>
896
- <a href="mailto:{{ office_email }}?subject={{ email_subject_enquiry }}" class="drawer-cta">Enquire</a>
897
- </nav>
898
- <!-- REPLACE: Drawer foot — agent name, agency, branch, plus a tel: link.
899
- {{ office_phone_tel }} is the international-format dialer link (e.g.
900
- "+441873377575"); {{ office_phone }} is the display format. -->
901
- <div class="drawer-foot">
902
- {{ agent_first_name }} {{ agent_surname }} · {{ brand_name }} · {{ brand_town }}<br>
903
- <a href="tel:{{ office_phone_tel }}">{{ office_phone }}</a>
904
- </div>
905
- </div>
906
-
907
- <!-- ════════════════ STICKY SUB-NAV ════════════════ -->
908
- <!-- Revealed by the JS at the bottom of the page once the hero scrolls past.
909
- Mirrors the hero info-card's three utility links plus a Request-viewing CTA. -->
910
- <nav class="subnav" id="subnav">
911
- <!-- REPLACE: Sub-nav left — property name + price + postcode (compressed
912
- summary of the hero info-card for the scrolled state). -->
913
- <div class="left">
914
- {{ property_name }}
915
- <span class="price">{{ price_formatted }} · {{ postcode }}</span>
916
- </div>
917
- <!-- REPLACE: Sub-nav right — same utility links as the hero info-card.
918
- Keep "Request viewing" as the rightmost CTA in solid ink. -->
919
- <div class="right">
920
- <a href="#floorplan">Floor plan</a>
921
- <a href="{{ property_slug }}-brochure.pdf" download>Brochure</a>
922
- <a href="{{ video_url }}" target="_blank">Video tour</a>
923
- <a href="mailto:{{ office_email }}?subject={{ email_subject_viewing }}" class="cta">Request viewing</a>
924
- </div>
925
- </nav>
926
-
927
- <!-- ════════════════ HERO ════════════════ -->
928
- <!-- 3-slide Ken-Burns rotator. Image filenames follow the convention
929
- PROPERTY-SLUG-hero-N-<role>.webp (source-resolution, q88 — see SKILL
930
- "Hero — rotating Ken-Burns stage"). Pick three different MOMENTS, not
931
- three angles of the same shot:
932
- Slide 1: main exterior (often the cover image — golden hour preferred)
933
- Slide 2: principal interior (kitchen-dining, hearth, principal sitting)
934
- Slide 3: garden / outdoor / aerial (different from slide 1 in subject) -->
935
- <section class="hero">
936
- <!-- REPLACE three hero slides. Filename pattern:
937
- {{ property_slug }}-hero-N-<role>.webp
938
- Three DIFFERENT MOMENTS, not three angles of the same shot:
939
- Slide 1: main exterior (often golden hour; usually the cover image)
940
- Slide 2: principal interior (kitchen-dining, hearth, principal sitting)
941
- Slide 3: garden / outdoor / aerial (different subject from slide 1)
942
- Alt: property name + the moment captured. -->
943
- <div class="hero-stage" aria-label="{{ property_name }} — three views" role="img">
944
- <div class="hero-slide s1"><img src="images/{{ hero_1_src }}" alt="{{ hero_1_alt }}"></div>
945
- <div class="hero-slide s2"><img src="images/{{ hero_2_src }}" alt="{{ hero_2_alt }}"></div>
946
- <div class="hero-slide s3"><img src="images/{{ hero_3_src }}" alt="{{ hero_3_alt }}"></div>
947
- </div>
948
- <!-- REPLACE: Info-card — sits over the hero (desktop) or stacks under
949
- (mobile). Substitute the title, address (two lines via <br>), price
950
- (qualifier + amount), meta (tenure · year), four spec cells, three
951
- utility links, and the request-viewing CTA. The specs row + links row
952
- each MUST stay single-line — see copy.md "Stats rows". -->
953
- <div class="info-card">
954
- <span class="tag">{{ hero_tag }}</span>
955
- <h1 class="title">{{ property_name }}</h1>
956
- <div class="address">{{ address_line_1 }},<br>{{ locality }}, {{ county }} {{ postcode }}</div>
957
- <div class="price">{{ price_qualifier }} <em>{{ price_formatted }}</em></div>
958
- <div class="meta">{{ tenure }} · c.&nbsp;{{ year_built }}</div>
959
- <div class="specs">
960
- <span>{{ spec_beds }}</span>
961
- <span>{{ spec_baths }}</span>
962
- <span>{{ spec_area }}</span>
963
- <span>{{ spec_plot }}</span>
964
- </div>
965
- <div class="links">
966
- <a href="#floorplan">Floor plan</a>
967
- <a href="{{ property_slug }}-brochure.pdf" download>Brochure</a>
968
- <a href="{{ video_url }}" target="_blank">Video tour</a>
969
- </div>
970
- <a href="mailto:{{ office_email }}?subject={{ email_subject_viewing }}" class="cta">Request viewing</a>
971
- </div>
972
- </section>
973
-
974
- <!-- ════════════════ MAIN BODY ════════════════ -->
975
- <main>
976
-
977
- <!-- INTRO BLOCK -->
978
- <!-- REPLACE: Story / "Of place & pedigree" section.
979
- eyebrow → fixed phrase or property-specific synonym for the chapter
980
- h2 → italic editorial headline summarising what this home is
981
- (15-25 words; one declarative sentence; place + character)
982
- p1, p2 → two paragraphs of opening editorial. Distil from seller
983
- brief Q1/Q3/Q5/Q19/Q20. Para 1 short (3-4 sentences) so the
984
- dropcap reads cleanly; para 2 longer (4-6 sentences). Close
985
- para 2 with an italic phrase wrapped in <em>. -->
986
- <article class="body-block" id="story">
987
- <div class="section-eyebrow">{{ landing_story_eyebrow }}</div>
988
- <h2>{{ landing_story_headline }}</h2>
989
- <p>
990
- {{ landing_story_para_1 }}
991
- </p>
992
- <p>
993
- {{ landing_story_para_2 }}
994
- </p>
995
- </article>
996
-
997
- <!-- PHOTO GRID 1 — Establishing exterior + drone -->
998
- <!-- REPLACE four establishing cells — front elevation, drone aerial,
999
- atmospheric exterior, garden-with-home-context. These set scale
1000
- before the body copy goes inside. -->
1001
- <div class="photo-grid">
1002
- <div class="cell"><img src="images/{{ landing_grid_1_src_a }}" alt="{{ landing_grid_1_alt_a }}"></div>
1003
- <div class="cell"><img src="images/{{ landing_grid_1_src_b }}" alt="{{ landing_grid_1_alt_b }}"></div>
1004
- <div class="cell"><img src="images/{{ landing_grid_1_src_c }}" alt="{{ landing_grid_1_alt_c }}"></div>
1005
- <div class="cell"><img src="images/{{ landing_grid_1_src_d }}" alt="{{ landing_grid_1_alt_d }}"></div>
1006
- </div>
1007
-
1008
- <!-- THE HOME -->
1009
- <!-- REPLACE: The Home / "A home at ease" section.
1010
- Three paragraphs (each 4-6 sentences) covering:
1011
- (1) entrance hall + how the ground-floor plan opens / divides
1012
- (2) kitchen-dining detail — cabinetry, worksurfaces, appliances,
1013
- connection to utility / outdoor
1014
- (3) sitting room(s) + any signature interior feature (hearth,
1015
- orangery, conservatory, garden room). Use <strong> sparingly
1016
- for the two or three most distinctive features. Em-dashes
1017
- rare. Distil from seller brief Q5-Q7. -->
1018
- <article class="body-block" id="home">
1019
- <div class="section-eyebrow">{{ landing_home_eyebrow }}</div>
1020
- <h2>{{ landing_home_headline }}</h2>
1021
- <p>
1022
- {{ landing_home_para_1 }}
1023
- </p>
1024
- <p>
1025
- {{ landing_home_para_2 }}
1026
- </p>
1027
- <p>
1028
- {{ landing_home_para_3 }}
1029
- </p>
1030
- </article>
1031
-
1032
- <!-- PHOTO GRID 2 — Kitchen & dining. REPLACE four cells from the
1033
- kitchen-breakfast-dining narrative: wide shot, island detail,
1034
- range/appliances, dining end. -->
1035
- <div class="photo-grid">
1036
- <div class="cell"><img src="images/{{ landing_grid_2_src_a }}" alt="{{ landing_grid_2_alt_a }}"></div>
1037
- <div class="cell"><img src="images/{{ landing_grid_2_src_b }}" alt="{{ landing_grid_2_alt_b }}"></div>
1038
- <div class="cell"><img src="images/{{ landing_grid_2_src_c }}" alt="{{ landing_grid_2_alt_c }}"></div>
1039
- <div class="cell"><img src="images/{{ landing_grid_2_src_d }}" alt="{{ landing_grid_2_alt_d }}"></div>
1040
- </div>
1041
-
1042
- <!-- PHOTO GRID 3 — Reception & living. REPLACE four cells from the
1043
- reception narrative: signature hearth/sitting room, second reception,
1044
- hallway, third reception (orangery / day room / garden room). -->
1045
- <div class="photo-grid">
1046
- <div class="cell"><img src="images/{{ landing_grid_3_src_a }}" alt="{{ landing_grid_3_alt_a }}"></div>
1047
- <div class="cell"><img src="images/{{ landing_grid_3_src_b }}" alt="{{ landing_grid_3_alt_b }}"></div>
1048
- <div class="cell"><img src="images/{{ landing_grid_3_src_c }}" alt="{{ landing_grid_3_alt_c }}"></div>
1049
- <div class="cell"><img src="images/{{ landing_grid_3_src_d }}" alt="{{ landing_grid_3_alt_d }}"></div>
1050
- </div>
1051
-
1052
- <!-- THE BEDROOMS -->
1053
- <!-- REPLACE: Bedrooms & baths section. Two paragraphs:
1054
- (1) the sleeping floor's character + the bedroom sequence (count,
1055
- layout, light, view)
1056
- (2) the principal suite + family bath split, and any standout
1057
- bathroom feature.
1058
- Distil from seller brief Q6/Q10. Avoid "house" — use "home". -->
1059
- <article class="body-block" id="bedrooms">
1060
- <div class="section-eyebrow">{{ landing_bedrooms_eyebrow }}</div>
1061
- <h2>{{ landing_bedrooms_headline }}</h2>
1062
- <p>
1063
- {{ landing_bedrooms_para_1 }}
1064
- </p>
1065
- <p>
1066
- {{ landing_bedrooms_para_2 }}
1067
- </p>
1068
- </article>
1069
-
1070
- <!-- PHOTO GRID 4 — Bedrooms & baths. REPLACE four cells, mixing
1071
- bedrooms and bathrooms so the grid reads as the floor as a whole:
1072
- principal bedroom (hero), second/third double, family bathroom,
1073
- secondary bathroom. -->
1074
- <div class="photo-grid">
1075
- <div class="cell"><img src="images/{{ landing_grid_4_src_a }}" alt="{{ landing_grid_4_alt_a }}"></div>
1076
- <div class="cell"><img src="images/{{ landing_grid_4_src_b }}" alt="{{ landing_grid_4_alt_b }}"></div>
1077
- <div class="cell"><img src="images/{{ landing_grid_4_src_c }}" alt="{{ landing_grid_4_alt_c }}"></div>
1078
- <div class="cell"><img src="images/{{ landing_grid_4_src_d }}" alt="{{ landing_grid_4_alt_d }}"></div>
1079
- </div>
1080
-
1081
- <!-- THE GARDEN -->
1082
- <!-- REPLACE: Garden / outdoor section. Two paragraphs:
1083
- (1) the principal outdoor features (terrace, pool, outdoor kitchen,
1084
- pergola, summerhouse — whatever the property actually has;
1085
- see structure.md "Distinguishing features clearly")
1086
- (2) the wider garden — lawns, planting, paddocks, screening, outlook.
1087
- Close para 2 with a one-clause italic if the brief supports one.
1088
- For properties without a garden complex, repurpose this section as
1089
- the property's single most distinctive outdoor feature page — keep
1090
- the eyebrow tied to the actual feature names, never "garden complex". -->
1091
- <article class="body-block" id="garden">
1092
- <div class="section-eyebrow">{{ landing_garden_eyebrow }}</div>
1093
- <h2>{{ landing_garden_headline }}</h2>
1094
- <p>
1095
- {{ landing_garden_para_1 }}
1096
- </p>
1097
- <p>
1098
- {{ landing_garden_para_2 }}
1099
- </p>
1100
- </article>
1101
-
1102
- <!-- PHOTO GRID 5 — Garden complex. REPLACE four cells. For properties
1103
- without a true garden complex, use atmospheric shots: rear elevation,
1104
- garden-from-distance, twilight exterior, drone aerial of the plot. -->
1105
- <div class="photo-grid">
1106
- <div class="cell"><img src="images/{{ landing_grid_5_src_a }}" alt="{{ landing_grid_5_alt_a }}"></div>
1107
- <div class="cell"><img src="images/{{ landing_grid_5_src_b }}" alt="{{ landing_grid_5_alt_b }}"></div>
1108
- <div class="cell"><img src="images/{{ landing_grid_5_src_c }}" alt="{{ landing_grid_5_alt_c }}"></div>
1109
- <div class="cell"><img src="images/{{ landing_grid_5_src_d }}" alt="{{ landing_grid_5_alt_d }}"></div>
1110
- </div>
1111
-
1112
- <!-- THE AREA -->
1113
- <!-- REPLACE: The Area section. Two paragraphs:
1114
- (1) administrative + transport + nearest amenities (LA, nearest
1115
- town, train/airport, schools)
1116
- (2) the qualitative setting — open countryside / village vibe /
1117
- urban edge / coastal — and signature walks/landmarks.
1118
- Distil from seller brief Q11-Q14. -->
1119
- <article class="body-block" id="area">
1120
- <div class="section-eyebrow">{{ landing_area_eyebrow }}</div>
1121
- <h2>{{ landing_area_headline }}</h2>
1122
- <p>
1123
- {{ landing_area_para_1 }}
1124
- </p>
1125
- <p>
1126
- {{ landing_area_para_2 }}
1127
- </p>
1128
- </article>
1129
-
1130
- <!-- PHOTO GRID 6 — Closing photographic narrative. REPLACE four cells —
1131
- a wider aerial, an additional internal moment, an open-plan view,
1132
- and an atmospheric closing shot (often the cover hero re-used here
1133
- as a book-end). -->
1134
- <div class="photo-grid">
1135
- <div class="cell"><img src="images/{{ landing_grid_6_src_a }}" alt="{{ landing_grid_6_alt_a }}"></div>
1136
- <div class="cell"><img src="images/{{ landing_grid_6_src_b }}" alt="{{ landing_grid_6_alt_b }}"></div>
1137
- <div class="cell"><img src="images/{{ landing_grid_6_src_c }}" alt="{{ landing_grid_6_alt_c }}"></div>
1138
- <div class="cell"><img src="images/{{ landing_grid_6_src_d }}" alt="{{ landing_grid_6_alt_d }}"></div>
1139
- </div>
1140
-
1141
- <!-- ════════════════ FLOOR PLAN ════════════════ -->
1142
- <section class="floorplan-section" id="floorplan">
1143
- <div class="inner">
1144
- <!-- Floor plan PNG — line-art, copied unchanged from the canonical
1145
- ({{ property_slug }}-floorplan.png). -->
1146
- <img src="images/{{ property_slug }}-floorplan.png" alt="The composite floor plan for {{ property_name }}">
1147
- <!-- REPLACE Floor plan meta — italic h2, lead sentence (total area +
1148
- plot), and the .areas grid. Six rows MAX. Drop any row that
1149
- doesn't apply (no acreage → drop Plot; no outbuildings → drop
1150
- those rows). Excluded outbuildings MUST be listed separately,
1151
- never folded into the principal home's sq ft. -->
1152
- <div class="meta">
1153
- <h2>{{ landing_floorplan_heading }}</h2>
1154
- <p class="lead">{{ landing_floorplan_lead }}</p>
1155
- <div class="areas">
1156
- <div class="row"><span class="k">{{ landing_floorplan_row_1_k }}</span><span class="v">{{ landing_floorplan_row_1_v }}</span></div>
1157
- <div class="row"><span class="k">{{ landing_floorplan_row_2_k }}</span><span class="v">{{ landing_floorplan_row_2_v }}</span></div>
1158
- <div class="row"><span class="k">{{ landing_floorplan_row_3_k }}</span><span class="v">{{ landing_floorplan_row_3_v }}</span></div>
1159
- <div class="row"><span class="k">{{ landing_floorplan_row_4_k }}</span><span class="v">{{ landing_floorplan_row_4_v }}</span></div>
1160
- <div class="row"><span class="k">{{ landing_floorplan_row_5_k }}</span><span class="v">{{ landing_floorplan_row_5_v }}</span></div>
1161
- <div class="row"><span class="k">EPC</span><span class="v">{{ epc_rating }}</span></div>
1162
- </div>
1163
- </div>
1164
- </div>
1165
- </section>
1166
-
1167
- <!-- ════════════════ KEY FACTS ════════════════ -->
1168
- <!-- REPLACE Key facts — 15-row three-column grid mirroring the brochure's
1169
- Material Information Part A. Mark unknowns "TBC"; never invent. The
1170
- footnote is fixed boilerplate (DMCCA 2024 + CPR 2008) — keep. The
1171
- keys below match the brochure's mi-rows by intent; substitute the
1172
- values from property.json. -->
1173
- <section class="key-facts" id="facts">
1174
- <h2>Key facts</h2>
1175
- <div class="grid">
1176
- <div class="row"><div class="k">Tenure</div><div class="v">{{ mi_tenure }}</div></div>
1177
- <div class="row"><div class="k">Title</div><div class="v">{{ mi_title_number }}</div></div>
1178
- <div class="row"><div class="k">Council Tax</div><div class="v">{{ mi_council_tax }}</div></div>
1179
- <div class="row"><div class="k">Local Authority</div><div class="v">{{ mi_local_authority }}</div></div>
1180
- <div class="row"><div class="k">Heating</div><div class="v">{{ mi_heating }}</div></div>
1181
- <div class="row"><div class="k">Electricity</div><div class="v">{{ mi_electricity }}</div></div>
1182
- <div class="row"><div class="k">Water</div><div class="v">{{ mi_water }}</div></div>
1183
- <div class="row"><div class="k">Sewerage</div><div class="v">{{ mi_sewerage }}</div></div>
1184
- <div class="row"><div class="k">Broadband</div><div class="v">{{ mi_broadband }}</div></div>
1185
- <div class="row"><div class="k">Mobile</div><div class="v">{{ mi_mobile }}</div></div>
1186
- <div class="row"><div class="k">Flood Risk</div><div class="v">{{ landing_flood_summary }}</div></div>
1187
- <div class="row"><div class="k">Construction</div><div class="v">{{ mi_construction }}</div></div>
1188
- <div class="row"><div class="k">Conservation Area</div><div class="v">{{ mi_conservation }}</div></div>
1189
- <div class="row"><div class="k">Listed Building</div><div class="v">{{ mi_listed }}</div></div>
1190
- <div class="row"><div class="k">UPRN</div><div class="v">{{ mi_uprn }}</div></div>
1191
- <div class="footnote">Material information provided in accordance with the Consumer Protection from Unfair Trading Regulations 2008 and the Digital Markets, Competition and Consumers Act 2024.</div>
1192
- </div>
1193
- </section>
1194
-
1195
- </main>
1196
-
1197
- <!-- ════════════════ CTA STRIP ════════════════ -->
1198
- <!-- REPLACE CTA strip — italic h2 (canonical "Interested? Let's talk." or
1199
- property-specific variant), three CTAs in order: tel:, mailto: enquiry,
1200
- mailto: request-viewing (the rightmost, .solid). Drop the tel: only if
1201
- the agent's number isn't published. -->
1202
- <section class="cta-strip">
1203
- <h2>{{ landing_cta_headline }}</h2>
1204
- <div class="cta-row">
1205
- <a href="tel:{{ office_phone_tel }}">{{ office_phone }}</a>
1206
- <a href="mailto:{{ office_email }}?subject={{ email_subject_enquiry }}">{{ office_email }}</a>
1207
- <a href="mailto:{{ office_email }}?subject={{ email_subject_viewing }}" class="solid">Request viewing</a>
1208
- </div>
1209
- </section>
1210
-
1211
- <!-- ════════════════ FOOTER ════════════════ -->
1212
- <!-- REPLACE Footer — agent block (label, name with first name in <em>,
1213
- agency · branch + address + tel/email), legal disclaimer, colophon.
1214
- Disclaimer is mostly boilerplate; keep the CGI/AI sentence if any
1215
- image in the brochure was AI-staged. -->
1216
- <footer>
1217
- <div class="inner">
1218
- <div class="agent">
1219
- <div class="label">The Agent</div>
1220
- <div class="name"><em>{{ agent_first_name }}</em> {{ agent_surname }}</div>
1221
- {{ brand_name }} · {{ brand_town }}<br>
1222
- {{ office_address_line_1 }}<br>
1223
- {{ office_address_line_2 }}<br>
1224
- {{ office_phone }} · {{ office_email }}
1225
- </div>
1226
- <p class="legal">
1227
- These particulars, whilst believed to be accurate, are set out as a general outline only for guidance and do not constitute any part of an offer or contract. Intending purchasers should not rely on them as statements or representations of fact, but must satisfy themselves by inspection or otherwise as to their accuracy. All measurements are approximate and floor plans are drawn to indicative scale. Some images may include CGI or AI enhancements for illustrative purposes.
1228
- </p>
1229
- <div class="colophon">
1230
- <span>{{ property_name }} · {{ address_line_1 }}, {{ locality }}</span>
1231
- <span>© {{ brand_year }} {{ brand_name }}</span>
1232
- </div>
1233
- </div>
1234
- </footer>
1235
-
1236
- <script>
1237
- // Show sticky sub-nav after scrolling past the hero
1238
- (function() {
1239
- const subnav = document.getElementById('subnav');
1240
- const hero = document.querySelector('.hero');
1241
- function update() {
1242
- const heroBottom = hero.getBoundingClientRect().bottom;
1243
- if (heroBottom < 0) subnav.classList.add('visible');
1244
- else subnav.classList.remove('visible');
1245
- }
1246
- window.addEventListener('scroll', update, { passive: true });
1247
- update();
1248
- })();
1249
-
1250
- // Hamburger / drawer
1251
- (function() {
1252
- const burger = document.querySelector('.burger');
1253
- const drawer = document.getElementById('drawer');
1254
- if (!burger || !drawer) return;
1255
-
1256
- // Inject backdrop sibling (created lazily so the markup stays clean)
1257
- const backdrop = document.createElement('div');
1258
- backdrop.className = 'drawer-backdrop';
1259
- document.body.appendChild(backdrop);
1260
-
1261
- function open() {
1262
- drawer.classList.add('open');
1263
- backdrop.classList.add('open');
1264
- document.body.classList.add('drawer-open');
1265
- burger.setAttribute('aria-expanded', 'true');
1266
- drawer.setAttribute('aria-hidden', 'false');
1267
- }
1268
- function close() {
1269
- drawer.classList.remove('open');
1270
- backdrop.classList.remove('open');
1271
- document.body.classList.remove('drawer-open');
1272
- burger.setAttribute('aria-expanded', 'false');
1273
- drawer.setAttribute('aria-hidden', 'true');
1274
- }
1275
- burger.addEventListener('click', () => {
1276
- drawer.classList.contains('open') ? close() : open();
1277
- });
1278
- backdrop.addEventListener('click', close);
1279
- document.querySelector('.drawer-close').addEventListener('click', close);
1280
- // Close on link click (so clicking a section link also closes the drawer)
1281
- drawer.querySelectorAll('a').forEach(a => a.addEventListener('click', close));
1282
- // Close on Escape
1283
- document.addEventListener('keydown', e => {
1284
- if (e.key === 'Escape' && drawer.classList.contains('open')) close();
1285
- });
1286
- })();
1287
- </script>
1288
-
1289
- </body>
1290
- </html>