@rubytech/create-realagent-code 0.1.62 → 0.1.64

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 (688) hide show
  1. package/dist/__tests__/installer-specialist-registration.test.js +112 -0
  2. package/dist/index.js +22 -0
  3. package/dist/specialist-registration.js +78 -0
  4. package/package.json +1 -1
  5. package/payload/platform/plugins/admin/PLUGIN.md +22 -0
  6. package/payload/platform/plugins/admin/hooks/__tests__/turn-completed-graph-write.test.sh +50 -13
  7. package/payload/platform/plugins/admin/hooks/turn-completed-graph-write.sh +22 -21
  8. package/payload/platform/plugins/contacts/PLUGIN.md +9 -0
  9. package/payload/platform/plugins/docs/references/admin-session.md +57 -8
  10. package/payload/platform/plugins/docs/references/platform.md +4 -0
  11. package/payload/platform/plugins/email/PLUGIN.md +9 -0
  12. package/payload/platform/plugins/memory/PLUGIN.md +37 -0
  13. package/payload/platform/plugins/memory/mcp/dist/index.js +3 -3
  14. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  15. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js +137 -75
  16. package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js.map +1 -1
  17. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts +0 -17
  18. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts.map +1 -1
  19. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js +32 -4
  20. package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js.map +1 -1
  21. package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.d.ts +65 -0
  22. package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.d.ts.map +1 -0
  23. package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.js +182 -0
  24. package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.js.map +1 -0
  25. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js +8 -8
  26. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js.map +1 -1
  27. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.d.ts +2 -0
  28. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.d.ts.map +1 -0
  29. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.js +241 -0
  30. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.js.map +1 -0
  31. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map +1 -1
  32. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +9 -0
  33. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -1
  34. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.d.ts +1 -1
  35. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.d.ts.map +1 -1
  36. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.js +9 -1
  37. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.js.map +1 -1
  38. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.d.ts.map +1 -1
  39. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.js +10 -2
  40. package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.js.map +1 -1
  41. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.d.ts +1 -1
  42. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.d.ts.map +1 -1
  43. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.js +5 -1
  44. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.js.map +1 -1
  45. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.d.ts +1 -1
  46. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.d.ts.map +1 -1
  47. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.js +5 -1
  48. package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.js.map +1 -1
  49. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts.map +1 -1
  50. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js +4 -0
  51. package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js.map +1 -1
  52. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts.map +1 -1
  53. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js +4 -0
  54. package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js.map +1 -1
  55. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts.map +1 -1
  56. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js +4 -0
  57. package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js.map +1 -1
  58. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.d.ts.map +1 -1
  59. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js +4 -0
  60. package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js.map +1 -1
  61. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts.map +1 -1
  62. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js +4 -0
  63. package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js.map +1 -1
  64. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.d.ts.map +1 -1
  65. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js +4 -0
  66. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js.map +1 -1
  67. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.d.ts.map +1 -1
  68. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js +4 -0
  69. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js.map +1 -1
  70. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -1
  71. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +5 -0
  72. package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
  73. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.d.ts.map +1 -1
  74. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js +4 -0
  75. package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js.map +1 -1
  76. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.d.ts.map +1 -1
  77. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.js +4 -0
  78. package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.js.map +1 -1
  79. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts.map +1 -1
  80. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js +4 -0
  81. package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js.map +1 -1
  82. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts.map +1 -1
  83. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js +5 -0
  84. package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -1
  85. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
  86. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +6 -0
  87. package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
  88. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.d.ts.map +1 -1
  89. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.js +4 -0
  90. package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.js.map +1 -1
  91. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts.map +1 -1
  92. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js +4 -0
  93. package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js.map +1 -1
  94. package/payload/platform/plugins/memory/mcp/vitest.config.ts +10 -3
  95. package/payload/platform/plugins/outlook/PLUGIN.md +7 -0
  96. package/payload/platform/plugins/replicate/PLUGIN.md +3 -0
  97. package/payload/platform/plugins/scheduling/PLUGIN.md +8 -0
  98. package/payload/platform/plugins/tasks/PLUGIN.md +14 -0
  99. package/payload/platform/plugins/waitlist/PLUGIN.md +7 -0
  100. package/payload/platform/plugins/whatsapp/PLUGIN.md +12 -0
  101. package/payload/platform/plugins/workflows/PLUGIN.md +8 -0
  102. package/payload/platform/services/claude-session-manager/dist/index.js +43 -1
  103. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  104. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +33 -0
  105. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  106. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +214 -59
  107. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  108. package/payload/platform/services/claude-session-manager/dist/specialist-drift.d.ts +23 -0
  109. package/payload/platform/services/claude-session-manager/dist/specialist-drift.d.ts.map +1 -0
  110. package/payload/platform/services/claude-session-manager/dist/specialist-drift.js +141 -0
  111. package/payload/platform/services/claude-session-manager/dist/specialist-drift.js.map +1 -0
  112. package/payload/platform/services/claude-session-manager/dist/tool-surface.d.ts +13 -2
  113. package/payload/platform/services/claude-session-manager/dist/tool-surface.d.ts.map +1 -1
  114. package/payload/platform/services/claude-session-manager/dist/tool-surface.js +150 -37
  115. package/payload/platform/services/claude-session-manager/dist/tool-surface.js.map +1 -1
  116. package/payload/platform/services/claude-session-manager/dist/types.d.ts +5 -0
  117. package/payload/platform/services/claude-session-manager/dist/types.d.ts.map +1 -1
  118. package/payload/platform/templates/agents/admin/IDENTITY.md +1 -1
  119. package/payload/premium-plugins/real-agent/BUNDLE.md +2 -4
  120. package/payload/premium-plugins/real-agent/agents/compliance.md +1 -1
  121. package/payload/premium-plugins/real-agent/agents/valuer.md +1 -2
  122. package/payload/premium-plugins/real-agent/plugins/epc/.claude-plugin/plugin.json +3 -3
  123. package/payload/premium-plugins/real-agent/plugins/listings/.claude-plugin/plugin.json +1 -1
  124. package/payload/premium-plugins/real-agent/plugins/listings/PLUGIN.md +1 -3
  125. package/payload/premium-plugins/real-agent/plugins/listings/skills/new-instruction/SKILL.md +11 -12
  126. package/payload/premium-plugins/real-agent/plugins/loop/PLUGIN.md +27 -0
  127. package/payload/premium-plugins/real-agent/plugins/preval/.claude-plugin/plugin.json +1 -1
  128. package/payload/premium-plugins/real-agent/plugins/preval/PLUGIN.md +16 -8
  129. package/payload/premium-plugins/real-agent/plugins/preval/hooks/preval-prompt-required.sh +140 -0
  130. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/SKILL.md +92 -40
  131. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/__tests__/adherence.test.py +373 -0
  132. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/render.py +299 -115
  133. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template-inputs.schema.json +34 -19
  134. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template.html +88 -19
  135. package/payload/premium-plugins/real-agent/plugins/property-data/PLUGIN.md +22 -0
  136. package/payload/premium-plugins/real-agent/specs/03-new-instruction.md +8 -12
  137. package/payload/server/{chunk-2IKQERHN.js → chunk-S6PQA6Q4.js} +43 -34
  138. package/payload/server/maxy-edge.js +1 -1
  139. package/payload/server/public/assets/{admin-DhN3G8W7.js → admin-ymReS1mN.js} +1 -1
  140. package/payload/server/public/assets/{data-B2ZVXOcE.js → data-D6U2e85B.js} +1 -1
  141. package/payload/server/public/assets/{graph-BAMGPHrK.js → graph-C274PN27.js} +1 -1
  142. package/payload/server/public/assets/{graph-labels-D9eBbvxo.js → graph-labels-DQFzd1FY.js} +1 -1
  143. package/payload/server/public/assets/{page-DjdVMWCz.js → page-D-OLjort.js} +1 -1
  144. package/payload/server/public/assets/{page-CV27Al6Z.js → page-DFFt9_Q0.js} +1 -1
  145. package/payload/server/public/data.html +3 -3
  146. package/payload/server/public/graph.html +3 -3
  147. package/payload/server/public/index.html +4 -4
  148. package/payload/server/server.js +2 -2
  149. package/payload/platform/plugins/brochures/.claude-plugin/plugin.json +0 -8
  150. package/payload/platform/plugins/brochures/PLUGIN.md +0 -38
  151. package/payload/platform/plugins/brochures/commands/make-brochure.md +0 -11
  152. package/payload/platform/plugins/brochures/skills/a4-print-documents/SKILL.md +0 -478
  153. package/payload/platform/plugins/brochures/skills/brand-design/SKILL.md +0 -192
  154. package/payload/platform/plugins/brochures/skills/make-brochure/SKILL.md +0 -354
  155. package/payload/platform/plugins/brochures/skills/make-brochure/references/seller-brief-template.md +0 -115
  156. package/payload/platform/plugins/brochures/skills/property-brochure/SKILL.md +0 -142
  157. package/payload/platform/plugins/brochures/skills/property-brochure/references/build.md +0 -270
  158. package/payload/platform/plugins/brochures/skills/property-brochure/references/copy.md +0 -211
  159. package/payload/platform/plugins/brochures/skills/property-brochure/references/images.md +0 -166
  160. package/payload/platform/plugins/brochures/skills/property-brochure/references/index-landing.md +0 -376
  161. package/payload/platform/plugins/brochures/skills/property-brochure/references/index.html +0 -1288
  162. package/payload/platform/plugins/brochures/skills/property-brochure/references/placeholders.md +0 -250
  163. package/payload/platform/plugins/brochures/skills/property-brochure/references/registers.md +0 -47
  164. package/payload/platform/plugins/brochures/skills/property-brochure/references/seller-brief.md +0 -56
  165. package/payload/platform/plugins/brochures/skills/property-brochure/references/structure.md +0 -249
  166. package/payload/platform/plugins/brochures/skills/property-brochure/references/template.html +0 -2370
  167. package/payload/platform/plugins/brochures/skills/property-extract/SKILL.md +0 -372
  168. package/payload/platform/plugins/brochures/skills/property-market-report/SKILL.md +0 -100
  169. package/payload/platform/plugins/brochures/skills/property-market-report/references/render.py +0 -267
  170. package/payload/platform/plugins/brochures/skills/property-market-report/references/template.html +0 -266
  171. package/payload/platform/plugins/brochures/skills/property-socials/SKILL.md +0 -141
  172. package/payload/platform/plugins/buyers/.claude-plugin/plugin.json +0 -8
  173. package/payload/platform/plugins/buyers/PLUGIN.md +0 -34
  174. package/payload/platform/plugins/buyers/skills/buyer-feedback/SKILL.md +0 -109
  175. package/payload/platform/plugins/buyers/skills/buyer-management/SKILL.md +0 -42
  176. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-qualification-questions.md +0 -16
  177. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-qualification.md +0 -59
  178. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-scripts.md +0 -63
  179. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-working-scripts.md +0 -54
  180. package/payload/platform/plugins/buyers/skills/buyer-management/references/feedback-collection.md +0 -42
  181. package/payload/platform/plugins/buyers/skills/buyer-management/references/offer-capture.md +0 -38
  182. package/payload/platform/plugins/buyers/skills/buyer-management/references/viewing-booking.md +0 -32
  183. package/payload/platform/plugins/buyers/skills/buyer-management/references/viewing-management.md +0 -52
  184. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/SKILL.md +0 -407
  185. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/care-fees-guide.md +0 -68
  186. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/divorce-sales-guide.md +0 -61
  187. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/downsizing-guide.md +0 -45
  188. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/first-time-buyers.md +0 -92
  189. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/first-time-sellers.md +0 -78
  190. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/probate-guide.md +0 -53
  191. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/upsizing-guide.md +0 -41
  192. package/payload/platform/plugins/buyers/skills/property-enquiry/SKILL.md +0 -126
  193. package/payload/platform/plugins/buyers/skills/viewing-management/SKILL.md +0 -111
  194. package/payload/platform/plugins/epc/.claude-plugin/plugin.json +0 -17
  195. package/payload/platform/plugins/epc/PLUGIN.md +0 -85
  196. package/payload/platform/plugins/epc/mcp/dist/index.d.ts +0 -2
  197. package/payload/platform/plugins/epc/mcp/dist/index.d.ts.map +0 -1
  198. package/payload/platform/plugins/epc/mcp/dist/index.js +0 -117
  199. package/payload/platform/plugins/epc/mcp/dist/index.js.map +0 -1
  200. package/payload/platform/plugins/epc/mcp/dist/lib/crypto.d.ts +0 -3
  201. package/payload/platform/plugins/epc/mcp/dist/lib/crypto.d.ts.map +0 -1
  202. package/payload/platform/plugins/epc/mcp/dist/lib/crypto.js +0 -72
  203. package/payload/platform/plugins/epc/mcp/dist/lib/crypto.js.map +0 -1
  204. package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.d.ts +0 -60
  205. package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.d.ts.map +0 -1
  206. package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.js +0 -181
  207. package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.js.map +0 -1
  208. package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.d.ts +0 -3
  209. package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.d.ts.map +0 -1
  210. package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.js +0 -49
  211. package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.js.map +0 -1
  212. package/payload/platform/plugins/epc/mcp/dist/lib/key-store.d.ts +0 -15
  213. package/payload/platform/plugins/epc/mcp/dist/lib/key-store.d.ts.map +0 -1
  214. package/payload/platform/plugins/epc/mcp/dist/lib/key-store.js +0 -130
  215. package/payload/platform/plugins/epc/mcp/dist/lib/key-store.js.map +0 -1
  216. package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.d.ts +0 -5
  217. package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.d.ts.map +0 -1
  218. package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.js +0 -38
  219. package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.js.map +0 -1
  220. package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.d.ts +0 -4
  221. package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.d.ts.map +0 -1
  222. package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.js +0 -9
  223. package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.js.map +0 -1
  224. package/payload/platform/plugins/epc/mcp/dist/tools/key-list.d.ts +0 -4
  225. package/payload/platform/plugins/epc/mcp/dist/tools/key-list.d.ts.map +0 -1
  226. package/payload/platform/plugins/epc/mcp/dist/tools/key-list.js +0 -10
  227. package/payload/platform/plugins/epc/mcp/dist/tools/key-list.js.map +0 -1
  228. package/payload/platform/plugins/epc/mcp/dist/tools/key-register.d.ts +0 -5
  229. package/payload/platform/plugins/epc/mcp/dist/tools/key-register.d.ts.map +0 -1
  230. package/payload/platform/plugins/epc/mcp/dist/tools/key-register.js +0 -36
  231. package/payload/platform/plugins/epc/mcp/dist/tools/key-register.js.map +0 -1
  232. package/payload/platform/plugins/epc/mcp/dist/tools/lookup.d.ts +0 -10
  233. package/payload/platform/plugins/epc/mcp/dist/tools/lookup.d.ts.map +0 -1
  234. package/payload/platform/plugins/epc/mcp/dist/tools/lookup.js +0 -30
  235. package/payload/platform/plugins/epc/mcp/dist/tools/lookup.js.map +0 -1
  236. package/payload/platform/plugins/epc/mcp/package-lock.json +0 -2566
  237. package/payload/platform/plugins/epc/mcp/package.json +0 -21
  238. package/payload/platform/plugins/epc/mcp/src/__tests__/epc-api.test.ts +0 -251
  239. package/payload/platform/plugins/epc/mcp/src/__tests__/key-roundtrip.test.ts +0 -113
  240. package/payload/platform/plugins/epc/mcp/src/__tests__/lookup.test.ts +0 -181
  241. package/payload/platform/plugins/epc/mcp/src/__tests__/schema-parity.test.ts +0 -54
  242. package/payload/platform/plugins/epc/mcp/src/index.ts +0 -156
  243. package/payload/platform/plugins/epc/mcp/src/lib/crypto.ts +0 -79
  244. package/payload/platform/plugins/epc/mcp/src/lib/epc-api.ts +0 -241
  245. package/payload/platform/plugins/epc/mcp/src/lib/file-crypto.ts +0 -55
  246. package/payload/platform/plugins/epc/mcp/src/lib/key-store.ts +0 -172
  247. package/payload/platform/plugins/epc/mcp/src/lib/neo4j.ts +0 -47
  248. package/payload/platform/plugins/epc/mcp/src/tools/key-deregister.ts +0 -9
  249. package/payload/platform/plugins/epc/mcp/src/tools/key-list.ts +0 -10
  250. package/payload/platform/plugins/epc/mcp/src/tools/key-register.ts +0 -44
  251. package/payload/platform/plugins/epc/mcp/src/tools/lookup.ts +0 -43
  252. package/payload/platform/plugins/epc/mcp/tsconfig.json +0 -20
  253. package/payload/platform/plugins/epc/mcp/vitest.config.ts +0 -8
  254. package/payload/platform/plugins/estate-business/.claude-plugin/plugin.json +0 -8
  255. package/payload/platform/plugins/estate-business/PLUGIN.md +0 -64
  256. package/payload/platform/plugins/estate-business/skills/business-growth/SKILL.md +0 -133
  257. package/payload/platform/plugins/estate-business/skills/business-growth/references/buy-back-your-time.md +0 -37
  258. package/payload/platform/plugins/estate-business/skills/business-growth/references/firewave-gost-scorecards.md +0 -14
  259. package/payload/platform/plugins/estate-business/skills/business-growth/references/keller-org-model.md +0 -17
  260. package/payload/platform/plugins/estate-business/skills/business-growth/references/lencioni-team-models.md +0 -22
  261. package/payload/platform/plugins/estate-business/skills/business-growth/references/listing-management-system.md +0 -11
  262. package/payload/platform/plugins/estate-business/skills/business-growth/references/net-figure-form.md +0 -11
  263. package/payload/platform/plugins/estate-business/skills/business-growth/references/serhant-bizinbox-notes.md +0 -13
  264. package/payload/platform/plugins/estate-business/skills/business-growth/references/team-roles-commission.md +0 -14
  265. package/payload/platform/plugins/estate-business/skills/business-growth/references/va-2026-ops.md +0 -43
  266. package/payload/platform/plugins/estate-business/skills/business-growth/references/wingman-structure.md +0 -13
  267. package/payload/platform/plugins/estate-business/skills/business-operations/SKILL.md +0 -32
  268. package/payload/platform/plugins/estate-business/skills/business-operations/references/crm-systems.md +0 -57
  269. package/payload/platform/plugins/estate-business/skills/business-operations/references/hiring-guide.md +0 -59
  270. package/payload/platform/plugins/estate-business/skills/business-operations/references/impact-framework.md +0 -47
  271. package/payload/platform/plugins/estate-business/skills/business-operations/references/minutes-equal-money.md +0 -55
  272. package/payload/platform/plugins/estate-business/skills/business-operations/references/team-management.md +0 -48
  273. package/payload/platform/plugins/estate-business/skills/commission-calculator/SKILL.md +0 -40
  274. package/payload/platform/plugins/estate-business/skills/exp-partnership/SKILL.md +0 -52
  275. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/12-reasons.md +0 -39
  276. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/95-5-system.md +0 -66
  277. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/agent-attraction-scripts.md +0 -90
  278. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/business-partnership.md +0 -92
  279. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/exp-model-overview.md +0 -66
  280. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/model-comparison.md +0 -66
  281. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/revenue-share-explained.md +0 -57
  282. package/payload/platform/plugins/estate-business/skills/month-end-close/SKILL.md +0 -69
  283. package/payload/platform/plugins/estate-business/skills/payment-batch-stager/SKILL.md +0 -42
  284. package/payload/platform/plugins/estate-business/skills/period-reconciler/SKILL.md +0 -42
  285. package/payload/platform/plugins/estate-business/skills/personal-branding/SKILL.md +0 -117
  286. package/payload/platform/plugins/estate-business/skills/personal-branding/references/attraction-agent-notes.md +0 -31
  287. package/payload/platform/plugins/estate-business/skills/personal-branding/references/attraction-agent.md +0 -58
  288. package/payload/platform/plugins/estate-business/skills/personal-branding/references/authenticity-boundaries.md +0 -28
  289. package/payload/platform/plugins/estate-business/skills/personal-branding/references/become-a-brand-leader-notes.md +0 -19
  290. package/payload/platform/plugins/estate-business/skills/personal-branding/references/blast-formula.md +0 -42
  291. package/payload/platform/plugins/estate-business/skills/personal-branding/references/brand-leader.md +0 -48
  292. package/payload/platform/plugins/estate-business/skills/personal-branding/references/brand-strategy-system.md +0 -59
  293. package/payload/platform/plugins/estate-business/skills/personal-branding/references/content-engine.md +0 -49
  294. package/payload/platform/plugins/estate-business/skills/personal-branding/references/firewave-blast-and-blogging.md +0 -23
  295. package/payload/platform/plugins/estate-business/skills/personal-branding/references/gary-v-content.md +0 -52
  296. package/payload/platform/plugins/estate-business/skills/personal-branding/references/gary-v-principles.md +0 -20
  297. package/payload/platform/plugins/estate-business/skills/personal-branding/references/oversubscribed-positioning.md +0 -18
  298. package/payload/platform/plugins/estate-business/skills/personal-branding/references/platforms.md +0 -41
  299. package/payload/platform/plugins/estate-business/skills/personal-branding/references/priestley-oversubscribed.md +0 -54
  300. package/payload/platform/plugins/estate-business/skills/personal-branding/references/storeys-style-examples.md +0 -25
  301. package/payload/platform/plugins/estate-business/skills/personal-branding/references/visual-identity.md +0 -27
  302. package/payload/platform/plugins/estate-coaching/.claude-plugin/plugin.json +0 -8
  303. package/payload/platform/plugins/estate-coaching/PLUGIN.md +0 -54
  304. package/payload/platform/plugins/estate-coaching/skills/agent-performance/SKILL.md +0 -371
  305. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/atomic-habits.md +0 -52
  306. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/daily-routine-scorecard.md +0 -104
  307. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/hp6-model.md +0 -63
  308. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/twelve-week-year.md +0 -71
  309. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/SKILL.md +0 -36
  310. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/coaching-boundaries.md +0 -56
  311. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/feedback-framework.md +0 -61
  312. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/performance-framework.md +0 -109
  313. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/SKILL.md +0 -421
  314. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/coaching-exercises.md +0 -86
  315. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/goal-setting.md +0 -78
  316. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/one-to-one-framework.md +0 -92
  317. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/soi-workbook.md +0 -103
  318. package/payload/platform/plugins/estate-coaching/skills/serhant-training/SKILL.md +0 -410
  319. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/agent-training-guide.md +0 -70
  320. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/business-in-a-box.md +0 -72
  321. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/buyers-guide.md +0 -53
  322. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/codo-method.md +0 -72
  323. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/website-planning-guide.md +0 -79
  324. package/payload/platform/plugins/estate-sales/.claude-plugin/plugin.json +0 -8
  325. package/payload/platform/plugins/estate-sales/PLUGIN.md +0 -52
  326. package/payload/platform/plugins/estate-sales/skills/chase-progression/SKILL.md +0 -107
  327. package/payload/platform/plugins/estate-sales/skills/negotiation/SKILL.md +0 -35
  328. package/payload/platform/plugins/estate-sales/skills/negotiation/references/deal-saving.md +0 -47
  329. package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-deep-guide.md +0 -64
  330. package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-prep-principles.md +0 -29
  331. package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-techniques.md +0 -42
  332. package/payload/platform/plugins/estate-sales/skills/negotiation/references/offer-presentation.md +0 -43
  333. package/payload/platform/plugins/estate-sales/skills/risk-scorer/SKILL.md +0 -42
  334. package/payload/platform/plugins/estate-sales/skills/sales-closer/SKILL.md +0 -24
  335. package/payload/platform/plugins/estate-sales/skills/sales-closer/references/serhant-emotion-stages.md +0 -36
  336. package/payload/platform/plugins/estate-sales/skills/sales-discovery/SKILL.md +0 -30
  337. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/chris-voss-discovery.md +0 -88
  338. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/firewave-gost-journey.md +0 -68
  339. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/phil-jones-openers.md +0 -78
  340. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/pre-listing-checklist.md +0 -77
  341. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/serhant-improv.md +0 -22
  342. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/tom-ferry-discovery.md +0 -103
  343. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/vendor-motivation-competitor.md +0 -52
  344. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/SKILL.md +0 -29
  345. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/chris-voss-negotiation.md +0 -70
  346. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/phil-jones-price-words.md +0 -40
  347. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/serhant-negotiation-plus.md +0 -55
  348. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/tom-panos-commission-pricing.md +0 -57
  349. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/tony-morris-questioning.md +0 -54
  350. package/payload/platform/plugins/estate-sales/skills/sales-progression/SKILL.md +0 -27
  351. package/payload/platform/plugins/estate-sales/skills/sales-progression/references/conveyancing-guide.md +0 -54
  352. package/payload/platform/plugins/estate-sales/skills/sales-progression/references/transaction-tracking.md +0 -66
  353. package/payload/platform/plugins/estate-teaching/.claude-plugin/plugin.json +0 -8
  354. package/payload/platform/plugins/estate-teaching/PLUGIN.md +0 -30
  355. package/payload/platform/plugins/estate-teaching/skills/content-directory/SKILL.md +0 -39
  356. package/payload/platform/plugins/estate-teaching/skills/content-directory/references/module-delivery.md +0 -65
  357. package/payload/platform/plugins/estate-teaching/skills/content-directory/references/progress-tracking.md +0 -47
  358. package/payload/platform/plugins/leads/.claude-plugin/plugin.json +0 -8
  359. package/payload/platform/plugins/leads/PLUGIN.md +0 -61
  360. package/payload/platform/plugins/leads/skills/chain-progression-tracker/SKILL.md +0 -51
  361. package/payload/platform/plugins/leads/skills/diary-builder/SKILL.md +0 -38
  362. package/payload/platform/plugins/leads/skills/enquiry-triage/SKILL.md +0 -36
  363. package/payload/platform/plugins/leads/skills/lead-nurturing/SKILL.md +0 -137
  364. package/payload/platform/plugins/leads/skills/lead-nurturing/references/buyer-search-letter.md +0 -28
  365. package/payload/platform/plugins/leads/skills/lead-nurturing/references/buyer-search-letters.md +0 -37
  366. package/payload/platform/plugins/leads/skills/lead-nurturing/references/database-reactivation.md +0 -30
  367. package/payload/platform/plugins/leads/skills/lead-nurturing/references/email-nurture-sequences.md +0 -45
  368. package/payload/platform/plugins/leads/skills/lead-nurturing/references/facebook-referrals.md +0 -30
  369. package/payload/platform/plugins/leads/skills/lead-nurturing/references/firewave-email-nurture-sequences.md +0 -41
  370. package/payload/platform/plugins/leads/skills/lead-nurturing/references/keller-33-touch.md +0 -34
  371. package/payload/platform/plugins/leads/skills/lead-nurturing/references/neighbour-letters.md +0 -31
  372. package/payload/platform/plugins/leads/skills/lead-nurturing/references/neighbour-notification-letter.md +0 -20
  373. package/payload/platform/plugins/leads/skills/lead-nurturing/references/ofi-follow-up-dialogue.md +0 -22
  374. package/payload/platform/plugins/leads/skills/lead-nurturing/references/ofi-follow-up.md +0 -26
  375. package/payload/platform/plugins/leads/skills/lead-nurturing/references/serhant-three-fs-plus.md +0 -21
  376. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sharran-10x10x10.md +0 -18
  377. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sms-templates.md +0 -40
  378. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sphere-of-influence-notes.md +0 -34
  379. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sphere-of-influence.md +0 -60
  380. package/payload/platform/plugins/leads/skills/lead-nurturing/references/tom-panos-sms-templates.md +0 -59
  381. package/payload/platform/plugins/leads/skills/morning-round/SKILL.md +0 -72
  382. package/payload/platform/plugins/leads/skills/prospecting/SKILL.md +0 -33
  383. package/payload/platform/plugins/leads/skills/prospecting/references/database-matching.md +0 -30
  384. package/payload/platform/plugins/leads/skills/prospecting/references/database-value.md +0 -53
  385. package/payload/platform/plugins/leads/skills/prospecting/references/prospecting-dialogues.md +0 -24
  386. package/payload/platform/plugins/leads/skills/prospecting/references/reactivation.md +0 -34
  387. package/payload/platform/plugins/listings/.claude-plugin/plugin.json +0 -8
  388. package/payload/platform/plugins/listings/PLUGIN.md +0 -102
  389. package/payload/platform/plugins/listings/skills/comparable-finder/SKILL.md +0 -52
  390. package/payload/platform/plugins/listings/skills/epc-checker/SKILL.md +0 -38
  391. package/payload/platform/plugins/listings/skills/home-preparation/SKILL.md +0 -28
  392. package/payload/platform/plugins/listings/skills/home-preparation/references/kerb-appeal.md +0 -38
  393. package/payload/platform/plugins/listings/skills/home-preparation/references/photo-day.md +0 -59
  394. package/payload/platform/plugins/listings/skills/home-preparation/references/situational-tips.md +0 -50
  395. package/payload/platform/plugins/listings/skills/home-preparation/references/staging-guide.md +0 -52
  396. package/payload/platform/plugins/listings/skills/listing-copy-writer/SKILL.md +0 -55
  397. package/payload/platform/plugins/listings/skills/listing-presentation/SKILL.md +0 -286
  398. package/payload/platform/plugins/listings/skills/listing-presentation/references/booking-script.md +0 -51
  399. package/payload/platform/plugins/listings/skills/listing-presentation/references/objection-scripts.md +0 -193
  400. package/payload/platform/plugins/listings/skills/listing-presentation/references/penhaul-presentation.md +0 -123
  401. package/payload/platform/plugins/listings/skills/listing-presentation/references/pre-listing-kit.md +0 -139
  402. package/payload/platform/plugins/listings/skills/listing-presentation/references/set-to-sell.md +0 -55
  403. package/payload/platform/plugins/listings/skills/listing-presentation/references/sharran-frameworks.md +0 -107
  404. package/payload/platform/plugins/listings/skills/local-market-stats/SKILL.md +0 -33
  405. package/payload/platform/plugins/listings/skills/new-instruction/SKILL.md +0 -78
  406. package/payload/platform/plugins/listings/skills/particulars-builder/SKILL.md +0 -48
  407. package/payload/platform/plugins/listings/skills/portal-launch-scheduler/SKILL.md +0 -49
  408. package/payload/platform/plugins/listings/skills/pricing-scenario-builder/SKILL.md +0 -35
  409. package/payload/platform/plugins/listings/skills/property-marketing/SKILL.md +0 -337
  410. package/payload/platform/plugins/listings/skills/property-marketing/references/auction-report-template.md +0 -41
  411. package/payload/platform/plugins/listings/skills/property-marketing/references/coming-soon-campaign.md +0 -43
  412. package/payload/platform/plugins/listings/skills/property-marketing/references/direct-mail-templates.md +0 -121
  413. package/payload/platform/plugins/listings/skills/property-marketing/references/eoi-form-template.md +0 -62
  414. package/payload/platform/plugins/listings/skills/property-marketing/references/monthly-scorecard.md +0 -63
  415. package/payload/platform/plugins/listings/skills/supplier-booker/SKILL.md +0 -39
  416. package/payload/platform/plugins/listings/skills/talk-track-composer/SKILL.md +0 -36
  417. package/payload/platform/plugins/listings/skills/terms-of-business-drafter/SKILL.md +0 -54
  418. package/payload/platform/plugins/listings/skills/valuation-prep/SKILL.md +0 -69
  419. package/payload/platform/plugins/loop/.claude-plugin/plugin.json +0 -17
  420. package/payload/platform/plugins/loop/PLUGIN.md +0 -233
  421. package/payload/platform/plugins/loop/mcp/dist/index.d.ts +0 -2
  422. package/payload/platform/plugins/loop/mcp/dist/index.d.ts.map +0 -1
  423. package/payload/platform/plugins/loop/mcp/dist/index.js +0 -320
  424. package/payload/platform/plugins/loop/mcp/dist/index.js.map +0 -1
  425. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.d.ts +0 -10
  426. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.d.ts.map +0 -1
  427. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.js +0 -88
  428. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.js.map +0 -1
  429. package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.d.ts +0 -3
  430. package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.d.ts.map +0 -1
  431. package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.js +0 -48
  432. package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.js.map +0 -1
  433. package/payload/platform/plugins/loop/mcp/dist/lib/key-store.d.ts +0 -22
  434. package/payload/platform/plugins/loop/mcp/dist/lib/key-store.d.ts.map +0 -1
  435. package/payload/platform/plugins/loop/mcp/dist/lib/key-store.js +0 -165
  436. package/payload/platform/plugins/loop/mcp/dist/lib/key-store.js.map +0 -1
  437. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.d.ts +0 -82
  438. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.d.ts.map +0 -1
  439. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.js +0 -392
  440. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.js.map +0 -1
  441. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.d.ts +0 -5
  442. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.d.ts.map +0 -1
  443. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.js +0 -40
  444. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.js.map +0 -1
  445. package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.d.ts +0 -12
  446. package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.d.ts.map +0 -1
  447. package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.js +0 -22
  448. package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.js.map +0 -1
  449. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.d.ts +0 -10
  450. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.d.ts.map +0 -1
  451. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.js +0 -24
  452. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.js.map +0 -1
  453. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.d.ts +0 -16
  454. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.d.ts.map +0 -1
  455. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.js +0 -35
  456. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.js.map +0 -1
  457. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.d.ts +0 -5
  458. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.d.ts.map +0 -1
  459. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.js +0 -9
  460. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.js.map +0 -1
  461. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.d.ts +0 -4
  462. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.d.ts.map +0 -1
  463. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.js +0 -14
  464. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.js.map +0 -1
  465. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.d.ts +0 -9
  466. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.d.ts.map +0 -1
  467. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.js +0 -43
  468. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.js.map +0 -1
  469. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts +0 -6
  470. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts.map +0 -1
  471. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.js +0 -7
  472. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.js.map +0 -1
  473. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts +0 -9
  474. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts.map +0 -1
  475. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.js +0 -16
  476. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.js.map +0 -1
  477. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts +0 -15
  478. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts.map +0 -1
  479. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.js +0 -11
  480. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.js.map +0 -1
  481. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.d.ts +0 -10
  482. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.d.ts.map +0 -1
  483. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.js +0 -39
  484. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.js.map +0 -1
  485. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.d.ts +0 -9
  486. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.d.ts.map +0 -1
  487. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.js +0 -125
  488. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.js.map +0 -1
  489. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.d.ts +0 -18
  490. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.d.ts.map +0 -1
  491. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.js +0 -87
  492. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.js.map +0 -1
  493. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.d.ts +0 -10
  494. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.d.ts.map +0 -1
  495. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.js +0 -82
  496. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.js.map +0 -1
  497. package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.d.ts +0 -33
  498. package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.d.ts.map +0 -1
  499. package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.js +0 -19
  500. package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.js.map +0 -1
  501. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.d.ts +0 -11
  502. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.d.ts.map +0 -1
  503. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.js +0 -26
  504. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.js.map +0 -1
  505. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.d.ts +0 -15
  506. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.d.ts.map +0 -1
  507. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.js +0 -11
  508. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.js.map +0 -1
  509. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.d.ts +0 -16
  510. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.d.ts.map +0 -1
  511. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.js +0 -41
  512. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.js.map +0 -1
  513. package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.d.ts +0 -9
  514. package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.d.ts.map +0 -1
  515. package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.js +0 -19
  516. package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.js.map +0 -1
  517. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.d.ts +0 -13
  518. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.d.ts.map +0 -1
  519. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.js +0 -49
  520. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.js.map +0 -1
  521. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.d.ts +0 -7
  522. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.d.ts.map +0 -1
  523. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.js +0 -19
  524. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.js.map +0 -1
  525. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.d.ts +0 -5
  526. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.d.ts.map +0 -1
  527. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.js +0 -32
  528. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.js.map +0 -1
  529. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.d.ts +0 -14
  530. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.d.ts.map +0 -1
  531. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.js +0 -11
  532. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.js.map +0 -1
  533. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.d.ts +0 -9
  534. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.d.ts.map +0 -1
  535. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.js +0 -85
  536. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.js.map +0 -1
  537. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.d.ts +0 -13
  538. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.d.ts.map +0 -1
  539. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.js +0 -44
  540. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.js.map +0 -1
  541. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.d.ts +0 -14
  542. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.d.ts.map +0 -1
  543. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.js +0 -18
  544. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.js.map +0 -1
  545. package/payload/platform/plugins/loop/mcp/package-lock.json +0 -2549
  546. package/payload/platform/plugins/loop/mcp/package.json +0 -21
  547. package/payload/platform/plugins/loop/mcp/src/__tests__/loop-swagger.snapshot.json +0 -26467
  548. package/payload/platform/plugins/loop/mcp/src/__tests__/new-tool-shape.test.ts +0 -99
  549. package/payload/platform/plugins/loop/mcp/src/__tests__/plugin-md-time-doctrine.test.ts +0 -132
  550. package/payload/platform/plugins/loop/mcp/src/__tests__/swagger-write-coverage.test.ts +0 -154
  551. package/payload/platform/plugins/loop/mcp/src/index.ts +0 -498
  552. package/payload/platform/plugins/loop/mcp/src/lib/crypto.ts +0 -105
  553. package/payload/platform/plugins/loop/mcp/src/lib/file-crypto.ts +0 -54
  554. package/payload/platform/plugins/loop/mcp/src/lib/key-store.ts +0 -221
  555. package/payload/platform/plugins/loop/mcp/src/lib/loop-api.ts +0 -567
  556. package/payload/platform/plugins/loop/mcp/src/lib/neo4j.ts +0 -51
  557. package/payload/platform/plugins/loop/mcp/src/tools/auto-responder.ts +0 -80
  558. package/payload/platform/plugins/loop/mcp/src/tools/customer-preferences.ts +0 -66
  559. package/payload/platform/plugins/loop/mcp/src/tools/feedback.ts +0 -86
  560. package/payload/platform/plugins/loop/mcp/src/tools/key-deregister.ts +0 -12
  561. package/payload/platform/plugins/loop/mcp/src/tools/key-list.ts +0 -19
  562. package/payload/platform/plugins/loop/mcp/src/tools/key-register.ts +0 -70
  563. package/payload/platform/plugins/loop/mcp/src/tools/marketing-enquiry.ts +0 -27
  564. package/payload/platform/plugins/loop/mcp/src/tools/marketing-match-batch.ts +0 -53
  565. package/payload/platform/plugins/loop/mcp/src/tools/marketing-match-request.ts +0 -42
  566. package/payload/platform/plugins/loop/mcp/src/tools/marketing-match.ts +0 -84
  567. package/payload/platform/plugins/loop/mcp/src/tools/people-detail.ts +0 -245
  568. package/payload/platform/plugins/loop/mcp/src/tools/people-search.ts +0 -180
  569. package/payload/platform/plugins/loop/mcp/src/tools/property-detail.ts +0 -145
  570. package/payload/platform/plugins/loop/mcp/src/tools/property-intent.ts +0 -84
  571. package/payload/platform/plugins/loop/mcp/src/tools/property-listed.ts +0 -81
  572. package/payload/platform/plugins/loop/mcp/src/tools/property-search.ts +0 -92
  573. package/payload/platform/plugins/loop/mcp/src/tools/property-sold.ts +0 -67
  574. package/payload/platform/plugins/loop/mcp/src/tools/supplier.ts +0 -129
  575. package/payload/platform/plugins/loop/mcp/src/tools/team-availability.ts +0 -52
  576. package/payload/platform/plugins/loop/mcp/src/tools/team-info.ts +0 -95
  577. package/payload/platform/plugins/loop/mcp/src/tools/viewing-create.ts +0 -41
  578. package/payload/platform/plugins/loop/mcp/src/tools/viewing-detail.ts +0 -171
  579. package/payload/platform/plugins/loop/mcp/src/tools/viewing-search.ts +0 -92
  580. package/payload/platform/plugins/loop/mcp/src/tools/viewing-update.ts +0 -53
  581. package/payload/platform/plugins/loop/mcp/tsconfig.json +0 -20
  582. package/payload/platform/plugins/loop/mcp/vitest.config.ts +0 -9
  583. package/payload/platform/plugins/loop/skills/compliance-flag-checker/SKILL.md +0 -53
  584. package/payload/platform/plugins/loop/skills/priority-ranker/SKILL.md +0 -40
  585. package/payload/platform/plugins/loop/skills/tone-matched-drafter/SKILL.md +0 -53
  586. package/payload/platform/plugins/loop/skills/variance-narrator/SKILL.md +0 -50
  587. package/payload/platform/plugins/loop/skills/vendor-research/SKILL.md +0 -54
  588. package/payload/platform/plugins/preval/.claude-plugin/plugin.json +0 -8
  589. package/payload/platform/plugins/preval/PLUGIN.md +0 -47
  590. package/payload/platform/plugins/preval/skills/property-preval/SKILL.md +0 -146
  591. package/payload/platform/plugins/preval/skills/property-preval/references/render.py +0 -630
  592. package/payload/platform/plugins/preval/skills/property-preval/references/template-inputs.schema.json +0 -189
  593. package/payload/platform/plugins/preval/skills/property-preval/references/template.html +0 -312
  594. package/payload/platform/plugins/property-data/.claude-plugin/plugin.json +0 -17
  595. package/payload/platform/plugins/property-data/PLUGIN.md +0 -158
  596. package/payload/platform/plugins/property-data/mcp/dist/index.d.ts +0 -2
  597. package/payload/platform/plugins/property-data/mcp/dist/index.d.ts.map +0 -1
  598. package/payload/platform/plugins/property-data/mcp/dist/index.js +0 -236
  599. package/payload/platform/plugins/property-data/mcp/dist/index.js.map +0 -1
  600. package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.d.ts +0 -3
  601. package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.d.ts.map +0 -1
  602. package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.js +0 -72
  603. package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.js.map +0 -1
  604. package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.d.ts +0 -3
  605. package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.d.ts.map +0 -1
  606. package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.js +0 -49
  607. package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.js.map +0 -1
  608. package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.d.ts +0 -15
  609. package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.d.ts.map +0 -1
  610. package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.js +0 -135
  611. package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.js.map +0 -1
  612. package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.d.ts +0 -5
  613. package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.d.ts.map +0 -1
  614. package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.js +0 -38
  615. package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.js.map +0 -1
  616. package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts +0 -28
  617. package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts.map +0 -1
  618. package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.js +0 -101
  619. package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.js.map +0 -1
  620. package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.d.ts +0 -24
  621. package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.d.ts.map +0 -1
  622. package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.js +0 -33
  623. package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.js.map +0 -1
  624. package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.d.ts +0 -4
  625. package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.d.ts.map +0 -1
  626. package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.js +0 -9
  627. package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.js.map +0 -1
  628. package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.d.ts +0 -4
  629. package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.d.ts.map +0 -1
  630. package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.js +0 -10
  631. package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.js.map +0 -1
  632. package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.d.ts +0 -5
  633. package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.d.ts.map +0 -1
  634. package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.js +0 -50
  635. package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.js.map +0 -1
  636. package/payload/platform/plugins/property-data/mcp/package-lock.json +0 -2566
  637. package/payload/platform/plugins/property-data/mcp/package.json +0 -21
  638. package/payload/platform/plugins/property-data/mcp/src/__tests__/endpoints.test.ts +0 -252
  639. package/payload/platform/plugins/property-data/mcp/src/__tests__/key-roundtrip.test.ts +0 -107
  640. package/payload/platform/plugins/property-data/mcp/src/__tests__/propertydata-api.test.ts +0 -184
  641. package/payload/platform/plugins/property-data/mcp/src/__tests__/schema-parity.test.ts +0 -62
  642. package/payload/platform/plugins/property-data/mcp/src/index.ts +0 -409
  643. package/payload/platform/plugins/property-data/mcp/src/lib/crypto.ts +0 -79
  644. package/payload/platform/plugins/property-data/mcp/src/lib/file-crypto.ts +0 -55
  645. package/payload/platform/plugins/property-data/mcp/src/lib/key-store.ts +0 -181
  646. package/payload/platform/plugins/property-data/mcp/src/lib/neo4j.ts +0 -47
  647. package/payload/platform/plugins/property-data/mcp/src/lib/propertydata-api.ts +0 -120
  648. package/payload/platform/plugins/property-data/mcp/src/tools/endpoints.ts +0 -47
  649. package/payload/platform/plugins/property-data/mcp/src/tools/key-deregister.ts +0 -9
  650. package/payload/platform/plugins/property-data/mcp/src/tools/key-list.ts +0 -10
  651. package/payload/platform/plugins/property-data/mcp/src/tools/key-register.ts +0 -54
  652. package/payload/platform/plugins/property-data/mcp/tsconfig.json +0 -20
  653. package/payload/platform/plugins/property-data/mcp/vitest.config.ts +0 -8
  654. package/payload/platform/plugins/property-data/skills/property-data/SKILL.md +0 -77
  655. package/payload/platform/plugins/vendors/.claude-plugin/plugin.json +0 -8
  656. package/payload/platform/plugins/vendors/PLUGIN.md +0 -33
  657. package/payload/platform/plugins/vendors/skills/vendor-communication/SKILL.md +0 -42
  658. package/payload/platform/plugins/vendors/skills/vendor-communication/references/fee-protection-and-agenda.md +0 -28
  659. package/payload/platform/plugins/vendors/skills/vendor-communication/references/listing-scripts.md +0 -44
  660. package/payload/platform/plugins/vendors/skills/vendor-communication/references/negotiation-deep-guide.md +0 -70
  661. package/payload/platform/plugins/vendors/skills/vendor-communication/references/price-alignment-scripts.md +0 -33
  662. package/payload/platform/plugins/vendors/skills/vendor-communication/references/price-alignment.md +0 -34
  663. package/payload/platform/plugins/vendors/skills/vendor-communication/references/scenario-scripts.md +0 -38
  664. package/payload/platform/plugins/vendors/skills/vendor-communication/references/seller-engagement.md +0 -51
  665. package/payload/platform/plugins/vendors/skills/vendor-communication/references/valuation-booking.md +0 -76
  666. package/payload/platform/plugins/vendors/skills/vendor-communication/references/vendor-scripts.md +0 -63
  667. package/payload/platform/plugins/vendors/skills/vendor-communication/references/vendor-updates.md +0 -41
  668. package/payload/platform/plugins/vendors/skills/vendor-updates/SKILL.md +0 -153
  669. package/payload/premium-plugins/real-agent/plugins/epc/PLUGIN.md +0 -85
  670. package/payload/premium-plugins/real-agent/plugins/epc/mcp/package-lock.json +0 -2566
  671. package/payload/premium-plugins/real-agent/plugins/epc/mcp/package.json +0 -21
  672. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/epc-api.test.ts +0 -251
  673. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/key-roundtrip.test.ts +0 -113
  674. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/lookup.test.ts +0 -181
  675. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/schema-parity.test.ts +0 -54
  676. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/index.ts +0 -156
  677. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/crypto.ts +0 -79
  678. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/epc-api.ts +0 -241
  679. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/file-crypto.ts +0 -55
  680. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/key-store.ts +0 -172
  681. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/neo4j.ts +0 -47
  682. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/key-deregister.ts +0 -9
  683. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/key-list.ts +0 -10
  684. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/key-register.ts +0 -44
  685. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/lookup.ts +0 -43
  686. package/payload/premium-plugins/real-agent/plugins/epc/mcp/tsconfig.json +0 -20
  687. package/payload/premium-plugins/real-agent/plugins/epc/mcp/vitest.config.ts +0 -8
  688. package/payload/premium-plugins/real-agent/plugins/listings/skills/epc-checker/SKILL.md +0 -38
