@rubytech/create-maxy-code 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1821) hide show
  1. package/dist/__tests__/account-id-env.test.js +48 -0
  2. package/dist/__tests__/apt-resolve.test.js +179 -0
  3. package/dist/__tests__/brew-install.test.js +141 -0
  4. package/dist/__tests__/brew-resolve.test.js +103 -0
  5. package/dist/__tests__/cdp-port-no-silent-fallback.test.js +53 -0
  6. package/dist/__tests__/launchd-plist.test.js +149 -0
  7. package/dist/__tests__/macos-version.test.js +96 -0
  8. package/dist/__tests__/peer-brand-detect.test.js +103 -0
  9. package/dist/__tests__/platform-detect.test.js +50 -0
  10. package/dist/__tests__/port-canonicalisation.test.js +200 -0
  11. package/dist/__tests__/preflight-port-classifier.test.js +330 -0
  12. package/dist/__tests__/snap-chromium.test.js +115 -0
  13. package/dist/apt-resolve.js +73 -0
  14. package/dist/brew-install.js +175 -0
  15. package/dist/brew-resolve.js +68 -0
  16. package/dist/index.js +3325 -0
  17. package/dist/launchd-plist.js +68 -0
  18. package/dist/macos-version.js +53 -0
  19. package/dist/peer-brand-detect.js +39 -0
  20. package/dist/pinned-binaries.js +12 -0
  21. package/dist/platform-detect.js +36 -0
  22. package/dist/port-resolution.js +153 -0
  23. package/dist/preflight-port-classifier.js +222 -0
  24. package/dist/snap-chromium.js +89 -0
  25. package/dist/uninstall.js +861 -0
  26. package/package.json +32 -0
  27. package/payload/platform/config/brand-registry.json +20 -0
  28. package/payload/platform/config/brand.json +54 -0
  29. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.d.ts +2 -0
  30. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.d.ts.map +1 -0
  31. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.js +88 -0
  32. package/payload/platform/lib/account-enumeration/dist/__tests__/enumerate.test.js.map +1 -0
  33. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.d.ts +2 -0
  34. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.d.ts.map +1 -0
  35. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.js +55 -0
  36. package/payload/platform/lib/account-enumeration/dist/__tests__/validate-env.test.js.map +1 -0
  37. package/payload/platform/lib/account-enumeration/dist/index.d.ts +49 -0
  38. package/payload/platform/lib/account-enumeration/dist/index.d.ts.map +1 -0
  39. package/payload/platform/lib/account-enumeration/dist/index.js +109 -0
  40. package/payload/platform/lib/account-enumeration/dist/index.js.map +1 -0
  41. package/payload/platform/lib/account-enumeration/src/__tests__/enumerate.test.ts +94 -0
  42. package/payload/platform/lib/account-enumeration/src/__tests__/validate-env.test.ts +57 -0
  43. package/payload/platform/lib/account-enumeration/src/index.ts +140 -0
  44. package/payload/platform/lib/account-enumeration/tsconfig.json +8 -0
  45. package/payload/platform/lib/admins-write/dist/index.d.ts +87 -0
  46. package/payload/platform/lib/admins-write/dist/index.d.ts.map +1 -0
  47. package/payload/platform/lib/admins-write/dist/index.js +248 -0
  48. package/payload/platform/lib/admins-write/dist/index.js.map +1 -0
  49. package/payload/platform/lib/admins-write/src/index.ts +311 -0
  50. package/payload/platform/lib/admins-write/tsconfig.json +8 -0
  51. package/payload/platform/lib/anthropic-key/dist/index.d.ts +22 -0
  52. package/payload/platform/lib/anthropic-key/dist/index.d.ts.map +1 -0
  53. package/payload/platform/lib/anthropic-key/dist/index.js +232 -0
  54. package/payload/platform/lib/anthropic-key/dist/index.js.map +1 -0
  55. package/payload/platform/lib/brand-templating/dist/index.d.ts +18 -0
  56. package/payload/platform/lib/brand-templating/dist/index.d.ts.map +1 -0
  57. package/payload/platform/lib/brand-templating/dist/index.js +69 -0
  58. package/payload/platform/lib/brand-templating/dist/index.js.map +1 -0
  59. package/payload/platform/lib/brand-templating/src/index.ts +76 -0
  60. package/payload/platform/lib/brand-templating/tsconfig.json +8 -0
  61. package/payload/platform/lib/device-url/dist/index.d.ts +44 -0
  62. package/payload/platform/lib/device-url/dist/index.d.ts.map +1 -0
  63. package/payload/platform/lib/device-url/dist/index.js +68 -0
  64. package/payload/platform/lib/device-url/dist/index.js.map +1 -0
  65. package/payload/platform/lib/device-url/src/index.ts +78 -0
  66. package/payload/platform/lib/device-url/tsconfig.json +8 -0
  67. package/payload/platform/lib/entitlement/PUBKEY-HASH.txt +1 -0
  68. package/payload/platform/lib/entitlement/dist/canonicalize.d.ts +26 -0
  69. package/payload/platform/lib/entitlement/dist/canonicalize.d.ts.map +1 -0
  70. package/payload/platform/lib/entitlement/dist/canonicalize.js +54 -0
  71. package/payload/platform/lib/entitlement/dist/canonicalize.js.map +1 -0
  72. package/payload/platform/lib/entitlement/dist/index.d.ts +76 -0
  73. package/payload/platform/lib/entitlement/dist/index.d.ts.map +1 -0
  74. package/payload/platform/lib/entitlement/dist/index.js +293 -0
  75. package/payload/platform/lib/entitlement/dist/index.js.map +1 -0
  76. package/payload/platform/lib/entitlement/rubytech-pubkey.pem +3 -0
  77. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.d.ts +2 -0
  78. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.d.ts.map +1 -0
  79. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.js +97 -0
  80. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate-write.test.js.map +1 -0
  81. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.d.ts +2 -0
  82. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.d.ts.map +1 -0
  83. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.js +112 -0
  84. package/payload/platform/lib/graph-mcp/dist/__tests__/cypher-validate.test.js.map +1 -0
  85. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.d.ts +2 -0
  86. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.d.ts.map +1 -0
  87. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.js +163 -0
  88. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cache.test.js.map +1 -0
  89. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.d.ts +2 -0
  90. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.d.ts.map +1 -0
  91. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.js +89 -0
  92. package/payload/platform/lib/graph-mcp/dist/__tests__/schema-cypher-parser.test.js.map +1 -0
  93. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.d.ts +2 -0
  94. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.d.ts.map +1 -0
  95. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.js +140 -0
  96. package/payload/platform/lib/graph-mcp/dist/__tests__/warnings-envelope.test.js.map +1 -0
  97. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.d.ts +37 -0
  98. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.d.ts.map +1 -0
  99. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.js +333 -0
  100. package/payload/platform/lib/graph-mcp/dist/cypher-rewrite-stamp.js.map +1 -0
  101. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.d.ts +85 -0
  102. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.d.ts.map +1 -0
  103. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.js +93 -0
  104. package/payload/platform/lib/graph-mcp/dist/cypher-shim-read.js.map +1 -0
  105. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.d.ts +71 -0
  106. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.d.ts.map +1 -0
  107. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.js +168 -0
  108. package/payload/platform/lib/graph-mcp/dist/cypher-shim-write.js.map +1 -0
  109. package/payload/platform/lib/graph-mcp/dist/cypher-validate.d.ts +50 -0
  110. package/payload/platform/lib/graph-mcp/dist/cypher-validate.d.ts.map +1 -0
  111. package/payload/platform/lib/graph-mcp/dist/cypher-validate.js +197 -0
  112. package/payload/platform/lib/graph-mcp/dist/cypher-validate.js.map +1 -0
  113. package/payload/platform/lib/graph-mcp/dist/index.d.ts +26 -0
  114. package/payload/platform/lib/graph-mcp/dist/index.d.ts.map +1 -0
  115. package/payload/platform/lib/graph-mcp/dist/index.js +847 -0
  116. package/payload/platform/lib/graph-mcp/dist/index.js.map +1 -0
  117. package/payload/platform/lib/graph-mcp/dist/schema-cache.d.ts +75 -0
  118. package/payload/platform/lib/graph-mcp/dist/schema-cache.d.ts.map +1 -0
  119. package/payload/platform/lib/graph-mcp/dist/schema-cache.js +217 -0
  120. package/payload/platform/lib/graph-mcp/dist/schema-cache.js.map +1 -0
  121. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.d.ts +42 -0
  122. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.d.ts.map +1 -0
  123. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.js +87 -0
  124. package/payload/platform/lib/graph-mcp/dist/schema-cypher-parser.js.map +1 -0
  125. package/payload/platform/lib/graph-mcp/src/__tests__/cypher-validate-write.test.ts +150 -0
  126. package/payload/platform/lib/graph-mcp/src/__tests__/cypher-validate.test.ts +141 -0
  127. package/payload/platform/lib/graph-mcp/src/__tests__/schema-cache.test.ts +169 -0
  128. package/payload/platform/lib/graph-mcp/src/__tests__/schema-cypher-parser.test.ts +99 -0
  129. package/payload/platform/lib/graph-mcp/src/__tests__/warnings-envelope.test.ts +151 -0
  130. package/payload/platform/lib/graph-mcp/src/cypher-rewrite-stamp.ts +349 -0
  131. package/payload/platform/lib/graph-mcp/src/cypher-shim-read.ts +141 -0
  132. package/payload/platform/lib/graph-mcp/src/cypher-shim-write.ts +240 -0
  133. package/payload/platform/lib/graph-mcp/src/cypher-validate.ts +249 -0
  134. package/payload/platform/lib/graph-mcp/src/index.ts +1076 -0
  135. package/payload/platform/lib/graph-mcp/src/schema-cache.ts +242 -0
  136. package/payload/platform/lib/graph-mcp/src/schema-cypher-parser.ts +84 -0
  137. package/payload/platform/lib/graph-mcp/tsconfig.json +8 -0
  138. package/payload/platform/lib/graph-search/dist/index.d.ts +227 -0
  139. package/payload/platform/lib/graph-search/dist/index.d.ts.map +1 -0
  140. package/payload/platform/lib/graph-search/dist/index.js +525 -0
  141. package/payload/platform/lib/graph-search/dist/index.js.map +1 -0
  142. package/payload/platform/lib/graph-search/src/__tests__/bm25-label-gate.test.ts +88 -0
  143. package/payload/platform/lib/graph-search/src/__tests__/bm25-only.test.ts +129 -0
  144. package/payload/platform/lib/graph-search/src/__tests__/bm25-strong-bypass-threshold.test.ts +126 -0
  145. package/payload/platform/lib/graph-search/src/__tests__/brochure-threshold.test.ts +136 -0
  146. package/payload/platform/lib/graph-search/src/__tests__/escape-and-normalise.test.ts +53 -0
  147. package/payload/platform/lib/graph-search/src/__tests__/expand-batch.test.ts +206 -0
  148. package/payload/platform/lib/graph-search/src/__tests__/fulltext-coverage.test.ts +280 -0
  149. package/payload/platform/lib/graph-search/src/__tests__/hybrid.test.ts +262 -0
  150. package/payload/platform/lib/graph-search/src/__tests__/vector-threshold.test.ts +170 -0
  151. package/payload/platform/lib/graph-search/src/index.ts +718 -0
  152. package/payload/platform/lib/graph-search/tsconfig.json +9 -0
  153. package/payload/platform/lib/graph-search/vitest.config.ts +9 -0
  154. package/payload/platform/lib/graph-trash/dist/index.d.ts +99 -0
  155. package/payload/platform/lib/graph-trash/dist/index.d.ts.map +1 -0
  156. package/payload/platform/lib/graph-trash/dist/index.js +333 -0
  157. package/payload/platform/lib/graph-trash/dist/index.js.map +1 -0
  158. package/payload/platform/lib/graph-trash/src/index.ts +475 -0
  159. package/payload/platform/lib/graph-trash/tsconfig.json +8 -0
  160. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.d.ts +2 -0
  161. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.d.ts.map +1 -0
  162. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.js +165 -0
  163. package/payload/platform/lib/graph-write/dist/__tests__/account-id-gate.test.js.map +1 -0
  164. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.d.ts +2 -0
  165. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.d.ts.map +1 -0
  166. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.js +226 -0
  167. package/payload/platform/lib/graph-write/dist/__tests__/action-provenance-gate.test.js.map +1 -0
  168. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.d.ts +2 -0
  169. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.d.ts.map +1 -0
  170. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.js +147 -0
  171. package/payload/platform/lib/graph-write/dist/__tests__/audit.test.js.map +1 -0
  172. package/payload/platform/lib/graph-write/dist/audit.d.ts +84 -0
  173. package/payload/platform/lib/graph-write/dist/audit.d.ts.map +1 -0
  174. package/payload/platform/lib/graph-write/dist/audit.js +129 -0
  175. package/payload/platform/lib/graph-write/dist/audit.js.map +1 -0
  176. package/payload/platform/lib/graph-write/dist/conversation-provenance.d.ts +26 -0
  177. package/payload/platform/lib/graph-write/dist/conversation-provenance.d.ts.map +1 -0
  178. package/payload/platform/lib/graph-write/dist/conversation-provenance.js +81 -0
  179. package/payload/platform/lib/graph-write/dist/conversation-provenance.js.map +1 -0
  180. package/payload/platform/lib/graph-write/dist/index.d.ts +124 -0
  181. package/payload/platform/lib/graph-write/dist/index.d.ts.map +1 -0
  182. package/payload/platform/lib/graph-write/dist/index.js +288 -0
  183. package/payload/platform/lib/graph-write/dist/index.js.map +1 -0
  184. package/payload/platform/lib/graph-write/src/__tests__/account-id-gate.test.ts +189 -0
  185. package/payload/platform/lib/graph-write/src/__tests__/action-provenance-gate.test.ts +252 -0
  186. package/payload/platform/lib/graph-write/src/__tests__/audit.test.ts +162 -0
  187. package/payload/platform/lib/graph-write/src/audit.ts +182 -0
  188. package/payload/platform/lib/graph-write/src/conversation-provenance.ts +140 -0
  189. package/payload/platform/lib/graph-write/src/index.ts +386 -0
  190. package/payload/platform/lib/graph-write/tsconfig.json +8 -0
  191. package/payload/platform/lib/mcp-eager/dist/index.d.ts +61 -0
  192. package/payload/platform/lib/mcp-eager/dist/index.d.ts.map +1 -0
  193. package/payload/platform/lib/mcp-eager/dist/index.js +49 -0
  194. package/payload/platform/lib/mcp-eager/dist/index.js.map +1 -0
  195. package/payload/platform/lib/mcp-eager/src/index.ts +78 -0
  196. package/payload/platform/lib/mcp-eager/tsconfig.json +8 -0
  197. package/payload/platform/lib/mcp-spawn-tee/dist/index.d.ts +53 -0
  198. package/payload/platform/lib/mcp-spawn-tee/dist/index.d.ts.map +1 -0
  199. package/payload/platform/lib/mcp-spawn-tee/dist/index.js +132 -0
  200. package/payload/platform/lib/mcp-spawn-tee/dist/index.js.map +1 -0
  201. package/payload/platform/lib/mcp-spawn-tee/src/index.ts +134 -0
  202. package/payload/platform/lib/mcp-spawn-tee/tsconfig.json +8 -0
  203. package/payload/platform/lib/mcp-stderr-tee/dist/index.d.ts +51 -0
  204. package/payload/platform/lib/mcp-stderr-tee/dist/index.d.ts.map +1 -0
  205. package/payload/platform/lib/mcp-stderr-tee/dist/index.js +196 -0
  206. package/payload/platform/lib/mcp-stderr-tee/dist/index.js.map +1 -0
  207. package/payload/platform/lib/mcp-stderr-tee/src/index.ts +206 -0
  208. package/payload/platform/lib/mcp-stderr-tee/tsconfig.json +8 -0
  209. package/payload/platform/lib/models/dist/index.d.ts +7 -0
  210. package/payload/platform/lib/models/dist/index.d.ts.map +1 -0
  211. package/payload/platform/lib/models/dist/index.js +20 -0
  212. package/payload/platform/lib/models/dist/index.js.map +1 -0
  213. package/payload/platform/lib/models/src/index.ts +18 -0
  214. package/payload/platform/lib/models/tsconfig.json +8 -0
  215. package/payload/platform/lib/oauth-llm/dist/index.d.ts +118 -0
  216. package/payload/platform/lib/oauth-llm/dist/index.d.ts.map +1 -0
  217. package/payload/platform/lib/oauth-llm/dist/index.js +388 -0
  218. package/payload/platform/lib/oauth-llm/dist/index.js.map +1 -0
  219. package/payload/platform/lib/oauth-llm/src/index.ts +585 -0
  220. package/payload/platform/lib/oauth-llm/tsconfig.json +8 -0
  221. package/payload/platform/lib/persistent-components/dist/index.d.ts +21 -0
  222. package/payload/platform/lib/persistent-components/dist/index.d.ts.map +1 -0
  223. package/payload/platform/lib/persistent-components/dist/index.js +32 -0
  224. package/payload/platform/lib/persistent-components/dist/index.js.map +1 -0
  225. package/payload/platform/lib/persistent-components/src/index.ts +28 -0
  226. package/payload/platform/lib/persistent-components/tsconfig.json +8 -0
  227. package/payload/platform/lib/screening-patterns/dist/index.d.ts +29 -0
  228. package/payload/platform/lib/screening-patterns/dist/index.d.ts.map +1 -0
  229. package/payload/platform/lib/screening-patterns/dist/index.js +48 -0
  230. package/payload/platform/lib/screening-patterns/dist/index.js.map +1 -0
  231. package/payload/platform/lib/screening-patterns/src/index.ts +51 -0
  232. package/payload/platform/lib/screening-patterns/tsconfig.json +8 -0
  233. package/payload/platform/lib/task-secrets/dist/index.d.ts +40 -0
  234. package/payload/platform/lib/task-secrets/dist/index.d.ts.map +1 -0
  235. package/payload/platform/lib/task-secrets/dist/index.js +44 -0
  236. package/payload/platform/lib/task-secrets/dist/index.js.map +1 -0
  237. package/payload/platform/lib/task-secrets/src/__tests__/redact-secrets.test.ts +127 -0
  238. package/payload/platform/lib/task-secrets/src/index.ts +77 -0
  239. package/payload/platform/lib/task-secrets/tsconfig.json +9 -0
  240. package/payload/platform/lib/task-secrets/vitest.config.ts +9 -0
  241. package/payload/platform/neo4j/edge-annotations.json +154 -0
  242. package/payload/platform/neo4j/schema.cypher +1104 -0
  243. package/payload/platform/package-lock.json +3576 -0
  244. package/payload/platform/package.json +25 -0
  245. package/payload/platform/plugins/admin/PLUGIN.md +81 -0
  246. package/payload/platform/plugins/admin/hooks/__tests__/archive-ingest-surface-gate.test.sh +191 -0
  247. package/payload/platform/plugins/admin/hooks/__tests__/playwright-file-guard.test.sh +278 -0
  248. package/payload/platform/plugins/admin/hooks/__tests__/pre-tool-use-base64-guard.test.sh +204 -0
  249. package/payload/platform/plugins/admin/hooks/archive-ingest-surface-gate.sh +225 -0
  250. package/payload/platform/plugins/admin/hooks/playwright-file-guard.sh +214 -0
  251. package/payload/platform/plugins/admin/hooks/pre-tool-use.sh +294 -0
  252. package/payload/platform/plugins/admin/hooks/webfetch-preflight.mjs +363 -0
  253. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.d.ts +2 -0
  254. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.d.ts.map +1 -0
  255. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.js +91 -0
  256. package/payload/platform/plugins/admin/mcp/dist/__tests__/plugin-read-skill-resolution.test.js.map +1 -0
  257. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.d.ts +2 -0
  258. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.d.ts.map +1 -0
  259. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.js +98 -0
  260. package/payload/platform/plugins/admin/mcp/dist/__tests__/public-hostname.test.js.map +1 -0
  261. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.d.ts +2 -0
  262. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.d.ts.map +1 -0
  263. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.js +141 -0
  264. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load-required-inputs.test.js.map +1 -0
  265. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.d.ts +2 -0
  266. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.d.ts.map +1 -0
  267. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.js +88 -0
  268. package/payload/platform/plugins/admin/mcp/dist/__tests__/skill-load.test.js.map +1 -0
  269. package/payload/platform/plugins/admin/mcp/dist/index.d.ts +2 -0
  270. package/payload/platform/plugins/admin/mcp/dist/index.d.ts.map +1 -0
  271. package/payload/platform/plugins/admin/mcp/dist/index.js +3495 -0
  272. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -0
  273. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.d.ts +5 -0
  274. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.d.ts.map +1 -0
  275. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.js +40 -0
  276. package/payload/platform/plugins/admin/mcp/dist/lib/neo4j.js.map +1 -0
  277. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.d.ts +39 -0
  278. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.d.ts.map +1 -0
  279. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.js +249 -0
  280. package/payload/platform/plugins/admin/mcp/dist/lib/onboarding.js.map +1 -0
  281. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.d.ts +15 -0
  282. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.d.ts.map +1 -0
  283. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.js +73 -0
  284. package/payload/platform/plugins/admin/mcp/dist/lib/public-hostname.js.map +1 -0
  285. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.d.ts +35 -0
  286. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.d.ts.map +1 -0
  287. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.js +140 -0
  288. package/payload/platform/plugins/admin/mcp/dist/skill-resolution.js.map +1 -0
  289. package/payload/platform/plugins/admin/mcp/package.json +23 -0
  290. package/payload/platform/plugins/admin/mcp/vitest.config.ts +9 -0
  291. package/payload/platform/plugins/admin/references/chat-ui-guide.md +31 -0
  292. package/payload/platform/plugins/admin/references/contextual-ui.md +107 -0
  293. package/payload/platform/plugins/admin/skills/a4-print-documents/SKILL.md +241 -0
  294. package/payload/platform/plugins/admin/skills/access-manager/SKILL.md +28 -0
  295. package/payload/platform/plugins/admin/skills/access-manager/references/operations.md +197 -0
  296. package/payload/platform/plugins/admin/skills/business-profile/SKILL.md +53 -0
  297. package/payload/platform/plugins/admin/skills/datetime/SKILL.md +91 -0
  298. package/payload/platform/plugins/admin/skills/deck-pages/SKILL.md +418 -0
  299. package/payload/platform/plugins/admin/skills/onboarding/SKILL.md +255 -0
  300. package/payload/platform/plugins/admin/skills/plainly/SKILL.md +105 -0
  301. package/payload/platform/plugins/admin/skills/plainly/references/worked-examples.md +301 -0
  302. package/payload/platform/plugins/admin/skills/plugin-management/SKILL.md +99 -0
  303. package/payload/platform/plugins/admin/skills/public-agent-manager/SKILL.md +277 -0
  304. package/payload/platform/plugins/admin/skills/publish-site/SKILL.md +72 -0
  305. package/payload/platform/plugins/admin/skills/qr-code/SKILL.md +35 -0
  306. package/payload/platform/plugins/admin/skills/qr-code/references/data-formats.md +113 -0
  307. package/payload/platform/plugins/admin/skills/skill-builder/SKILL.md +113 -0
  308. package/payload/platform/plugins/admin/skills/skill-builder/references/lean-pattern.md +110 -0
  309. package/payload/platform/plugins/admin/skills/skill-builder/references/pdf-generation.md +30 -0
  310. package/payload/platform/plugins/admin/skills/specialist-management/SKILL.md +44 -0
  311. package/payload/platform/plugins/admin/skills/stream-log-review/SKILL.md +71 -0
  312. package/payload/platform/plugins/admin/skills/stream-log-review/references/analysis-patterns.md +189 -0
  313. package/payload/platform/plugins/admin/skills/unzip-attachment/SKILL.md +79 -0
  314. package/payload/platform/plugins/admin/skills/unzip-attachment/__tests__/preflight.sh +148 -0
  315. package/payload/platform/plugins/admin/skills/unzip-attachment/references/safety.md +116 -0
  316. package/payload/platform/plugins/admin/skills/update-knowledge/SKILL.md +47 -0
  317. package/payload/platform/plugins/anthropic/PLUGIN.md +40 -0
  318. package/payload/platform/plugins/anthropic/references/console-api.md +186 -0
  319. package/payload/platform/plugins/anthropic/references/setup-guide.md +36 -0
  320. package/payload/platform/plugins/anthropic/skills/get-api-key/SKILL.md +138 -0
  321. package/payload/platform/plugins/business-assistant/PLUGIN.md +59 -0
  322. package/payload/platform/plugins/business-assistant/references/crm.md +112 -0
  323. package/payload/platform/plugins/business-assistant/references/document-management.md +96 -0
  324. package/payload/platform/plugins/business-assistant/references/escalation.md +126 -0
  325. package/payload/platform/plugins/business-assistant/references/invoicing.md +163 -0
  326. package/payload/platform/plugins/business-assistant/references/profiling.md +50 -0
  327. package/payload/platform/plugins/business-assistant/references/quoting.md +56 -0
  328. package/payload/platform/plugins/business-assistant/references/scheduling.md +127 -0
  329. package/payload/platform/plugins/business-assistant/references/task-management.md +163 -0
  330. package/payload/platform/plugins/cloudflare/PLUGIN.md +73 -0
  331. package/payload/platform/plugins/cloudflare/mcp/dist/index.d.ts +2 -0
  332. package/payload/platform/plugins/cloudflare/mcp/dist/index.d.ts.map +1 -0
  333. package/payload/platform/plugins/cloudflare/mcp/dist/index.js +29 -0
  334. package/payload/platform/plugins/cloudflare/mcp/dist/index.js.map +1 -0
  335. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts +283 -0
  336. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.d.ts.map +1 -0
  337. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js +1155 -0
  338. package/payload/platform/plugins/cloudflare/mcp/dist/lib/cloudflared.js.map +1 -0
  339. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts +90 -0
  340. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.d.ts.map +1 -0
  341. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js +550 -0
  342. package/payload/platform/plugins/cloudflare/mcp/dist/lib/setup-orchestrator.js.map +1 -0
  343. package/payload/platform/plugins/cloudflare/mcp/package.json +18 -0
  344. package/payload/platform/plugins/cloudflare/mcp/vitest.config.ts +10 -0
  345. package/payload/platform/plugins/cloudflare/references/dashboard-guide.md +108 -0
  346. package/payload/platform/plugins/cloudflare/references/manual-setup.md +481 -0
  347. package/payload/platform/plugins/cloudflare/references/reset-guide.md +118 -0
  348. package/payload/platform/plugins/cloudflare/scripts/_stream-log.sh +154 -0
  349. package/payload/platform/plugins/cloudflare/scripts/list-cf-domains.sh +98 -0
  350. package/payload/platform/plugins/cloudflare/scripts/list-cf-domains.ts +751 -0
  351. package/payload/platform/plugins/cloudflare/scripts/reset-tunnel.sh +107 -0
  352. package/payload/platform/plugins/cloudflare/scripts/setup-tunnel.sh +826 -0
  353. package/payload/platform/plugins/cloudflare/skills/setup-tunnel/SKILL.md +107 -0
  354. package/payload/platform/plugins/contacts/PLUGIN.md +31 -0
  355. package/payload/platform/plugins/contacts/mcp/dist/index.d.ts +2 -0
  356. package/payload/platform/plugins/contacts/mcp/dist/index.d.ts.map +1 -0
  357. package/payload/platform/plugins/contacts/mcp/dist/index.js +433 -0
  358. package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -0
  359. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.d.ts +5 -0
  360. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.d.ts.map +1 -0
  361. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.js +40 -0
  362. package/payload/platform/plugins/contacts/mcp/dist/lib/neo4j.js.map +1 -0
  363. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.d.ts +33 -0
  364. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.d.ts.map +1 -0
  365. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.js +53 -0
  366. package/payload/platform/plugins/contacts/mcp/dist/lib/resolve-person.js.map +1 -0
  367. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.d.ts +23 -0
  368. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.d.ts.map +1 -0
  369. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js +123 -0
  370. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js.map +1 -0
  371. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.d.ts +28 -0
  372. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.d.ts.map +1 -0
  373. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.js +39 -0
  374. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-delete.js.map +1 -0
  375. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.d.ts +41 -0
  376. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.d.ts.map +1 -0
  377. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.js +142 -0
  378. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-erase.js.map +1 -0
  379. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.d.ts +52 -0
  380. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.d.ts.map +1 -0
  381. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.js +119 -0
  382. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-export.js.map +1 -0
  383. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.d.ts +23 -0
  384. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.d.ts.map +1 -0
  385. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.js +49 -0
  386. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-list.js.map +1 -0
  387. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.d.ts +21 -0
  388. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.d.ts.map +1 -0
  389. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.js +70 -0
  390. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-lookup.js.map +1 -0
  391. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.d.ts +14 -0
  392. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.d.ts.map +1 -0
  393. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.js +43 -0
  394. package/payload/platform/plugins/contacts/mcp/dist/tools/contact-update.js.map +1 -0
  395. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.d.ts +18 -0
  396. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.d.ts.map +1 -0
  397. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.js +95 -0
  398. package/payload/platform/plugins/contacts/mcp/dist/tools/group-create.js.map +1 -0
  399. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.d.ts +15 -0
  400. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.d.ts.map +1 -0
  401. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.js +72 -0
  402. package/payload/platform/plugins/contacts/mcp/dist/tools/group-manage.js.map +1 -0
  403. package/payload/platform/plugins/contacts/mcp/package.json +19 -0
  404. package/payload/platform/plugins/deep-research/PLUGIN.md +13 -0
  405. package/payload/platform/plugins/deep-research/skills/deep-research/SKILL.md +46 -0
  406. package/payload/platform/plugins/deep-research/skills/deep-research/references/citation-styles.md +52 -0
  407. package/payload/platform/plugins/deep-research/skills/deep-research/references/research-modes.md +22 -0
  408. package/payload/platform/plugins/deep-research/skills/deep-research/references/search-strategy.md +24 -0
  409. package/payload/platform/plugins/docs/PLUGIN.md +52 -0
  410. package/payload/platform/plugins/docs/references/access-control.md +73 -0
  411. package/payload/platform/plugins/docs/references/admin-session.md +80 -0
  412. package/payload/platform/plugins/docs/references/attachments.md +44 -0
  413. package/payload/platform/plugins/docs/references/cloudflare.md +111 -0
  414. package/payload/platform/plugins/docs/references/contacts-guide.md +102 -0
  415. package/payload/platform/plugins/docs/references/deployment.md +150 -0
  416. package/payload/platform/plugins/docs/references/getting-started.md +82 -0
  417. package/payload/platform/plugins/docs/references/graph.md +149 -0
  418. package/payload/platform/plugins/docs/references/internals.md +512 -0
  419. package/payload/platform/plugins/docs/references/memory-guide.md +119 -0
  420. package/payload/platform/plugins/docs/references/migration-guide.md +90 -0
  421. package/payload/platform/plugins/docs/references/outlook-guide.md +69 -0
  422. package/payload/platform/plugins/docs/references/platform.md +111 -0
  423. package/payload/platform/plugins/docs/references/plugins-guide.md +174 -0
  424. package/payload/platform/plugins/docs/references/projects-guide.md +73 -0
  425. package/payload/platform/plugins/docs/references/settings.md +82 -0
  426. package/payload/platform/plugins/docs/references/telegram-guide.md +58 -0
  427. package/payload/platform/plugins/docs/references/troubleshooting.md +532 -0
  428. package/payload/platform/plugins/email/PLUGIN.md +49 -0
  429. package/payload/platform/plugins/email/mcp/dist/index.d.ts +2 -0
  430. package/payload/platform/plugins/email/mcp/dist/index.d.ts.map +1 -0
  431. package/payload/platform/plugins/email/mcp/dist/index.js +291 -0
  432. package/payload/platform/plugins/email/mcp/dist/index.js.map +1 -0
  433. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts +118 -0
  434. package/payload/platform/plugins/email/mcp/dist/lib/credentials.d.ts.map +1 -0
  435. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js +364 -0
  436. package/payload/platform/plugins/email/mcp/dist/lib/credentials.js.map +1 -0
  437. package/payload/platform/plugins/email/mcp/dist/lib/embedding.d.ts +2 -0
  438. package/payload/platform/plugins/email/mcp/dist/lib/embedding.d.ts.map +1 -0
  439. package/payload/platform/plugins/email/mcp/dist/lib/embedding.js +24 -0
  440. package/payload/platform/plugins/email/mcp/dist/lib/embedding.js.map +1 -0
  441. package/payload/platform/plugins/email/mcp/dist/lib/graph.d.ts +87 -0
  442. package/payload/platform/plugins/email/mcp/dist/lib/graph.d.ts.map +1 -0
  443. package/payload/platform/plugins/email/mcp/dist/lib/graph.js +324 -0
  444. package/payload/platform/plugins/email/mcp/dist/lib/graph.js.map +1 -0
  445. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts +215 -0
  446. package/payload/platform/plugins/email/mcp/dist/lib/imap.d.ts.map +1 -0
  447. package/payload/platform/plugins/email/mcp/dist/lib/imap.js +735 -0
  448. package/payload/platform/plugins/email/mcp/dist/lib/imap.js.map +1 -0
  449. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.d.ts +5 -0
  450. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.d.ts.map +1 -0
  451. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.js +40 -0
  452. package/payload/platform/plugins/email/mcp/dist/lib/neo4j.js.map +1 -0
  453. package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts +32 -0
  454. package/payload/platform/plugins/email/mcp/dist/lib/providers.d.ts.map +1 -0
  455. package/payload/platform/plugins/email/mcp/dist/lib/providers.js +569 -0
  456. package/payload/platform/plugins/email/mcp/dist/lib/providers.js.map +1 -0
  457. package/payload/platform/plugins/email/mcp/dist/lib/screening.d.ts +29 -0
  458. package/payload/platform/plugins/email/mcp/dist/lib/screening.d.ts.map +1 -0
  459. package/payload/platform/plugins/email/mcp/dist/lib/screening.js +105 -0
  460. package/payload/platform/plugins/email/mcp/dist/lib/screening.js.map +1 -0
  461. package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts +21 -0
  462. package/payload/platform/plugins/email/mcp/dist/lib/smtp.d.ts.map +1 -0
  463. package/payload/platform/plugins/email/mcp/dist/lib/smtp.js +77 -0
  464. package/payload/platform/plugins/email/mcp/dist/lib/smtp.js.map +1 -0
  465. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.d.ts +38 -0
  466. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.d.ts.map +1 -0
  467. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js +894 -0
  468. package/payload/platform/plugins/email/mcp/dist/scripts/email-auto-respond.js.map +1 -0
  469. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts +25 -0
  470. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.d.ts.map +1 -0
  471. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js +227 -0
  472. package/payload/platform/plugins/email/mcp/dist/scripts/email-fetch.js.map +1 -0
  473. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.d.ts +19 -0
  474. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.d.ts.map +1 -0
  475. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.js +151 -0
  476. package/payload/platform/plugins/email/mcp/dist/tools/email-auto-respond-config.js.map +1 -0
  477. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.d.ts +22 -0
  478. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.d.ts.map +1 -0
  479. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.js +188 -0
  480. package/payload/platform/plugins/email/mcp/dist/tools/email-graph-query.js.map +1 -0
  481. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.d.ts +15 -0
  482. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.d.ts.map +1 -0
  483. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.js +142 -0
  484. package/payload/platform/plugins/email/mcp/dist/tools/email-otp-extract.js.map +1 -0
  485. package/payload/platform/plugins/email/mcp/dist/tools/email-read.d.ts +14 -0
  486. package/payload/platform/plugins/email/mcp/dist/tools/email-read.d.ts.map +1 -0
  487. package/payload/platform/plugins/email/mcp/dist/tools/email-read.js +75 -0
  488. package/payload/platform/plugins/email/mcp/dist/tools/email-read.js.map +1 -0
  489. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.d.ts +10 -0
  490. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.d.ts.map +1 -0
  491. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.js +83 -0
  492. package/payload/platform/plugins/email/mcp/dist/tools/email-reply.js.map +1 -0
  493. package/payload/platform/plugins/email/mcp/dist/tools/email-search.d.ts +15 -0
  494. package/payload/platform/plugins/email/mcp/dist/tools/email-search.d.ts.map +1 -0
  495. package/payload/platform/plugins/email/mcp/dist/tools/email-search.js +63 -0
  496. package/payload/platform/plugins/email/mcp/dist/tools/email-search.js.map +1 -0
  497. package/payload/platform/plugins/email/mcp/dist/tools/email-send.d.ts +10 -0
  498. package/payload/platform/plugins/email/mcp/dist/tools/email-send.d.ts.map +1 -0
  499. package/payload/platform/plugins/email/mcp/dist/tools/email-send.js +31 -0
  500. package/payload/platform/plugins/email/mcp/dist/tools/email-send.js.map +1 -0
  501. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.d.ts +22 -0
  502. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.d.ts.map +1 -0
  503. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js +183 -0
  504. package/payload/platform/plugins/email/mcp/dist/tools/email-setup.js.map +1 -0
  505. package/payload/platform/plugins/email/mcp/dist/tools/email-status.d.ts +6 -0
  506. package/payload/platform/plugins/email/mcp/dist/tools/email-status.d.ts.map +1 -0
  507. package/payload/platform/plugins/email/mcp/dist/tools/email-status.js +43 -0
  508. package/payload/platform/plugins/email/mcp/dist/tools/email-status.js.map +1 -0
  509. package/payload/platform/plugins/email/mcp/package.json +23 -0
  510. package/payload/platform/plugins/email/references/email-reference.md +204 -0
  511. package/payload/platform/plugins/linkedin-import/PLUGIN.md +27 -0
  512. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/SKILL.md +142 -0
  513. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/references/connections.md +135 -0
  514. package/payload/platform/plugins/linkedin-import/skills/linkedin-import/references/profile.md +95 -0
  515. package/payload/platform/plugins/memory/PLUGIN.md +146 -0
  516. package/payload/platform/plugins/memory/bin/conversation-archive-ingest.mjs +879 -0
  517. package/payload/platform/plugins/memory/bin/conversation-archive-ingest.sh +138 -0
  518. package/payload/platform/plugins/memory/mcp/dist/index.d.ts +2 -0
  519. package/payload/platform/plugins/memory/mcp/dist/index.d.ts.map +1 -0
  520. package/payload/platform/plugins/memory/mcp/dist/index.js +1813 -0
  521. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -0
  522. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.d.ts +2 -0
  523. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.d.ts.map +1 -0
  524. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js +92 -0
  525. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js.map +1 -0
  526. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.d.ts +2 -0
  527. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.d.ts.map +1 -0
  528. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js +225 -0
  529. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/llm-classifier.test.js.map +1 -0
  530. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.d.ts +2 -0
  531. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.d.ts.map +1 -0
  532. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js +100 -0
  533. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-loader.test.js.map +1 -0
  534. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.d.ts +2 -0
  535. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.d.ts.map +1 -0
  536. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js +448 -0
  537. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/schema-validator.test.js.map +1 -0
  538. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.d.ts +37 -0
  539. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.d.ts.map +1 -0
  540. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.js +69 -0
  541. package/payload/platform/plugins/memory/mcp/dist/lib/attachments.js.map +1 -0
  542. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.d.ts +5 -0
  543. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.d.ts.map +1 -0
  544. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.js +30 -0
  545. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/index.js.map +1 -0
  546. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.d.ts +49 -0
  547. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.d.ts.map +1 -0
  548. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.js +35 -0
  549. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/timestamp-scanner.js.map +1 -0
  550. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.d.ts +47 -0
  551. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.d.ts.map +1 -0
  552. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.js +31 -0
  553. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/types.js.map +1 -0
  554. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.d.ts +3 -0
  555. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.d.ts.map +1 -0
  556. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.js +155 -0
  557. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-normalisers/whatsapp-text.js.map +1 -0
  558. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.d.ts +11 -0
  559. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.d.ts.map +1 -0
  560. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.js +20 -0
  561. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/delta-cursor.js.map +1 -0
  562. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.d.ts +14 -0
  563. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.d.ts.map +1 -0
  564. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.js +38 -0
  565. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/derive-keys.js.map +1 -0
  566. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.d.ts +16 -0
  567. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.d.ts.map +1 -0
  568. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.js +59 -0
  569. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sender-bind.js.map +1 -0
  570. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.d.ts +9 -0
  571. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.d.ts.map +1 -0
  572. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.js +32 -0
  573. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/sessionize.js.map +1 -0
  574. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.d.ts +3 -0
  575. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.d.ts.map +1 -0
  576. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.js +29 -0
  577. package/payload/platform/plugins/memory/mcp/dist/lib/conversation-pipeline/to-turn-text.js.map +1 -0
  578. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.d.ts +45 -0
  579. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.d.ts.map +1 -0
  580. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.js +125 -0
  581. package/payload/platform/plugins/memory/mcp/dist/lib/document-chunker.js.map +1 -0
  582. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.d.ts +9 -0
  583. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.d.ts.map +1 -0
  584. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.js +61 -0
  585. package/payload/platform/plugins/memory/mcp/dist/lib/document-hierarchy.js.map +1 -0
  586. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.d.ts +3 -0
  587. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.d.ts.map +1 -0
  588. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.js +29 -0
  589. package/payload/platform/plugins/memory/mcp/dist/lib/embeddings.js.map +1 -0
  590. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.d.ts +36 -0
  591. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.d.ts.map +1 -0
  592. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.js +86 -0
  593. package/payload/platform/plugins/memory/mcp/dist/lib/filter-token.js.map +1 -0
  594. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.d.ts +42 -0
  595. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.d.ts.map +1 -0
  596. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.js +114 -0
  597. package/payload/platform/plugins/memory/mcp/dist/lib/graph-prune.js.map +1 -0
  598. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts +38 -0
  599. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.d.ts.map +1 -0
  600. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js +89 -0
  601. package/payload/platform/plugins/memory/mcp/dist/lib/graph-write-gate.js.map +1 -0
  602. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts +136 -0
  603. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts.map +1 -0
  604. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js +180 -0
  605. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js.map +1 -0
  606. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts +246 -0
  607. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.d.ts.map +1 -0
  608. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js +828 -0
  609. package/payload/platform/plugins/memory/mcp/dist/lib/llm-classifier.js.map +1 -0
  610. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts +63 -0
  611. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.d.ts.map +1 -0
  612. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js +210 -0
  613. package/payload/platform/plugins/memory/mcp/dist/lib/llm-ranker.js.map +1 -0
  614. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.d.ts +5 -0
  615. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.d.ts.map +1 -0
  616. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.js +40 -0
  617. package/payload/platform/plugins/memory/mcp/dist/lib/neo4j.js.map +1 -0
  618. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts +113 -0
  619. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.d.ts.map +1 -0
  620. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js +455 -0
  621. package/payload/platform/plugins/memory/mcp/dist/lib/schema-loader.js.map +1 -0
  622. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts +83 -0
  623. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.d.ts.map +1 -0
  624. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js +209 -0
  625. package/payload/platform/plugins/memory/mcp/dist/lib/schema-validator.js.map +1 -0
  626. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.d.ts +3 -0
  627. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.d.ts.map +1 -0
  628. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.js +12 -0
  629. package/payload/platform/plugins/memory/mcp/dist/lib/uuid.js.map +1 -0
  630. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.d.ts +2 -0
  631. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.d.ts.map +1 -0
  632. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js +97 -0
  633. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights.test.js.map +1 -0
  634. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.d.ts +2 -0
  635. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.d.ts.map +1 -0
  636. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js +184 -0
  637. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js.map +1 -0
  638. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.d.ts +2 -0
  639. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.d.ts.map +1 -0
  640. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.js +73 -0
  641. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-source-agnosticism.test.js.map +1 -0
  642. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.d.ts +2 -0
  643. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.d.ts.map +1 -0
  644. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.js +109 -0
  645. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-normalisers-whatsapp-text.test.js.map +1 -0
  646. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.d.ts +2 -0
  647. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.d.ts.map +1 -0
  648. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.js +84 -0
  649. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write.test.js.map +1 -0
  650. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.d.ts +2 -0
  651. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.d.ts.map +1 -0
  652. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js +106 -0
  653. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest.test.js.map +1 -0
  654. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.d.ts +2 -0
  655. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.d.ts.map +1 -0
  656. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.js +87 -0
  657. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-not-applicable.test.js.map +1 -0
  658. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.d.ts +2 -0
  659. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.d.ts.map +1 -0
  660. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.js +148 -0
  661. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-personfields-open.test.js.map +1 -0
  662. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts +89 -0
  663. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map +1 -0
  664. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +542 -0
  665. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -0
  666. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.d.ts +41 -0
  667. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.d.ts.map +1 -0
  668. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.js +116 -0
  669. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.js.map +1 -0
  670. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.d.ts +8 -0
  671. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.d.ts.map +1 -0
  672. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.js +7 -0
  673. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.js.map +1 -0
  674. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.d.ts +7 -0
  675. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.d.ts.map +1 -0
  676. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.js +28 -0
  677. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.js.map +1 -0
  678. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.d.ts +7 -0
  679. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.d.ts.map +1 -0
  680. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.js +7 -0
  681. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-list.js.map +1 -0
  682. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.d.ts +7 -0
  683. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.d.ts.map +1 -0
  684. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.js +27 -0
  685. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.js.map +1 -0
  686. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts +54 -0
  687. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts.map +1 -0
  688. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js +231 -0
  689. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js.map +1 -0
  690. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts +34 -0
  691. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts.map +1 -0
  692. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js +58 -0
  693. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js.map +1 -0
  694. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts +57 -0
  695. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts.map +1 -0
  696. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js +106 -0
  697. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js.map +1 -0
  698. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.d.ts +16 -0
  699. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.d.ts.map +1 -0
  700. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js +91 -0
  701. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js.map +1 -0
  702. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts +22 -0
  703. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts.map +1 -0
  704. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js +36 -0
  705. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js.map +1 -0
  706. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.d.ts +58 -0
  707. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.d.ts.map +1 -0
  708. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.js +125 -0
  709. package/payload/platform/plugins/memory/mcp/dist/tools/memory-find-candidates.js.map +1 -0
  710. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.d.ts +28 -0
  711. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.d.ts.map +1 -0
  712. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js +93 -0
  713. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js.map +1 -0
  714. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.d.ts +20 -0
  715. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.d.ts.map +1 -0
  716. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js +87 -0
  717. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js.map +1 -0
  718. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts +129 -0
  719. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -0
  720. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +827 -0
  721. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -0
  722. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.d.ts +19 -0
  723. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.d.ts.map +1 -0
  724. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.js +125 -0
  725. package/payload/platform/plugins/memory/mcp/dist/tools/memory-list-attachments.js.map +1 -0
  726. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.d.ts +61 -0
  727. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.d.ts.map +1 -0
  728. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js +102 -0
  729. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rank.js.map +1 -0
  730. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.d.ts +12 -0
  731. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.d.ts.map +1 -0
  732. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.js +100 -0
  733. package/payload/platform/plugins/memory/mcp/dist/tools/memory-read-attachment.js.map +1 -0
  734. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.d.ts +9 -0
  735. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.d.ts.map +1 -0
  736. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js +84 -0
  737. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js.map +1 -0
  738. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.d.ts +13 -0
  739. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.d.ts.map +1 -0
  740. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.js +63 -0
  741. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.js.map +1 -0
  742. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts +24 -0
  743. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts.map +1 -0
  744. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js +40 -0
  745. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js.map +1 -0
  746. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts +5 -0
  747. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.d.ts.map +1 -0
  748. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js +42 -0
  749. package/payload/platform/plugins/memory/mcp/dist/tools/memory-search.js.map +1 -0
  750. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts +13 -0
  751. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts.map +1 -0
  752. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js +77 -0
  753. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -0
  754. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts +47 -0
  755. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -0
  756. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +173 -0
  757. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -0
  758. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.d.ts +24 -0
  759. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.d.ts.map +1 -0
  760. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.js +31 -0
  761. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.js.map +1 -0
  762. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.d.ts +44 -0
  763. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.d.ts.map +1 -0
  764. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js +322 -0
  765. package/payload/platform/plugins/memory/mcp/dist/tools/profile-read.js.map +1 -0
  766. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts +65 -0
  767. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts.map +1 -0
  768. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js +369 -0
  769. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js.map +1 -0
  770. package/payload/platform/plugins/memory/mcp/package.json +24 -0
  771. package/payload/platform/plugins/memory/mcp/scripts/boot-smoke.sh +69 -0
  772. package/payload/platform/plugins/memory/mcp/scripts/graph/accept.sh +217 -0
  773. package/payload/platform/plugins/memory/mcp/scripts/graph/fixture.cypher +59 -0
  774. package/payload/platform/plugins/memory/mcp/vitest.config.ts +15 -0
  775. package/payload/platform/plugins/memory/references/graph-primitives.md +342 -0
  776. package/payload/platform/plugins/memory/references/schema-base.md +234 -0
  777. package/payload/platform/plugins/memory/references/schema-creator.md +35 -0
  778. package/payload/platform/plugins/memory/references/schema-estate-agent.md +35 -0
  779. package/payload/platform/plugins/memory/references/schema-food-beverage.md +32 -0
  780. package/payload/platform/plugins/memory/references/schema-hospitality.md +31 -0
  781. package/payload/platform/plugins/memory/references/schema-logistics.md +30 -0
  782. package/payload/platform/plugins/memory/references/schema-professional-services.md +33 -0
  783. package/payload/platform/plugins/memory/references/schema-retail.md +33 -0
  784. package/payload/platform/plugins/memory/references/schema-trades.md +36 -0
  785. package/payload/platform/plugins/memory/skills/conversation-archive/SKILL.md +202 -0
  786. package/payload/platform/plugins/memory/skills/conversation-archive-enrich/SKILL.md +159 -0
  787. package/payload/platform/plugins/memory/skills/conversational-memory/SKILL.md +108 -0
  788. package/payload/platform/plugins/memory/skills/document-ingest/SKILL.md +267 -0
  789. package/payload/platform/plugins/outlook/PLUGIN.md +48 -0
  790. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.d.ts +2 -0
  791. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.d.ts.map +1 -0
  792. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js +94 -0
  793. package/payload/platform/plugins/outlook/mcp/dist/__tests__/graph-client.test.js.map +1 -0
  794. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.d.ts +2 -0
  795. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.d.ts.map +1 -0
  796. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.js +31 -0
  797. package/payload/platform/plugins/outlook/mcp/dist/__tests__/log.test.js.map +1 -0
  798. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.d.ts +2 -0
  799. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.d.ts.map +1 -0
  800. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js +213 -0
  801. package/payload/platform/plugins/outlook/mcp/dist/__tests__/pkce-flow.test.js.map +1 -0
  802. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.d.ts +2 -0
  803. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.d.ts.map +1 -0
  804. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.js +130 -0
  805. package/payload/platform/plugins/outlook/mcp/dist/__tests__/token-store.test.js.map +1 -0
  806. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts +65 -0
  807. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.d.ts.map +1 -0
  808. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js +261 -0
  809. package/payload/platform/plugins/outlook/mcp/dist/auth/pkce-flow.js.map +1 -0
  810. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.d.ts +61 -0
  811. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.d.ts.map +1 -0
  812. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.js +170 -0
  813. package/payload/platform/plugins/outlook/mcp/dist/auth/token-store.js.map +1 -0
  814. package/payload/platform/plugins/outlook/mcp/dist/index.d.ts +18 -0
  815. package/payload/platform/plugins/outlook/mcp/dist/index.d.ts.map +1 -0
  816. package/payload/platform/plugins/outlook/mcp/dist/index.js +152 -0
  817. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -0
  818. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts +60 -0
  819. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.d.ts.map +1 -0
  820. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js +189 -0
  821. package/payload/platform/plugins/outlook/mcp/dist/lib/graph-client.js.map +1 -0
  822. package/payload/platform/plugins/outlook/mcp/dist/lib/log.d.ts +23 -0
  823. package/payload/platform/plugins/outlook/mcp/dist/lib/log.d.ts.map +1 -0
  824. package/payload/platform/plugins/outlook/mcp/dist/lib/log.js +53 -0
  825. package/payload/platform/plugins/outlook/mcp/dist/lib/log.js.map +1 -0
  826. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts +26 -0
  827. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.d.ts.map +1 -0
  828. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js +50 -0
  829. package/payload/platform/plugins/outlook/mcp/dist/tools/account-register.js.map +1 -0
  830. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.d.ts +12 -0
  831. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.d.ts.map +1 -0
  832. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js +32 -0
  833. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-event.js.map +1 -0
  834. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.d.ts +59 -0
  835. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.d.ts.map +1 -0
  836. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.js +54 -0
  837. package/payload/platform/plugins/outlook/mcp/dist/tools/calendar-list.js.map +1 -0
  838. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.d.ts +14 -0
  839. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.d.ts.map +1 -0
  840. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.js +45 -0
  841. package/payload/platform/plugins/outlook/mcp/dist/tools/contacts-list.js.map +1 -0
  842. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts +15 -0
  843. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.d.ts.map +1 -0
  844. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js +48 -0
  845. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-list.js.map +1 -0
  846. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts +8 -0
  847. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.d.ts.map +1 -0
  848. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js +49 -0
  849. package/payload/platform/plugins/outlook/mcp/dist/tools/mail-search.js.map +1 -0
  850. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.d.ts +19 -0
  851. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.d.ts.map +1 -0
  852. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.js +58 -0
  853. package/payload/platform/plugins/outlook/mcp/dist/tools/mailbox-info.js.map +1 -0
  854. package/payload/platform/plugins/outlook/mcp/package.json +20 -0
  855. package/payload/platform/plugins/outlook/mcp/scripts/verify-doc-impl.sh +109 -0
  856. package/payload/platform/plugins/outlook/references/auth.md +118 -0
  857. package/payload/platform/plugins/outlook/references/graph-surfaces.md +114 -0
  858. package/payload/platform/plugins/outlook/skills/outlook/SKILL.md +65 -0
  859. package/payload/platform/plugins/projects/PLUGIN.md +90 -0
  860. package/payload/platform/plugins/projects/references/investigation.md +63 -0
  861. package/payload/platform/plugins/projects/references/retrospective.md +71 -0
  862. package/payload/platform/plugins/projects/references/review.md +51 -0
  863. package/payload/platform/plugins/projects/references/sprint.md +168 -0
  864. package/payload/platform/plugins/replicate/PLUGIN.md +23 -0
  865. package/payload/platform/plugins/replicate/mcp/dist/index.d.ts +2 -0
  866. package/payload/platform/plugins/replicate/mcp/dist/index.d.ts.map +1 -0
  867. package/payload/platform/plugins/replicate/mcp/dist/index.js +106 -0
  868. package/payload/platform/plugins/replicate/mcp/dist/index.js.map +1 -0
  869. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.d.ts +15 -0
  870. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.d.ts.map +1 -0
  871. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.js +73 -0
  872. package/payload/platform/plugins/replicate/mcp/dist/lib/replicate-key.js.map +1 -0
  873. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.d.ts +14 -0
  874. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.d.ts.map +1 -0
  875. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.js +191 -0
  876. package/payload/platform/plugins/replicate/mcp/dist/tools/image-generate.js.map +1 -0
  877. package/payload/platform/plugins/replicate/mcp/package.json +21 -0
  878. package/payload/platform/plugins/sales/PLUGIN.md +106 -0
  879. package/payload/platform/plugins/sales/references/close-tracking.md +69 -0
  880. package/payload/platform/plugins/sales/references/comparisons.md +99 -0
  881. package/payload/platform/plugins/sales/references/competitive-positioning.md +51 -0
  882. package/payload/platform/plugins/sales/references/faq.md +77 -0
  883. package/payload/platform/plugins/sales/references/objection-handling.md +157 -0
  884. package/payload/platform/plugins/sales/references/pricing.md +101 -0
  885. package/payload/platform/plugins/scheduling/PLUGIN.md +103 -0
  886. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.d.ts +2 -0
  887. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.d.ts.map +1 -0
  888. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.js +16 -0
  889. package/payload/platform/plugins/scheduling/mcp/dist/__tests__/time-resolve-description.test.js.map +1 -0
  890. package/payload/platform/plugins/scheduling/mcp/dist/index.d.ts +2 -0
  891. package/payload/platform/plugins/scheduling/mcp/dist/index.d.ts.map +1 -0
  892. package/payload/platform/plugins/scheduling/mcp/dist/index.js +315 -0
  893. package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -0
  894. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.d.ts +2 -0
  895. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.d.ts.map +1 -0
  896. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js +119 -0
  897. package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js.map +1 -0
  898. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.d.ts +2 -0
  899. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.d.ts.map +1 -0
  900. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.js +19 -0
  901. package/payload/platform/plugins/scheduling/mcp/dist/lib/embedding.js.map +1 -0
  902. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.d.ts +47 -0
  903. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.d.ts.map +1 -0
  904. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.js +362 -0
  905. package/payload/platform/plugins/scheduling/mcp/dist/lib/ics.js.map +1 -0
  906. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.d.ts +30 -0
  907. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.d.ts.map +1 -0
  908. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.js +89 -0
  909. package/payload/platform/plugins/scheduling/mcp/dist/lib/neo4j.js.map +1 -0
  910. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.d.ts +48 -0
  911. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.d.ts.map +1 -0
  912. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.js +140 -0
  913. package/payload/platform/plugins/scheduling/mcp/dist/lib/time-format.js.map +1 -0
  914. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.d.ts +20 -0
  915. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.d.ts.map +1 -0
  916. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js +568 -0
  917. package/payload/platform/plugins/scheduling/mcp/dist/scripts/check-due-events.js.map +1 -0
  918. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.d.ts +7 -0
  919. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.d.ts.map +1 -0
  920. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.js +23 -0
  921. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-cancel.js.map +1 -0
  922. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts +25 -0
  923. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.d.ts.map +1 -0
  924. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js +121 -0
  925. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-event.js.map +1 -0
  926. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.d.ts +9 -0
  927. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.d.ts.map +1 -0
  928. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.js +76 -0
  929. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-export-ics.js.map +1 -0
  930. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.d.ts +25 -0
  931. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.d.ts.map +1 -0
  932. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.js +53 -0
  933. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-get.js.map +1 -0
  934. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.d.ts +8 -0
  935. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.d.ts.map +1 -0
  936. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.js +48 -0
  937. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-import-ics.js.map +1 -0
  938. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts +20 -0
  939. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.d.ts.map +1 -0
  940. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js +76 -0
  941. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-list.js.map +1 -0
  942. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts +18 -0
  943. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.d.ts.map +1 -0
  944. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js +167 -0
  945. package/payload/platform/plugins/scheduling/mcp/dist/tools/schedule-update.js.map +1 -0
  946. package/payload/platform/plugins/scheduling/mcp/package.json +23 -0
  947. package/payload/platform/plugins/scheduling/mcp/vitest.config.ts +9 -0
  948. package/payload/platform/plugins/tasks/.claude-plugin/plugin.json +17 -0
  949. package/payload/platform/plugins/tasks/.mcp.json +13 -0
  950. package/payload/platform/plugins/tasks/PLUGIN.md +81 -0
  951. package/payload/platform/plugins/tasks/mcp/dist/index.d.ts +2 -0
  952. package/payload/platform/plugins/tasks/mcp/dist/index.d.ts.map +1 -0
  953. package/payload/platform/plugins/tasks/mcp/dist/index.js +503 -0
  954. package/payload/platform/plugins/tasks/mcp/dist/index.js.map +1 -0
  955. package/payload/platform/plugins/tasks/mcp/dist/lib/embeddings.d.ts +7 -0
  956. package/payload/platform/plugins/tasks/mcp/dist/lib/embeddings.d.ts.map +1 -0
  957. package/payload/platform/plugins/tasks/mcp/dist/lib/embeddings.js +24 -0
  958. package/payload/platform/plugins/tasks/mcp/dist/lib/embeddings.js.map +1 -0
  959. package/payload/platform/plugins/tasks/mcp/dist/lib/neo4j.d.ts +5 -0
  960. package/payload/platform/plugins/tasks/mcp/dist/lib/neo4j.d.ts.map +1 -0
  961. package/payload/platform/plugins/tasks/mcp/dist/lib/neo4j.js +40 -0
  962. package/payload/platform/plugins/tasks/mcp/dist/lib/neo4j.js.map +1 -0
  963. package/payload/platform/plugins/tasks/mcp/dist/tools/project-complete.d.ts +17 -0
  964. package/payload/platform/plugins/tasks/mcp/dist/tools/project-complete.d.ts.map +1 -0
  965. package/payload/platform/plugins/tasks/mcp/dist/tools/project-complete.js +76 -0
  966. package/payload/platform/plugins/tasks/mcp/dist/tools/project-complete.js.map +1 -0
  967. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.d.ts +29 -0
  968. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.d.ts.map +1 -0
  969. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.js +235 -0
  970. package/payload/platform/plugins/tasks/mcp/dist/tools/project-create.js.map +1 -0
  971. package/payload/platform/plugins/tasks/mcp/dist/tools/project-get.d.ts +40 -0
  972. package/payload/platform/plugins/tasks/mcp/dist/tools/project-get.d.ts.map +1 -0
  973. package/payload/platform/plugins/tasks/mcp/dist/tools/project-get.js +125 -0
  974. package/payload/platform/plugins/tasks/mcp/dist/tools/project-get.js.map +1 -0
  975. package/payload/platform/plugins/tasks/mcp/dist/tools/project-list.d.ts +26 -0
  976. package/payload/platform/plugins/tasks/mcp/dist/tools/project-list.d.ts.map +1 -0
  977. package/payload/platform/plugins/tasks/mcp/dist/tools/project-list.js +81 -0
  978. package/payload/platform/plugins/tasks/mcp/dist/tools/project-list.js.map +1 -0
  979. package/payload/platform/plugins/tasks/mcp/dist/tools/project-update.d.ts +19 -0
  980. package/payload/platform/plugins/tasks/mcp/dist/tools/project-update.d.ts.map +1 -0
  981. package/payload/platform/plugins/tasks/mcp/dist/tools/project-update.js +102 -0
  982. package/payload/platform/plugins/tasks/mcp/dist/tools/project-update.js.map +1 -0
  983. package/payload/platform/plugins/tasks/mcp/dist/tools/session-list.d.ts +20 -0
  984. package/payload/platform/plugins/tasks/mcp/dist/tools/session-list.d.ts.map +1 -0
  985. package/payload/platform/plugins/tasks/mcp/dist/tools/session-list.js +37 -0
  986. package/payload/platform/plugins/tasks/mcp/dist/tools/session-list.js.map +1 -0
  987. package/payload/platform/plugins/tasks/mcp/dist/tools/session-name.d.ts +12 -0
  988. package/payload/platform/plugins/tasks/mcp/dist/tools/session-name.d.ts.map +1 -0
  989. package/payload/platform/plugins/tasks/mcp/dist/tools/session-name.js +28 -0
  990. package/payload/platform/plugins/tasks/mcp/dist/tools/session-name.js.map +1 -0
  991. package/payload/platform/plugins/tasks/mcp/dist/tools/task-complete.d.ts +16 -0
  992. package/payload/platform/plugins/tasks/mcp/dist/tools/task-complete.d.ts.map +1 -0
  993. package/payload/platform/plugins/tasks/mcp/dist/tools/task-complete.js +33 -0
  994. package/payload/platform/plugins/tasks/mcp/dist/tools/task-complete.js.map +1 -0
  995. package/payload/platform/plugins/tasks/mcp/dist/tools/task-create.d.ts +63 -0
  996. package/payload/platform/plugins/tasks/mcp/dist/tools/task-create.d.ts.map +1 -0
  997. package/payload/platform/plugins/tasks/mcp/dist/tools/task-create.js +141 -0
  998. package/payload/platform/plugins/tasks/mcp/dist/tools/task-create.js.map +1 -0
  999. package/payload/platform/plugins/tasks/mcp/dist/tools/task-get.d.ts +19 -0
  1000. package/payload/platform/plugins/tasks/mcp/dist/tools/task-get.d.ts.map +1 -0
  1001. package/payload/platform/plugins/tasks/mcp/dist/tools/task-get.js +51 -0
  1002. package/payload/platform/plugins/tasks/mcp/dist/tools/task-get.js.map +1 -0
  1003. package/payload/platform/plugins/tasks/mcp/dist/tools/task-list.d.ts +18 -0
  1004. package/payload/platform/plugins/tasks/mcp/dist/tools/task-list.d.ts.map +1 -0
  1005. package/payload/platform/plugins/tasks/mcp/dist/tools/task-list.js +66 -0
  1006. package/payload/platform/plugins/tasks/mcp/dist/tools/task-list.js.map +1 -0
  1007. package/payload/platform/plugins/tasks/mcp/dist/tools/task-ready.d.ts +21 -0
  1008. package/payload/platform/plugins/tasks/mcp/dist/tools/task-ready.d.ts.map +1 -0
  1009. package/payload/platform/plugins/tasks/mcp/dist/tools/task-ready.js +54 -0
  1010. package/payload/platform/plugins/tasks/mcp/dist/tools/task-ready.js.map +1 -0
  1011. package/payload/platform/plugins/tasks/mcp/dist/tools/task-relate.d.ts +12 -0
  1012. package/payload/platform/plugins/tasks/mcp/dist/tools/task-relate.d.ts.map +1 -0
  1013. package/payload/platform/plugins/tasks/mcp/dist/tools/task-relate.js +59 -0
  1014. package/payload/platform/plugins/tasks/mcp/dist/tools/task-relate.js.map +1 -0
  1015. package/payload/platform/plugins/tasks/mcp/dist/tools/task-update.d.ts +32 -0
  1016. package/payload/platform/plugins/tasks/mcp/dist/tools/task-update.d.ts.map +1 -0
  1017. package/payload/platform/plugins/tasks/mcp/dist/tools/task-update.js +112 -0
  1018. package/payload/platform/plugins/tasks/mcp/dist/tools/task-update.js.map +1 -0
  1019. package/payload/platform/plugins/tasks/mcp/package.json +20 -0
  1020. package/payload/platform/plugins/telegram/PLUGIN.md +35 -0
  1021. package/payload/platform/plugins/telegram/mcp/dist/index.d.ts +2 -0
  1022. package/payload/platform/plugins/telegram/mcp/dist/index.d.ts.map +1 -0
  1023. package/payload/platform/plugins/telegram/mcp/dist/index.js +198 -0
  1024. package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -0
  1025. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts +41 -0
  1026. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts.map +1 -0
  1027. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js +70 -0
  1028. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js.map +1 -0
  1029. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.d.ts +16 -0
  1030. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.d.ts.map +1 -0
  1031. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.js +68 -0
  1032. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.js.map +1 -0
  1033. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts +20 -0
  1034. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts.map +1 -0
  1035. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js +34 -0
  1036. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js.map +1 -0
  1037. package/payload/platform/plugins/telegram/mcp/package.json +19 -0
  1038. package/payload/platform/plugins/telegram/references/setup-guide.md +50 -0
  1039. package/payload/platform/plugins/waitlist/PLUGIN.md +63 -0
  1040. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts +2 -0
  1041. package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts.map +1 -0
  1042. package/payload/platform/plugins/waitlist/mcp/dist/index.js +328 -0
  1043. package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +1 -0
  1044. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts +3 -0
  1045. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts.map +1 -0
  1046. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js +48 -0
  1047. package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js.map +1 -0
  1048. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts +5 -0
  1049. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts.map +1 -0
  1050. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js +40 -0
  1051. package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js.map +1 -0
  1052. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts +2 -0
  1053. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts.map +1 -0
  1054. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js +70 -0
  1055. package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js.map +1 -0
  1056. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts +33 -0
  1057. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts.map +1 -0
  1058. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js +124 -0
  1059. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js.map +1 -0
  1060. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts +23 -0
  1061. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts.map +1 -0
  1062. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js +58 -0
  1063. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js.map +1 -0
  1064. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts +83 -0
  1065. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts.map +1 -0
  1066. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js +433 -0
  1067. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js.map +1 -0
  1068. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts +19 -0
  1069. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts.map +1 -0
  1070. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js +81 -0
  1071. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js.map +1 -0
  1072. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts +28 -0
  1073. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts.map +1 -0
  1074. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js +50 -0
  1075. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js.map +1 -0
  1076. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts +33 -0
  1077. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts.map +1 -0
  1078. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js +335 -0
  1079. package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js.map +1 -0
  1080. package/payload/platform/plugins/waitlist/mcp/package.json +23 -0
  1081. package/payload/platform/plugins/waitlist/mcp/vitest.config.ts +9 -0
  1082. package/payload/platform/plugins/whatsapp/PLUGIN.md +71 -0
  1083. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.d.ts +14 -0
  1084. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.d.ts.map +1 -0
  1085. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.js +42 -0
  1086. package/payload/platform/plugins/whatsapp/mcp/dist/call-api.js.map +1 -0
  1087. package/payload/platform/plugins/whatsapp/mcp/dist/index.d.ts +8 -0
  1088. package/payload/platform/plugins/whatsapp/mcp/dist/index.d.ts.map +1 -0
  1089. package/payload/platform/plugins/whatsapp/mcp/dist/index.js +469 -0
  1090. package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -0
  1091. package/payload/platform/plugins/whatsapp/mcp/package.json +19 -0
  1092. package/payload/platform/plugins/whatsapp/references/channels-whatsapp.md +257 -0
  1093. package/payload/platform/plugins/whatsapp/skills/connect-whatsapp/SKILL.md +82 -0
  1094. package/payload/platform/plugins/whatsapp/skills/manage-whatsapp-config/SKILL.md +99 -0
  1095. package/payload/platform/plugins/workflows/.claude-plugin/plugin.json +16 -0
  1096. package/payload/platform/plugins/workflows/.mcp.json +12 -0
  1097. package/payload/platform/plugins/workflows/PLUGIN.md +297 -0
  1098. package/payload/platform/plugins/workflows/mcp/dist/index.d.ts +2 -0
  1099. package/payload/platform/plugins/workflows/mcp/dist/index.d.ts.map +1 -0
  1100. package/payload/platform/plugins/workflows/mcp/dist/index.js +536 -0
  1101. package/payload/platform/plugins/workflows/mcp/dist/index.js.map +1 -0
  1102. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.d.ts +38 -0
  1103. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.d.ts.map +1 -0
  1104. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.js +83 -0
  1105. package/payload/platform/plugins/workflows/mcp/dist/lib/active-runs.js.map +1 -0
  1106. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.d.ts +2 -0
  1107. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.d.ts.map +1 -0
  1108. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.js +19 -0
  1109. package/payload/platform/plugins/workflows/mcp/dist/lib/embeddings.js.map +1 -0
  1110. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.d.ts +151 -0
  1111. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.d.ts.map +1 -0
  1112. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.js +299 -0
  1113. package/payload/platform/plugins/workflows/mcp/dist/lib/llm-call.js.map +1 -0
  1114. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.d.ts +5 -0
  1115. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.d.ts.map +1 -0
  1116. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.js +40 -0
  1117. package/payload/platform/plugins/workflows/mcp/dist/lib/neo4j.js.map +1 -0
  1118. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.d.ts +153 -0
  1119. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.d.ts.map +1 -0
  1120. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.js +273 -0
  1121. package/payload/platform/plugins/workflows/mcp/dist/lib/step-resolver.js.map +1 -0
  1122. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.d.ts +32 -0
  1123. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.d.ts.map +1 -0
  1124. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.js +97 -0
  1125. package/payload/platform/plugins/workflows/mcp/dist/lib/validate-capabilities.js.map +1 -0
  1126. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts +48 -0
  1127. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.d.ts.map +1 -0
  1128. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js +166 -0
  1129. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-create.js.map +1 -0
  1130. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.d.ts +28 -0
  1131. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.d.ts.map +1 -0
  1132. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.js +57 -0
  1133. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-delete.js.map +1 -0
  1134. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +64 -0
  1135. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts.map +1 -0
  1136. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +605 -0
  1137. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -0
  1138. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.d.ts +29 -0
  1139. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.d.ts.map +1 -0
  1140. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.js +55 -0
  1141. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-get.js.map +1 -0
  1142. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.d.ts +16 -0
  1143. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.d.ts.map +1 -0
  1144. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.js +44 -0
  1145. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-list.js.map +1 -0
  1146. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.d.ts +28 -0
  1147. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.d.ts.map +1 -0
  1148. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.js +71 -0
  1149. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-runs.js.map +1 -0
  1150. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.d.ts +11 -0
  1151. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.d.ts.map +1 -0
  1152. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.js +198 -0
  1153. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-update.js.map +1 -0
  1154. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.d.ts +13 -0
  1155. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.d.ts.map +1 -0
  1156. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.js +71 -0
  1157. package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-validate.js.map +1 -0
  1158. package/payload/platform/plugins/workflows/mcp/package.json +20 -0
  1159. package/payload/platform/plugins/workflows/mcp/test-runner.mjs +710 -0
  1160. package/payload/platform/plugins/workflows/mcp/test-workflows.sh +77 -0
  1161. package/payload/platform/plugins/workflows/skills/workflow-manager/SKILL.md +88 -0
  1162. package/payload/platform/scripts/__tests__/admin-persist-audit.test.ts +182 -0
  1163. package/payload/platform/scripts/__tests__/first-token-creates-stream-log.test.sh +37 -0
  1164. package/payload/platform/scripts/__tests__/logs-read-prefix.sh +237 -0
  1165. package/payload/platform/scripts/admin-conversation-recover.mjs +386 -0
  1166. package/payload/platform/scripts/admin-persist-audit.ts +217 -0
  1167. package/payload/platform/scripts/check-no-conversation-id-leaks.mjs +165 -0
  1168. package/payload/platform/scripts/check-no-task-id-leaks.mjs +110 -0
  1169. package/payload/platform/scripts/check-sdk-oauth.mjs +185 -0
  1170. package/payload/platform/scripts/check-skill-load-coverage.mjs +100 -0
  1171. package/payload/platform/scripts/component-knowledgedoc-backfill.ts +214 -0
  1172. package/payload/platform/scripts/conversation-id-allowlist.txt +151 -0
  1173. package/payload/platform/scripts/dedupe-userprofile-ghosts.sh +388 -0
  1174. package/payload/platform/scripts/generate-entitlement-fixture.mjs +152 -0
  1175. package/payload/platform/scripts/installer-device-verify.sh +249 -0
  1176. package/payload/platform/scripts/lib/resolve-account-dir.sh +186 -0
  1177. package/payload/platform/scripts/log-adherence-check.sh +125 -0
  1178. package/payload/platform/scripts/logs-read.sh +577 -0
  1179. package/payload/platform/scripts/logs-read.test.sh +159 -0
  1180. package/payload/platform/scripts/migrate-import.sh +437 -0
  1181. package/payload/platform/scripts/redact-install-logs.sh +87 -0
  1182. package/payload/platform/scripts/resume-tunnel.sh +117 -0
  1183. package/payload/platform/scripts/seed-neo4j.sh +590 -0
  1184. package/payload/platform/scripts/taskmaster-export.sh +388 -0
  1185. package/payload/platform/scripts/test-laptop-vnc-boot.sh +88 -0
  1186. package/payload/platform/scripts/verify-skill-tool-surface.sh +255 -0
  1187. package/payload/platform/scripts/vnc.sh +475 -0
  1188. package/payload/platform/scripts/wifi-provision-server/server.js +743 -0
  1189. package/payload/platform/scripts/wifi-provision.sh +492 -0
  1190. package/payload/platform/services/claude-session-manager/dist/config.d.ts +12 -0
  1191. package/payload/platform/services/claude-session-manager/dist/config.d.ts.map +1 -0
  1192. package/payload/platform/services/claude-session-manager/dist/config.js +27 -0
  1193. package/payload/platform/services/claude-session-manager/dist/config.js.map +1 -0
  1194. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts +10 -0
  1195. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -0
  1196. package/payload/platform/services/claude-session-manager/dist/http-server.js +186 -0
  1197. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -0
  1198. package/payload/platform/services/claude-session-manager/dist/index.d.ts +2 -0
  1199. package/payload/platform/services/claude-session-manager/dist/index.d.ts.map +1 -0
  1200. package/payload/platform/services/claude-session-manager/dist/index.js +64 -0
  1201. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -0
  1202. package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts +4 -0
  1203. package/payload/platform/services/claude-session-manager/dist/jsonl-path.d.ts.map +1 -0
  1204. package/payload/platform/services/claude-session-manager/dist/jsonl-path.js +31 -0
  1205. package/payload/platform/services/claude-session-manager/dist/jsonl-path.js.map +1 -0
  1206. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +34 -0
  1207. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -0
  1208. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +91 -0
  1209. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -0
  1210. package/payload/platform/services/claude-session-manager/dist/session-store.d.ts +23 -0
  1211. package/payload/platform/services/claude-session-manager/dist/session-store.d.ts.map +1 -0
  1212. package/payload/platform/services/claude-session-manager/dist/session-store.js +31 -0
  1213. package/payload/platform/services/claude-session-manager/dist/session-store.js.map +1 -0
  1214. package/payload/platform/services/claude-session-manager/dist/types.d.ts +33 -0
  1215. package/payload/platform/services/claude-session-manager/dist/types.d.ts.map +1 -0
  1216. package/payload/platform/services/claude-session-manager/dist/types.js +2 -0
  1217. package/payload/platform/services/claude-session-manager/dist/types.js.map +1 -0
  1218. package/payload/platform/services/claude-session-manager/dist/url-capture.d.ts +12 -0
  1219. package/payload/platform/services/claude-session-manager/dist/url-capture.d.ts.map +1 -0
  1220. package/payload/platform/services/claude-session-manager/dist/url-capture.js +68 -0
  1221. package/payload/platform/services/claude-session-manager/dist/url-capture.js.map +1 -0
  1222. package/payload/platform/services/claude-session-manager/package.json +22 -0
  1223. package/payload/platform/templates/account.json +12 -0
  1224. package/payload/platform/templates/agents/admin/AGENTS.md +12 -0
  1225. package/payload/platform/templates/agents/admin/IDENTITY.md +320 -0
  1226. package/payload/platform/templates/agents/admin/LEARNINGS.md +3 -0
  1227. package/payload/platform/templates/agents/admin/SOUL.md +23 -0
  1228. package/payload/platform/templates/agents/public/IDENTITY.md +56 -0
  1229. package/payload/platform/templates/agents/public/SOUL.md +19 -0
  1230. package/payload/platform/templates/agents/public/config.json +9 -0
  1231. package/payload/platform/templates/specialists/.claude-plugin/plugin.json +4 -0
  1232. package/payload/platform/templates/specialists/agents/content-producer.md +104 -0
  1233. package/payload/platform/templates/specialists/agents/database-operator.md +199 -0
  1234. package/payload/platform/templates/specialists/agents/personal-assistant.md +209 -0
  1235. package/payload/platform/templates/specialists/agents/project-manager.md +132 -0
  1236. package/payload/platform/templates/specialists/agents/research-assistant.md +115 -0
  1237. package/payload/platform/templates/systemd/edge.service.template +38 -0
  1238. package/payload/platform/tsconfig.base.json +18 -0
  1239. package/payload/premium-plugins/real-agency/BUNDLE.md +44 -0
  1240. package/payload/premium-plugins/real-agency/agents/buyer-enquiry/IDENTITY.md +13 -0
  1241. package/payload/premium-plugins/real-agency/agents/buyer-enquiry/SOUL.md +9 -0
  1242. package/payload/premium-plugins/real-agency/agents/buyer-enquiry/template.json +9 -0
  1243. package/payload/premium-plugins/real-agency/agents/compliance.md +303 -0
  1244. package/payload/premium-plugins/real-agency/agents/negotiator.md +145 -0
  1245. package/payload/premium-plugins/real-agency/agents/valuer.md +140 -0
  1246. package/payload/premium-plugins/real-agency/plugins/brochures/PLUGIN.md +36 -0
  1247. package/payload/premium-plugins/real-agency/plugins/brochures/commands/make-brochure.md +11 -0
  1248. package/payload/premium-plugins/real-agency/plugins/brochures/skills/a4-print-documents/SKILL.md +478 -0
  1249. package/payload/premium-plugins/real-agency/plugins/brochures/skills/brand-design/SKILL.md +192 -0
  1250. package/payload/premium-plugins/real-agency/plugins/brochures/skills/make-brochure/SKILL.md +354 -0
  1251. package/payload/premium-plugins/real-agency/plugins/brochures/skills/make-brochure/references/seller-brief-template.md +115 -0
  1252. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/SKILL.md +119 -0
  1253. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/build.md +270 -0
  1254. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/copy.md +211 -0
  1255. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/images.md +166 -0
  1256. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/page-landing.md +376 -0
  1257. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/page.html +1288 -0
  1258. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/placeholders.md +250 -0
  1259. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/registers.md +47 -0
  1260. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/seller-brief.md +56 -0
  1261. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/structure.md +249 -0
  1262. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-brochure/references/template.html +2370 -0
  1263. package/payload/premium-plugins/real-agency/plugins/brochures/skills/property-extract/SKILL.md +372 -0
  1264. package/payload/premium-plugins/real-agency/plugins/buyers/PLUGIN.md +35 -0
  1265. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-feedback/SKILL.md +109 -0
  1266. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/SKILL.md +42 -0
  1267. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/buyer-qualification-questions.md +16 -0
  1268. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/buyer-qualification.md +59 -0
  1269. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/buyer-scripts.md +63 -0
  1270. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/buyer-working-scripts.md +54 -0
  1271. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/feedback-collection.md +42 -0
  1272. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/offer-capture.md +38 -0
  1273. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/viewing-booking.md +32 -0
  1274. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-management/references/viewing-management.md +52 -0
  1275. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/SKILL.md +407 -0
  1276. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/care-fees-guide.md +68 -0
  1277. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/divorce-sales-guide.md +61 -0
  1278. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/downsizing-guide.md +45 -0
  1279. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/first-time-buyers.md +92 -0
  1280. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/first-time-sellers.md +78 -0
  1281. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/probate-guide.md +53 -0
  1282. package/payload/premium-plugins/real-agency/plugins/buyers/skills/buyer-seller-guides/references/upsizing-guide.md +41 -0
  1283. package/payload/premium-plugins/real-agency/plugins/buyers/skills/property-enquiry/SKILL.md +126 -0
  1284. package/payload/premium-plugins/real-agency/plugins/buyers/skills/viewing-management/SKILL.md +111 -0
  1285. package/payload/premium-plugins/real-agency/plugins/estate-business/PLUGIN.md +34 -0
  1286. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/SKILL.md +133 -0
  1287. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/buy-back-your-time.md +37 -0
  1288. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/firewave-gost-scorecards.md +14 -0
  1289. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/keller-org-model.md +17 -0
  1290. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/lencioni-team-models.md +22 -0
  1291. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/listing-management-system.md +11 -0
  1292. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/net-figure-form.md +11 -0
  1293. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/serhant-bizinbox-notes.md +13 -0
  1294. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/team-roles-commission.md +14 -0
  1295. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/va-2026-ops.md +43 -0
  1296. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-growth/references/wingman-structure.md +13 -0
  1297. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/SKILL.md +32 -0
  1298. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/references/crm-systems.md +57 -0
  1299. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/references/hiring-guide.md +59 -0
  1300. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/references/impact-framework.md +47 -0
  1301. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/references/minutes-equal-money.md +55 -0
  1302. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/business-operations/references/team-management.md +48 -0
  1303. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/SKILL.md +52 -0
  1304. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/12-reasons.md +39 -0
  1305. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/95-5-system.md +66 -0
  1306. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/agent-attraction-scripts.md +90 -0
  1307. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/business-partnership.md +92 -0
  1308. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/exp-model-overview.md +66 -0
  1309. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/model-comparison.md +66 -0
  1310. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/exp-partnership/references/revenue-share-explained.md +57 -0
  1311. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/SKILL.md +117 -0
  1312. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/attraction-agent-notes.md +31 -0
  1313. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/attraction-agent.md +58 -0
  1314. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/authenticity-boundaries.md +28 -0
  1315. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/become-a-brand-leader-notes.md +19 -0
  1316. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/blast-formula.md +42 -0
  1317. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/brand-leader.md +48 -0
  1318. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/brand-strategy-system.md +59 -0
  1319. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/content-engine.md +49 -0
  1320. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/firewave-blast-and-blogging.md +23 -0
  1321. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/gary-v-content.md +52 -0
  1322. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/gary-v-principles.md +20 -0
  1323. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/oversubscribed-positioning.md +18 -0
  1324. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/platforms.md +41 -0
  1325. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/priestley-oversubscribed.md +54 -0
  1326. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/storeys-style-examples.md +25 -0
  1327. package/payload/premium-plugins/real-agency/plugins/estate-business/skills/personal-branding/references/visual-identity.md +27 -0
  1328. package/payload/premium-plugins/real-agency/plugins/estate-coaching/PLUGIN.md +55 -0
  1329. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/agent-performance/SKILL.md +371 -0
  1330. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/agent-performance/references/atomic-habits.md +52 -0
  1331. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/agent-performance/references/daily-routine-scorecard.md +104 -0
  1332. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/agent-performance/references/hp6-model.md +63 -0
  1333. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/agent-performance/references/twelve-week-year.md +71 -0
  1334. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/bespoke-coaching/SKILL.md +36 -0
  1335. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/bespoke-coaching/references/coaching-boundaries.md +56 -0
  1336. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/bespoke-coaching/references/feedback-framework.md +61 -0
  1337. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/bespoke-coaching/references/performance-framework.md +109 -0
  1338. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/coaching-toolkit/SKILL.md +421 -0
  1339. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/coaching-toolkit/references/coaching-exercises.md +86 -0
  1340. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/coaching-toolkit/references/goal-setting.md +78 -0
  1341. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/coaching-toolkit/references/one-to-one-framework.md +92 -0
  1342. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/coaching-toolkit/references/soi-workbook.md +103 -0
  1343. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/SKILL.md +410 -0
  1344. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/references/agent-training-guide.md +70 -0
  1345. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/references/business-in-a-box.md +72 -0
  1346. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/references/buyers-guide.md +53 -0
  1347. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/references/codo-method.md +72 -0
  1348. package/payload/premium-plugins/real-agency/plugins/estate-coaching/skills/serhant-training/references/website-planning-guide.md +79 -0
  1349. package/payload/premium-plugins/real-agency/plugins/estate-onboarding/PLUGIN.md +31 -0
  1350. package/payload/premium-plugins/real-agency/plugins/estate-onboarding/skills/bootstrap/SKILL.md +26 -0
  1351. package/payload/premium-plugins/real-agency/plugins/estate-onboarding/skills/bootstrap/references/onboarding-flow.md +63 -0
  1352. package/payload/premium-plugins/real-agency/plugins/estate-sales/PLUGIN.md +34 -0
  1353. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/SKILL.md +35 -0
  1354. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/references/deal-saving.md +47 -0
  1355. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/references/negotiation-deep-guide.md +64 -0
  1356. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/references/negotiation-prep-principles.md +29 -0
  1357. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/references/negotiation-techniques.md +42 -0
  1358. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/negotiation/references/offer-presentation.md +43 -0
  1359. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-closer/SKILL.md +24 -0
  1360. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-closer/references/serhant-emotion-stages.md +36 -0
  1361. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/SKILL.md +30 -0
  1362. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/chris-voss-discovery.md +88 -0
  1363. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/firewave-gost-journey.md +68 -0
  1364. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/phil-jones-openers.md +78 -0
  1365. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/pre-listing-checklist.md +77 -0
  1366. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/serhant-improv.md +22 -0
  1367. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/tom-ferry-discovery.md +103 -0
  1368. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-discovery/references/vendor-motivation-competitor.md +52 -0
  1369. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/SKILL.md +29 -0
  1370. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/references/chris-voss-negotiation.md +70 -0
  1371. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/references/phil-jones-price-words.md +40 -0
  1372. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/references/serhant-negotiation-plus.md +55 -0
  1373. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/references/tom-panos-commission-pricing.md +57 -0
  1374. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-negotiation/references/tony-morris-questioning.md +54 -0
  1375. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-progression/SKILL.md +27 -0
  1376. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-progression/references/conveyancing-guide.md +54 -0
  1377. package/payload/premium-plugins/real-agency/plugins/estate-sales/skills/sales-progression/references/transaction-tracking.md +66 -0
  1378. package/payload/premium-plugins/real-agency/plugins/estate-teaching/PLUGIN.md +31 -0
  1379. package/payload/premium-plugins/real-agency/plugins/estate-teaching/skills/content-directory/SKILL.md +39 -0
  1380. package/payload/premium-plugins/real-agency/plugins/estate-teaching/skills/content-directory/references/module-delivery.md +65 -0
  1381. package/payload/premium-plugins/real-agency/plugins/estate-teaching/skills/content-directory/references/progress-tracking.md +47 -0
  1382. package/payload/premium-plugins/real-agency/plugins/leads/PLUGIN.md +32 -0
  1383. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/SKILL.md +137 -0
  1384. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/buyer-search-letter.md +28 -0
  1385. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/buyer-search-letters.md +37 -0
  1386. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/database-reactivation.md +30 -0
  1387. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/email-nurture-sequences.md +45 -0
  1388. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/facebook-referrals.md +30 -0
  1389. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/firewave-email-nurture-sequences.md +41 -0
  1390. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/keller-33-touch.md +34 -0
  1391. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/neighbour-letters.md +31 -0
  1392. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/neighbour-notification-letter.md +20 -0
  1393. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/ofi-follow-up-dialogue.md +22 -0
  1394. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/ofi-follow-up.md +26 -0
  1395. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/serhant-three-fs-plus.md +21 -0
  1396. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/sharran-10x10x10.md +18 -0
  1397. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/sms-templates.md +40 -0
  1398. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/sphere-of-influence-notes.md +34 -0
  1399. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/sphere-of-influence.md +60 -0
  1400. package/payload/premium-plugins/real-agency/plugins/leads/skills/lead-nurturing/references/tom-panos-sms-templates.md +59 -0
  1401. package/payload/premium-plugins/real-agency/plugins/leads/skills/prospecting/SKILL.md +33 -0
  1402. package/payload/premium-plugins/real-agency/plugins/leads/skills/prospecting/references/database-matching.md +30 -0
  1403. package/payload/premium-plugins/real-agency/plugins/leads/skills/prospecting/references/database-value.md +53 -0
  1404. package/payload/premium-plugins/real-agency/plugins/leads/skills/prospecting/references/prospecting-dialogues.md +24 -0
  1405. package/payload/premium-plugins/real-agency/plugins/leads/skills/prospecting/references/reactivation.md +34 -0
  1406. package/payload/premium-plugins/real-agency/plugins/listings/PLUGIN.md +33 -0
  1407. package/payload/premium-plugins/real-agency/plugins/listings/skills/home-preparation/SKILL.md +28 -0
  1408. package/payload/premium-plugins/real-agency/plugins/listings/skills/home-preparation/references/kerb-appeal.md +38 -0
  1409. package/payload/premium-plugins/real-agency/plugins/listings/skills/home-preparation/references/photo-day.md +59 -0
  1410. package/payload/premium-plugins/real-agency/plugins/listings/skills/home-preparation/references/situational-tips.md +50 -0
  1411. package/payload/premium-plugins/real-agency/plugins/listings/skills/home-preparation/references/staging-guide.md +52 -0
  1412. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/SKILL.md +286 -0
  1413. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/booking-script.md +51 -0
  1414. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/objection-scripts.md +193 -0
  1415. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/penhaul-presentation.md +123 -0
  1416. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/pre-listing-kit.md +139 -0
  1417. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/set-to-sell.md +55 -0
  1418. package/payload/premium-plugins/real-agency/plugins/listings/skills/listing-presentation/references/sharran-frameworks.md +107 -0
  1419. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/SKILL.md +337 -0
  1420. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/references/auction-report-template.md +41 -0
  1421. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/references/coming-soon-campaign.md +43 -0
  1422. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/references/direct-mail-templates.md +121 -0
  1423. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/references/eoi-form-template.md +62 -0
  1424. package/payload/premium-plugins/real-agency/plugins/listings/skills/property-marketing/references/monthly-scorecard.md +63 -0
  1425. package/payload/premium-plugins/real-agency/plugins/loop/PLUGIN.md +73 -0
  1426. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/index.d.ts +2 -0
  1427. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/index.d.ts.map +1 -0
  1428. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/index.js +293 -0
  1429. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/index.js.map +1 -0
  1430. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/crypto.d.ts +10 -0
  1431. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/crypto.d.ts.map +1 -0
  1432. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/crypto.js +88 -0
  1433. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/crypto.js.map +1 -0
  1434. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/loop-api.d.ts +82 -0
  1435. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/loop-api.d.ts.map +1 -0
  1436. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/loop-api.js +427 -0
  1437. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/loop-api.js.map +1 -0
  1438. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/neo4j.d.ts +5 -0
  1439. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/neo4j.d.ts.map +1 -0
  1440. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/neo4j.js +40 -0
  1441. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/lib/neo4j.js.map +1 -0
  1442. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/customer-preferences.d.ts +10 -0
  1443. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/customer-preferences.d.ts.map +1 -0
  1444. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/customer-preferences.js +24 -0
  1445. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/customer-preferences.js.map +1 -0
  1446. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/feedback.d.ts +16 -0
  1447. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/feedback.d.ts.map +1 -0
  1448. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/feedback.js +35 -0
  1449. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/feedback.js.map +1 -0
  1450. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-deregister.d.ts +5 -0
  1451. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-deregister.d.ts.map +1 -0
  1452. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-deregister.js +19 -0
  1453. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-deregister.js.map +1 -0
  1454. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-list.d.ts +4 -0
  1455. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-list.d.ts.map +1 -0
  1456. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-list.js +14 -0
  1457. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-list.js.map +1 -0
  1458. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-register.d.ts +9 -0
  1459. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-register.d.ts.map +1 -0
  1460. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-register.js +60 -0
  1461. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/key-register.js.map +1 -0
  1462. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts +13 -0
  1463. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts.map +1 -0
  1464. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-enquiry.js +41 -0
  1465. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-enquiry.js.map +1 -0
  1466. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts +9 -0
  1467. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts.map +1 -0
  1468. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-batch.js +16 -0
  1469. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-batch.js.map +1 -0
  1470. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts +15 -0
  1471. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts.map +1 -0
  1472. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-request.js +11 -0
  1473. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match-request.js.map +1 -0
  1474. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match.d.ts +10 -0
  1475. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match.d.ts.map +1 -0
  1476. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match.js +39 -0
  1477. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/marketing-match.js.map +1 -0
  1478. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-detail.d.ts +9 -0
  1479. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-detail.d.ts.map +1 -0
  1480. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-detail.js +125 -0
  1481. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-detail.js.map +1 -0
  1482. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-search.d.ts +18 -0
  1483. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-search.d.ts.map +1 -0
  1484. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-search.js +87 -0
  1485. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/people-search.js.map +1 -0
  1486. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-detail.d.ts +10 -0
  1487. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-detail.d.ts.map +1 -0
  1488. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-detail.js +82 -0
  1489. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-detail.js.map +1 -0
  1490. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-listed.d.ts +12 -0
  1491. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-listed.d.ts.map +1 -0
  1492. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-listed.js +32 -0
  1493. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-listed.js.map +1 -0
  1494. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-request.d.ts +15 -0
  1495. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-request.d.ts.map +1 -0
  1496. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-request.js +11 -0
  1497. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-request.js.map +1 -0
  1498. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-search.d.ts +16 -0
  1499. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-search.d.ts.map +1 -0
  1500. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-search.js +41 -0
  1501. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/property-search.js.map +1 -0
  1502. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/supplier.d.ts +13 -0
  1503. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/supplier.d.ts.map +1 -0
  1504. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/supplier.js +49 -0
  1505. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/supplier.js.map +1 -0
  1506. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-availability.d.ts +7 -0
  1507. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-availability.d.ts.map +1 -0
  1508. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-availability.js +19 -0
  1509. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-availability.js.map +1 -0
  1510. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-info.d.ts +5 -0
  1511. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-info.d.ts.map +1 -0
  1512. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-info.js +32 -0
  1513. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/team-info.js.map +1 -0
  1514. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-create.d.ts +14 -0
  1515. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-create.d.ts.map +1 -0
  1516. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-create.js +11 -0
  1517. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-create.js.map +1 -0
  1518. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-detail.d.ts +9 -0
  1519. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-detail.d.ts.map +1 -0
  1520. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-detail.js +85 -0
  1521. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-detail.js.map +1 -0
  1522. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-search.d.ts +13 -0
  1523. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-search.d.ts.map +1 -0
  1524. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-search.js +44 -0
  1525. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-search.js.map +1 -0
  1526. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-update.d.ts +14 -0
  1527. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-update.d.ts.map +1 -0
  1528. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-update.js +18 -0
  1529. package/payload/premium-plugins/real-agency/plugins/loop/mcp/dist/tools/viewing-update.js.map +1 -0
  1530. package/payload/premium-plugins/real-agency/plugins/loop/mcp/package-lock.json +2549 -0
  1531. package/payload/premium-plugins/real-agency/plugins/loop/mcp/package.json +21 -0
  1532. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/__tests__/loop-swagger.snapshot.json +26467 -0
  1533. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/__tests__/swagger-write-coverage.test.ts +153 -0
  1534. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/index.ts +444 -0
  1535. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/lib/crypto.ts +105 -0
  1536. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/lib/loop-api.ts +604 -0
  1537. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/lib/neo4j.ts +51 -0
  1538. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/customer-preferences.ts +66 -0
  1539. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/feedback.ts +86 -0
  1540. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/key-deregister.ts +27 -0
  1541. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/key-list.ts +19 -0
  1542. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/key-register.ts +95 -0
  1543. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/marketing-enquiry.ts +113 -0
  1544. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/marketing-match-batch.ts +53 -0
  1545. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/marketing-match-request.ts +42 -0
  1546. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/marketing-match.ts +84 -0
  1547. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/people-detail.ts +245 -0
  1548. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/people-search.ts +180 -0
  1549. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/property-detail.ts +145 -0
  1550. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/property-listed.ts +88 -0
  1551. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/property-request.ts +42 -0
  1552. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/property-search.ts +92 -0
  1553. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/supplier.ts +129 -0
  1554. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/team-availability.ts +52 -0
  1555. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/team-info.ts +95 -0
  1556. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/viewing-create.ts +41 -0
  1557. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/viewing-detail.ts +171 -0
  1558. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/viewing-search.ts +92 -0
  1559. package/payload/premium-plugins/real-agency/plugins/loop/mcp/src/tools/viewing-update.ts +53 -0
  1560. package/payload/premium-plugins/real-agency/plugins/loop/mcp/tsconfig.json +20 -0
  1561. package/payload/premium-plugins/real-agency/plugins/loop/mcp/vitest.config.ts +9 -0
  1562. package/payload/premium-plugins/real-agency/plugins/vendors/PLUGIN.md +34 -0
  1563. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/SKILL.md +42 -0
  1564. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/fee-protection-and-agenda.md +28 -0
  1565. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/listing-scripts.md +44 -0
  1566. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/negotiation-deep-guide.md +70 -0
  1567. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/price-alignment-scripts.md +33 -0
  1568. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/price-alignment.md +34 -0
  1569. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/scenario-scripts.md +38 -0
  1570. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/seller-engagement.md +51 -0
  1571. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/valuation-booking.md +76 -0
  1572. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/vendor-scripts.md +63 -0
  1573. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-communication/references/vendor-updates.md +41 -0
  1574. package/payload/premium-plugins/real-agency/plugins/vendors/skills/vendor-updates/SKILL.md +153 -0
  1575. package/payload/premium-plugins/teaching/PLUGIN.md +57 -0
  1576. package/payload/premium-plugins/teaching/skills/interactive-tutor/SKILL.md +59 -0
  1577. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/assessment.md +70 -0
  1578. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +43 -0
  1579. package/payload/premium-plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +83 -0
  1580. package/payload/premium-plugins/teaching/skills/lesson-planner/SKILL.md +48 -0
  1581. package/payload/premium-plugins/teaching/skills/lesson-planner/references/context-gathering.md +41 -0
  1582. package/payload/premium-plugins/teaching/skills/lesson-planner/references/plan-structure.md +94 -0
  1583. package/payload/premium-plugins/teaching/skills/study-pack-builder/SKILL.md +52 -0
  1584. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/disaggregation.md +49 -0
  1585. package/payload/premium-plugins/teaching/skills/study-pack-builder/references/materials.md +116 -0
  1586. package/payload/premium-plugins/writer-craft/PLUGIN.md +87 -0
  1587. package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +92 -0
  1588. package/payload/premium-plugins/writer-craft/skills/citation-style/SKILL.md +94 -0
  1589. package/payload/premium-plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +77 -0
  1590. package/payload/premium-plugins/writer-craft/skills/citation-style/references/citation-rules.md +103 -0
  1591. package/payload/premium-plugins/writer-craft/skills/citation-style/references/journal-article-models.md +74 -0
  1592. package/payload/premium-plugins/writer-craft/skills/citation-style/references/other-source-models.md +146 -0
  1593. package/payload/premium-plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +70 -0
  1594. package/payload/premium-plugins/writer-craft/skills/editorial-practice/SKILL.md +108 -0
  1595. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/copyediting.md +73 -0
  1596. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +85 -0
  1597. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +78 -0
  1598. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/line-editing.md +55 -0
  1599. package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/self-editing.md +89 -0
  1600. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +114 -0
  1601. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +73 -0
  1602. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +76 -0
  1603. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +67 -0
  1604. package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +86 -0
  1605. package/payload/premium-plugins/writer-craft/skills/point-of-view/SKILL.md +97 -0
  1606. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +72 -0
  1607. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +91 -0
  1608. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +71 -0
  1609. package/payload/premium-plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +85 -0
  1610. package/payload/premium-plugins/writer-craft/skills/prose-craft/SKILL.md +100 -0
  1611. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +72 -0
  1612. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/repetition.md +71 -0
  1613. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +64 -0
  1614. package/payload/premium-plugins/writer-craft/skills/prose-craft/references/word-economy.md +93 -0
  1615. package/payload/premium-plugins/writer-craft/skills/reader-engagement/SKILL.md +100 -0
  1616. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +79 -0
  1617. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +81 -0
  1618. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +67 -0
  1619. package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +94 -0
  1620. package/payload/premium-plugins/writer-craft/skills/review-manuscript/SKILL.md +111 -0
  1621. package/payload/premium-plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +119 -0
  1622. package/payload/premium-plugins/writer-craft/skills/review-prose/SKILL.md +99 -0
  1623. package/payload/premium-plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +112 -0
  1624. package/payload/premium-plugins/writer-craft/skills/review-scene/SKILL.md +99 -0
  1625. package/payload/premium-plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +95 -0
  1626. package/payload/premium-plugins/writer-craft/skills/story-architecture/SKILL.md +106 -0
  1627. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +118 -0
  1628. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +66 -0
  1629. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +87 -0
  1630. package/payload/premium-plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +82 -0
  1631. package/payload/premium-plugins/writer-craft/skills/story-blueprint/SKILL.md +133 -0
  1632. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +118 -0
  1633. package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +128 -0
  1634. package/payload/server/adminuser-self-heal-QAWOZ3JV.js +45 -0
  1635. package/payload/server/chunk-5FM432JB.js +4148 -0
  1636. package/payload/server/chunk-6S5JTXAN.js +1544 -0
  1637. package/payload/server/chunk-JSBRDJBE.js +30 -0
  1638. package/payload/server/chunk-RNW625CL.js +759 -0
  1639. package/payload/server/cloudflare-task-tracker-VC7QVU5H.js +22 -0
  1640. package/payload/server/maxy-edge.js +1021 -0
  1641. package/payload/server/package.json +13 -0
  1642. package/payload/server/public/assets/Checkbox-C6ZCsPvl.js +1 -0
  1643. package/payload/server/public/assets/_baseFor-BHtDrjIo.js +1 -0
  1644. package/payload/server/public/assets/admin-CWMpccrR.css +1 -0
  1645. package/payload/server/public/assets/admin-DVGJmN-k.js +216 -0
  1646. package/payload/server/public/assets/arc-DMDAZHAN.js +1 -0
  1647. package/payload/server/public/assets/architecture-YZFGNWBL-COhEvUpo.js +1 -0
  1648. package/payload/server/public/assets/architectureDiagram-Q4EWVU46-DwN6H0y2.js +36 -0
  1649. package/payload/server/public/assets/array-DetWRiSa.js +1 -0
  1650. package/payload/server/public/assets/blockDiagram-DXYQGD6D-TUk_F7H6.js +132 -0
  1651. package/payload/server/public/assets/c4Diagram-AHTNJAMY-CTjGko0X.js +10 -0
  1652. package/payload/server/public/assets/channel-Cv-65bLZ.js +1 -0
  1653. package/payload/server/public/assets/chunk-2KRD3SAO-Di4bO8ir.js +1 -0
  1654. package/payload/server/public/assets/chunk-336JU56O-DulT46bV.js +2 -0
  1655. package/payload/server/public/assets/chunk-426QAEUC-BwKj8yqp.js +1 -0
  1656. package/payload/server/public/assets/chunk-4BX2VUAB-DyEhFk-Z.js +1 -0
  1657. package/payload/server/public/assets/chunk-4TB4RGXK-CewO8YaZ.js +206 -0
  1658. package/payload/server/public/assets/chunk-55IACEB6-BRJOZLpU.js +1 -0
  1659. package/payload/server/public/assets/chunk-5FUZZQ4R-B3IWYz-k.js +62 -0
  1660. package/payload/server/public/assets/chunk-5PVQY5BW-DyiDEtXY.js +2 -0
  1661. package/payload/server/public/assets/chunk-67CJDMHE-BG6-9r6c.js +1 -0
  1662. package/payload/server/public/assets/chunk-7N4EOEYR-BvMbitX7.js +1 -0
  1663. package/payload/server/public/assets/chunk-AA7GKIK3-CE8mGBD5.js +1 -0
  1664. package/payload/server/public/assets/chunk-BSJP7CBP-DP7LTBll.js +1 -0
  1665. package/payload/server/public/assets/chunk-CIAEETIT-VfnIdN-h.js +1 -0
  1666. package/payload/server/public/assets/chunk-DD-I1_y5.js +1 -0
  1667. package/payload/server/public/assets/chunk-EDXVE4YY-B3u7wU36.js +1 -0
  1668. package/payload/server/public/assets/chunk-ENJZ2VHE-BesS5YY4.js +10 -0
  1669. package/payload/server/public/assets/chunk-FMBD7UC4-w-yBZsN2.js +15 -0
  1670. package/payload/server/public/assets/chunk-FOC6F5B3-f9cFywhd.js +1 -0
  1671. package/payload/server/public/assets/chunk-ICPOFSXX-C5_hbB6H.js +122 -0
  1672. package/payload/server/public/assets/chunk-K5T4RW27-B_ZUrFUq.js +94 -0
  1673. package/payload/server/public/assets/chunk-KGLVRYIC-CcWTvRlI.js +1 -0
  1674. package/payload/server/public/assets/chunk-LIHQZDEY-D-5-peQw.js +1 -0
  1675. package/payload/server/public/assets/chunk-ORNJ4GCN-B4Z5L25I.js +1 -0
  1676. package/payload/server/public/assets/chunk-OYMX7WX6-CrL4rhBa.js +231 -0
  1677. package/payload/server/public/assets/chunk-QZHKN3VN-CWh_0JsP.js +1 -0
  1678. package/payload/server/public/assets/chunk-U2HBQHQK-CQpbcqRS.js +70 -0
  1679. package/payload/server/public/assets/chunk-X2U36JSP-1HG7T4gX.js +1 -0
  1680. package/payload/server/public/assets/chunk-XPW4576I-m1Y_r88I.js +32 -0
  1681. package/payload/server/public/assets/chunk-YZCP3GAM-boN5wjX9.js +1 -0
  1682. package/payload/server/public/assets/chunk-ZZ45TVLE-D6CiPO0Q.js +1 -0
  1683. package/payload/server/public/assets/classDiagram-6PBFFD2Q-wQ2-BRyB.js +1 -0
  1684. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-B_YLNNHy.js +1 -0
  1685. package/payload/server/public/assets/clone-VLK-GPZZ.js +1 -0
  1686. package/payload/server/public/assets/cormorant-cyrillic-300-normal-CzPHYadL.woff +0 -0
  1687. package/payload/server/public/assets/cormorant-cyrillic-300-normal-DFUoTmrg.woff2 +0 -0
  1688. package/payload/server/public/assets/cormorant-cyrillic-400-normal-C8QS47vb.woff2 +0 -0
  1689. package/payload/server/public/assets/cormorant-cyrillic-400-normal-D3EsxgFc.woff +0 -0
  1690. package/payload/server/public/assets/cormorant-cyrillic-500-normal-B7dJQtg-.woff +0 -0
  1691. package/payload/server/public/assets/cormorant-cyrillic-500-normal-BLlg2W5x.woff2 +0 -0
  1692. package/payload/server/public/assets/cormorant-cyrillic-ext-300-normal-BXl3lXsi.woff2 +0 -0
  1693. package/payload/server/public/assets/cormorant-cyrillic-ext-300-normal-DmxSOTe3.woff +0 -0
  1694. package/payload/server/public/assets/cormorant-cyrillic-ext-400-normal-Bgrpe4p1.woff +0 -0
  1695. package/payload/server/public/assets/cormorant-cyrillic-ext-400-normal-BlcaxZtM.woff2 +0 -0
  1696. package/payload/server/public/assets/cormorant-cyrillic-ext-500-normal-CdQuyvtc.woff +0 -0
  1697. package/payload/server/public/assets/cormorant-cyrillic-ext-500-normal-pZw22qtS.woff2 +0 -0
  1698. package/payload/server/public/assets/cormorant-latin-300-normal-CJ5dfen0.woff2 +0 -0
  1699. package/payload/server/public/assets/cormorant-latin-300-normal-DQZObO_3.woff +0 -0
  1700. package/payload/server/public/assets/cormorant-latin-400-normal-BGH8Vunh.woff2 +0 -0
  1701. package/payload/server/public/assets/cormorant-latin-400-normal-C3_-2Ua-.woff +0 -0
  1702. package/payload/server/public/assets/cormorant-latin-500-normal-Dj3SQ6fR.woff +0 -0
  1703. package/payload/server/public/assets/cormorant-latin-500-normal-EBdSCOD3.woff2 +0 -0
  1704. package/payload/server/public/assets/cormorant-latin-ext-300-normal-CkiUx0UG.woff +0 -0
  1705. package/payload/server/public/assets/cormorant-latin-ext-300-normal-De3D72RL.woff2 +0 -0
  1706. package/payload/server/public/assets/cormorant-latin-ext-400-normal-DuQ88yz3.woff2 +0 -0
  1707. package/payload/server/public/assets/cormorant-latin-ext-400-normal-DuXFa1Dr.woff +0 -0
  1708. package/payload/server/public/assets/cormorant-latin-ext-500-normal-AH9qog1s.woff2 +0 -0
  1709. package/payload/server/public/assets/cormorant-latin-ext-500-normal-DAuUCO41.woff +0 -0
  1710. package/payload/server/public/assets/cormorant-vietnamese-300-normal-BVqIp_mg.woff2 +0 -0
  1711. package/payload/server/public/assets/cormorant-vietnamese-300-normal-CEMS9Pw-.woff +0 -0
  1712. package/payload/server/public/assets/cormorant-vietnamese-400-normal-C-RiYxEf.woff2 +0 -0
  1713. package/payload/server/public/assets/cormorant-vietnamese-400-normal-DmUuA7Y2.woff +0 -0
  1714. package/payload/server/public/assets/cormorant-vietnamese-500-normal-DsPuwQHi.woff2 +0 -0
  1715. package/payload/server/public/assets/cormorant-vietnamese-500-normal-tGBW_mI7.woff +0 -0
  1716. package/payload/server/public/assets/cose-bilkent-S5V4N54A-BhtgY3T7.js +1 -0
  1717. package/payload/server/public/assets/cytoscape.esm-C9yNhe1u.js +321 -0
  1718. package/payload/server/public/assets/dagre-CncXYNX1.js +1 -0
  1719. package/payload/server/public/assets/dagre-KV5264BT-C0CcgCHW.js +4 -0
  1720. package/payload/server/public/assets/data-Bt4Wsocg.js +1 -0
  1721. package/payload/server/public/assets/defaultLocale-_WRwicXn.js +1 -0
  1722. package/payload/server/public/assets/diagram-5BDNPKRD-CkUlWbsI.js +10 -0
  1723. package/payload/server/public/assets/diagram-G4DWMVQ6-DVZBG1Ul.js +24 -0
  1724. package/payload/server/public/assets/diagram-MMDJMWI5-BIb06ZkK.js +43 -0
  1725. package/payload/server/public/assets/diagram-TYMM5635-BcT0_WR8.js +24 -0
  1726. package/payload/server/public/assets/dist-Bd4S37oi.js +1 -0
  1727. package/payload/server/public/assets/dm-sans-latin-400-normal-BwCSEQnW.woff +0 -0
  1728. package/payload/server/public/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2 +0 -0
  1729. package/payload/server/public/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2 +0 -0
  1730. package/payload/server/public/assets/dm-sans-latin-500-normal-Dr3UlScf.woff +0 -0
  1731. package/payload/server/public/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff +0 -0
  1732. package/payload/server/public/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2 +0 -0
  1733. package/payload/server/public/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2 +0 -0
  1734. package/payload/server/public/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff +0 -0
  1735. package/payload/server/public/assets/erDiagram-SMLLAGMA-BHk6lxIT.js +85 -0
  1736. package/payload/server/public/assets/flatten-BsWEYbBB.js +1 -0
  1737. package/payload/server/public/assets/flowDiagram-DWJPFMVM-CjeJn490.js +162 -0
  1738. package/payload/server/public/assets/ganttDiagram-T4ZO3ILL-BGYvX3Lv.js +292 -0
  1739. package/payload/server/public/assets/gitGraph-7Q5UKJZL-DeTNsAO0.js +1 -0
  1740. package/payload/server/public/assets/gitGraphDiagram-UUTBAWPF-Br4WLGzW.js +106 -0
  1741. package/payload/server/public/assets/graph-CRSLozxc.js +1 -0
  1742. package/payload/server/public/assets/graph-labels-CQyZQ0u6.js +1 -0
  1743. package/payload/server/public/assets/graphlib-BWd9sMeP.js +1 -0
  1744. package/payload/server/public/assets/info-OMHHGYJF-DJJ9GlS6.js +1 -0
  1745. package/payload/server/public/assets/infoDiagram-42DDH7IO-BjZeQoNZ.js +2 -0
  1746. package/payload/server/public/assets/init-sTEcj9YX.js +1 -0
  1747. package/payload/server/public/assets/isEmpty-BWl67LAZ.js +1 -0
  1748. package/payload/server/public/assets/ishikawaDiagram-UXIWVN3A-POMae6Ni.js +70 -0
  1749. package/payload/server/public/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  1750. package/payload/server/public/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff +0 -0
  1751. package/payload/server/public/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff +0 -0
  1752. package/payload/server/public/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
  1753. package/payload/server/public/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff +0 -0
  1754. package/payload/server/public/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  1755. package/payload/server/public/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff +0 -0
  1756. package/payload/server/public/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
  1757. package/payload/server/public/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  1758. package/payload/server/public/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  1759. package/payload/server/public/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  1760. package/payload/server/public/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  1761. package/payload/server/public/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  1762. package/payload/server/public/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff +0 -0
  1763. package/payload/server/public/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
  1764. package/payload/server/public/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff +0 -0
  1765. package/payload/server/public/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff +0 -0
  1766. package/payload/server/public/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff +0 -0
  1767. package/payload/server/public/assets/journeyDiagram-VCZTEJTY-ledtLV6x.js +139 -0
  1768. package/payload/server/public/assets/jsx-runtime-DvanDPKm.css +1 -0
  1769. package/payload/server/public/assets/jsx-runtime-vPsBTwUp.js +9 -0
  1770. package/payload/server/public/assets/kanban-definition-6JOO6SKY-DI0T4W9z.js +89 -0
  1771. package/payload/server/public/assets/katex-s61Rgv6l.js +257 -0
  1772. package/payload/server/public/assets/lib-W5Jcz4p8.js +33 -0
  1773. package/payload/server/public/assets/line-D1281H12.js +1 -0
  1774. package/payload/server/public/assets/linear-0O14Y6uf.js +1 -0
  1775. package/payload/server/public/assets/mermaid-parser.core-Dt95U7zk.js +4 -0
  1776. package/payload/server/public/assets/mermaid.core-BuYSs1fU.js +11 -0
  1777. package/payload/server/public/assets/mindmap-definition-QFDTVHPH-CFE1lmfX.js +96 -0
  1778. package/payload/server/public/assets/ordinal-krseTxxN.js +1 -0
  1779. package/payload/server/public/assets/packet-4T2RLAQJ-CGbvGkvF.js +1 -0
  1780. package/payload/server/public/assets/page-CSUcuVW0.js +1 -0
  1781. package/payload/server/public/assets/page-TARBO-Yr.js +50 -0
  1782. package/payload/server/public/assets/path-B0Ik7Tu9.js +1 -0
  1783. package/payload/server/public/assets/pie-ZZUOXDRM-BZy8rjFn.js +1 -0
  1784. package/payload/server/public/assets/pieDiagram-DEJITSTG-BSd9xa7v.js +30 -0
  1785. package/payload/server/public/assets/public-5r6aRXrb.js +8 -0
  1786. package/payload/server/public/assets/quadrantDiagram-34T5L4WZ-xYehPVw5.js +7 -0
  1787. package/payload/server/public/assets/radar-PYXPWWZC-DcfWIVXr.js +1 -0
  1788. package/payload/server/public/assets/reduce-tk-xY6Fv.js +1 -0
  1789. package/payload/server/public/assets/requirementDiagram-MS252O5E-C6n77V1S.js +84 -0
  1790. package/payload/server/public/assets/rough.esm-DKRO8IF-.js +1 -0
  1791. package/payload/server/public/assets/sankeyDiagram-XADWPNL6-CWIfeO1M.js +10 -0
  1792. package/payload/server/public/assets/sequenceDiagram-FGHM5R23-DDv2DuMo.js +157 -0
  1793. package/payload/server/public/assets/src-B6XdH6xq.js +1 -0
  1794. package/payload/server/public/assets/stateDiagram-FHFEXIEX-BPZdmsww.js +1 -0
  1795. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-33eC4TwE.js +1 -0
  1796. package/payload/server/public/assets/timeline-definition-GMOUNBTQ-BpRT_wSX.js +120 -0
  1797. package/payload/server/public/assets/treeView-SZITEDCU-3WugwVdj.js +1 -0
  1798. package/payload/server/public/assets/treemap-W4RFUUIX-Cf5mDLlu.js +1 -0
  1799. package/payload/server/public/assets/vennDiagram-DHZGUBPP-BG8ubucH.js +34 -0
  1800. package/payload/server/public/assets/wardley-RL74JXVD-Bv4md4b3.js +1 -0
  1801. package/payload/server/public/assets/wardleyDiagram-NUSXRM2D-D4E7PU1B.js +20 -0
  1802. package/payload/server/public/assets/xychartDiagram-5P7HB3ND-Ur2xVM-c.js +7 -0
  1803. package/payload/server/public/brand/claude.png +0 -0
  1804. package/payload/server/public/brand/favicon.ico +0 -0
  1805. package/payload/server/public/brand/maxy-black.png +0 -0
  1806. package/payload/server/public/brand/maxy-horizontal.png +0 -0
  1807. package/payload/server/public/brand/maxy-monochrome.png +0 -0
  1808. package/payload/server/public/brand/maxy-square.png +0 -0
  1809. package/payload/server/public/brand/maxy.png +0 -0
  1810. package/payload/server/public/brand/star.png +0 -0
  1811. package/payload/server/public/brand-constants.json +8 -0
  1812. package/payload/server/public/brand-defaults.css +12 -0
  1813. package/payload/server/public/data.html +18 -0
  1814. package/payload/server/public/favicon.ico +0 -0
  1815. package/payload/server/public/graph.html +19 -0
  1816. package/payload/server/public/index.html +23 -0
  1817. package/payload/server/public/public.html +19 -0
  1818. package/payload/server/public/robots.txt +5 -0
  1819. package/payload/server/public/vnc-popout.html +63 -0
  1820. package/payload/server/server-init.cjs +115 -0
  1821. package/payload/server/server.js +14960 -0
@@ -0,0 +1,2370 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en-GB">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Property Folio — Template</title>
7
+ <link rel="preconnect" href="https://fonts.googleapis.com">
8
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
+ <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500;1,600&family=Lora:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
10
+ <style>
11
+ /* ═══════════════════════════════════════════════════
12
+ EDITORIAL PROPERTY FOLIO — CANONICAL TEMPLATE
13
+ A4 landscape (297 × 210 mm) — 16-page super-premium folio.
14
+ Reference register: Knight Frank country-houses / Strutt & Parker.
15
+ Type: Cormorant Garamond (display, italic-default at hero)
16
+ Lora (humanist serif body)
17
+ Inter (numeric labels, particulars)
18
+ Palette: ivory paper · ink · bronze · antique gold · champagne
19
+
20
+ SUBSTITUTION CONTRACT
21
+ ─────────────────────
22
+ This file is the CANONICAL template. Every property-specific value
23
+ is a {{ token }} placeholder — there is no exemplar copy left to
24
+ accidentally inherit. Substitution is mechanical and verifiable:
25
+ after rendering, `grep "{{" output/brochure.html` must return ZERO
26
+ matches. Any remaining {{ x }} is a bug.
27
+
28
+ The full token list, with source field, expected format, length
29
+ and voice, lives at:
30
+ references/placeholders.md
31
+ Each <!-- REPLACE: ... --> inline comment in this file gives the
32
+ short version (what fills the token, how long, what voice). The
33
+ placeholders.md file gives the long version with worked examples
34
+ from the validated muvin Sparrows Farm reference brochure.
35
+
36
+ Re-skin: agents override the design tokens in :root from their
37
+ brand DESIGN.md per the property-brochure SKILL ("registers" — see
38
+ references/registers.md).
39
+
40
+ Image filenames follow the pattern {{ property_slug }}-NN.webp,
41
+ where {{ property_slug }} is the literal slug from the property
42
+ directory (e.g. "sparrows-farm" or "agincourt-house") and NN is
43
+ the zero-padded image index per references/images.md.
44
+ ═══════════════════════════════════════════════════ */
45
+ :root {
46
+ /* Super-premium tokens (palette, type) */
47
+ --teal-900: #0E1418; /* primary ink */
48
+ --teal-950: #06080A; /* deepest surface (cover/back bg) */
49
+ --teal-700: #2A3036; /* secondary ink */
50
+ --gold-500: #A4884C; /* antique gold rule */
51
+ --gold-700: #7A6235; /* bronze accent */
52
+ --gold-300: #C9B07A; /* champagne flourish */
53
+ --paper-0: #FFFFFF;
54
+ --paper-25: #F8F4ED; /* ivory page */
55
+ --paper-50: #F4EFE5;
56
+ --paper-100: #EFE7D8; /* warm cream surface */
57
+ --slate-600: #5C6470;
58
+ --slate-400: #8A8E96;
59
+ --rule: rgba(14,20,24,0.16);
60
+ --rule-soft: rgba(14,20,24,0.08);
61
+ --rule-fine: #E2D5BD; /* champagne sand */
62
+ --ink: #0E1418;
63
+
64
+ --serif: 'Cormorant Garamond', 'EB Garamond', 'Garamond', 'Times New Roman', serif;
65
+ --body-serif: 'Lora', 'Source Serif Pro', 'Georgia', serif;
66
+ --sans: 'Inter', 'Söhne', -apple-system, BlinkMacSystemFont, sans-serif;
67
+ }
68
+
69
+ * { margin: 0; padding: 0; box-sizing: border-box; }
70
+ html { font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
71
+ body {
72
+ font-family: var(--body-serif);
73
+ background: #c9c1b1;
74
+ color: var(--ink);
75
+ line-height: 1.62;
76
+ font-weight: 400;
77
+ }
78
+
79
+ img { display: block; }
80
+
81
+ /* Super-premium body-copy contract: ragged-right, no hyphenation, on warm ivory */
82
+ .ed-body, .ed-deck, .opener-body p, .feature-page .panel p,
83
+ .spread-6 .bottom .ed-body, .toc-credit, .mi-foot, .back-tagline {
84
+ text-align: left !important;
85
+ hyphens: none !important;
86
+ -webkit-hyphens: none !important;
87
+ word-break: normal !important;
88
+ overflow-wrap: normal !important;
89
+ }
90
+ .opener-meta-row, .ed-stat .v, .mi-section .mi-row, .spec-list,
91
+ .opener-spec, .epc-bars, .attr-grid {
92
+ font-variant-numeric: tabular-nums;
93
+ font-feature-settings: "tnum" 1;
94
+ }
95
+
96
+ /* Download bar (screen only) */
97
+ .download-bar { position: fixed; top: 18px; right: 18px; z-index: 1000; }
98
+ .download-btn {
99
+ font-family: var(--sans);
100
+ font-size: 11px; font-weight: 400;
101
+ letter-spacing: 0.18em; text-transform: uppercase;
102
+ color: var(--paper-0); background: var(--teal-900);
103
+ border: 1px solid rgba(255,255,255,0.16);
104
+ padding: 12px 22px;
105
+ cursor: pointer;
106
+ display: flex; align-items: center; gap: 10px;
107
+ transition: background 250ms ease;
108
+ }
109
+ .download-btn:hover { background: var(--gold-700); }
110
+ .download-btn svg { width: 13px; height: 13px; }
111
+
112
+ /* ═══════════════════════════════════════════════════
113
+ PAGE BOXES
114
+ ═══════════════════════════════════════════════════ */
115
+ .page {
116
+ width: 297mm;
117
+ height: 210mm;
118
+ margin: 18px auto 0;
119
+ position: relative;
120
+ overflow: hidden;
121
+ background: var(--paper-25);
122
+ box-shadow: 0 4px 28px rgba(0,0,0,0.14);
123
+ }
124
+ .page:last-of-type { margin-bottom: 22px; }
125
+
126
+ /* Folio (page-number) chrome — the bottom strip on a magazine page */
127
+ .folio {
128
+ position: absolute;
129
+ bottom: 8mm; left: 14mm; right: 14mm;
130
+ display: flex; justify-content: space-between; align-items: center;
131
+ font-family: var(--sans);
132
+ font-size: 9px; font-weight: 500;
133
+ letter-spacing: 0.32em; text-transform: uppercase;
134
+ color: var(--teal-900);
135
+ z-index: 5;
136
+ pointer-events: none;
137
+ }
138
+ .folio > span {
139
+ background: rgba(252, 251, 248, 0.92);
140
+ backdrop-filter: blur(10px) saturate(1.2);
141
+ -webkit-backdrop-filter: blur(10px) saturate(1.2);
142
+ padding: 5px 10px;
143
+ border-radius: 2px;
144
+ box-shadow: 0 1px 0 rgba(6,68,68,0.04);
145
+ white-space: nowrap;
146
+ }
147
+ .folio .folio-mid { letter-spacing: 0.4em; }
148
+ .folio em { font-style: normal; color: var(--gold-700); font-weight: 500; }
149
+
150
+ /* On dark/photo-heavy pages, swap to light text on dark pill */
151
+ .page.folio-dark .folio { color: var(--paper-25); }
152
+ .page.folio-dark .folio > span { background: rgba(6, 68, 68, 0.55); }
153
+ .page.folio-dark .folio em { color: var(--gold-300); }
154
+
155
+ /* ═══════════════════════════════════════════════════
156
+ COVER — split layout: paper title block on top, full-bleed photo below
157
+ Reference register: Knight Frank country-houses / Strutt & Parker folios
158
+ ═══════════════════════════════════════════════════ */
159
+ .cover {
160
+ background: var(--paper-25);
161
+ color: var(--ink);
162
+ display: grid;
163
+ grid-template-rows: 86mm 1fr;
164
+ }
165
+
166
+ .cover-paper {
167
+ position: relative;
168
+ padding: 14mm 22mm 10mm;
169
+ display: flex; flex-direction: column;
170
+ align-items: center; justify-content: center;
171
+ text-align: center;
172
+ }
173
+
174
+ .cover-mast {
175
+ position: absolute;
176
+ top: 12mm; left: 0; right: 0;
177
+ display: flex; align-items: center; justify-content: center; gap: 14px;
178
+ font-family: var(--sans);
179
+ font-size: 9px; font-weight: 500;
180
+ letter-spacing: 0.42em; text-transform: uppercase;
181
+ color: var(--gold-700);
182
+ }
183
+ .cover-mast .pipe { width: 1px; height: 12px; background: var(--gold-700); opacity: 0.5; }
184
+ .cover-mast .brand { color: var(--gold-700); }
185
+ .cover-mast .label { color: var(--gold-700); opacity: 0.86; }
186
+
187
+ .cover-title-line {
188
+ display: flex; align-items: center; justify-content: center; gap: 28px;
189
+ margin-top: 6mm;
190
+ width: 100%;
191
+ }
192
+ .cover-title-line .flank {
193
+ flex: 1;
194
+ height: 1px;
195
+ background: var(--gold-500);
196
+ opacity: 0.55;
197
+ max-width: 70mm;
198
+ }
199
+
200
+ .cover-title {
201
+ font-family: var(--serif);
202
+ font-style: normal;
203
+ font-weight: 400;
204
+ font-size: 64px;
205
+ line-height: 1;
206
+ letter-spacing: 0.18em;
207
+ text-indent: 0.18em; /* compensate for trailing letter-spacing */
208
+ text-transform: uppercase;
209
+ color: var(--ink);
210
+ white-space: nowrap;
211
+ }
212
+
213
+ .cover-subtitle {
214
+ margin-top: 16px;
215
+ font-family: var(--sans);
216
+ font-size: 11px; font-weight: 500;
217
+ letter-spacing: 0.42em; text-transform: uppercase;
218
+ color: var(--teal-700);
219
+ }
220
+ .cover-subtitle em {
221
+ font-style: normal;
222
+ color: var(--gold-700);
223
+ font-weight: 500;
224
+ }
225
+
226
+ .cover-image {
227
+ position: relative;
228
+ overflow: hidden;
229
+ }
230
+ .cover-image > img {
231
+ width: 100%; height: 100%;
232
+ object-fit: cover;
233
+ object-position: 50% 50%;
234
+ }
235
+
236
+ /* ═══════════════════════════════════════════════════
237
+ CONTENTS PAGE
238
+ ═══════════════════════════════════════════════════ */
239
+ .toc-page {
240
+ display: grid;
241
+ grid-template-columns: 1.1fr 1fr;
242
+ height: 100%;
243
+ }
244
+ .toc-image {
245
+ position: relative;
246
+ overflow: hidden;
247
+ }
248
+ .toc-image img { width: 100%; height: 100%; object-fit: cover; }
249
+ .toc-image::after {
250
+ content: '';
251
+ position: absolute; inset: 0;
252
+ background: linear-gradient(180deg, transparent 60%, rgba(14,20,24,0.18) 100%);
253
+ }
254
+ .toc-image .caption {
255
+ position: absolute; bottom: 12mm; left: 12mm; right: 12mm;
256
+ padding: 14px 18px 16px;
257
+ background: rgba(14,20,24,0.78);
258
+ border-left: 1px solid var(--gold-300);
259
+ font-family: var(--serif);
260
+ font-style: italic;
261
+ font-weight: 400;
262
+ font-size: 16px;
263
+ color: var(--paper-0);
264
+ letter-spacing: 0.01em;
265
+ line-height: 1.45;
266
+ }
267
+ .toc-image .caption::before { display: none; }
268
+
269
+ .toc-content {
270
+ padding: 18mm 16mm 16mm;
271
+ display: flex; flex-direction: column;
272
+ justify-content: space-between;
273
+ }
274
+ .toc-eyebrow {
275
+ font-family: var(--sans);
276
+ font-size: 10px; font-weight: 500;
277
+ letter-spacing: 0.42em; text-transform: uppercase;
278
+ color: var(--gold-700);
279
+ }
280
+ .toc-rule { width: 32px; height: 1px; background: var(--gold-500); margin: 7px 0 14px; }
281
+ .toc-title.compact {
282
+ font-size: 38px !important;
283
+ line-height: 0.95 !important;
284
+ margin-bottom: 16px !important;
285
+ }
286
+ .toc-title {
287
+ font-family: var(--serif);
288
+ font-weight: 400;
289
+ font-size: 56px;
290
+ line-height: 1;
291
+ color: var(--teal-900);
292
+ letter-spacing: -0.01em;
293
+ margin-bottom: 24px;
294
+ }
295
+ .toc-title em { font-style: italic; color: var(--gold-700); }
296
+
297
+ .toc-list {
298
+ list-style: none;
299
+ border-top: 1px solid var(--rule);
300
+ }
301
+ .toc-list li {
302
+ display: grid;
303
+ grid-template-columns: 26px 1fr 34px;
304
+ align-items: baseline;
305
+ column-gap: 12px;
306
+ padding: 6.5px 0;
307
+ border-bottom: 1px solid var(--rule);
308
+ }
309
+ .toc-num {
310
+ font-family: var(--serif);
311
+ font-style: italic;
312
+ font-size: 13px;
313
+ color: var(--gold-700);
314
+ }
315
+ .toc-name {
316
+ font-family: var(--serif);
317
+ font-size: 15.5px;
318
+ font-weight: 400;
319
+ color: var(--teal-900);
320
+ letter-spacing: 0.005em;
321
+ line-height: 1.25;
322
+ }
323
+ .toc-name span {
324
+ font-family: var(--sans);
325
+ font-size: 8.5px; font-weight: 400;
326
+ letter-spacing: 0.18em; text-transform: uppercase;
327
+ color: var(--slate-600);
328
+ display: block;
329
+ margin-top: 2px;
330
+ }
331
+ .toc-page-num {
332
+ font-family: var(--sans);
333
+ font-size: 10px; font-weight: 500;
334
+ letter-spacing: 0.2em;
335
+ color: var(--gold-700);
336
+ text-align: right;
337
+ }
338
+
339
+ .toc-credit {
340
+ margin-top: auto;
341
+ font-family: var(--body-serif);
342
+ font-style: italic;
343
+ font-size: 11px;
344
+ color: var(--slate-600);
345
+ line-height: 1.55;
346
+ }
347
+ .toc-credit strong { font-style: normal; color: var(--teal-900); font-weight: 600; }
348
+ .toc-credit .brand-mark {
349
+ display: block;
350
+ font-family: var(--sans);
351
+ font-style: normal;
352
+ font-size: 10px; font-weight: 500;
353
+ letter-spacing: 0.32em; text-transform: uppercase;
354
+ color: var(--gold-700);
355
+ margin-bottom: 10px;
356
+ }
357
+
358
+ /* ═══════════════════════════════════════════════════
359
+ SHARED EDITORIAL STYLES
360
+ ═══════════════════════════════════════════════════ */
361
+ .ed-eyebrow {
362
+ font-family: var(--sans);
363
+ font-size: 9.5px; font-weight: 500;
364
+ letter-spacing: 0.42em; text-transform: uppercase;
365
+ color: var(--gold-700);
366
+ margin-bottom: 8px;
367
+ }
368
+ .ed-rule { width: 32px; height: 1px; background: var(--gold-500); margin: 8px 0 14px; }
369
+
370
+ .ed-headline {
371
+ font-family: var(--serif);
372
+ font-weight: 400;
373
+ font-size: 50px;
374
+ line-height: 0.98;
375
+ letter-spacing: -0.012em;
376
+ color: var(--teal-900);
377
+ }
378
+ .ed-headline em { font-style: italic; font-weight: 400; color: var(--gold-700); }
379
+ .ed-headline.smaller { font-size: 38px; }
380
+
381
+ .ed-deck {
382
+ font-family: var(--serif);
383
+ font-style: italic;
384
+ font-weight: 400;
385
+ font-size: 17px;
386
+ line-height: 1.42;
387
+ color: var(--teal-700);
388
+ margin-top: 16px;
389
+ letter-spacing: 0.005em;
390
+ }
391
+
392
+ .ed-body {
393
+ font-family: var(--body-serif);
394
+ font-size: 10.5px; font-weight: 400;
395
+ line-height: 1.62;
396
+ color: #1a2026;
397
+ text-align: left;
398
+ hyphens: none;
399
+ letter-spacing: 0.005em;
400
+ }
401
+ .ed-body + .ed-body { margin-top: 9px; }
402
+ .ed-body strong { color: var(--teal-900); font-weight: 600; }
403
+ .ed-body em { color: var(--gold-700); font-style: italic; }
404
+
405
+ .ed-body.dropcap::first-letter {
406
+ font-family: var(--serif);
407
+ font-style: italic;
408
+ font-weight: 400;
409
+ font-size: 68px;
410
+ line-height: 0.85;
411
+ float: left;
412
+ color: var(--gold-700);
413
+ padding: 6px 10px 0 0;
414
+ margin-top: 4px;
415
+ }
416
+
417
+ .ed-caption {
418
+ font-family: var(--serif);
419
+ font-style: italic;
420
+ font-size: 11px;
421
+ color: var(--slate-600);
422
+ line-height: 1.5;
423
+ letter-spacing: 0.01em;
424
+ margin-top: 6px;
425
+ }
426
+ .ed-caption strong { font-style: normal; color: var(--teal-900); font-weight: 500; }
427
+
428
+ .ed-pullquote {
429
+ font-family: var(--serif);
430
+ font-style: italic;
431
+ font-weight: 400;
432
+ font-size: 26px;
433
+ line-height: 1.22;
434
+ color: var(--teal-900);
435
+ letter-spacing: -0.005em;
436
+ padding: 12px 0 14px;
437
+ border-top: 1px solid var(--rule);
438
+ border-bottom: 1px solid var(--rule);
439
+ }
440
+ .ed-pullquote::before {
441
+ content: '“';
442
+ display: block;
443
+ font-size: 50px;
444
+ line-height: 0.6;
445
+ color: var(--gold-500);
446
+ margin-bottom: 8px;
447
+ }
448
+ .ed-pullquote .attrib {
449
+ display: block;
450
+ font-family: var(--sans);
451
+ font-style: normal;
452
+ font-size: 9px; font-weight: 500;
453
+ letter-spacing: 0.32em; text-transform: uppercase;
454
+ color: var(--slate-600);
455
+ margin-top: 12px;
456
+ }
457
+
458
+ .ed-stat {
459
+ border-top: 1px solid var(--rule);
460
+ padding-top: 8px;
461
+ }
462
+ .ed-stat .v {
463
+ font-family: var(--serif);
464
+ font-size: 36px; font-weight: 400;
465
+ line-height: 1;
466
+ color: var(--teal-900);
467
+ letter-spacing: -0.01em;
468
+ }
469
+ .ed-stat .v em { font-style: italic; color: var(--gold-700); }
470
+ .ed-stat .l {
471
+ font-family: var(--sans);
472
+ font-size: 8.5px; font-weight: 400;
473
+ letter-spacing: 0.28em; text-transform: uppercase;
474
+ color: var(--slate-600);
475
+ margin-top: 8px;
476
+ }
477
+
478
+ /* ═══════════════════════════════════════════════════
479
+ SPREAD 01 — OPENER (Pont Street-style two-page editorial)
480
+ Big serif title left, hero photo right
481
+ ═══════════════════════════════════════════════════ */
482
+ .opener {
483
+ display: grid;
484
+ grid-template-columns: 1fr 1.35fr;
485
+ height: 100%;
486
+ }
487
+ .opener-text {
488
+ padding: 18mm 14mm 14mm 18mm;
489
+ display: flex; flex-direction: column;
490
+ }
491
+ .opener-spec {
492
+ margin-top: 10px;
493
+ font-family: var(--serif);
494
+ font-style: italic;
495
+ font-size: 16px;
496
+ color: var(--gold-700);
497
+ letter-spacing: 0.01em;
498
+ }
499
+ .opener-spec strong { font-style: normal; font-weight: 500; color: var(--teal-900); }
500
+
501
+ .opener-title {
502
+ font-family: var(--serif);
503
+ font-style: italic;
504
+ font-weight: 400;
505
+ font-size: 72px;
506
+ line-height: 0.96;
507
+ letter-spacing: -0.016em;
508
+ color: var(--teal-900);
509
+ margin: 14px 0 0;
510
+ }
511
+ .opener-title em {
512
+ display: block;
513
+ font-style: italic;
514
+ font-weight: 400;
515
+ color: var(--gold-700);
516
+ font-size: 0.36em;
517
+ line-height: 1.2;
518
+ margin-top: 8px;
519
+ letter-spacing: 0.18em;
520
+ text-transform: uppercase;
521
+ font-family: var(--sans);
522
+ }
523
+
524
+ .opener-meta-row {
525
+ display: flex; flex-wrap: nowrap; gap: 14px;
526
+ margin: 18px 0 16px;
527
+ padding: 12px 0;
528
+ border-top: 1px solid var(--rule);
529
+ border-bottom: 1px solid var(--rule);
530
+ font-variant-numeric: tabular-nums;
531
+ }
532
+ .opener-meta-row .item {
533
+ flex: 0 1 auto;
534
+ min-width: 0;
535
+ white-space: nowrap;
536
+ font-family: var(--serif);
537
+ }
538
+ .opener-meta-row .item .k {
539
+ font-family: var(--sans);
540
+ font-size: 8.5px; font-weight: 500;
541
+ letter-spacing: 0.22em; text-transform: uppercase;
542
+ color: var(--slate-600);
543
+ display: block; margin-bottom: 4px;
544
+ white-space: nowrap;
545
+ }
546
+ .opener-meta-row .item .v {
547
+ font-family: var(--serif);
548
+ font-size: 17px; font-weight: 400;
549
+ color: var(--teal-900);
550
+ letter-spacing: 0;
551
+ white-space: nowrap;
552
+ }
553
+ .opener-meta-row .item .v em { font-style: italic; color: var(--gold-700); white-space: nowrap; }
554
+
555
+ .opener-body { margin-top: auto; }
556
+ .opener-body .ed-body { font-size: 10.5px; line-height: 1.58; }
557
+
558
+ .opener-image {
559
+ position: relative;
560
+ overflow: hidden;
561
+ }
562
+ .opener-image img { width: 100%; height: 100%; object-fit: cover; }
563
+ .opener-image::after {
564
+ content: '';
565
+ position: absolute; inset: 0;
566
+ background: linear-gradient(180deg, transparent 60%, rgba(14,20,24,0.18) 100%);
567
+ }
568
+ .opener-image .img-caption {
569
+ position: absolute;
570
+ bottom: 12mm; right: 12mm;
571
+ padding: 12px 16px 14px;
572
+ background: rgba(14,20,24,0.78);
573
+ border-right: 1px solid var(--gold-300);
574
+ font-family: var(--serif);
575
+ font-style: italic;
576
+ font-weight: 400;
577
+ font-size: 14px;
578
+ color: var(--paper-0);
579
+ text-align: right;
580
+ line-height: 1.5;
581
+ max-width: 320px;
582
+ }
583
+ .opener-image .img-caption::before { display: none; }
584
+
585
+ /* ═══════════════════════════════════════════════════
586
+ SPREAD 02 — STORY: ground floor / living
587
+ Mosaic with narrative column
588
+ ═══════════════════════════════════════════════════ */
589
+ .spread {
590
+ padding: 14mm 14mm 16mm;
591
+ height: 100%;
592
+ display: grid;
593
+ gap: 10px;
594
+ }
595
+
596
+ .spread-2 {
597
+ grid-template-columns: 1.1fr 1fr 1.1fr;
598
+ grid-template-rows: 1fr 56mm;
599
+ min-height: 0;
600
+ }
601
+ .spread-2 .hero-img {
602
+ grid-column: 1 / 3;
603
+ grid-row: 1;
604
+ overflow: hidden;
605
+ position: relative;
606
+ min-height: 0;
607
+ }
608
+ .spread-2 .hero-img img { width: 100%; height: 100%; object-fit: cover; }
609
+
610
+ .spread-2 .text-col {
611
+ grid-column: 3;
612
+ grid-row: 1;
613
+ padding: 2mm 0 0 4mm;
614
+ display: flex; flex-direction: column;
615
+ min-height: 0;
616
+ overflow: hidden;
617
+ }
618
+
619
+ .spread-2 .strip {
620
+ grid-column: 1 / 4;
621
+ grid-row: 2;
622
+ margin-top: 2mm;
623
+ display: grid;
624
+ grid-template-columns: 1fr 1fr 1fr;
625
+ gap: 14px;
626
+ }
627
+ .spread-2 .strip-cell { display: flex; flex-direction: column; gap: 6px; }
628
+ .spread-2 .strip-cell img {
629
+ width: 100%; height: 42mm; object-fit: cover;
630
+ }
631
+
632
+ /* ═══════════════════════════════════════════════════
633
+ SPREAD 03 — RECEPTION ROOMS / HALL
634
+ Asymmetric: left big text, right offset photo column
635
+ ═══════════════════════════════════════════════════ */
636
+ .spread-3 {
637
+ grid-template-columns: 1fr 1fr;
638
+ grid-template-rows: 60mm 1fr;
639
+ column-gap: 18px;
640
+ row-gap: 8px;
641
+ min-height: 0;
642
+ }
643
+ .spread-3 .head {
644
+ grid-column: 1 / 3;
645
+ grid-row: 1;
646
+ display: grid;
647
+ grid-template-columns: 1fr 1fr;
648
+ column-gap: 22px;
649
+ align-items: end;
650
+ overflow: hidden;
651
+ }
652
+ .spread-3 .head .right { padding-left: 0; }
653
+
654
+ .spread-3 .left-img {
655
+ grid-column: 1;
656
+ grid-row: 2;
657
+ position: relative;
658
+ overflow: hidden;
659
+ }
660
+ .spread-3 .left-img img { width: 100%; height: 100%; object-fit: cover; }
661
+
662
+ .spread-3 .right-stack {
663
+ grid-column: 2;
664
+ grid-row: 2;
665
+ display: grid;
666
+ grid-template-rows: 1fr 1fr;
667
+ row-gap: 10px;
668
+ min-height: 0;
669
+ }
670
+ .spread-3 .right-stack .cell { position: relative; overflow: hidden; min-height: 0; }
671
+ .spread-3 .right-stack img { width: 100%; height: 100%; object-fit: cover; }
672
+ .spread-3 .right-stack img { width: 100%; height: 100%; object-fit: cover; }
673
+
674
+ /* ═══════════════════════════════════════════════════
675
+ SPREAD 04 — BEDROOMS GALLERY (Savills-style)
676
+ Tile grid + sidebar text
677
+ ═══════════════════════════════════════════════════ */
678
+ .spread-4 {
679
+ grid-template-columns: 1fr 2.1fr;
680
+ grid-template-rows: auto 1fr;
681
+ column-gap: 18px;
682
+ row-gap: 12px;
683
+ }
684
+ .spread-4 .text-side {
685
+ grid-column: 1;
686
+ grid-row: 1 / 3;
687
+ padding-right: 6mm;
688
+ display: flex; flex-direction: column;
689
+ }
690
+ .spread-4 .gallery {
691
+ grid-column: 2;
692
+ grid-row: 1 / 3;
693
+ display: grid;
694
+ grid-template-columns: 1.4fr 1fr 1fr;
695
+ grid-template-rows: 1fr 1fr;
696
+ gap: 10px;
697
+ }
698
+ .spread-4 .gallery .cell { position: relative; overflow: hidden; }
699
+ .spread-4 .gallery .cell img { width: 100%; height: 100%; object-fit: cover; }
700
+ .spread-4 .gallery .cell.tall { grid-row: 1 / 3; }
701
+
702
+ /* ═══════════════════════════════════════════════════
703
+ SPREAD 05 — ANNEXE FEATURE: full-bleed photo + side panel
704
+ ═══════════════════════════════════════════════════ */
705
+ .feature-page {
706
+ display: grid;
707
+ grid-template-columns: 1.45fr 1fr;
708
+ height: 100%;
709
+ }
710
+ .feature-page .photo {
711
+ position: relative; overflow: hidden;
712
+ }
713
+ .feature-page .photo img { width: 100%; height: 100%; object-fit: cover; }
714
+ .feature-page .photo::after {
715
+ content: '';
716
+ position: absolute; inset: 0;
717
+ background: linear-gradient(180deg, transparent 60%, rgba(14,20,24,0.18) 100%);
718
+ }
719
+ .feature-page .photo .photo-caption {
720
+ position: absolute;
721
+ bottom: 12mm; left: 12mm; right: 12mm;
722
+ padding: 12px 16px 14px;
723
+ background: rgba(14,20,24,0.78);
724
+ border-left: 1px solid var(--gold-300);
725
+ font-family: var(--serif);
726
+ font-style: italic;
727
+ font-weight: 400;
728
+ font-size: 14px;
729
+ color: var(--paper-0);
730
+ line-height: 1.5;
731
+ max-width: 75%;
732
+ }
733
+ .feature-page .photo .photo-caption::before { display: none; }
734
+
735
+ .feature-page .panel {
736
+ background: var(--paper-100);
737
+ padding: 22mm 14mm 18mm 16mm;
738
+ display: flex; flex-direction: column;
739
+ position: relative;
740
+ }
741
+ .feature-page .panel::before {
742
+ content: '';
743
+ position: absolute;
744
+ top: 14mm; left: 16mm; right: 14mm;
745
+ height: 1px;
746
+ background: var(--gold-500);
747
+ }
748
+
749
+ /* Annexe attribute cards */
750
+ .attr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; margin-top: 14px; }
751
+ .attr {
752
+ border-top: 1px solid var(--rule);
753
+ padding: 8px 0 4px;
754
+ }
755
+ .attr .k {
756
+ font-family: var(--sans);
757
+ font-size: 8px; font-weight: 500;
758
+ letter-spacing: 0.28em; text-transform: uppercase;
759
+ color: var(--gold-700);
760
+ margin-bottom: 4px;
761
+ }
762
+ .attr .v {
763
+ font-family: var(--serif);
764
+ font-size: 14px;
765
+ color: var(--teal-900);
766
+ line-height: 1.3;
767
+ letter-spacing: 0.005em;
768
+ }
769
+
770
+ /* ═══════════════════════════════════════════════════
771
+ SPREAD 06 — GROUNDS & DEVELOPMENT
772
+ Big landscape image top, two-column text under
773
+ ═══════════════════════════════════════════════════ */
774
+ .spread-6 {
775
+ grid-template-columns: 1fr 1fr 1fr 1fr;
776
+ grid-template-rows: 1.1fr auto;
777
+ row-gap: 14px;
778
+ column-gap: 14px;
779
+ }
780
+ .spread-6 .top-image {
781
+ grid-column: 1 / 5;
782
+ grid-row: 1;
783
+ position: relative; overflow: hidden;
784
+ }
785
+ .spread-6 .top-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
786
+ .spread-6 .top-image::after {
787
+ content: '';
788
+ position: absolute; inset: 0;
789
+ background: linear-gradient(180deg, rgba(14,20,24,0.32) 0%, rgba(14,20,24,0.10) 30%, rgba(14,20,24,0) 55%, rgba(14,20,24,0) 75%, rgba(14,20,24,0.45) 100%);
790
+ }
791
+ .spread-6 .top-image .overlay {
792
+ position: absolute;
793
+ top: 12mm; left: 12mm;
794
+ max-width: 60%;
795
+ padding: 14px 18px 16px;
796
+ background: rgba(14,20,24,0.78);
797
+ color: var(--paper-0);
798
+ border-left: 1px solid var(--gold-300);
799
+ }
800
+ .spread-6 .top-image .overlay .ed-eyebrow { color: var(--gold-300); margin-bottom: 6px; }
801
+ .spread-6 .top-image .overlay .ed-rule { background: var(--gold-300); margin: 6px 0 12px; }
802
+ .spread-6 .top-image .overlay .ed-headline { color: var(--paper-0); font-size: 38px; line-height: 1.0; }
803
+ .spread-6 .top-image .overlay .ed-headline em { color: var(--gold-300); }
804
+ .spread-6 .top-image .overlay .ed-eyebrow { color: var(--gold-300); }
805
+ .spread-6 .top-image .overlay .ed-rule { background: var(--gold-300); }
806
+ .spread-6 .top-image .overlay .ed-headline { color: var(--paper-0); font-size: 44px; }
807
+ .spread-6 .top-image .overlay .ed-headline em { color: var(--gold-300); }
808
+
809
+ .spread-6 .bottom { grid-row: 2; grid-column: span 1; }
810
+ .spread-6 .bottom h4 {
811
+ font-family: var(--serif);
812
+ font-size: 19px; font-weight: 500;
813
+ color: var(--teal-900);
814
+ margin-bottom: 6px;
815
+ letter-spacing: 0.005em;
816
+ }
817
+ .spread-6 .bottom h4 em { font-style: italic; font-weight: 400; color: var(--gold-700); }
818
+ .spread-6 .bottom .ed-body { font-size: 10px; }
819
+
820
+ /* ═══════════════════════════════════════════════════
821
+ SPREAD 07 — FLOORPLAN & SPECIFICATION
822
+ ═══════════════════════════════════════════════════ */
823
+ .spread-7 {
824
+ grid-template-columns: 1.4fr 1fr;
825
+ grid-template-rows: auto 1fr;
826
+ column-gap: 22px;
827
+ row-gap: 10px;
828
+ }
829
+ .spread-7 .header {
830
+ grid-column: 1 / 3;
831
+ }
832
+ .spread-7 .plan-area {
833
+ grid-column: 1;
834
+ grid-row: 2;
835
+ display: flex; flex-direction: column; align-items: center; justify-content: center;
836
+ }
837
+ .spread-7 .plan-area img {
838
+ max-width: 100%;
839
+ max-height: 130mm;
840
+ width: auto; height: auto;
841
+ object-fit: contain;
842
+ }
843
+ .spread-7 .plan-area .meta {
844
+ margin-top: 10px;
845
+ text-align: center;
846
+ }
847
+ .spread-7 .plan-area .meta .lead {
848
+ font-family: var(--serif);
849
+ font-size: 16px; font-weight: 400;
850
+ color: var(--teal-900);
851
+ letter-spacing: 0.005em;
852
+ }
853
+ .spread-7 .plan-area .meta .lead em { font-style: italic; color: var(--gold-700); }
854
+ .spread-7 .plan-area .meta .sub {
855
+ font-family: var(--sans);
856
+ font-size: 9px; font-weight: 300;
857
+ color: var(--slate-600);
858
+ letter-spacing: 0.16em; text-transform: uppercase;
859
+ margin-top: 4px;
860
+ }
861
+
862
+ .spec-side {
863
+ grid-column: 2;
864
+ grid-row: 2;
865
+ border-left: 1px solid var(--rule);
866
+ padding-left: 18px;
867
+ display: flex; flex-direction: column;
868
+ }
869
+ .spec-list {
870
+ list-style: none;
871
+ margin-top: 8px;
872
+ }
873
+ .spec-list li {
874
+ display: grid;
875
+ grid-template-columns: 24px 1fr;
876
+ column-gap: 12px;
877
+ padding: 7px 0;
878
+ border-bottom: 1px solid var(--rule-soft);
879
+ font-family: var(--sans);
880
+ font-size: 9.5px; font-weight: 300;
881
+ line-height: 1.5;
882
+ color: #2c3535;
883
+ }
884
+ .spec-list li:last-child { border-bottom: none; }
885
+ .spec-list li .num {
886
+ font-family: var(--serif);
887
+ font-style: italic;
888
+ font-size: 11px;
889
+ color: var(--gold-700);
890
+ }
891
+ .spec-list li strong { color: var(--teal-900); font-weight: 500; }
892
+
893
+ /* Location map — conditional. The slot lives between BROCHURE_MAP_SLOT_START / END
894
+ markers in the page-9 .spec-side block. property-extract screenshots whatever map
895
+ element the listing exposes (Google iframe, Mapbox/Leaflet div, static-map image,
896
+ etc.) — provider-agnostic — and saves the bytes as images/map.webp. When the slot
897
+ is non-null in property.json, the brochure agent leaves the block in place.
898
+ When the listing has no map, the agent deletes everything between the markers
899
+ (inclusive). Extract or omit — never synthesise. */
900
+ .location-map {
901
+ margin: 14px 0 0 0;
902
+ padding: 0;
903
+ border: 1px solid var(--rule);
904
+ background: var(--paper-100, #f6f1ea);
905
+ aspect-ratio: 16 / 10;
906
+ overflow: hidden;
907
+ position: relative;
908
+ display: flex; flex-direction: column;
909
+ }
910
+ .location-map img {
911
+ width: 100%; height: 100%;
912
+ object-fit: cover;
913
+ display: block;
914
+ }
915
+ .location-map figcaption {
916
+ position: absolute;
917
+ left: 0; right: 0; bottom: 0;
918
+ padding: 4px 8px;
919
+ background: rgba(252, 251, 248, 0.92);
920
+ font-family: var(--serif);
921
+ font-style: italic;
922
+ font-size: 8.5px;
923
+ line-height: 1.4;
924
+ color: var(--ink);
925
+ letter-spacing: 0.005em;
926
+ text-align: right;
927
+ border-top: 1px solid var(--rule);
928
+ }
929
+
930
+ /* EPC bars */
931
+ .epc-block { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--rule); }
932
+ .epc-title {
933
+ font-family: var(--serif);
934
+ font-size: 14px; font-weight: 500;
935
+ color: var(--teal-900);
936
+ margin-bottom: 8px;
937
+ letter-spacing: 0.005em;
938
+ }
939
+ .epc-title em { font-style: italic; color: var(--gold-700); }
940
+ .epc-bars { display: flex; gap: 2px; }
941
+ .epc-bar {
942
+ flex: 1;
943
+ height: 18px;
944
+ display: flex; align-items: center; justify-content: center;
945
+ font-family: var(--sans);
946
+ font-size: 9px; font-weight: 600;
947
+ color: white;
948
+ }
949
+ .epc-bar.a { background: #008054; }
950
+ .epc-bar.b { background: #19b459; }
951
+ .epc-bar.c { background: #8dce46; color: #1c2222; }
952
+ .epc-bar.d { background: #ffd500; color: #1c2222; }
953
+ .epc-bar.e { background: #fcaa65; color: #1c2222; }
954
+ .epc-bar.f { background: #ef8023; }
955
+ .epc-bar.g { background: #e9153b; }
956
+ .epc-bar.current {
957
+ outline: 2px solid var(--ink);
958
+ outline-offset: 2px;
959
+ z-index: 2;
960
+ position: relative;
961
+ }
962
+
963
+ /* ═══════════════════════════════════════════════════
964
+ SPREAD 08 — MATERIAL INFORMATION
965
+ Editorial directory style
966
+ ═══════════════════════════════════════════════════ */
967
+ .mi-page { padding: 18mm 14mm; height: 100%; display: flex; flex-direction: column; }
968
+ .mi-head { display: grid; grid-template-columns: 2fr 3fr; column-gap: 24px; align-items: end; margin-bottom: 14px; }
969
+ .mi-intro {
970
+ font-family: var(--serif);
971
+ font-style: italic;
972
+ font-size: 13px;
973
+ line-height: 1.55;
974
+ color: var(--teal-700);
975
+ border-left: 1px solid var(--gold-500);
976
+ padding-left: 14px;
977
+ }
978
+ .mi-grid {
979
+ display: grid;
980
+ grid-template-columns: 1fr 1fr 1fr;
981
+ column-gap: 24px;
982
+ row-gap: 18px;
983
+ margin-top: 6px;
984
+ }
985
+ .mi-section .mi-label {
986
+ font-family: var(--sans);
987
+ font-size: 9px; font-weight: 500;
988
+ letter-spacing: 0.36em; text-transform: uppercase;
989
+ color: var(--gold-700);
990
+ border-bottom: 1px solid var(--gold-500);
991
+ padding-bottom: 6px;
992
+ margin-bottom: 8px;
993
+ }
994
+ .mi-section .mi-row {
995
+ display: flex; justify-content: space-between; align-items: baseline;
996
+ padding: 6px 0;
997
+ border-bottom: 1px solid var(--rule-soft);
998
+ font-family: var(--sans);
999
+ font-size: 9.5px;
1000
+ column-gap: 10px;
1001
+ }
1002
+ .mi-section .mi-row:last-child { border-bottom: none; }
1003
+ .mi-section .mi-row .k {
1004
+ color: var(--slate-600); font-weight: 300;
1005
+ }
1006
+ .mi-section .mi-row .v {
1007
+ color: var(--teal-900); font-weight: 400;
1008
+ text-align: right;
1009
+ font-family: var(--serif);
1010
+ font-size: 11.5px;
1011
+ letter-spacing: 0.01em;
1012
+ }
1013
+ .mi-foot {
1014
+ margin-top: auto;
1015
+ padding-top: 14px;
1016
+ border-top: 1px solid var(--rule);
1017
+ font-family: var(--serif);
1018
+ font-style: italic;
1019
+ font-size: 11px;
1020
+ color: var(--slate-600);
1021
+ line-height: 1.55;
1022
+ }
1023
+
1024
+ /* ═══════════════════════════════════════════════════
1025
+ BACK PAGE
1026
+ ═══════════════════════════════════════════════════ */
1027
+ .backpage {
1028
+ background: var(--teal-950);
1029
+ color: var(--paper-25);
1030
+ }
1031
+ .backpage .bg { position: absolute; inset: 0; }
1032
+ .backpage .bg img { width: 100%; height: 100%; object-fit: cover; opacity: 0.32; }
1033
+ .backpage .bg::after {
1034
+ content: '';
1035
+ position: absolute; inset: 0;
1036
+ background:
1037
+ radial-gradient(ellipse 60% 60% at 50% 40%, rgba(201,176,122,0.12) 0%, transparent 70%),
1038
+ linear-gradient(180deg, rgba(14,20,24,0.62) 0%, rgba(14,20,24,0.50) 50%, rgba(14,20,24,0.92) 100%);
1039
+ }
1040
+
1041
+ .backpage-frame {
1042
+ position: absolute;
1043
+ top: 14mm; left: 14mm; right: 14mm; bottom: 14mm;
1044
+ border: 1px solid rgba(229, 210, 168, 0.32);
1045
+ z-index: 1;
1046
+ pointer-events: none;
1047
+ }
1048
+
1049
+ .backpage-inner {
1050
+ position: relative; z-index: 2;
1051
+ height: 100%;
1052
+ padding: 22mm 28mm 18mm;
1053
+ display: flex; flex-direction: column;
1054
+ align-items: center; justify-content: center;
1055
+ text-align: center;
1056
+ }
1057
+ .backpage-inner .back-mast { margin-bottom: 18px; }
1058
+ .back-mast {
1059
+ display: flex; align-items: center; justify-content: center; gap: 16px;
1060
+ font-family: var(--sans);
1061
+ font-size: 10px; font-weight: 400;
1062
+ letter-spacing: 0.55em; text-transform: uppercase;
1063
+ color: rgba(229, 210, 168, 0.82);
1064
+ margin-bottom: 22px;
1065
+ }
1066
+ .back-mast img.back-mast-logo {
1067
+ height: 36px; width: auto; display: block;
1068
+ filter: drop-shadow(0 2px 12px rgba(0,0,0,0.45));
1069
+ }
1070
+ .back-mast .pipe { width: 1px; height: 18px; background: rgba(229, 210, 168, 0.55); }
1071
+ .back-mast .brand { font-family: var(--sans); font-size: 11px; font-weight: 500; letter-spacing: 0.42em; text-transform: uppercase; color: rgba(229, 210, 168, 0.95); }
1072
+ .back-mast .label { letter-spacing: 0.45em; text-transform: uppercase; color: rgba(229, 210, 168, 0.88); }
1073
+
1074
+ /* QR strip on the back page */
1075
+ .back-qr-strip {
1076
+ display: flex; gap: 28px; justify-content: center; align-items: flex-start;
1077
+ margin-top: 22px;
1078
+ }
1079
+ .back-qr-strip a.qr {
1080
+ display: flex; flex-direction: column; align-items: center; gap: 6px;
1081
+ text-decoration: none;
1082
+ color: inherit;
1083
+ transition: opacity 200ms ease;
1084
+ }
1085
+ .back-qr-strip a.qr:hover { opacity: 0.85; }
1086
+ .back-qr-strip .qr img {
1087
+ width: 72px; height: 72px;
1088
+ background: var(--paper-0);
1089
+ padding: 6px;
1090
+ border: 1px solid rgba(229, 210, 168, 0.32);
1091
+ }
1092
+ .back-qr-strip .qr-label {
1093
+ font-family: var(--sans);
1094
+ font-size: 8px; font-weight: 500;
1095
+ letter-spacing: 0.28em; text-transform: uppercase;
1096
+ color: rgba(229, 210, 168, 0.78);
1097
+ text-align: center;
1098
+ }
1099
+ .back-qr-strip .qr-label em { font-style: italic; color: var(--gold-300); text-transform: none; letter-spacing: 0.04em; font-family: var(--body-serif); font-size: 11px; font-weight: 400; display: block; margin-top: 3px; }
1100
+ .back-qr-strip .qr-link {
1101
+ font-family: var(--sans);
1102
+ font-size: 9px; font-weight: 400;
1103
+ letter-spacing: 0.04em; text-transform: none;
1104
+ color: var(--gold-300);
1105
+ text-align: center;
1106
+ text-decoration: underline;
1107
+ text-decoration-color: rgba(201, 176, 122, 0.45);
1108
+ text-underline-offset: 3px;
1109
+ margin-top: 4px;
1110
+ font-variant-numeric: tabular-nums;
1111
+ }
1112
+ .back-contact-grid .cell .name .dot { color: rgba(229,210,168,0.6); font-style: normal; }
1113
+
1114
+ .back-headline {
1115
+ font-family: var(--serif);
1116
+ font-style: italic;
1117
+ font-weight: 400;
1118
+ font-size: 60px;
1119
+ line-height: 1.04;
1120
+ letter-spacing: -0.012em;
1121
+ color: var(--paper-0);
1122
+ margin-bottom: 12px;
1123
+ }
1124
+ .back-headline em { font-style: italic; color: var(--gold-300); }
1125
+
1126
+ .back-tagline {
1127
+ font-family: var(--serif);
1128
+ font-style: italic;
1129
+ font-size: 17px;
1130
+ color: rgba(252,251,248,0.82);
1131
+ line-height: 1.5;
1132
+ max-width: 540px;
1133
+ margin: 0 auto 28px;
1134
+ }
1135
+ .back-rule {
1136
+ width: 56px; height: 1px;
1137
+ background: var(--gold-500);
1138
+ margin: 0 auto 20px;
1139
+ }
1140
+
1141
+ .back-contact-grid {
1142
+ display: grid;
1143
+ grid-template-columns: 1fr 1fr;
1144
+ gap: 36px;
1145
+ max-width: 540px;
1146
+ margin: 0 auto;
1147
+ text-align: left;
1148
+ }
1149
+ .back-contact-grid .cell .k {
1150
+ font-family: var(--sans);
1151
+ font-size: 9px; font-weight: 500;
1152
+ letter-spacing: 0.32em; text-transform: uppercase;
1153
+ color: rgba(229, 210, 168, 0.7);
1154
+ margin-bottom: 8px;
1155
+ border-bottom: 1px solid rgba(229,210,168,0.25);
1156
+ padding-bottom: 6px;
1157
+ }
1158
+ .back-contact-grid .cell .name {
1159
+ font-family: var(--serif);
1160
+ font-size: 19px;
1161
+ color: var(--paper-0);
1162
+ margin-bottom: 6px;
1163
+ letter-spacing: 0.005em;
1164
+ }
1165
+ .back-contact-grid .cell .name em { font-style: italic; color: var(--gold-300); }
1166
+ .back-contact-grid .cell .line {
1167
+ font-family: var(--sans);
1168
+ font-size: 11px; font-weight: 300;
1169
+ color: rgba(252,251,248,0.85);
1170
+ line-height: 1.7;
1171
+ }
1172
+
1173
+ .back-foot {
1174
+ position: absolute;
1175
+ bottom: 28mm; left: 28mm; right: 28mm;
1176
+ z-index: 2;
1177
+ display: flex; justify-content: space-between; align-items: flex-end;
1178
+ }
1179
+ .back-foot .left, .back-foot .right {
1180
+ font-family: var(--sans);
1181
+ font-size: 9px; font-weight: 400;
1182
+ letter-spacing: 0.28em; text-transform: uppercase;
1183
+ color: rgba(252,251,248,0.55);
1184
+ }
1185
+ .back-foot .right { text-align: right; }
1186
+ .back-foot em { font-style: normal; color: var(--gold-300); }
1187
+
1188
+ .back-disclaimer {
1189
+ position: absolute;
1190
+ bottom: 16mm; left: 28mm; right: 28mm;
1191
+ z-index: 2;
1192
+ font-family: var(--serif);
1193
+ font-style: italic;
1194
+ font-size: 9px;
1195
+ line-height: 1.55;
1196
+ color: rgba(252,251,248,0.45);
1197
+ text-align: center;
1198
+ }
1199
+
1200
+ /* ═══════════════════════════════════════════════════
1201
+ INTERMISSION / FULL-BLEED IMAGE PAGES
1202
+ Used between chapters; image is the page, with one
1203
+ small caption pill anchored bottom-left. The folio
1204
+ is the only other element. Lets the photography
1205
+ breathe between editorial spreads.
1206
+ ═══════════════════════════════════════════════════ */
1207
+ .page.intermission { padding: 0; background: var(--ink); }
1208
+ .full-bleed { position: relative; width: 100%; height: 100%; overflow: hidden; }
1209
+ .full-bleed > img { width: 100%; height: 100%; object-fit: cover; display: block; }
1210
+ .full-bleed::after {
1211
+ content: '';
1212
+ position: absolute; inset: 0;
1213
+ background: linear-gradient(180deg, transparent 50%, rgba(14,20,24,0.45) 100%);
1214
+ pointer-events: none;
1215
+ }
1216
+ .caption-pill {
1217
+ position: absolute;
1218
+ left: 14mm; bottom: 14mm;
1219
+ max-width: 60%;
1220
+ padding: 12px 16px 14px;
1221
+ background: rgba(14,20,24,0.72);
1222
+ color: var(--paper-0);
1223
+ border-left: 1px solid var(--gold-300);
1224
+ z-index: 2;
1225
+ }
1226
+ .caption-pill .ed-eyebrow-light {
1227
+ display: block;
1228
+ font-family: var(--sans);
1229
+ font-size: 9px; font-weight: 500;
1230
+ letter-spacing: 0.36em; text-transform: uppercase;
1231
+ color: var(--gold-300);
1232
+ margin-bottom: 7px;
1233
+ }
1234
+ .caption-pill .caption-text {
1235
+ display: block;
1236
+ font-family: var(--body-serif);
1237
+ font-size: 11.5px; font-weight: 400;
1238
+ line-height: 1.55;
1239
+ color: var(--paper-0);
1240
+ letter-spacing: 0.005em;
1241
+ }
1242
+ .caption-pill .caption-text em { font-style: italic; color: var(--gold-300); font-weight: 500; }
1243
+
1244
+ /* ═══════════════════════════════════════════════════
1245
+ IMAGE-LED GRID PAGE — additional internal coverage
1246
+ ═══════════════════════════════════════════════════ */
1247
+ .gallery-page {
1248
+ display: grid;
1249
+ grid-template-rows: 32mm 1fr;
1250
+ grid-template-columns: 1fr;
1251
+ height: 100%;
1252
+ padding: 14mm 14mm 16mm;
1253
+ gap: 10px;
1254
+ }
1255
+ .gallery-page .gallery-head { grid-row: 1; display: flex; flex-direction: column; justify-content: flex-end; }
1256
+ .gallery-page .gallery-grid {
1257
+ grid-row: 2;
1258
+ display: grid;
1259
+ grid-template-columns: 1fr 1fr 1fr;
1260
+ grid-template-rows: 1fr 1fr;
1261
+ gap: 10px;
1262
+ min-height: 0;
1263
+ }
1264
+ .gallery-page .gallery-cell { position: relative; overflow: hidden; min-height: 0; }
1265
+ .gallery-page .gallery-cell.tall { grid-row: 1 / 3; }
1266
+ .gallery-page .gallery-cell img { width: 100%; height: 100%; object-fit: cover; display: block; }
1267
+ .gallery-page .gallery-cell figcaption {
1268
+ position: absolute; left: 8px; right: 8px; bottom: 8px;
1269
+ padding: 6px 10px;
1270
+ background: rgba(14,20,24,0.72);
1271
+ color: var(--paper-0);
1272
+ font-family: var(--body-serif);
1273
+ font-style: italic;
1274
+ font-size: 9.5px; line-height: 1.4;
1275
+ border-left: 1px solid var(--gold-300);
1276
+ }
1277
+
1278
+ /* ═══════════════════════════════════════════════════
1279
+ SITE PLAN PAGE — dedicated page for plot plan
1280
+ ═══════════════════════════════════════════════════ */
1281
+ .siteplan-page {
1282
+ display: grid;
1283
+ grid-template-rows: 32mm 1fr 18mm;
1284
+ grid-template-columns: 1.4fr 1fr;
1285
+ height: 100%;
1286
+ padding: 14mm 14mm 16mm;
1287
+ gap: 12px 22px;
1288
+ }
1289
+ .siteplan-page .head { grid-column: 1 / 3; grid-row: 1; }
1290
+ .siteplan-page .plan-area {
1291
+ grid-column: 1; grid-row: 2;
1292
+ display: flex; align-items: center; justify-content: center;
1293
+ background: var(--paper-50);
1294
+ overflow: hidden;
1295
+ }
1296
+ .siteplan-page .plan-area img {
1297
+ max-width: 100%; max-height: 100%;
1298
+ width: auto; height: auto;
1299
+ object-fit: contain;
1300
+ }
1301
+ .siteplan-page .text-side {
1302
+ grid-column: 2; grid-row: 2;
1303
+ border-left: 1px solid var(--rule);
1304
+ padding-left: 18px;
1305
+ display: flex; flex-direction: column;
1306
+ gap: 12px;
1307
+ }
1308
+ .siteplan-page .text-side h4 {
1309
+ font-family: var(--body-serif);
1310
+ font-style: normal; font-weight: 500;
1311
+ font-size: 13px;
1312
+ color: var(--teal-900);
1313
+ letter-spacing: 0.005em;
1314
+ }
1315
+ .siteplan-page .text-side h4 em { font-style: italic; color: var(--gold-700); font-weight: 500; }
1316
+
1317
+ /* Strengthened text-on-image scrim for the feature page (page 7),
1318
+ per the user feedback that the body copy was hard to read against the photo */
1319
+ .feature-page .panel { background: var(--paper-100); }
1320
+
1321
+ /* ═══════════════════════════════════════════════════
1322
+ PRINT
1323
+ ═══════════════════════════════════════════════════ */
1324
+ .print-img {
1325
+ position: absolute;
1326
+ width: 1px;
1327
+ height: 1px;
1328
+ opacity: 0;
1329
+ pointer-events: none;
1330
+ z-index: -1;
1331
+ }
1332
+
1333
+ @page { size: A4 landscape; margin: 0; }
1334
+ @media print {
1335
+ html, body { background: white; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
1336
+ .download-bar { display: none !important; }
1337
+ .page { margin: 0; box-shadow: none; page-break-after: always; page-break-inside: avoid; overflow: hidden; }
1338
+ .page:last-of-type { page-break-after: auto; }
1339
+
1340
+ /* PRIMARY PATH — when print-img snapshots exist, hide everything else and show only the snapshot.
1341
+ The snapshot is a flat raster of the on-screen page (folio + all chrome baked in). */
1342
+ .page:has(.print-img[src]:not([src=""])) > *:not(.print-img) { display: none !important; }
1343
+ .print-img[src]:not([src=""]) {
1344
+ position: absolute !important;
1345
+ inset: 0 !important;
1346
+ width: 100% !important;
1347
+ height: 100% !important;
1348
+ opacity: 1 !important;
1349
+ object-fit: cover !important;
1350
+ z-index: 9999 !important;
1351
+ }
1352
+
1353
+ /* FALLBACK PATH — no snapshot present. Print the live DOM directly.
1354
+ Force folio reliability: drop backdrop-filter (Chrome's PDF engine strips it, pill goes invisible),
1355
+ lift z-index above any absolute imagery, and bring it 2mm inward of the printable edge. */
1356
+ .folio { z-index: 100 !important; bottom: 6mm !important; }
1357
+ .folio > span { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: rgba(252, 251, 248, 0.95) !important; }
1358
+ .page.folio-dark .folio > span { background: rgba(6, 68, 68, 0.78) !important; }
1359
+ .back-foot { z-index: 100 !important; }
1360
+
1361
+ * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
1362
+ }
1363
+ </style>
1364
+ </head>
1365
+ <body>
1366
+
1367
+ <div class="download-bar">
1368
+ <button class="download-btn" onclick="window.print()">
1369
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
1370
+ <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
1371
+ <polyline points="7 10 12 15 17 10"/>
1372
+ <line x1="12" y1="15" x2="12" y2="3"/>
1373
+ </svg>
1374
+ Download PDF
1375
+ </button>
1376
+ </div>
1377
+
1378
+
1379
+ <!-- ════════════════════════════════════════════════════
1380
+ COVER
1381
+ ════════════════════════════════════════════════════ -->
1382
+ <section class="page cover" data-screen-label="01 Cover">
1383
+ <img class="print-img" src="cover-print.png" alt="">
1384
+
1385
+ <div class="cover-paper">
1386
+ <div class="cover-title-line">
1387
+ <span class="flank"></span>
1388
+ <!-- REPLACE {{ property_name }}: the property's distinct house name
1389
+ (e.g. "Sparrows Farm", "Agincourt House") OR — if the property has
1390
+ no separate name — the street as a tracked-caps proper noun
1391
+ (e.g. "12 Henham Road"). All-caps display via CSS; the source
1392
+ should be Title Case. Capped at ~28 characters to fit between
1393
+ the gold flank rules. See placeholders.md for the picking rule. -->
1394
+ <h1 class="cover-title">{{ property_name }}</h1>
1395
+ <span class="flank"></span>
1396
+ </div>
1397
+
1398
+ <!-- REPLACE {{ address_subtitle }}: the postal address as four parts
1399
+ joined by " <em>·</em> " — typically "<street> · <locality> ·
1400
+ <county> · <postcode>". For a property without a separate house
1401
+ name the cover-title carries the street already; then the subtitle
1402
+ drops "<street>" and starts at "<locality>". Use a non-breaking
1403
+ space in the postcode (`NP7&nbsp;9TS`). Single line; will not wrap. -->
1404
+ <div class="cover-subtitle">{{ address_subtitle }}</div>
1405
+ </div>
1406
+
1407
+ <div class="cover-image">
1408
+ <!-- REPLACE {{ cover_hero_src }} / {{ cover_hero_alt }}: the strongest
1409
+ landscape exterior shot. By the images.md slot map this is
1410
+ {{ property_slug }}-01.webp (cover hero index). Alt text: property
1411
+ name + the moment captured (e.g. "...at golden hour", "...framed by
1412
+ the village green"). -->
1413
+ <img src="images/{{ cover_hero_src }}" alt="{{ cover_hero_alt }}">
1414
+ </div>
1415
+ </section>
1416
+
1417
+
1418
+ <!-- ════════════════════════════════════════════════════
1419
+ CONTENTS — page 2
1420
+ ════════════════════════════════════════════════════ -->
1421
+ <section class="page" data-screen-label="02 Contents">
1422
+ <img class="print-img" src="page2-print.png" alt="">
1423
+ <div class="toc-page">
1424
+ <div class="toc-image">
1425
+ <!-- REPLACE {{ toc_hero_src }} / {{ toc_hero_alt }}: an interior shot
1426
+ establishing character — typically the principal reception or the
1427
+ open-plan kitchen-dining. Slot index per images.md is normally
1428
+ {{ property_slug }}-07. Alt text: short factual description. -->
1429
+ <img src="images/{{ toc_hero_src }}" alt="{{ toc_hero_alt }}">
1430
+ <!-- REPLACE {{ toc_caption }}: ONE editorial sentence — the property's
1431
+ elevator pitch. 15-30 words. Italic register. Often distilled from
1432
+ seller brief Q5 ("the feeling on entry") + Q19 ("three words"). -->
1433
+ <div class="caption">{{ toc_caption }}</div>
1434
+ </div>
1435
+ <div class="toc-content">
1436
+ <div>
1437
+ <div class="toc-rule"></div>
1438
+ <h2 class="toc-title">Contents <em>&amp; itinerary</em></h2>
1439
+
1440
+ <!-- REPLACE {{ toc_chapter_N_title }} / {{ toc_chapter_N_sub }} /
1441
+ {{ toc_chapter_N_page }}: chapter titles, sub-lines and page
1442
+ numbers for chapters i–viii. The canonical eight-chapter arc
1443
+ is documented in references/structure.md (Of place & pedigree →
1444
+ A home at ease → Hall, hearth & sun → Bedrooms & baths →
1445
+ [feature page] → Garden & ground → Plan & particulars →
1446
+ Material information). Adapt the chapter titles to the property
1447
+ (e.g. "Pool, outdoor kitchen & summerhouse" becomes "Terrace
1448
+ & outdoor kitchen" when the property has no pool). PAGE NUMBERS
1449
+ MUST match the actual rendered pages (default: 03, 04, 06, 08,
1450
+ 10, 12, 14, 15 for the 16-page folio with intermissions). -->
1451
+ <ul class="toc-list">
1452
+ <li>
1453
+ <span class="toc-num">i.</span>
1454
+ <span class="toc-name">{{ toc_chapter_1_title }}<span>{{ toc_chapter_1_sub }}</span></span>
1455
+ <span class="toc-page-num">{{ toc_chapter_1_page }}</span>
1456
+ </li>
1457
+ <li>
1458
+ <span class="toc-num">ii.</span>
1459
+ <span class="toc-name">{{ toc_chapter_2_title }}<span>{{ toc_chapter_2_sub }}</span></span>
1460
+ <span class="toc-page-num">{{ toc_chapter_2_page }}</span>
1461
+ </li>
1462
+ <li>
1463
+ <span class="toc-num">iii.</span>
1464
+ <span class="toc-name">{{ toc_chapter_3_title }}<span>{{ toc_chapter_3_sub }}</span></span>
1465
+ <span class="toc-page-num">{{ toc_chapter_3_page }}</span>
1466
+ </li>
1467
+ <li>
1468
+ <span class="toc-num">iv.</span>
1469
+ <span class="toc-name">{{ toc_chapter_4_title }}<span>{{ toc_chapter_4_sub }}</span></span>
1470
+ <span class="toc-page-num">{{ toc_chapter_4_page }}</span>
1471
+ </li>
1472
+ <li>
1473
+ <span class="toc-num">v.</span>
1474
+ <span class="toc-name">{{ toc_chapter_5_title }}<span>{{ toc_chapter_5_sub }}</span></span>
1475
+ <span class="toc-page-num">{{ toc_chapter_5_page }}</span>
1476
+ </li>
1477
+ <li>
1478
+ <span class="toc-num">vi.</span>
1479
+ <span class="toc-name">{{ toc_chapter_6_title }}<span>{{ toc_chapter_6_sub }}</span></span>
1480
+ <span class="toc-page-num">{{ toc_chapter_6_page }}</span>
1481
+ </li>
1482
+ <li>
1483
+ <span class="toc-num">vii.</span>
1484
+ <span class="toc-name">{{ toc_chapter_7_title }}<span>{{ toc_chapter_7_sub }}</span></span>
1485
+ <span class="toc-page-num">{{ toc_chapter_7_page }}</span>
1486
+ </li>
1487
+ <li>
1488
+ <span class="toc-num">viii.</span>
1489
+ <span class="toc-name">{{ toc_chapter_8_title }}<span>{{ toc_chapter_8_sub }}</span></span>
1490
+ <span class="toc-page-num">{{ toc_chapter_8_page }}</span>
1491
+ </li>
1492
+ </ul>
1493
+ </div>
1494
+
1495
+ <!-- REPLACE {{ toc_credit }}: agent attribution. Two short lines:
1496
+ italic photo/floorplan note (boilerplate, see placeholders.md) then
1497
+ a <strong>Marketed by {{ brand_name }}</strong>, {{ brand_town }},
1498
+ {{ brand_county }}. line. -->
1499
+ <div class="toc-credit">
1500
+ Photographed in&#8209;situ. Floor plans drawn to indicative scale; areas in sq&nbsp;ft and m&sup2;.<br>
1501
+ <strong>Marketed by {{ brand_name }}</strong>, {{ brand_town }}, {{ brand_county }}.
1502
+ </div>
1503
+ </div>
1504
+ </div>
1505
+ <!-- REPLACE {{ folio_strip }}: "{{ property_name }} · {{ locality }}" —
1506
+ this exact pattern repeats on every interior page. The middle slot
1507
+ changes per page ({{ folio_mid_NN }}); the right slot is the page
1508
+ number (literal, matches the page index). -->
1509
+ <div class="folio">
1510
+ <span>{{ folio_strip }}</span>
1511
+ <span class="folio-mid">— <em>Contents</em> —</span>
1512
+ <span>02</span>
1513
+ </div>
1514
+ </section>
1515
+
1516
+
1517
+ <!-- ════════════════════════════════════════════════════
1518
+ OPENER — Spread 03 (Chapter I — Of place & pedigree)
1519
+ ════════════════════════════════════════════════════ -->
1520
+ <section class="page" data-screen-label="03 Opener">
1521
+ <img class="print-img" src="page3-print.png" alt="">
1522
+ <div class="opener">
1523
+ <div class="opener-text">
1524
+ <!-- REPLACE {{ chapter1_eyebrow }}: "Chapter I · <chapter1 title>".
1525
+ The chapter1 title is normally "Of place & pedigree" — adapt only
1526
+ if the property's narrative arc differs (rare). -->
1527
+ <div class="ed-eyebrow">{{ chapter1_eyebrow }}</div>
1528
+ <div class="ed-rule"></div>
1529
+ <!-- REPLACE {{ opener_title_main }} / {{ opener_title_sub }}: h2 with
1530
+ the property name as the main glyph and locality+county as the
1531
+ inline <em> sub-line. CSS renders the <em> as a smaller tracked-
1532
+ caps label. -->
1533
+ <h2 class="opener-title">{{ opener_title_main }}<em>{{ opener_title_sub }}</em></h2>
1534
+ <!-- REPLACE {{ opener_spec_line }}: "<strong><street></strong> ·
1535
+ <postcode> &nbsp;·&nbsp; <em>{{ price_line }}</em>" — keep the
1536
+ strong/em formatting; use the exact price qualifier from
1537
+ property.json (Offers Over / Guide Price / Asking Price). -->
1538
+ <div class="opener-spec">{{ opener_spec_line }}</div>
1539
+
1540
+ <!-- REPLACE {{ opener_meta_N_label }} / {{ opener_meta_N_value }}:
1541
+ five fixed slots — typically Bedrooms, Bathrooms, Receptions,
1542
+ Internal (sq ft), Plot (acres). Numbers come from property.json.
1543
+ If a slot is genuinely unknown (e.g. plot not surveyed, year
1544
+ unknown), drop that <div class="item"> rather than inventing
1545
+ a value — never synthesise. If the property has no acreage,
1546
+ substitute "Type" / "Detached <em>YYYY</em>" or similar. The
1547
+ row MUST NOT wrap — see copy.md "Stats rows". -->
1548
+ <div class="opener-meta-row">
1549
+ <div class="item">
1550
+ <span class="k">{{ opener_meta_1_label }}</span>
1551
+ <span class="v">{{ opener_meta_1_value }}</span>
1552
+ </div>
1553
+ <div class="item">
1554
+ <span class="k">{{ opener_meta_2_label }}</span>
1555
+ <span class="v">{{ opener_meta_2_value }}</span>
1556
+ </div>
1557
+ <div class="item">
1558
+ <span class="k">{{ opener_meta_3_label }}</span>
1559
+ <span class="v">{{ opener_meta_3_value }}</span>
1560
+ </div>
1561
+ <div class="item">
1562
+ <span class="k">{{ opener_meta_4_label }}</span>
1563
+ <span class="v">{{ opener_meta_4_value }}</span>
1564
+ </div>
1565
+ <div class="item">
1566
+ <span class="k">{{ opener_meta_5_label }}</span>
1567
+ <span class="v">{{ opener_meta_5_value }}</span>
1568
+ </div>
1569
+ </div>
1570
+
1571
+ <!-- REPLACE {{ opener_para_1 }} / {{ opener_para_2 }}: two editorial
1572
+ paragraphs introducing the home. Style guide in copy.md →
1573
+ "Opener paragraphs (page 3)".
1574
+ - Para 1 carries the dropcap. 4–6 sentences. Set place + age +
1575
+ tenure context. Distil from seller brief Q1 (why bought) +
1576
+ Q3 (love most) + Q11 (the area).
1577
+ - Para 2: pairs character + comfort or period + modern.
1578
+ 3–4 sentences. End on an italic phrase (single sentence
1579
+ wrapped in <em>) — the brochure's "voice signature" closer.
1580
+ Use <strong> sparingly for the two or three signature features.
1581
+ Em-dashes MUST stay rare — see copy.md "Reduce em-dash usage". -->
1582
+ <div class="opener-body">
1583
+ <p class="ed-body dropcap">
1584
+ {{ opener_para_1 }}
1585
+ </p>
1586
+ <p class="ed-body">
1587
+ {{ opener_para_2 }}
1588
+ </p>
1589
+ </div>
1590
+ </div>
1591
+
1592
+ <div class="opener-image">
1593
+ <!-- REPLACE {{ opener_image_src }} / {{ opener_image_alt }} /
1594
+ {{ opener_image_caption }}: the principal elevation OR a strong
1595
+ aerial. Slot {{ property_slug }}-02 per images.md. Caption is a
1596
+ single italic sentence below the image. -->
1597
+ <img src="images/{{ opener_image_src }}" alt="{{ opener_image_alt }}">
1598
+ <div class="img-caption">{{ opener_image_caption }}</div>
1599
+ </div>
1600
+ </div>
1601
+ <div class="folio">
1602
+ <span>{{ folio_strip }}</span>
1603
+ <span class="folio-mid">— <em>{{ folio_mid_03 }}</em> —</span>
1604
+ <span>03</span>
1605
+ </div>
1606
+ </section>
1607
+
1608
+
1609
+ <!-- ════════════════════════════════════════════════════
1610
+ SPREAD 04 — Chapter II — A home at ease
1611
+ ════════════════════════════════════════════════════ -->
1612
+ <section class="page" data-screen-label="04 House at ease">
1613
+ <img class="print-img" src="page4-print.png" alt="">
1614
+ <div class="spread spread-2">
1615
+ <div class="hero-img">
1616
+ <!-- REPLACE {{ chapter2_hero_src }} / {{ chapter2_hero_alt }}: the
1617
+ wide open-plan reception or kitchen-dining hero. Slot 04 or 07. -->
1618
+ <img src="images/{{ chapter2_hero_src }}" alt="{{ chapter2_hero_alt }}">
1619
+ </div>
1620
+ <div class="text-col">
1621
+ <!-- REPLACE {{ chapter2_eyebrow }}: "Chapter II" (Roman numeral). -->
1622
+ <div class="ed-eyebrow">{{ chapter2_eyebrow }}</div>
1623
+ <div class="ed-rule"></div>
1624
+ <!-- REPLACE {{ chapter2_heading }}: h3 with property's headline word(s)
1625
+ — "A home at ease", "A home built around the table", etc.
1626
+ Italic glyph at the end via <em>...</em>. Avoid "house" — use
1627
+ "home" per copy.md "Home vs house". -->
1628
+ <h3 class="ed-headline smaller">{{ chapter2_heading }}</h3>
1629
+ <!-- REPLACE {{ chapter2_deck }}: single italic sentence summarising
1630
+ the chapter — 12-25 words. Sourced from seller brief Q5
1631
+ (feeling on entry) + Q7 (lifestyle). -->
1632
+ <p class="ed-deck">{{ chapter2_deck }}</p>
1633
+ <!-- REPLACE {{ chapter2_para_1 }} / {{ chapter2_para_2 }}: two body
1634
+ paragraphs walking the reader through the ground-floor flow.
1635
+ - Para 1: from entrance through reception(s) to the central
1636
+ living space (kitchen-dining-living). 4–6 sentences.
1637
+ - Para 2: kitchen specifics (cabinetry, worksurfaces, appliances)
1638
+ and how the rooms connect to utility + outdoor. 3–5 sentences.
1639
+ Close with an italic phrase if the seller's brief offers one. -->
1640
+ <p class="ed-body" style="margin-top: 10px;">
1641
+ {{ chapter2_para_1 }}
1642
+ </p>
1643
+ <p class="ed-body">
1644
+ {{ chapter2_para_2 }}
1645
+ </p>
1646
+ </div>
1647
+
1648
+ <!-- REPLACE {{ chapter2_strip_N_src }} / {{ chapter2_strip_N_alt }} /
1649
+ {{ chapter2_strip_N_caption_label }} / {{ chapter2_strip_N_caption_text }}:
1650
+ three strip cells along the bottom. Each cell has a bold lead-in
1651
+ (e.g. "The kitchen.") then a one-sentence descriptive caption.
1652
+ Pick distinct moments — not three angles of the same room. -->
1653
+ <div class="strip">
1654
+ <div class="strip-cell">
1655
+ <img src="images/{{ chapter2_strip_1_src }}" alt="{{ chapter2_strip_1_alt }}">
1656
+ <div class="ed-caption"><strong>{{ chapter2_strip_1_caption_label }}</strong> {{ chapter2_strip_1_caption_text }}</div>
1657
+ </div>
1658
+ <div class="strip-cell">
1659
+ <img src="images/{{ chapter2_strip_2_src }}" alt="{{ chapter2_strip_2_alt }}">
1660
+ <div class="ed-caption"><strong>{{ chapter2_strip_2_caption_label }}</strong> {{ chapter2_strip_2_caption_text }}</div>
1661
+ </div>
1662
+ <div class="strip-cell">
1663
+ <img src="images/{{ chapter2_strip_3_src }}" alt="{{ chapter2_strip_3_alt }}">
1664
+ <div class="ed-caption"><strong>{{ chapter2_strip_3_caption_label }}</strong> {{ chapter2_strip_3_caption_text }}</div>
1665
+ </div>
1666
+ </div>
1667
+ </div>
1668
+ <div class="folio">
1669
+ <span>{{ folio_strip }}</span>
1670
+ <span class="folio-mid">— <em>{{ folio_mid_04 }}</em> —</span>
1671
+ <span>04</span>
1672
+ </div>
1673
+ </section>
1674
+
1675
+
1676
+ <!-- ════════════════════════════════════════════════════
1677
+ PAGE 5 — INTERMISSION (after Chapter II — visual breath)
1678
+ ════════════════════════════════════════════════════ -->
1679
+ <section class="page intermission" data-screen-label="05 Intermission interior">
1680
+ <img class="print-img" src="page5-print.png" alt="">
1681
+ <div class="full-bleed">
1682
+ <!-- REPLACE {{ intermission_05_src }} / {{ intermission_05_alt }}:
1683
+ one full-bleed interior shot — a dining table moment, a hearth, an
1684
+ orangery — that gives the eye a beat between chapters II and III.
1685
+ Use a slot with strong negative space; avoid busy/cluttered images
1686
+ because the caption pill sits on top of them. -->
1687
+ <img src="images/{{ intermission_05_src }}" alt="{{ intermission_05_alt }}">
1688
+ <div class="caption-pill">
1689
+ <span class="ed-eyebrow-light">Continued, Chapter II</span>
1690
+ <!-- REPLACE {{ intermission_05_caption }}: single italic sentence
1691
+ anchoring the image. Start with "<em>The [room]</em>," — the
1692
+ italic noun matches the visible feature. 10-20 words. -->
1693
+ <span class="caption-text">{{ intermission_05_caption }}</span>
1694
+ </div>
1695
+ </div>
1696
+ <div class="folio folio-dark">
1697
+ <span>{{ folio_strip }}</span>
1698
+ <span class="folio-mid">— <em>{{ folio_mid_04 }}</em> —</span>
1699
+ <span>05</span>
1700
+ </div>
1701
+ </section>
1702
+
1703
+
1704
+ <!-- ════════════════════════════════════════════════════
1705
+ SPREAD 06 — Chapter III (e.g. "Hall, hearth & sun" / "Hearth & hall")
1706
+ ════════════════════════════════════════════════════ -->
1707
+ <section class="page" data-screen-label="06 Chapter III">
1708
+ <img class="print-img" src="page6-print.png" alt="">
1709
+ <div class="spread spread-3">
1710
+ <div class="head">
1711
+ <div class="left">
1712
+ <!-- REPLACE {{ chapter3_eyebrow }}: "Chapter III". -->
1713
+ <div class="ed-eyebrow">{{ chapter3_eyebrow }}</div>
1714
+ <div class="ed-rule"></div>
1715
+ <!-- REPLACE {{ chapter3_heading }}: h3, two lines, italic glyph at
1716
+ the end. Default arc names this chapter for the home's quieter
1717
+ ground-floor moments — hearth, entry, sun-room, drawing room.
1718
+ Adapt to the property's actual features ("Hearth & hall" /
1719
+ "Hall, hearth & sun" / "Reception rooms"). -->
1720
+ <h3 class="ed-headline">{{ chapter3_heading }}</h3>
1721
+ </div>
1722
+ <div class="right">
1723
+ <!-- REPLACE {{ chapter3_deck }}: italic deck sentence. -->
1724
+ <p class="ed-deck" style="margin-top: 0;">{{ chapter3_deck }}</p>
1725
+ <!-- REPLACE {{ chapter3_para }}: ONE longer body paragraph (6–9
1726
+ sentences) walking through the secondary reception rooms.
1727
+ Lean on character features — beams, fireplaces, glazing,
1728
+ flooring — and connect them to how the rooms are used. -->
1729
+ <p class="ed-body" style="margin-top: 12px;">
1730
+ {{ chapter3_para }}
1731
+ </p>
1732
+ </div>
1733
+ </div>
1734
+
1735
+ <!-- REPLACE {{ chapter3_left_src }} / {{ chapter3_left_alt }}: the
1736
+ largest single image of the chapter — typically the hearth or the
1737
+ signature reception. -->
1738
+ <div class="left-img">
1739
+ <img src="images/{{ chapter3_left_src }}" alt="{{ chapter3_left_alt }}">
1740
+ </div>
1741
+
1742
+ <!-- REPLACE {{ chapter3_stack_N_src }} / _alt: two stacked images on the
1743
+ right. Use complementary rooms (e.g. hallway + drawing room, or
1744
+ orangery + study). -->
1745
+ <div class="right-stack">
1746
+ <div class="cell">
1747
+ <img src="images/{{ chapter3_stack_1_src }}" alt="{{ chapter3_stack_1_alt }}">
1748
+ </div>
1749
+ <div class="cell">
1750
+ <img src="images/{{ chapter3_stack_2_src }}" alt="{{ chapter3_stack_2_alt }}">
1751
+ </div>
1752
+ </div>
1753
+ </div>
1754
+ <div class="folio">
1755
+ <span>{{ folio_strip }}</span>
1756
+ <span class="folio-mid">— <em>{{ folio_mid_06 }}</em> —</span>
1757
+ <span>06</span>
1758
+ </div>
1759
+ </section>
1760
+
1761
+
1762
+ <!-- ════════════════════════════════════════════════════
1763
+ PAGE 7 — INTERMISSION (after Chapter III — visual breath)
1764
+ ════════════════════════════════════════════════════ -->
1765
+ <section class="page intermission" data-screen-label="07 Intermission Chapter III">
1766
+ <img class="print-img" src="page7-print.png" alt="">
1767
+ <div class="full-bleed">
1768
+ <!-- REPLACE {{ intermission_07_src }} / {{ intermission_07_alt }}: a
1769
+ second full-bleed interior moment — the orangery, a sun-flooded
1770
+ reception, the hearth from a wider angle. -->
1771
+ <img src="images/{{ intermission_07_src }}" alt="{{ intermission_07_alt }}">
1772
+ <div class="caption-pill">
1773
+ <span class="ed-eyebrow-light">Continued, Chapter III</span>
1774
+ <!-- REPLACE {{ intermission_07_caption }}: italic anchor sentence,
1775
+ same style as page 5. -->
1776
+ <span class="caption-text">{{ intermission_07_caption }}</span>
1777
+ </div>
1778
+ </div>
1779
+ <div class="folio folio-dark">
1780
+ <span>{{ folio_strip }}</span>
1781
+ <span class="folio-mid">— <em>{{ folio_mid_06 }}</em> —</span>
1782
+ <span>07</span>
1783
+ </div>
1784
+ </section>
1785
+
1786
+
1787
+ <!-- ════════════════════════════════════════════════════
1788
+ SPREAD 08 — Chapter IV — Bedrooms & baths
1789
+ ════════════════════════════════════════════════════ -->
1790
+ <section class="page" data-screen-label="08 Bedrooms baths">
1791
+ <img class="print-img" src="page8-print.png" alt="">
1792
+ <div class="spread spread-4">
1793
+ <div class="text-side">
1794
+ <!-- REPLACE {{ chapter4_eyebrow }}: "Chapter IV". -->
1795
+ <div class="ed-eyebrow">{{ chapter4_eyebrow }}</div>
1796
+ <div class="ed-rule"></div>
1797
+ <!-- REPLACE {{ chapter4_heading }}: "Bedrooms<br>&amp; <em>baths</em>"
1798
+ or similar — keep <br> for two-line setting. -->
1799
+ <h3 class="ed-headline smaller">{{ chapter4_heading }}</h3>
1800
+ <!-- REPLACE {{ chapter4_deck }}: italic deck. Mention the count (X
1801
+ bedrooms across Y floors) and the principal suite's signature. -->
1802
+ <p class="ed-deck">{{ chapter4_deck }}</p>
1803
+
1804
+ <!-- REPLACE {{ chapter4_para_1 }}: 3–5 sentences walking the sleeping
1805
+ floor — staircase, landing, second/third/fourth bedrooms in order.
1806
+ Lean on light, beam, glazing. -->
1807
+ <p class="ed-body" style="margin-top: 10px;">
1808
+ {{ chapter4_para_1 }}
1809
+ </p>
1810
+
1811
+ <!-- REPLACE three .ed-stat blocks. Each has a big number value (.v
1812
+ with optional <em> unit) and an all-caps slate label (.l).
1813
+ Typical content: bedroom count + character, bathroom count + en-
1814
+ suite split, upper-floor sq ft (or first-floor / principal floor).
1815
+ Drop the third stat if the property is small (apartment, terrace). -->
1816
+ <div style="margin-top: 10px; display: grid; gap: 8px;">
1817
+ <div class="ed-stat"><div class="v">{{ chapter4_stat_1_value }}</div><div class="l">{{ chapter4_stat_1_label }}</div></div>
1818
+ <div class="ed-stat"><div class="v">{{ chapter4_stat_2_value }}</div><div class="l">{{ chapter4_stat_2_label }}</div></div>
1819
+ <div class="ed-stat"><div class="v">{{ chapter4_stat_3_value }}</div><div class="l">{{ chapter4_stat_3_label }}</div></div>
1820
+ </div>
1821
+
1822
+ <!-- REPLACE {{ chapter4_para_2 }}: 2–3 sentence closer on the
1823
+ principal suite — dressing room, en-suite, view from the bed. -->
1824
+ <p class="ed-body" style="margin-top: 10px;">
1825
+ {{ chapter4_para_2 }}
1826
+ </p>
1827
+ </div>
1828
+
1829
+ <!-- REPLACE 5 gallery cells (1 tall feature + 4 standard). Mix bedrooms
1830
+ and bathrooms so the gallery reads as the floor as a whole. The
1831
+ tall cell is the principal-bedroom hero — verify pixel content
1832
+ matches the principal room (NOT a guest bedroom). -->
1833
+ <div class="gallery">
1834
+ <div class="cell tall">
1835
+ <img src="images/{{ chapter4_gallery_1_src }}" alt="{{ chapter4_gallery_1_alt }}">
1836
+ </div>
1837
+ <div class="cell">
1838
+ <img src="images/{{ chapter4_gallery_2_src }}" alt="{{ chapter4_gallery_2_alt }}">
1839
+ </div>
1840
+ <div class="cell">
1841
+ <img src="images/{{ chapter4_gallery_3_src }}" alt="{{ chapter4_gallery_3_alt }}">
1842
+ </div>
1843
+ <div class="cell">
1844
+ <img src="images/{{ chapter4_gallery_4_src }}" alt="{{ chapter4_gallery_4_alt }}">
1845
+ </div>
1846
+ <div class="cell">
1847
+ <img src="images/{{ chapter4_gallery_5_src }}" alt="{{ chapter4_gallery_5_alt }}">
1848
+ </div>
1849
+ </div>
1850
+ </div>
1851
+ <div class="folio">
1852
+ <span>{{ folio_strip }}</span>
1853
+ <span class="folio-mid">— <em>{{ folio_mid_08 }}</em> —</span>
1854
+ <span>08</span>
1855
+ </div>
1856
+ </section>
1857
+
1858
+
1859
+ <!-- ════════════════════════════════════════════════════
1860
+ PAGE 9 — IMAGE-LED additional internal coverage ("Rooms in passing")
1861
+ ════════════════════════════════════════════════════ -->
1862
+ <section class="page" data-screen-label="09 Image-led additional internal">
1863
+ <img class="print-img" src="page9-print.png" alt="">
1864
+ <div class="gallery-page">
1865
+ <div class="gallery-head">
1866
+ <!-- REPLACE {{ gallery_eyebrow }}: "Continued, Chapter II &amp; III"
1867
+ or similar — links the gallery to the chapters whose imagery
1868
+ it expands. -->
1869
+ <div class="ed-eyebrow">{{ gallery_eyebrow }}</div>
1870
+ <div class="ed-rule"></div>
1871
+ <!-- REPLACE {{ gallery_heading }} / {{ gallery_deck }}: h3 + deck for
1872
+ "Rooms in passing" — supplementary internal coverage. Keep
1873
+ heading short (2–4 words italic close). -->
1874
+ <h3 class="ed-headline smaller">{{ gallery_heading }}</h3>
1875
+ <p class="ed-deck" style="margin-top: 8px;">{{ gallery_deck }}</p>
1876
+ </div>
1877
+ <!-- REPLACE five gallery cells, each with src/alt + a one-line italic
1878
+ figcaption. The tall cell is the strongest single room. Captions
1879
+ are SHORT — "<em>The living room.</em>" + (optional) trailing
1880
+ clause. Don't repeat captions from the strip cells in Chapter II. -->
1881
+ <div class="gallery-grid">
1882
+ <div class="gallery-cell tall">
1883
+ <img src="images/{{ gallery_1_src }}" alt="{{ gallery_1_alt }}">
1884
+ <figcaption>{{ gallery_1_caption }}</figcaption>
1885
+ </div>
1886
+ <div class="gallery-cell">
1887
+ <img src="images/{{ gallery_2_src }}" alt="{{ gallery_2_alt }}">
1888
+ <figcaption>{{ gallery_2_caption }}</figcaption>
1889
+ </div>
1890
+ <div class="gallery-cell">
1891
+ <img src="images/{{ gallery_3_src }}" alt="{{ gallery_3_alt }}">
1892
+ <figcaption>{{ gallery_3_caption }}</figcaption>
1893
+ </div>
1894
+ <div class="gallery-cell">
1895
+ <img src="images/{{ gallery_4_src }}" alt="{{ gallery_4_alt }}">
1896
+ <figcaption>{{ gallery_4_caption }}</figcaption>
1897
+ </div>
1898
+ <div class="gallery-cell">
1899
+ <img src="images/{{ gallery_5_src }}" alt="{{ gallery_5_alt }}">
1900
+ <figcaption>{{ gallery_5_caption }}</figcaption>
1901
+ </div>
1902
+ </div>
1903
+ </div>
1904
+ <div class="folio">
1905
+ <span>{{ folio_strip }}</span>
1906
+ <span class="folio-mid">— <em>{{ folio_mid_09 }}</em> —</span>
1907
+ <span>09</span>
1908
+ </div>
1909
+ </section>
1910
+
1911
+
1912
+ <!-- ════════════════════════════════════════════════════
1913
+ SPREAD 10 — Chapter V — Feature page (pool / outdoor kitchen /
1914
+ summerhouse OR property-specific equivalent: terrace, annexe, studio,
1915
+ pavilion, etc.). Repurpose the chapter title to the actual feature.
1916
+ ════════════════════════════════════════════════════ -->
1917
+ <section class="page" data-screen-label="10 Feature page">
1918
+ <img class="print-img" src="page10-print.png" alt="">
1919
+ <div class="feature-page">
1920
+ <div class="photo">
1921
+ <!-- REPLACE {{ chapter5_photo_src }} / {{ chapter5_photo_alt }} /
1922
+ {{ chapter5_photo_caption }}: the strongest single shot of the
1923
+ feature, with a one-sentence caption beneath. -->
1924
+ <img src="images/{{ chapter5_photo_src }}" alt="{{ chapter5_photo_alt }}">
1925
+ <div class="photo-caption">{{ chapter5_photo_caption }}</div>
1926
+ </div>
1927
+ <div class="panel">
1928
+ <!-- REPLACE {{ chapter5_eyebrow }}: "Chapter V · <feature title>" —
1929
+ "Pool, outdoor kitchen & summerhouse", "Terrace & outdoor kitchen",
1930
+ "The annexe & studio", etc. Match the TOC entry. -->
1931
+ <div class="ed-eyebrow">{{ chapter5_eyebrow }}</div>
1932
+ <div class="ed-rule"></div>
1933
+ <!-- REPLACE {{ chapter5_heading }}: italic editorial headline summing
1934
+ the feature's appeal. Two-line layout (use <br>). -->
1935
+ <h3 class="ed-headline smaller">{{ chapter5_heading }}</h3>
1936
+ <!-- REPLACE {{ chapter5_deck }}: italic deck — 18-30 words. -->
1937
+ <p class="ed-deck" style="margin-top: 12px;">{{ chapter5_deck }}</p>
1938
+
1939
+ <!-- REPLACE {{ chapter5_para }}: ONE body paragraph (5–7 sentences)
1940
+ walking the feature in detail. Name each sub-element exactly —
1941
+ "outdoor kitchen" / "summerhouse" / "orangery" are NOT
1942
+ interchangeable; see structure.md "Distinguishing features
1943
+ clearly". -->
1944
+ <p class="ed-body" style="margin-top: 12px;">
1945
+ {{ chapter5_para }}
1946
+ </p>
1947
+
1948
+ <!-- REPLACE four .attr blocks. Each has a small all-caps label (.k)
1949
+ and a one-line value (.v). Pick four crisp facts — plot size,
1950
+ a single distinctive feature, a count, a material. Drop a row
1951
+ if the property has only three relevant facts. -->
1952
+ <div class="attr-grid">
1953
+ <div class="attr">
1954
+ <div class="k">{{ chapter5_attr_1_label }}</div>
1955
+ <div class="v">{{ chapter5_attr_1_value }}</div>
1956
+ </div>
1957
+ <div class="attr">
1958
+ <div class="k">{{ chapter5_attr_2_label }}</div>
1959
+ <div class="v">{{ chapter5_attr_2_value }}</div>
1960
+ </div>
1961
+ <div class="attr">
1962
+ <div class="k">{{ chapter5_attr_3_label }}</div>
1963
+ <div class="v">{{ chapter5_attr_3_value }}</div>
1964
+ </div>
1965
+ <div class="attr">
1966
+ <div class="k">{{ chapter5_attr_4_label }}</div>
1967
+ <div class="v">{{ chapter5_attr_4_value }}</div>
1968
+ </div>
1969
+ </div>
1970
+ </div>
1971
+ </div>
1972
+ <div class="folio">
1973
+ <span>{{ folio_strip }}</span>
1974
+ <span class="folio-mid">— <em>{{ folio_mid_10 }}</em> —</span>
1975
+ <span>10</span>
1976
+ </div>
1977
+ </section>
1978
+
1979
+
1980
+ <!-- ════════════════════════════════════════════════════
1981
+ PAGE 11 — INTERMISSION (after Chapter V — outdoor full-bleed)
1982
+ ════════════════════════════════════════════════════ -->
1983
+ <section class="page intermission" data-screen-label="11 Intermission outdoor">
1984
+ <img class="print-img" src="page11-print.png" alt="">
1985
+ <div class="full-bleed">
1986
+ <!-- REPLACE {{ intermission_11_src }} / {{ intermission_11_alt }}: the
1987
+ strongest single outdoor moment — pool at golden hour, terrace,
1988
+ pergola, garden-from-distance. Drone shots work well here. -->
1989
+ <img src="images/{{ intermission_11_src }}" alt="{{ intermission_11_alt }}">
1990
+ <div class="caption-pill">
1991
+ <span class="ed-eyebrow-light">Continued, Chapter V</span>
1992
+ <!-- REPLACE {{ intermission_11_caption }}: italic anchor sentence. -->
1993
+ <span class="caption-text">{{ intermission_11_caption }}</span>
1994
+ </div>
1995
+ </div>
1996
+ <div class="folio folio-dark">
1997
+ <span>{{ folio_strip }}</span>
1998
+ <span class="folio-mid">— <em>{{ folio_mid_10 }}</em> —</span>
1999
+ <span>11</span>
2000
+ </div>
2001
+ </section>
2002
+
2003
+
2004
+ <!-- ════════════════════════════════════════════════════
2005
+ SPREAD 12 — Chapter VI — Garden & ground
2006
+ ════════════════════════════════════════════════════ -->
2007
+ <section class="page folio-dark" data-screen-label="12 Garden ground">
2008
+ <img class="print-img" src="page12-print.png" alt="">
2009
+ <div class="spread spread-6">
2010
+ <div class="top-image">
2011
+ <!-- REPLACE {{ chapter6_top_src }} / {{ chapter6_top_alt }}: the full
2012
+ front elevation OR a wide aerial that frames the home in its
2013
+ setting. The overlay sits on top — verify the image has a
2014
+ contrast-quiet region for the overlay panel. -->
2015
+ <img src="images/{{ chapter6_top_src }}" alt="{{ chapter6_top_alt }}">
2016
+ <div class="overlay">
2017
+ <!-- REPLACE {{ chapter6_eyebrow }} / {{ chapter6_heading }}:
2018
+ "Chapter VI" and the chapter title. The heading reads as
2019
+ "Garden,<br>drive <em>&amp; outlook</em>" or similar — adapt
2020
+ to the property's actual ground-floor outdoor narrative. -->
2021
+ <div class="ed-eyebrow">{{ chapter6_eyebrow }}</div>
2022
+ <div class="ed-rule"></div>
2023
+ <h3 class="ed-headline">{{ chapter6_heading }}</h3>
2024
+ </div>
2025
+ </div>
2026
+
2027
+ <!-- REPLACE four .bottom panels — each is a one-paragraph mini-section
2028
+ with an italic h4 label and a 2–3 sentence body. Typical four:
2029
+ rear garden, paddocks/plot, front/approach, ancillary
2030
+ outbuildings. Re-title for the property. -->
2031
+ <div class="bottom">
2032
+ <h4>{{ chapter6_panel_1_heading }}</h4>
2033
+ <p class="ed-body">{{ chapter6_panel_1_body }}</p>
2034
+ </div>
2035
+ <div class="bottom">
2036
+ <h4>{{ chapter6_panel_2_heading }}</h4>
2037
+ <p class="ed-body">{{ chapter6_panel_2_body }}</p>
2038
+ </div>
2039
+ <div class="bottom">
2040
+ <h4>{{ chapter6_panel_3_heading }}</h4>
2041
+ <p class="ed-body">{{ chapter6_panel_3_body }}</p>
2042
+ </div>
2043
+ <div class="bottom">
2044
+ <h4>{{ chapter6_panel_4_heading }}</h4>
2045
+ <p class="ed-body">{{ chapter6_panel_4_body }}</p>
2046
+ </div>
2047
+ </div>
2048
+ <div class="folio">
2049
+ <span>{{ folio_strip }}</span>
2050
+ <span class="folio-mid">— <em>{{ folio_mid_12 }}</em> —</span>
2051
+ <span>12</span>
2052
+ </div>
2053
+ </section>
2054
+
2055
+
2056
+ <!-- ════════════════════════════════════════════════════
2057
+ PAGE 13 — SITE PLAN (continued from Chapter VI)
2058
+ ════════════════════════════════════════════════════ -->
2059
+ <section class="page" data-screen-label="13 Site plan">
2060
+ <img class="print-img" src="page13-print.png" alt="">
2061
+ <div class="siteplan-page">
2062
+ <div class="head">
2063
+ <!-- REPLACE {{ siteplan_eyebrow }}: "Continued, Chapter VI · The plot"
2064
+ or similar. -->
2065
+ <div class="ed-eyebrow">{{ siteplan_eyebrow }}</div>
2066
+ <div class="ed-rule"></div>
2067
+ <!-- REPLACE {{ siteplan_heading }}: the plot's headline fact —
2068
+ "In excess of <em>2.20 acres</em>", "The <em>plot &amp; outlook</em>",
2069
+ "Approximately <em>1.4 acres</em>". -->
2070
+ <h3 class="ed-headline smaller">{{ siteplan_heading }}</h3>
2071
+ </div>
2072
+ <div class="plan-area">
2073
+ <!-- REPLACE {{ siteplan_src }} / {{ siteplan_alt }}: the plot drawing
2074
+ (trees, boundary, paddocks, outbuildings). Filename is normally
2075
+ {{ property_slug }}-siteplan.png — line art, copied unchanged. -->
2076
+ <img src="images/{{ siteplan_src }}" alt="{{ siteplan_alt }}">
2077
+ </div>
2078
+ <div class="text-side">
2079
+ <!-- REPLACE three .text-side h4 + p pairs. Typical content: plot
2080
+ description, boundary/screening, what sits within the grounds
2081
+ (garden complex, paddocks, outbuildings). Then a small italic
2082
+ ed-caption note about plan accuracy. -->
2083
+ <h4>{{ siteplan_panel_1_heading }}</h4>
2084
+ <p class="ed-body">{{ siteplan_panel_1_body }}</p>
2085
+ <h4>{{ siteplan_panel_2_heading }}</h4>
2086
+ <p class="ed-body">{{ siteplan_panel_2_body }}</p>
2087
+ <h4>{{ siteplan_panel_3_heading }}</h4>
2088
+ <p class="ed-body">{{ siteplan_panel_3_body }}</p>
2089
+ <p class="ed-caption" style="margin-top: 4px;">Plan drawn to indicative scale; not to be relied on for legal purposes.</p>
2090
+ </div>
2091
+ </div>
2092
+ <div class="folio">
2093
+ <span>{{ folio_strip }}</span>
2094
+ <span class="folio-mid">— <em>{{ folio_mid_13 }}</em> —</span>
2095
+ <span>13</span>
2096
+ </div>
2097
+ </section>
2098
+
2099
+
2100
+ <!-- ════════════════════════════════════════════════════
2101
+ SPREAD 14 — Chapter VII — Plan & particulars
2102
+ ════════════════════════════════════════════════════ -->
2103
+ <section class="page" data-screen-label="14 Plan particulars">
2104
+ <img class="print-img" src="page14-print.png" alt="">
2105
+ <div class="spread spread-7">
2106
+ <div class="header">
2107
+ <!-- REPLACE {{ chapter7_eyebrow }}: "Chapter VII · Plan &amp; particulars". -->
2108
+ <div class="ed-eyebrow">{{ chapter7_eyebrow }}</div>
2109
+ <div class="ed-rule"></div>
2110
+ <!-- REPLACE {{ chapter7_heading }}: "All floors <em>at a glance</em>"
2111
+ or similar. -->
2112
+ <h3 class="ed-headline smaller">{{ chapter7_heading }}</h3>
2113
+ </div>
2114
+
2115
+ <div class="plan-area">
2116
+ <!-- REPLACE {{ floorplan_src }} / {{ floorplan_alt }}: the composite
2117
+ floor plan, typically {{ property_slug }}-floorplan.png. PNG,
2118
+ line art, copied unchanged from source (do NOT WebP-encode line
2119
+ art; see images.md "Floor plan exception"). -->
2120
+ <img src="images/{{ floorplan_src }}" alt="{{ floorplan_alt }}">
2121
+ <div class="meta">
2122
+ <!-- REPLACE {{ floorplan_lead }}: italic lead — "Total internal area
2123
+ · <em>X sq ft</em> · Y m&sup2;". -->
2124
+ <div class="lead">{{ floorplan_lead }}</div>
2125
+ <!-- REPLACE {{ floorplan_sub }}: floor-by-floor breakdown — "Floor 1
2126
+ · X sq ft &nbsp;·&nbsp; Floor 2 · Y sq ft" plus any ancillary
2127
+ footprints (garage, outbuildings, plot). Excluded outbuildings
2128
+ must be LISTED SEPARATELY — never silently rolled into the
2129
+ principal home's sq ft; see structure.md "Floor area". -->
2130
+ <div class="sub">{{ floorplan_sub }}</div>
2131
+ </div>
2132
+ </div>
2133
+
2134
+ <div class="spec-side">
2135
+ <div class="ed-eyebrow" style="margin-bottom: 6px;">Particulars</div>
2136
+ <!-- REPLACE 9 numbered particulars (.spec-list li × 9). Each is a
2137
+ single short sentence highlighting one feature with <strong> on
2138
+ the named element. Sequence: top-line architectural fact,
2139
+ character feature, kitchen specifics, heating/services, signature
2140
+ internal feature, signature outdoor feature, ancillary buildings,
2141
+ plot, outlook. Adapt count to the property — fewer if smaller,
2142
+ never more than 9 (the column overflows). -->
2143
+ <ol class="spec-list">
2144
+ <li><span class="num">i</span><span>{{ particular_1 }}</span></li>
2145
+ <li><span class="num">ii</span><span>{{ particular_2 }}</span></li>
2146
+ <li><span class="num">iii</span><span>{{ particular_3 }}</span></li>
2147
+ <li><span class="num">iv</span><span>{{ particular_4 }}</span></li>
2148
+ <li><span class="num">v</span><span>{{ particular_5 }}</span></li>
2149
+ <li><span class="num">vi</span><span>{{ particular_6 }}</span></li>
2150
+ <li><span class="num">vii</span><span>{{ particular_7 }}</span></li>
2151
+ <li><span class="num">viii</span><span>{{ particular_8 }}</span></li>
2152
+ <li><span class="num">ix</span><span>{{ particular_9 }}</span></li>
2153
+ </ol>
2154
+
2155
+ <div class="epc-block">
2156
+ <!-- REPLACE {{ epc_rating }}: the current band letter A–G. The CSS
2157
+ class .current on the matching <div class="epc-bar X"> lights
2158
+ that band; the others are dim. The exact pattern below shows
2159
+ band C as the "current" — substitute by changing which row
2160
+ carries `class="epc-bar X current"`. -->
2161
+ <div class="epc-title">Energy &amp; environment <em>· EPC {{ epc_rating }}</em></div>
2162
+ <div class="epc-bars">
2163
+ <div class="epc-bar a{{ epc_current_a }}">A</div>
2164
+ <div class="epc-bar b{{ epc_current_b }}">B</div>
2165
+ <div class="epc-bar c{{ epc_current_c }}">C</div>
2166
+ <div class="epc-bar d{{ epc_current_d }}">D</div>
2167
+ <div class="epc-bar e{{ epc_current_e }}">E</div>
2168
+ <div class="epc-bar f{{ epc_current_f }}">F</div>
2169
+ <div class="epc-bar g{{ epc_current_g }}">G</div>
2170
+ </div>
2171
+ <!-- REPLACE {{ epc_caption }}: 1–2 sentences on the heating system
2172
+ and what the EPC band reflects about the home's fabric. -->
2173
+ <p class="ed-caption" style="margin-top: 8px;">
2174
+ {{ epc_caption }}
2175
+ </p>
2176
+ </div>
2177
+ </div>
2178
+ </div>
2179
+ <div class="folio">
2180
+ <span>{{ folio_strip }}</span>
2181
+ <span class="folio-mid">— <em>{{ folio_mid_14 }}</em> —</span>
2182
+ <span>14</span>
2183
+ </div>
2184
+ </section>
2185
+
2186
+
2187
+ <!-- ════════════════════════════════════════════════════
2188
+ SPREAD 15 — Chapter VIII — Material Information (DMCCA 2024)
2189
+ ════════════════════════════════════════════════════ -->
2190
+ <section class="page" data-screen-label="15 Material information">
2191
+ <img class="print-img" src="page15-print.png" alt="">
2192
+ <div class="mi-page">
2193
+ <div class="mi-head">
2194
+ <div>
2195
+ <!-- REPLACE {{ chapter8_eyebrow }}: "Chapter VIII · Disclosure". -->
2196
+ <div class="ed-eyebrow">{{ chapter8_eyebrow }}</div>
2197
+ <div class="ed-rule"></div>
2198
+ <h3 class="ed-headline smaller">Material <em>information</em></h3>
2199
+ </div>
2200
+ <!-- Disclosure intro paragraph — DO NOT EDIT (boilerplate compliance text). -->
2201
+ <div class="mi-intro">
2202
+ Provided in accordance with the Consumer Protection from Unfair Trading Regulations 2008, the Digital Markets, Competition and Consumers Act 2024, and National Trading Standards guidance on material information in property listings.
2203
+ </div>
2204
+ </div>
2205
+
2206
+ <!-- REPLACE every .mi-row value (.v slot). The three columns are
2207
+ fixed Part A / Part B / Part C per UK DMCCA 2024 guidance. Mark
2208
+ unknowns "TBC" verbatim — never invent. Drop a row only if the
2209
+ field is genuinely not applicable to the property (e.g. "Coastal
2210
+ Erosion" for an inland home). Add a row if the property has a
2211
+ distinctive fact not in the canonical list (e.g. "Pool",
2212
+ "Annexe"). Keep all keys as single-line; values can be short
2213
+ pairs ("G · £3,890 pa") joined with "&nbsp;·&nbsp;". -->
2214
+ <div class="mi-grid">
2215
+ <div class="mi-section">
2216
+ <div class="mi-label">Part A · Material to all transactions</div>
2217
+ <div class="mi-row"><span class="k">Asking Price</span><span class="v">{{ mi_price }}</span></div>
2218
+ <div class="mi-row"><span class="k">Tenure</span><span class="v">{{ mi_tenure }}</span></div>
2219
+ <div class="mi-row"><span class="k">Title Number</span><span class="v">{{ mi_title_number }}</span></div>
2220
+ <div class="mi-row"><span class="k">Council Tax Band</span><span class="v">{{ mi_council_tax }}</span></div>
2221
+ <div class="mi-row"><span class="k">Local Authority</span><span class="v">{{ mi_local_authority }}</span></div>
2222
+ <div class="mi-row"><span class="k">Property Type</span><span class="v">{{ mi_property_type }}</span></div>
2223
+ <div class="mi-row"><span class="k">Year Built</span><span class="v">{{ mi_year_built }}</span></div>
2224
+ <div class="mi-row"><span class="k">Bedrooms</span><span class="v">{{ mi_bedrooms }}</span></div>
2225
+ <div class="mi-row"><span class="k">Bathrooms</span><span class="v">{{ mi_bathrooms }}</span></div>
2226
+ <div class="mi-row"><span class="k">Receptions</span><span class="v">{{ mi_receptions }}</span></div>
2227
+ <div class="mi-row"><span class="k">Floor Area</span><span class="v">{{ mi_floor_area }}</span></div>
2228
+ <div class="mi-row"><span class="k">Heating</span><span class="v">{{ mi_heating }}</span></div>
2229
+ <div class="mi-row"><span class="k">Electricity</span><span class="v">{{ mi_electricity }}</span></div>
2230
+ <div class="mi-row"><span class="k">Broadband</span><span class="v">{{ mi_broadband }}</span></div>
2231
+ <div class="mi-row"><span class="k">Mobile Signal</span><span class="v">{{ mi_mobile }}</span></div>
2232
+ <div class="mi-row"><span class="k">Parking</span><span class="v">{{ mi_parking }}</span></div>
2233
+ <div class="mi-row"><span class="k">EPC</span><span class="v">{{ epc_rating }}</span></div>
2234
+ </div>
2235
+
2236
+ <div class="mi-section">
2237
+ <div class="mi-label">Part B · Where applicable</div>
2238
+ <div class="mi-row"><span class="k">Building Safety</span><span class="v">{{ mi_building_safety }}</span></div>
2239
+ <div class="mi-row"><span class="k">Restrictive Covenants</span><span class="v">{{ mi_covenants }}</span></div>
2240
+ <div class="mi-row"><span class="k">Rights of Way</span><span class="v">{{ mi_rights_of_way }}</span></div>
2241
+ <div class="mi-row"><span class="k">Easements</span><span class="v">{{ mi_easements }}</span></div>
2242
+ <div class="mi-row"><span class="k">Listed Building</span><span class="v">{{ mi_listed }}</span></div>
2243
+ <div class="mi-row"><span class="k">Conservation Area</span><span class="v">{{ mi_conservation }}</span></div>
2244
+ <div class="mi-row"><span class="k">Tree Preservation</span><span class="v">{{ mi_tpo }}</span></div>
2245
+ <div class="mi-row"><span class="k">Accessibility</span><span class="v">{{ mi_accessibility }}</span></div>
2246
+ <div class="mi-row"><span class="k">Water Supply</span><span class="v">{{ mi_water }}</span></div>
2247
+ <div class="mi-row"><span class="k">Sewerage</span><span class="v">{{ mi_sewerage }}</span></div>
2248
+ <div class="mi-row"><span class="k">Outbuildings</span><span class="v">{{ mi_outbuildings }}</span></div>
2249
+ <div class="mi-row"><span class="k">{{ mi_part_b_extra_label }}</span><span class="v">{{ mi_part_b_extra_value }}</span></div>
2250
+ </div>
2251
+
2252
+ <div class="mi-section">
2253
+ <div class="mi-label">Part C · Additional material facts</div>
2254
+ <div class="mi-row"><span class="k">Flood Risk, Rivers &amp; Seas</span><span class="v">{{ mi_flood_rivers }}</span></div>
2255
+ <div class="mi-row"><span class="k">Flood Risk, Surface Water</span><span class="v">{{ mi_flood_surface }}</span></div>
2256
+ <div class="mi-row"><span class="k">Coastal Erosion</span><span class="v">{{ mi_coastal }}</span></div>
2257
+ <div class="mi-row"><span class="k">Planning</span><span class="v">{{ mi_planning }}</span></div>
2258
+ <div class="mi-row"><span class="k">Construction</span><span class="v">{{ mi_construction }}</span></div>
2259
+ <div class="mi-row"><span class="k">Structural</span><span class="v">{{ mi_structural }}</span></div>
2260
+ <div class="mi-row"><span class="k">Subsidence</span><span class="v">{{ mi_subsidence }}</span></div>
2261
+ <div class="mi-row"><span class="k">Damp</span><span class="v">{{ mi_damp }}</span></div>
2262
+ <div class="mi-row"><span class="k">Asbestos</span><span class="v">{{ mi_asbestos }}</span></div>
2263
+ <div class="mi-row"><span class="k">Japanese Knotweed</span><span class="v">{{ mi_knotweed }}</span></div>
2264
+ <div class="mi-row"><span class="k">Mining</span><span class="v">{{ mi_mining }}</span></div>
2265
+ <div class="mi-row"><span class="k">Electrical Cert.</span><span class="v">{{ mi_electrical_cert }}</span></div>
2266
+ <div class="mi-row"><span class="k">UPRN</span><span class="v">{{ mi_uprn }}</span></div>
2267
+ </div>
2268
+ </div>
2269
+
2270
+ <!-- Disclosure footer — keep boilerplate; tweak only if your jurisdiction requires different wording. -->
2271
+ <div class="mi-foot">
2272
+ The agent has made reasonable enquiries to verify this information; prospective purchasers should satisfy themselves as to its accuracy through their own legal and survey processes. Items marked TBC will be confirmed by the seller's solicitor.
2273
+ </div>
2274
+ </div>
2275
+ <div class="folio">
2276
+ <span>{{ folio_strip }}</span>
2277
+ <span class="folio-mid">— <em>Material information</em> —</span>
2278
+ <span>15</span>
2279
+ </div>
2280
+ </section>
2281
+
2282
+
2283
+ <!-- ════════════════════════════════════════════════════
2284
+ BACK PAGE
2285
+ ════════════════════════════════════════════════════ -->
2286
+ <section class="page backpage" data-screen-label="16 Back page">
2287
+ <img class="print-img" src="backpage-print.png" alt="">
2288
+ <div class="bg">
2289
+ <!-- REPLACE {{ backpage_bg_src }} / {{ backpage_bg_alt }}: the back-page
2290
+ atmospheric background. Typically a rear elevation or aerial at
2291
+ golden hour. Filename {{ property_slug }}-26 per images.md. -->
2292
+ <img src="images/{{ backpage_bg_src }}" alt="{{ backpage_bg_alt }}">
2293
+ </div>
2294
+ <div class="backpage-frame"></div>
2295
+
2296
+ <div class="backpage-inner">
2297
+ <!-- REPLACE {{ brand_slug }}: the brand's slug from the brand pack —
2298
+ used to resolve the LIGHT-ART logo on the dark back-page hero. The
2299
+ brand-design SKILL writes <brand>-logo-light.png; substituting
2300
+ {{ brand_slug }} resolves the path. Alt text is the brand name. -->
2301
+ <div class="back-mast">
2302
+ <img class="back-mast-logo" src="images/{{ brand_slug }}-logo-light.png" alt="{{ brand_name }}">
2303
+ </div>
2304
+
2305
+ <!-- REPLACE {{ backpage_headline }}: "Arrange a viewing of
2306
+ <em>{{ property_name }}</em>". The <em> on the property name is
2307
+ consistent with the cover and opener. Don't substitute a different
2308
+ CTA wording — this is the canonical closer. -->
2309
+ <h2 class="back-headline">{{ backpage_headline }}</h2>
2310
+
2311
+ <!-- REPLACE {{ backpage_tagline }}: single sentence summarising the
2312
+ property (size · key features · grounds). 25-45 words. Mirrors
2313
+ but does not duplicate the cover/opener copy. Close with "Best
2314
+ understood in person." or an equivalent property-specific clincher. -->
2315
+ <p class="back-tagline">{{ backpage_tagline }}</p>
2316
+
2317
+ <div class="back-rule"></div>
2318
+
2319
+ <!-- REPLACE the agent + office cells. {{ agent_first_name }} sits in
2320
+ <em>; {{ agent_surname }} follows in normal weight. {{ office_phone }}
2321
+ is the display format ("01873 377 575"); {{ office_email }} the
2322
+ contact email; {{ office_address_line_1 }} and
2323
+ {{ office_address_line_2 }} the postal lines. -->
2324
+ <div class="back-contact-grid">
2325
+ <div class="cell">
2326
+ <div class="k">The Agent</div>
2327
+ <div class="name"><em>{{ agent_first_name }}</em> {{ agent_surname }}</div>
2328
+ <div class="line">
2329
+ {{ office_phone }}<br>
2330
+ {{ office_email }}
2331
+ </div>
2332
+ </div>
2333
+ <div class="cell">
2334
+ <div class="k">The Office</div>
2335
+ <div class="name">{{ brand_name }} <span class="dot">·</span> <em>{{ brand_town }}</em></div>
2336
+ <div class="line">
2337
+ {{ office_address_line_1 }}<br>
2338
+ {{ office_address_line_2 }}
2339
+ </div>
2340
+ </div>
2341
+ </div>
2342
+
2343
+ <!-- REPLACE the QR strip — TWO clickable QR codes. The qr-video.png
2344
+ and qr-listing.png images are generated by qrencode at brochure-
2345
+ assembly time. Each <a> wraps the QR image + label + visible URL,
2346
+ all clickable. The visible URL beneath each QR is MANDATORY —
2347
+ the digital reader's equivalent of scanning. See structure.md
2348
+ "Back-page QR codes". If the listing has no video tour, drop
2349
+ the first <a> and let the listing QR span the strip. -->
2350
+ <div class="back-qr-strip">
2351
+ <a class="qr" href="{{ video_url }}" target="_blank" rel="noopener">
2352
+ <img src="images/qr-video.png" alt="Scan or click to view the property video tour">
2353
+ <div class="qr-label">Watch the <em>video tour</em></div>
2354
+ <div class="qr-link">{{ video_short_url }}</div>
2355
+ </a>
2356
+ <a class="qr" href="{{ listing_url }}" target="_blank" rel="noopener">
2357
+ <img src="images/qr-listing.png" alt="Scan or click to view the full property listing">
2358
+ <div class="qr-label">View the <em>full listing</em></div>
2359
+ <div class="qr-link">{{ listing_display }}</div>
2360
+ </a>
2361
+ </div>
2362
+ </div>
2363
+
2364
+ <div class="back-disclaimer">
2365
+ 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.
2366
+ </div>
2367
+ </section>
2368
+
2369
+ </body>
2370
+ </html>