@@ -1,172 +0,0 @@
1
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
2
- import { resolve, dirname } from "node:path";
3
- import { homedir } from "node:os";
4
- import { getSession } from "./neo4j.js";
5
- import { encrypt, decrypt } from "./crypto.js";
6
- import { encryptWith, decryptWith } from "./file-crypto.js";
7
-
8
- // Storage abstraction so the same MCP body runs against Neo4j (platform mode)
9
- // or an on-disk encrypted file (standalone mode, e.g. spawned by Claude Code
10
- // from ~/.claude/). Selected by the EPC_STANDALONE env flag at boot. Mirrors
11
- // the property-data key-store with one node per account: EPC keys are
12
- // account-scoped and the gov.uk EPC API has no team concept.
13
-
14
- export interface StoredKey {
15
- apiKey: string;
16
- createdAt: string;
17
- updatedAt: string;
18
- }
19
-
20
- export interface KeyStore {
21
- readonly backendName: string;
22
- readonly backendPath: string;
23
- load(accountId: string): Promise<StoredKey | null>;
24
- save(accountId: string, apiKey: string): Promise<void>;
25
- delete(accountId: string): Promise<boolean>;
26
- }
27
-
28
- class Neo4jKeyStore implements KeyStore {
29
- readonly backendName = "neo4j";
30
- readonly backendPath = process.env.NEO4J_URI ?? "<unset>";
31
-
32
- async load(accountId: string): Promise<StoredKey | null> {
33
- const session = getSession();
34
- try {
35
- const result = await session.run(
36
- `MATCH (k:EpcApiKey {accountId: $accountId})
37
- RETURN k.encryptedKey AS encryptedKey,
38
- k.createdAt AS createdAt,
39
- k.updatedAt AS updatedAt`,
40
- { accountId },
41
- );
42
- if (result.records.length === 0) return null;
43
- const r = result.records[0];
44
- return {
45
- apiKey: decrypt(r.get("encryptedKey")),
46
- createdAt: r.get("createdAt") ?? "",
47
- updatedAt: r.get("updatedAt") ?? "",
48
- };
49
- } finally {
50
- await session.close();
51
- }
52
- }
53
-
54
- async save(accountId: string, apiKey: string): Promise<void> {
55
- const encryptedKey = encrypt(apiKey);
56
- const now = new Date().toISOString();
57
- const session = getSession();
58
- try {
59
- await session.run(
60
- `CREATE INDEX epc_api_key_account IF NOT EXISTS
61
- FOR (k:EpcApiKey) ON (k.accountId)`,
62
- {},
63
- );
64
- await session.run(
65
- `MERGE (k:EpcApiKey {accountId: $accountId})
66
- ON CREATE SET k.encryptedKey = $encryptedKey, k.createdAt = $now, k.updatedAt = $now
67
- ON MATCH SET k.encryptedKey = $encryptedKey, k.updatedAt = $now`,
68
- { accountId, encryptedKey, now },
69
- );
70
- } finally {
71
- await session.close();
72
- }
73
- }
74
-
75
- async delete(accountId: string): Promise<boolean> {
76
- const session = getSession();
77
- try {
78
- const result = await session.run(
79
- `MATCH (k:EpcApiKey {accountId: $accountId})
80
- DELETE k
81
- RETURN count(k) AS deleted`,
82
- { accountId },
83
- );
84
- const deleted = result.records[0]?.get("deleted")?.toNumber?.() ?? 0;
85
- return deleted > 0;
86
- } finally {
87
- await session.close();
88
- }
89
- }
90
- }
91
-
92
- interface FileEnvelope {
93
- [accountId: string]: { encryptedKey: string; createdAt: string; updatedAt: string };
94
- }
95
-
96
- const LABEL = "epc";
97
-
98
- class FileKeyStore implements KeyStore {
99
- readonly backendName = "file";
100
- readonly backendPath: string;
101
- private readonly storePath: string;
102
- private readonly keyFilePath: string;
103
-
104
- constructor() {
105
- const home = homedir();
106
- this.storePath = resolve(home, ".claude/.realagent-epc-key.enc");
107
- this.keyFilePath = resolve(home, ".claude/.realagent-epc-encryption-key");
108
- this.backendPath = this.storePath;
109
- }
110
-
111
- private ensureDir(): void {
112
- mkdirSync(dirname(this.storePath), { recursive: true });
113
- }
114
-
115
- private readAll(): FileEnvelope {
116
- if (!existsSync(this.storePath)) return {};
117
- const blob = readFileSync(this.storePath, "utf-8").trim();
118
- if (!blob) return {};
119
- const json = decryptWith(blob, this.keyFilePath, LABEL);
120
- return JSON.parse(json) as FileEnvelope;
121
- }
122
-
123
- private writeAll(env: FileEnvelope): void {
124
- this.ensureDir();
125
- const blob = encryptWith(JSON.stringify(env), this.keyFilePath, LABEL);
126
- writeFileSync(this.storePath, blob, { mode: 0o600 });
127
- }
128
-
129
- async load(accountId: string): Promise<StoredKey | null> {
130
- const env = this.readAll();
131
- const entry = env[accountId];
132
- if (!entry) return null;
133
- return {
134
- apiKey: decryptWith(entry.encryptedKey, this.keyFilePath, LABEL),
135
- createdAt: entry.createdAt,
136
- updatedAt: entry.updatedAt,
137
- };
138
- }
139
-
140
- async save(accountId: string, apiKey: string): Promise<void> {
141
- const env = this.readAll();
142
- const now = new Date().toISOString();
143
- const encryptedKey = encryptWith(apiKey, this.keyFilePath, LABEL);
144
- const prev = env[accountId];
145
- env[accountId] = {
146
- encryptedKey,
147
- createdAt: prev?.createdAt ?? now,
148
- updatedAt: now,
149
- };
150
- this.writeAll(env);
151
- }
152
-
153
- async delete(accountId: string): Promise<boolean> {
154
- const env = this.readAll();
155
- if (!(accountId in env)) return false;
156
- delete env[accountId];
157
- this.writeAll(env);
158
- return true;
159
- }
160
- }
161
-
162
- let cached: KeyStore | null = null;
163
-
164
- export function selectKeyStore(): KeyStore {
165
- if (cached) return cached;
166
- cached = process.env.EPC_STANDALONE === "1" ? new FileKeyStore() : new Neo4jKeyStore();
167
- return cached;
168
- }
169
-
170
- export function _resetKeyStoreForTests(): void {
171
- cached = null;
172
- }
@@ -1,47 +0,0 @@
1
- import neo4j, { Driver, Session } from "neo4j-driver";
2
- import { readFileSync } from "node:fs";
3
- import { resolve } from "node:path";
4
-
5
- let driver: Driver | null = null;
6
-
7
- function readPassword(): string {
8
- if (process.env.NEO4J_PASSWORD) return process.env.NEO4J_PASSWORD;
9
- const passwordFile = resolve(
10
- process.env.PLATFORM_ROOT ?? resolve(import.meta.dirname, "../../../.."),
11
- "config/.neo4j-password",
12
- );
13
- try {
14
- return readFileSync(passwordFile, "utf-8").trim();
15
- } catch {
16
- throw new Error(
17
- `Neo4j password not found. Expected at ${passwordFile} or in NEO4J_PASSWORD env var.`,
18
- );
19
- }
20
- }
21
-
22
- export function getDriver(): Driver {
23
- if (!driver) {
24
- const uri = process.env.NEO4J_URI;
25
- if (!uri) {
26
- throw new Error(
27
- "[epc] NEO4J_URI unset — refusing to default to bolt://localhost:7687",
28
- );
29
- }
30
- const user = process.env.NEO4J_USER ?? "neo4j";
31
- const password = readPassword();
32
- console.error(`[epc] resolved neo4j_uri=${uri}`);
33
- driver = neo4j.driver(uri, neo4j.auth.basic(user, password));
34
- }
35
- return driver;
36
- }
37
-
38
- export function getSession(): Session {
39
- return getDriver().session();
40
- }
41
-
42
- export async function closeDriver(): Promise<void> {
43
- if (driver) {
44
- await driver.close();
45
- driver = null;
46
- }
47
- }
@@ -1,9 +0,0 @@
1
- import { selectKeyStore } from "../lib/key-store.js";
2
-
3
- export async function keyDeregister(params: { accountId: string }): Promise<void> {
4
- const deleted = await selectKeyStore().delete(params.accountId);
5
- if (!deleted) {
6
- throw new Error("No EPC API key is registered for this account.");
7
- }
8
- console.error(`[epc] key-op op=deregister account=${params.accountId}`);
9
- }
@@ -1,10 +0,0 @@
1
- import { loadAccountKey } from "../lib/epc-api.js";
2
-
3
- export async function keyList(params: { accountId: string }): Promise<string> {
4
- const key = await loadAccountKey(params.accountId);
5
- console.error(`[epc] key-op op=list account=${params.accountId}`);
6
- if (!key) {
7
- return "No EPC API key registered. Use epc-key-register to add one.";
8
- }
9
- return `EPC API key registered (created: ${key.createdAt}, updated: ${key.updatedAt}). Key value is encrypted and cannot be retrieved.`;
10
- }
@@ -1,44 +0,0 @@
1
- import { selectKeyStore } from "../lib/key-store.js";
2
- import { BASE_URL, REQUEST_TIMEOUT_MS, EpcError } from "../lib/epc-api.js";
3
-
4
- // Probe the EPC register with the supplied credential against
5
- // /domestic/search constrained to a tiny page so we do not pull a real
6
- // payload. A valid credential returns HTTP 200 (rows may be empty for a
7
- // nonsense postcode, which is fine — authentication is what we test).
8
- // An invalid credential returns HTTP 401 Unauthorized.
9
-
10
- async function validateApiKey(credential: string): Promise<void> {
11
- const url = `${BASE_URL}/domestic/search?postcode=SW1A1AA&size=1`;
12
- const response = await fetch(url, {
13
- headers: {
14
- Accept: "application/json",
15
- Authorization: `Basic ${Buffer.from(credential, "utf-8").toString("base64")}`,
16
- },
17
- signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
18
- });
19
- if (response.status === 401 || response.status === 403) {
20
- throw new Error(
21
- `EPC register rejected the credential (HTTP ${response.status}). Expected format is email:api-key.`,
22
- );
23
- }
24
- // 200, 404 (no rows for that postcode), and 200-with-rows all prove the
25
- // credential was accepted. Anything else surfaces as the upstream code.
26
- if (response.status === 200 || response.status === 404) return;
27
- const body = await response.text().catch(() => "");
28
- throw new EpcError(response.status, "domestic/search", body.slice(0, 200));
29
- }
30
-
31
- export async function keyRegister(params: {
32
- apiKey: string;
33
- accountId: string;
34
- }): Promise<void> {
35
- const { apiKey, accountId } = params;
36
- if (!apiKey.includes(":")) {
37
- throw new Error(
38
- "EPC credential must be in the form email:api-key (email of the account that generated the key, then a colon, then the API key).",
39
- );
40
- }
41
- await validateApiKey(apiKey);
42
- await selectKeyStore().save(accountId, apiKey);
43
- console.error(`[epc] key-op op=register account=${accountId}`);
44
- }
@@ -1,43 +0,0 @@
1
- import { epcSearch, groupAndPickMostRecent, EpcMatch } from "../lib/epc-api.js";
2
-
3
- interface LookupResult {
4
- status: "ok";
5
- matches: EpcMatch[];
6
- }
7
-
8
- export async function epcLookupByAddress(args: {
9
- accountId: string;
10
- address: string;
11
- postcode?: string;
12
- }): Promise<string> {
13
- const { accountId, address, postcode } = args;
14
- const { rows } = await epcSearch({
15
- toolName: "epc-lookup-by-address",
16
- accountId,
17
- identifier: address,
18
- params: { address, postcode, size: 25 },
19
- });
20
- const result: LookupResult = {
21
- status: "ok",
22
- matches: groupAndPickMostRecent(rows),
23
- };
24
- return JSON.stringify(result, null, 2);
25
- }
26
-
27
- export async function epcLookupByUprn(args: {
28
- accountId: string;
29
- uprn: string;
30
- }): Promise<string> {
31
- const { accountId, uprn } = args;
32
- const { rows } = await epcSearch({
33
- toolName: "epc-lookup-by-uprn",
34
- accountId,
35
- identifier: uprn,
36
- params: { uprn, size: 25 },
37
- });
38
- const result: LookupResult = {
39
- status: "ok",
40
- matches: groupAndPickMostRecent(rows),
41
- };
42
- return JSON.stringify(result, null, 2);
43
- }
@@ -1,20 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "Node16",
5
- "moduleResolution": "Node16",
6
- "lib": ["ES2022"],
7
- "outDir": "dist",
8
- "rootDir": "src",
9
- "strict": true,
10
- "esModuleInterop": true,
11
- "skipLibCheck": true,
12
- "forceConsistentCasingInFileNames": true,
13
- "resolveJsonModule": true,
14
- "declaration": true,
15
- "declarationMap": true,
16
- "sourceMap": true
17
- },
18
- "include": ["src"],
19
- "exclude": ["src/**/__tests__/**", "src/**/*.test.ts"]
20
- }
@@ -1,8 +0,0 @@
1
- import { defineConfig } from "vitest/config";
2
-
3
- export default defineConfig({
4
- test: {
5
- include: ["src/**/__tests__/**/*.test.ts"],
6
- environment: "node",
7
- },
8
- });
@@ -1,8 +0,0 @@
1
- {
2
- "name": "real-agent-business",
3
- "description": "Monthly close, commission, payments, and business operations for UK residential estate agencies. Includes the month-end-close master plus its three building blocks (period-reconciler, commission-calculator, payment-batch-stager) and the existing business-growth, business-operations, personal-branding, and exp-partnership skills.",
4
- "version": "0.1.0",
5
- "author": {
6
- "name": "Rubytech LLC"
7
- }
8
- }
@@ -1,64 +0,0 @@
1
- ---
2
- name: real-agent-business
3
- description: "Monthly close, commission, payments, and business operations for UK residential estate agencies. Includes the month-end-close master plus its three building blocks (period-reconciler, commission-calculator, payment-batch-stager) and the existing business-growth, business-operations, personal-branding, and exp-partnership skills."
4
- tools: []
5
- skills:
6
- - skills/month-end-close/SKILL.md
7
- - skills/period-reconciler/SKILL.md
8
- - skills/commission-calculator/SKILL.md
9
- - skills/payment-batch-stager/SKILL.md
10
- - skills/business-growth/SKILL.md
11
- - skills/business-operations/SKILL.md
12
- - skills/personal-branding/SKILL.md
13
- - skills/exp-partnership/SKILL.md
14
- profileKeys:
15
- - realagent.accounting.chart_of_accounts_map
16
- - realagent.accounting.platform
17
- - realagent.bank.batch_format
18
- - realagent.bank.preferred_pay_date_offset_days
19
- - realagent.close.flag_threshold_fee_gbp
20
- - realagent.close.match_tolerance_days
21
- - realagent.close.match_tolerance_gbp
22
- - realagent.close.narrative_voice_samples
23
- - realagent.close.pack_recipients
24
- - realagent.close.writeoff_threshold_gbp
25
- - realagent.commission.adjustments
26
- - realagent.commission.franchise_levy_pct
27
- - realagent.commission.splits_table_path
28
- - realagent.payees
29
- always: false
30
- metadata: {"platform":{"optional":true,"embed":["admin"]}}
31
- ---
32
-
33
- # Real Agent, Month-End and Business Operations
34
-
35
- Eight skills covering month-end close and commission (the master workflow plus three building blocks) and the existing business operations skills.
36
-
37
- ## When to Activate
38
-
39
- The user is asking for the monthly close, the commission run, reconciliation against the accountant, or any of the existing business-growth or operations topics.
40
-
41
- ## Skills
42
-
43
- | Skill | Owner specialist | Purpose |
44
- |-------|------------------|---------|
45
- | `month-end-close` | compliance | Master workflow: monthly close, commission, accountant pack |
46
- | `period-reconciler` | compliance | Matches completions to fees received |
47
- | `commission-calculator` | compliance | Computes per-agent commission with splits |
48
- | `payment-batch-stager` | compliance | Stages payment batch for the bank, never initiates a transfer |
49
- | `business-growth` | negotiator | Growth strategy (existing) |
50
- | `business-operations` | negotiator | CRM, hiring, delegation (existing) |
51
- | `personal-branding` | negotiator | Personal brand execution (existing) |
52
- | `exp-partnership` | negotiator | eXp UK model (existing) |
53
-
54
- ## Tools Used
55
-
56
- No MCP server. Skills operate via existing platform tools:
57
-
58
- - `memory-search` for domain knowledge
59
- - `profile-read` and `profile-update` for the customisation profile
60
- - `action-pending`, `action-approve`, `action-reject`, `action-edit` for the writeoff, journal, payment-batch, and accountant-pack approval gates
61
-
62
- ## References
63
-
64
- Domain knowledge files loaded on demand by each skill.
@@ -1,133 +0,0 @@
1
- ---
2
- name: business-growth
3
- description: "Grow confidence, time leverage, and execution systems. Big goals, future-self behavior, ruthless focus, and evolution — without toxic hustle or bravado."
4
- ---
5
-
6
- # Business Growth
7
-
8
- You help the user upgrade their operating system: confidence, preparation, time leverage, and disciplined execution — so they can scale.
9
-
10
- ## Core principles
11
-
12
- 1. **Big energy is substance-backed confidence.** Not bragging, not ego.
13
- 2. **Be the future-you now.** Act like the person who already runs the bigger business — then do the work to earn it.
14
- 3. **Minutes are money.** Protect high-leverage time; delegate low-leverage work.
15
- 4. **Evolve or die.** Markets shift; staying still is a strategy for irrelevance.
16
-
17
- ## Guardrails
18
-
19
- - Never encourage deception. "Perception" must be backed by real preparation.
20
- - Never encourage unethical pressure tactics.
21
- - Never encourage burnout as a badge of honor.
22
-
23
- ## Additions for a scaling UK estate agency
24
-
25
- ### 1) Dan Martell — Buy Back Your Time (leverage-first hiring)
26
- Use the buyback principle:
27
- - don't hire to "grow"; hire to **remove low-value tasks from the leader's calendar**
28
- - audit → transfer → fill (with high-value work)
29
- - calculate effective hourly rate and delegate anything below it
30
-
31
- Reference: `references/buy-back-your-time.md`.
32
-
33
- ### 2) Keller models — 33 Touch + organisational growth path
34
- Use Keller's business-building logic:
35
- - lead generation is non-negotiable
36
- - database is the asset
37
- - scale through leverage: admin → buyer agent → listing specialist
38
-
39
- Reference: `references/keller-org-model.md`.
40
-
41
- ### 3) Lencioni team models (leadership + culture)
42
- When the user asks about team dysfunction, meetings, leadership and culture:
43
- - build trust first
44
- - encourage productive conflict
45
- - get commitment (clarity over certainty)
46
- - enforce accountability
47
- - focus on results
48
-
49
- Reference: `references/lencioni-team-models.md`.
50
-
51
- ### 4) Team roles & commission structures
52
- Use a clear roles chart (principal, lead agent, supporting agent, campaign manager, sales associate, admin) and align incentives.
53
-
54
- Reference: `references/team-roles-commission.md`.
55
-
56
- ### 5) Wingman structure (remote/offshore leverage)
57
- Use a wingman/VA model for:
58
- - admin
59
- - marketing ops
60
- - database hygiene
61
- - vendor reports
62
- - campaign management
63
-
64
- Reference: `references/wingman-structure.md`.
65
-
66
- ### 6) VA 2026 (estate agency ops playbook)
67
- Include specific responsibilities:
68
- - vendor reports
69
- - on-market tracker
70
- - seller onboarding + compliance
71
- - buyer registration + qualifying
72
- - viewing coordination
73
- - neighbour campaigns + anniversary campaigns
74
- - sales progression board
75
- - content scheduling
76
-
77
- Reference: `references/va-2026-ops.md`.
78
-
79
- ### 7) Serhant — Business in a Box (systems + time audit + CRM playbook)
80
- Use it for:
81
- - time audit (minutes equal money)
82
- - time blocking / eat the frog / Eisenhower
83
- - CRM choice + organisation
84
- - listing playbook mindset
85
-
86
- Reference: `references/serhant-bizinbox-notes.md`.
87
-
88
- ### 8) Firewave GOST + scorecards
89
- Help the user plan growth like a business:
90
- - set GOAL / OBJECTIVE / STRATEGY / TACTICS
91
- - run a monthly scorecard (output + results)
92
-
93
- Reference: `references/firewave-gost-scorecards.md`.
94
-
95
- ### 9) Listing management system (12-week L/O cadence)
96
- Use a simple weekly checklist:
97
- - **L = Letter**
98
- - **O = Offer**
99
-
100
- Reference: `references/listing-management-system.md`.
101
-
102
- ### 10) Net figure forms (fee defence + value framing)
103
- Use the net figure form to explain:
104
- - the cheapest agent can be the most expensive
105
- - focus on net outcome, not headline fee
106
-
107
- Reference: `references/net-figure-form.md`.
108
-
109
- ## How to respond when the user asks "how do I scale?"
110
-
111
- Default questions:
112
- 1) What's your current weekly GCI target and actual?
113
- 2) What are you doing that only you can do?
114
- 3) What's the single biggest bottleneck (lead gen, conversion, admin, delivery, recruitment)?
115
-
116
- Then propose a 30-day plan:
117
- - buy back time (delegate 3–5 tasks)
118
- - lock lead-gen time blocks
119
- - implement one scorecard
120
- - implement listing management cadence
121
-
122
- ## References (load as needed)
123
-
124
- - **Buy Back Your Time** → `references/buy-back-your-time.md`
125
- - **Keller org model** → `references/keller-org-model.md`
126
- - **Lencioni team models** → `references/lencioni-team-models.md`
127
- - **Team roles + commission** → `references/team-roles-commission.md`
128
- - **Wingman structure** → `references/wingman-structure.md`
129
- - **VA 2026 ops** → `references/va-2026-ops.md`
130
- - **Serhant BizInBox notes** → `references/serhant-bizinbox-notes.md`
131
- - **Firewave GOST + scorecards** → `references/firewave-gost-scorecards.md`
132
- - **Listing management** → `references/listing-management-system.md`
133
- - **Net figure form** → `references/net-figure-form.md`
@@ -1,37 +0,0 @@
1
- # Buy Back Your Time (Dan Martell) — practical notes
2
-
3
- ## Buyback principle
4
- Hire to **buy back your time**, not just to grow.
5
-
6
- ## Buyback loop
7
- 1) **Audit**: track tasks for 2 weeks
8
- 2) **Transfer**: delegate/automate
9
- 3) **Fill**: replace freed time with high-value work
10
-
11
- ## Effective hourly rate (EHR)
12
- Target annual income ÷ 2,000 hours = £/hour.
13
- Delegate anything that can be done for <25% of EHR.
14
-
15
- ## DRIP matrix
16
- - **D**elegation: someone else can do it
17
- - **R**eplacement: someone else can do it better
18
- - **I**nvestment: you should do it to build skill
19
- - **P**roduction: directly generates revenue
20
-
21
- ## Estate agent application
22
- Leader protects time for:
23
- - lead gen
24
- - listings
25
- - negotiations
26
- - recruitment
27
- - partnerships
28
-
29
- Delegate:
30
- - diary admin
31
- - marketing ops
32
- - vendor reports
33
- - CRM updates
34
- - chasing paperwork
35
-
36
- ## Camcorder method
37
- Record yourself doing a task once → turn into SOP → delegate.
@@ -1,14 +0,0 @@
1
- # Firewave GOST + scorecards
2
-
3
- ## GOST
4
- - **Goal** (big, yearly)
5
- - **Objective** (specific metrics + timeframe)
6
- - **Strategy** (one-sentence approach)
7
- - **Tactics** (multi-channel actions)
8
-
9
- ## Monthly scorecard
10
- Track:
11
- - outputs (direct mail sent, content posted, funnels)
12
- - results (valuations, instructions, stock #, pipeline, average fee)
13
-
14
- Rule: measure what drives growth, not vanity metrics.
@@ -1,17 +0,0 @@
1
- # Keller organisational model (estate agency)
2
-
3
- ## Stages
4
- 1) Agent (does everything)
5
- 2) Business owner (hires leverage)
6
- 3) Entrepreneur (leads the business)
7
-
8
- ## Typical order of hires
9
- 1) **Admin assistant** (compliance, scheduling, database)
10
- 2) **Buyer agent** (viewings, buyer management)
11
- 3) **Listing specialist** (scale listings)
12
-
13
- ## Key belief
14
- Listings build businesses; buyers can become jobs unless systemised.
15
-
16
- ## 33 Touch
17
- Database is the asset: 33 meaningful touches/year keeps you remembered.
@@ -1,22 +0,0 @@
1
- # Patrick Lencioni — team models
2
-
3
- ## Five Dysfunctions pyramid
4
- 1) Absence of trust
5
- 2) Fear of conflict
6
- 3) Lack of commitment
7
- 4) Avoidance of accountability
8
- 5) Inattention to results
9
-
10
- ## Leader actions
11
- - model vulnerability to build trust
12
- - mine for conflict (ask for disagreement)
13
- - force clarity (commitment over consensus)
14
- - create peer accountability
15
- - track shared results publicly
16
-
17
- ## Five Temptations (CEO)
18
- - status over results
19
- - popularity over accountability
20
- - certainty over clarity
21
- - harmony over productive conflict
22
- - invulnerability over trust
@@ -1,11 +0,0 @@
1
- # Listing Management System (12-week cadence)
2
-
3
- Use a simple checklist per listing:
4
- - **L = Letter** (seller-facing update/value)
5
- - **O = Offer** (offer/price conversation activity)
6
-
7
- Each week tick that you delivered:
8
- - a meaningful vendor touch
9
- - a pricing/offer strategy touch
10
-
11
- Goal: keep momentum and avoid “silent listings”.