@rubytech/create-maxy-code 0.1.63 → 0.1.65

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 (661) hide show
  1. package/package.json +1 -1
  2. package/payload/platform/plugins/docs/references/admin-session.md +6 -3
  3. package/payload/platform/plugins/docs/references/internals.md +7 -1
  4. package/payload/platform/plugins/docs/references/platform.md +4 -0
  5. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/_helpers/emit-capture.d.ts +22 -0
  6. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/_helpers/emit-capture.d.ts.map +1 -0
  7. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/_helpers/emit-capture.js +44 -0
  8. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/_helpers/emit-capture.js.map +1 -0
  9. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.d.ts +2 -0
  10. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.d.ts.map +1 -0
  11. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.js +68 -0
  12. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-derive-insights-emit.test.js.map +1 -0
  13. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection-emit.test.d.ts +2 -0
  14. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection-emit.test.d.ts.map +1 -0
  15. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection-emit.test.js +48 -0
  16. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection-emit.test.js.map +1 -0
  17. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-memory-expunge-emit.test.d.ts +2 -0
  18. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-memory-expunge-emit.test.d.ts.map +1 -0
  19. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-memory-expunge-emit.test.js +53 -0
  20. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-memory-expunge-emit.test.js.map +1 -0
  21. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-add-emit.test.d.ts +2 -0
  22. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-add-emit.test.d.ts.map +1 -0
  23. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-add-emit.test.js +40 -0
  24. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-add-emit.test.js.map +1 -0
  25. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-remove-emit.test.d.ts +2 -0
  26. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-remove-emit.test.d.ts.map +1 -0
  27. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-remove-emit.test.js +39 -0
  28. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/graph-prune-denylist-remove-emit.test.js.map +1 -0
  29. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.d.ts +2 -0
  30. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.d.ts.map +1 -0
  31. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.js +88 -0
  32. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-archive-write-emit.test.js.map +1 -0
  33. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.d.ts +2 -0
  34. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.d.ts.map +1 -0
  35. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.js +58 -0
  36. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-classify-emit.test.js.map +1 -0
  37. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.d.ts +2 -0
  38. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.d.ts.map +1 -0
  39. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.js +58 -0
  40. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-delete-emit.test.js.map +1 -0
  41. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.d.ts +2 -0
  42. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.d.ts.map +1 -0
  43. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.js +70 -0
  44. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-edit-attachment-emit.test.js.map +1 -0
  45. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.d.ts +2 -0
  46. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.d.ts.map +1 -0
  47. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.js +48 -0
  48. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-empty-trash-emit.test.js.map +1 -0
  49. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.d.ts +2 -0
  50. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.d.ts.map +1 -0
  51. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.js +74 -0
  52. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-emit.test.js.map +1 -0
  53. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.d.ts +2 -0
  54. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.d.ts.map +1 -0
  55. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.js +47 -0
  56. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-extract-emit.test.js.map +1 -0
  57. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.d.ts +2 -0
  58. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.d.ts.map +1 -0
  59. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.js +65 -0
  60. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-ingest-web-emit.test.js.map +1 -0
  61. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.d.ts +2 -0
  62. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.d.ts.map +1 -0
  63. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.js +43 -0
  64. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-reindex-emit.test.js.map +1 -0
  65. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.d.ts +2 -0
  66. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.d.ts.map +1 -0
  67. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.js +65 -0
  68. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-rename-attachment-emit.test.js.map +1 -0
  69. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.d.ts +2 -0
  70. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.d.ts.map +1 -0
  71. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.js +49 -0
  72. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-restore-emit.test.js.map +1 -0
  73. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.d.ts +2 -0
  74. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.d.ts.map +1 -0
  75. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js +74 -0
  76. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-update-emit.test.js.map +1 -0
  77. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.d.ts +2 -0
  78. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.d.ts.map +1 -0
  79. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js +74 -0
  80. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/memory-write-emit.test.js.map +1 -0
  81. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-delete-emit.test.d.ts +2 -0
  82. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-delete-emit.test.d.ts.map +1 -0
  83. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-delete-emit.test.js +62 -0
  84. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-delete-emit.test.js.map +1 -0
  85. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-emit.test.d.ts +2 -0
  86. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-emit.test.d.ts.map +1 -0
  87. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-emit.test.js +76 -0
  88. package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/profile-update-emit.test.js.map +1 -0
  89. package/payload/platform/services/claude-session-manager/dist/index.js +79 -2
  90. package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
  91. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +20 -0
  92. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  93. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +81 -20
  94. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  95. package/payload/platform/services/claude-session-manager/dist/specialist-drift.d.ts +24 -4
  96. package/payload/platform/services/claude-session-manager/dist/specialist-drift.d.ts.map +1 -1
  97. package/payload/platform/services/claude-session-manager/dist/specialist-drift.js +39 -9
  98. package/payload/platform/services/claude-session-manager/dist/specialist-drift.js.map +1 -1
  99. package/payload/platform/services/claude-session-manager/dist/tool-surface.d.ts.map +1 -1
  100. package/payload/platform/services/claude-session-manager/dist/tool-surface.js +19 -4
  101. package/payload/platform/services/claude-session-manager/dist/tool-surface.js.map +1 -1
  102. package/payload/platform/services/claude-session-manager/dist/types.d.ts +5 -0
  103. package/payload/platform/services/claude-session-manager/dist/types.d.ts.map +1 -1
  104. package/payload/platform/templates/agents/admin/IDENTITY.md +1 -1
  105. package/payload/premium-plugins/real-agent/BUNDLE.md +2 -4
  106. package/payload/premium-plugins/real-agent/agents/valuer.md +1 -2
  107. package/payload/premium-plugins/real-agent/plugins/epc/.claude-plugin/plugin.json +3 -3
  108. package/payload/premium-plugins/real-agent/plugins/listings/.claude-plugin/plugin.json +1 -1
  109. package/payload/premium-plugins/real-agent/plugins/listings/PLUGIN.md +1 -3
  110. package/payload/premium-plugins/real-agent/plugins/listings/skills/new-instruction/SKILL.md +11 -12
  111. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/SKILL.md +55 -33
  112. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/render.py +69 -70
  113. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template-inputs.schema.json +12 -7
  114. package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template.html +88 -19
  115. package/payload/premium-plugins/real-agent/specs/03-new-instruction.md +8 -12
  116. package/payload/server/{chunk-2IKQERHN.js → chunk-S6PQA6Q4.js} +43 -34
  117. package/payload/server/maxy-edge.js +1 -1
  118. package/payload/server/server-init.cjs +40 -0
  119. package/payload/server/server.js +1 -1
  120. package/payload/platform/plugins/brochures/.claude-plugin/plugin.json +0 -8
  121. package/payload/platform/plugins/brochures/PLUGIN.md +0 -38
  122. package/payload/platform/plugins/brochures/commands/make-brochure.md +0 -11
  123. package/payload/platform/plugins/brochures/skills/a4-print-documents/SKILL.md +0 -478
  124. package/payload/platform/plugins/brochures/skills/brand-design/SKILL.md +0 -192
  125. package/payload/platform/plugins/brochures/skills/make-brochure/SKILL.md +0 -354
  126. package/payload/platform/plugins/brochures/skills/make-brochure/references/seller-brief-template.md +0 -115
  127. package/payload/platform/plugins/brochures/skills/property-brochure/SKILL.md +0 -142
  128. package/payload/platform/plugins/brochures/skills/property-brochure/references/build.md +0 -270
  129. package/payload/platform/plugins/brochures/skills/property-brochure/references/copy.md +0 -211
  130. package/payload/platform/plugins/brochures/skills/property-brochure/references/images.md +0 -166
  131. package/payload/platform/plugins/brochures/skills/property-brochure/references/index-landing.md +0 -376
  132. package/payload/platform/plugins/brochures/skills/property-brochure/references/index.html +0 -1288
  133. package/payload/platform/plugins/brochures/skills/property-brochure/references/placeholders.md +0 -250
  134. package/payload/platform/plugins/brochures/skills/property-brochure/references/registers.md +0 -47
  135. package/payload/platform/plugins/brochures/skills/property-brochure/references/seller-brief.md +0 -56
  136. package/payload/platform/plugins/brochures/skills/property-brochure/references/structure.md +0 -249
  137. package/payload/platform/plugins/brochures/skills/property-brochure/references/template.html +0 -2370
  138. package/payload/platform/plugins/brochures/skills/property-extract/SKILL.md +0 -372
  139. package/payload/platform/plugins/brochures/skills/property-market-report/SKILL.md +0 -100
  140. package/payload/platform/plugins/brochures/skills/property-market-report/references/render.py +0 -267
  141. package/payload/platform/plugins/brochures/skills/property-market-report/references/template.html +0 -266
  142. package/payload/platform/plugins/brochures/skills/property-socials/SKILL.md +0 -141
  143. package/payload/platform/plugins/buyers/.claude-plugin/plugin.json +0 -8
  144. package/payload/platform/plugins/buyers/PLUGIN.md +0 -34
  145. package/payload/platform/plugins/buyers/skills/buyer-feedback/SKILL.md +0 -109
  146. package/payload/platform/plugins/buyers/skills/buyer-management/SKILL.md +0 -42
  147. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-qualification-questions.md +0 -16
  148. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-qualification.md +0 -59
  149. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-scripts.md +0 -63
  150. package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-working-scripts.md +0 -54
  151. package/payload/platform/plugins/buyers/skills/buyer-management/references/feedback-collection.md +0 -42
  152. package/payload/platform/plugins/buyers/skills/buyer-management/references/offer-capture.md +0 -38
  153. package/payload/platform/plugins/buyers/skills/buyer-management/references/viewing-booking.md +0 -32
  154. package/payload/platform/plugins/buyers/skills/buyer-management/references/viewing-management.md +0 -52
  155. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/SKILL.md +0 -407
  156. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/care-fees-guide.md +0 -68
  157. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/divorce-sales-guide.md +0 -61
  158. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/downsizing-guide.md +0 -45
  159. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/first-time-buyers.md +0 -92
  160. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/first-time-sellers.md +0 -78
  161. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/probate-guide.md +0 -53
  162. package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/upsizing-guide.md +0 -41
  163. package/payload/platform/plugins/buyers/skills/property-enquiry/SKILL.md +0 -126
  164. package/payload/platform/plugins/buyers/skills/viewing-management/SKILL.md +0 -111
  165. package/payload/platform/plugins/epc/.claude-plugin/plugin.json +0 -17
  166. package/payload/platform/plugins/epc/PLUGIN.md +0 -90
  167. package/payload/platform/plugins/epc/mcp/dist/index.d.ts +0 -2
  168. package/payload/platform/plugins/epc/mcp/dist/index.d.ts.map +0 -1
  169. package/payload/platform/plugins/epc/mcp/dist/index.js +0 -117
  170. package/payload/platform/plugins/epc/mcp/dist/index.js.map +0 -1
  171. package/payload/platform/plugins/epc/mcp/dist/lib/crypto.d.ts +0 -3
  172. package/payload/platform/plugins/epc/mcp/dist/lib/crypto.d.ts.map +0 -1
  173. package/payload/platform/plugins/epc/mcp/dist/lib/crypto.js +0 -72
  174. package/payload/platform/plugins/epc/mcp/dist/lib/crypto.js.map +0 -1
  175. package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.d.ts +0 -60
  176. package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.d.ts.map +0 -1
  177. package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.js +0 -181
  178. package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.js.map +0 -1
  179. package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.d.ts +0 -3
  180. package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.d.ts.map +0 -1
  181. package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.js +0 -49
  182. package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.js.map +0 -1
  183. package/payload/platform/plugins/epc/mcp/dist/lib/key-store.d.ts +0 -15
  184. package/payload/platform/plugins/epc/mcp/dist/lib/key-store.d.ts.map +0 -1
  185. package/payload/platform/plugins/epc/mcp/dist/lib/key-store.js +0 -130
  186. package/payload/platform/plugins/epc/mcp/dist/lib/key-store.js.map +0 -1
  187. package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.d.ts +0 -5
  188. package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.d.ts.map +0 -1
  189. package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.js +0 -38
  190. package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.js.map +0 -1
  191. package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.d.ts +0 -4
  192. package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.d.ts.map +0 -1
  193. package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.js +0 -9
  194. package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.js.map +0 -1
  195. package/payload/platform/plugins/epc/mcp/dist/tools/key-list.d.ts +0 -4
  196. package/payload/platform/plugins/epc/mcp/dist/tools/key-list.d.ts.map +0 -1
  197. package/payload/platform/plugins/epc/mcp/dist/tools/key-list.js +0 -10
  198. package/payload/platform/plugins/epc/mcp/dist/tools/key-list.js.map +0 -1
  199. package/payload/platform/plugins/epc/mcp/dist/tools/key-register.d.ts +0 -5
  200. package/payload/platform/plugins/epc/mcp/dist/tools/key-register.d.ts.map +0 -1
  201. package/payload/platform/plugins/epc/mcp/dist/tools/key-register.js +0 -36
  202. package/payload/platform/plugins/epc/mcp/dist/tools/key-register.js.map +0 -1
  203. package/payload/platform/plugins/epc/mcp/dist/tools/lookup.d.ts +0 -10
  204. package/payload/platform/plugins/epc/mcp/dist/tools/lookup.d.ts.map +0 -1
  205. package/payload/platform/plugins/epc/mcp/dist/tools/lookup.js +0 -30
  206. package/payload/platform/plugins/epc/mcp/dist/tools/lookup.js.map +0 -1
  207. package/payload/platform/plugins/epc/mcp/package-lock.json +0 -2566
  208. package/payload/platform/plugins/epc/mcp/package.json +0 -21
  209. package/payload/platform/plugins/epc/mcp/src/__tests__/epc-api.test.ts +0 -251
  210. package/payload/platform/plugins/epc/mcp/src/__tests__/key-roundtrip.test.ts +0 -113
  211. package/payload/platform/plugins/epc/mcp/src/__tests__/lookup.test.ts +0 -181
  212. package/payload/platform/plugins/epc/mcp/src/__tests__/schema-parity.test.ts +0 -54
  213. package/payload/platform/plugins/epc/mcp/src/index.ts +0 -156
  214. package/payload/platform/plugins/epc/mcp/src/lib/crypto.ts +0 -79
  215. package/payload/platform/plugins/epc/mcp/src/lib/epc-api.ts +0 -241
  216. package/payload/platform/plugins/epc/mcp/src/lib/file-crypto.ts +0 -55
  217. package/payload/platform/plugins/epc/mcp/src/lib/key-store.ts +0 -172
  218. package/payload/platform/plugins/epc/mcp/src/lib/neo4j.ts +0 -47
  219. package/payload/platform/plugins/epc/mcp/src/tools/key-deregister.ts +0 -9
  220. package/payload/platform/plugins/epc/mcp/src/tools/key-list.ts +0 -10
  221. package/payload/platform/plugins/epc/mcp/src/tools/key-register.ts +0 -44
  222. package/payload/platform/plugins/epc/mcp/src/tools/lookup.ts +0 -43
  223. package/payload/platform/plugins/epc/mcp/tsconfig.json +0 -20
  224. package/payload/platform/plugins/epc/mcp/vitest.config.ts +0 -8
  225. package/payload/platform/plugins/estate-business/.claude-plugin/plugin.json +0 -8
  226. package/payload/platform/plugins/estate-business/PLUGIN.md +0 -64
  227. package/payload/platform/plugins/estate-business/skills/business-growth/SKILL.md +0 -133
  228. package/payload/platform/plugins/estate-business/skills/business-growth/references/buy-back-your-time.md +0 -37
  229. package/payload/platform/plugins/estate-business/skills/business-growth/references/firewave-gost-scorecards.md +0 -14
  230. package/payload/platform/plugins/estate-business/skills/business-growth/references/keller-org-model.md +0 -17
  231. package/payload/platform/plugins/estate-business/skills/business-growth/references/lencioni-team-models.md +0 -22
  232. package/payload/platform/plugins/estate-business/skills/business-growth/references/listing-management-system.md +0 -11
  233. package/payload/platform/plugins/estate-business/skills/business-growth/references/net-figure-form.md +0 -11
  234. package/payload/platform/plugins/estate-business/skills/business-growth/references/serhant-bizinbox-notes.md +0 -13
  235. package/payload/platform/plugins/estate-business/skills/business-growth/references/team-roles-commission.md +0 -14
  236. package/payload/platform/plugins/estate-business/skills/business-growth/references/va-2026-ops.md +0 -43
  237. package/payload/platform/plugins/estate-business/skills/business-growth/references/wingman-structure.md +0 -13
  238. package/payload/platform/plugins/estate-business/skills/business-operations/SKILL.md +0 -32
  239. package/payload/platform/plugins/estate-business/skills/business-operations/references/crm-systems.md +0 -57
  240. package/payload/platform/plugins/estate-business/skills/business-operations/references/hiring-guide.md +0 -59
  241. package/payload/platform/plugins/estate-business/skills/business-operations/references/impact-framework.md +0 -47
  242. package/payload/platform/plugins/estate-business/skills/business-operations/references/minutes-equal-money.md +0 -55
  243. package/payload/platform/plugins/estate-business/skills/business-operations/references/team-management.md +0 -48
  244. package/payload/platform/plugins/estate-business/skills/commission-calculator/SKILL.md +0 -40
  245. package/payload/platform/plugins/estate-business/skills/exp-partnership/SKILL.md +0 -52
  246. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/12-reasons.md +0 -39
  247. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/95-5-system.md +0 -66
  248. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/agent-attraction-scripts.md +0 -90
  249. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/business-partnership.md +0 -92
  250. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/exp-model-overview.md +0 -66
  251. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/model-comparison.md +0 -66
  252. package/payload/platform/plugins/estate-business/skills/exp-partnership/references/revenue-share-explained.md +0 -57
  253. package/payload/platform/plugins/estate-business/skills/month-end-close/SKILL.md +0 -69
  254. package/payload/platform/plugins/estate-business/skills/payment-batch-stager/SKILL.md +0 -42
  255. package/payload/platform/plugins/estate-business/skills/period-reconciler/SKILL.md +0 -42
  256. package/payload/platform/plugins/estate-business/skills/personal-branding/SKILL.md +0 -117
  257. package/payload/platform/plugins/estate-business/skills/personal-branding/references/attraction-agent-notes.md +0 -31
  258. package/payload/platform/plugins/estate-business/skills/personal-branding/references/attraction-agent.md +0 -58
  259. package/payload/platform/plugins/estate-business/skills/personal-branding/references/authenticity-boundaries.md +0 -28
  260. package/payload/platform/plugins/estate-business/skills/personal-branding/references/become-a-brand-leader-notes.md +0 -19
  261. package/payload/platform/plugins/estate-business/skills/personal-branding/references/blast-formula.md +0 -42
  262. package/payload/platform/plugins/estate-business/skills/personal-branding/references/brand-leader.md +0 -48
  263. package/payload/platform/plugins/estate-business/skills/personal-branding/references/brand-strategy-system.md +0 -59
  264. package/payload/platform/plugins/estate-business/skills/personal-branding/references/content-engine.md +0 -49
  265. package/payload/platform/plugins/estate-business/skills/personal-branding/references/firewave-blast-and-blogging.md +0 -23
  266. package/payload/platform/plugins/estate-business/skills/personal-branding/references/gary-v-content.md +0 -52
  267. package/payload/platform/plugins/estate-business/skills/personal-branding/references/gary-v-principles.md +0 -20
  268. package/payload/platform/plugins/estate-business/skills/personal-branding/references/oversubscribed-positioning.md +0 -18
  269. package/payload/platform/plugins/estate-business/skills/personal-branding/references/platforms.md +0 -41
  270. package/payload/platform/plugins/estate-business/skills/personal-branding/references/priestley-oversubscribed.md +0 -54
  271. package/payload/platform/plugins/estate-business/skills/personal-branding/references/storeys-style-examples.md +0 -25
  272. package/payload/platform/plugins/estate-business/skills/personal-branding/references/visual-identity.md +0 -27
  273. package/payload/platform/plugins/estate-coaching/.claude-plugin/plugin.json +0 -8
  274. package/payload/platform/plugins/estate-coaching/PLUGIN.md +0 -54
  275. package/payload/platform/plugins/estate-coaching/skills/agent-performance/SKILL.md +0 -371
  276. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/atomic-habits.md +0 -52
  277. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/daily-routine-scorecard.md +0 -104
  278. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/hp6-model.md +0 -63
  279. package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/twelve-week-year.md +0 -71
  280. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/SKILL.md +0 -36
  281. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/coaching-boundaries.md +0 -56
  282. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/feedback-framework.md +0 -61
  283. package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/performance-framework.md +0 -109
  284. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/SKILL.md +0 -421
  285. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/coaching-exercises.md +0 -86
  286. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/goal-setting.md +0 -78
  287. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/one-to-one-framework.md +0 -92
  288. package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/soi-workbook.md +0 -103
  289. package/payload/platform/plugins/estate-coaching/skills/serhant-training/SKILL.md +0 -410
  290. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/agent-training-guide.md +0 -70
  291. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/business-in-a-box.md +0 -72
  292. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/buyers-guide.md +0 -53
  293. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/codo-method.md +0 -72
  294. package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/website-planning-guide.md +0 -79
  295. package/payload/platform/plugins/estate-sales/.claude-plugin/plugin.json +0 -8
  296. package/payload/platform/plugins/estate-sales/PLUGIN.md +0 -52
  297. package/payload/platform/plugins/estate-sales/skills/chase-progression/SKILL.md +0 -107
  298. package/payload/platform/plugins/estate-sales/skills/negotiation/SKILL.md +0 -35
  299. package/payload/platform/plugins/estate-sales/skills/negotiation/references/deal-saving.md +0 -47
  300. package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-deep-guide.md +0 -64
  301. package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-prep-principles.md +0 -29
  302. package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-techniques.md +0 -42
  303. package/payload/platform/plugins/estate-sales/skills/negotiation/references/offer-presentation.md +0 -43
  304. package/payload/platform/plugins/estate-sales/skills/risk-scorer/SKILL.md +0 -42
  305. package/payload/platform/plugins/estate-sales/skills/sales-closer/SKILL.md +0 -24
  306. package/payload/platform/plugins/estate-sales/skills/sales-closer/references/serhant-emotion-stages.md +0 -36
  307. package/payload/platform/plugins/estate-sales/skills/sales-discovery/SKILL.md +0 -30
  308. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/chris-voss-discovery.md +0 -88
  309. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/firewave-gost-journey.md +0 -68
  310. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/phil-jones-openers.md +0 -78
  311. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/pre-listing-checklist.md +0 -77
  312. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/serhant-improv.md +0 -22
  313. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/tom-ferry-discovery.md +0 -103
  314. package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/vendor-motivation-competitor.md +0 -52
  315. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/SKILL.md +0 -29
  316. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/chris-voss-negotiation.md +0 -70
  317. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/phil-jones-price-words.md +0 -40
  318. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/serhant-negotiation-plus.md +0 -55
  319. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/tom-panos-commission-pricing.md +0 -57
  320. package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/tony-morris-questioning.md +0 -54
  321. package/payload/platform/plugins/estate-sales/skills/sales-progression/SKILL.md +0 -27
  322. package/payload/platform/plugins/estate-sales/skills/sales-progression/references/conveyancing-guide.md +0 -54
  323. package/payload/platform/plugins/estate-sales/skills/sales-progression/references/transaction-tracking.md +0 -66
  324. package/payload/platform/plugins/estate-teaching/.claude-plugin/plugin.json +0 -8
  325. package/payload/platform/plugins/estate-teaching/PLUGIN.md +0 -30
  326. package/payload/platform/plugins/estate-teaching/skills/content-directory/SKILL.md +0 -39
  327. package/payload/platform/plugins/estate-teaching/skills/content-directory/references/module-delivery.md +0 -65
  328. package/payload/platform/plugins/estate-teaching/skills/content-directory/references/progress-tracking.md +0 -47
  329. package/payload/platform/plugins/leads/.claude-plugin/plugin.json +0 -8
  330. package/payload/platform/plugins/leads/PLUGIN.md +0 -61
  331. package/payload/platform/plugins/leads/skills/chain-progression-tracker/SKILL.md +0 -51
  332. package/payload/platform/plugins/leads/skills/diary-builder/SKILL.md +0 -38
  333. package/payload/platform/plugins/leads/skills/enquiry-triage/SKILL.md +0 -36
  334. package/payload/platform/plugins/leads/skills/lead-nurturing/SKILL.md +0 -137
  335. package/payload/platform/plugins/leads/skills/lead-nurturing/references/buyer-search-letter.md +0 -28
  336. package/payload/platform/plugins/leads/skills/lead-nurturing/references/buyer-search-letters.md +0 -37
  337. package/payload/platform/plugins/leads/skills/lead-nurturing/references/database-reactivation.md +0 -30
  338. package/payload/platform/plugins/leads/skills/lead-nurturing/references/email-nurture-sequences.md +0 -45
  339. package/payload/platform/plugins/leads/skills/lead-nurturing/references/facebook-referrals.md +0 -30
  340. package/payload/platform/plugins/leads/skills/lead-nurturing/references/firewave-email-nurture-sequences.md +0 -41
  341. package/payload/platform/plugins/leads/skills/lead-nurturing/references/keller-33-touch.md +0 -34
  342. package/payload/platform/plugins/leads/skills/lead-nurturing/references/neighbour-letters.md +0 -31
  343. package/payload/platform/plugins/leads/skills/lead-nurturing/references/neighbour-notification-letter.md +0 -20
  344. package/payload/platform/plugins/leads/skills/lead-nurturing/references/ofi-follow-up-dialogue.md +0 -22
  345. package/payload/platform/plugins/leads/skills/lead-nurturing/references/ofi-follow-up.md +0 -26
  346. package/payload/platform/plugins/leads/skills/lead-nurturing/references/serhant-three-fs-plus.md +0 -21
  347. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sharran-10x10x10.md +0 -18
  348. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sms-templates.md +0 -40
  349. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sphere-of-influence-notes.md +0 -34
  350. package/payload/platform/plugins/leads/skills/lead-nurturing/references/sphere-of-influence.md +0 -60
  351. package/payload/platform/plugins/leads/skills/lead-nurturing/references/tom-panos-sms-templates.md +0 -59
  352. package/payload/platform/plugins/leads/skills/morning-round/SKILL.md +0 -72
  353. package/payload/platform/plugins/leads/skills/prospecting/SKILL.md +0 -33
  354. package/payload/platform/plugins/leads/skills/prospecting/references/database-matching.md +0 -30
  355. package/payload/platform/plugins/leads/skills/prospecting/references/database-value.md +0 -53
  356. package/payload/platform/plugins/leads/skills/prospecting/references/prospecting-dialogues.md +0 -24
  357. package/payload/platform/plugins/leads/skills/prospecting/references/reactivation.md +0 -34
  358. package/payload/platform/plugins/listings/.claude-plugin/plugin.json +0 -8
  359. package/payload/platform/plugins/listings/PLUGIN.md +0 -102
  360. package/payload/platform/plugins/listings/skills/comparable-finder/SKILL.md +0 -52
  361. package/payload/platform/plugins/listings/skills/epc-checker/SKILL.md +0 -38
  362. package/payload/platform/plugins/listings/skills/home-preparation/SKILL.md +0 -28
  363. package/payload/platform/plugins/listings/skills/home-preparation/references/kerb-appeal.md +0 -38
  364. package/payload/platform/plugins/listings/skills/home-preparation/references/photo-day.md +0 -59
  365. package/payload/platform/plugins/listings/skills/home-preparation/references/situational-tips.md +0 -50
  366. package/payload/platform/plugins/listings/skills/home-preparation/references/staging-guide.md +0 -52
  367. package/payload/platform/plugins/listings/skills/listing-copy-writer/SKILL.md +0 -55
  368. package/payload/platform/plugins/listings/skills/listing-presentation/SKILL.md +0 -286
  369. package/payload/platform/plugins/listings/skills/listing-presentation/references/booking-script.md +0 -51
  370. package/payload/platform/plugins/listings/skills/listing-presentation/references/objection-scripts.md +0 -193
  371. package/payload/platform/plugins/listings/skills/listing-presentation/references/penhaul-presentation.md +0 -123
  372. package/payload/platform/plugins/listings/skills/listing-presentation/references/pre-listing-kit.md +0 -139
  373. package/payload/platform/plugins/listings/skills/listing-presentation/references/set-to-sell.md +0 -55
  374. package/payload/platform/plugins/listings/skills/listing-presentation/references/sharran-frameworks.md +0 -107
  375. package/payload/platform/plugins/listings/skills/local-market-stats/SKILL.md +0 -33
  376. package/payload/platform/plugins/listings/skills/new-instruction/SKILL.md +0 -78
  377. package/payload/platform/plugins/listings/skills/particulars-builder/SKILL.md +0 -48
  378. package/payload/platform/plugins/listings/skills/portal-launch-scheduler/SKILL.md +0 -49
  379. package/payload/platform/plugins/listings/skills/pricing-scenario-builder/SKILL.md +0 -35
  380. package/payload/platform/plugins/listings/skills/property-marketing/SKILL.md +0 -337
  381. package/payload/platform/plugins/listings/skills/property-marketing/references/auction-report-template.md +0 -41
  382. package/payload/platform/plugins/listings/skills/property-marketing/references/coming-soon-campaign.md +0 -43
  383. package/payload/platform/plugins/listings/skills/property-marketing/references/direct-mail-templates.md +0 -121
  384. package/payload/platform/plugins/listings/skills/property-marketing/references/eoi-form-template.md +0 -62
  385. package/payload/platform/plugins/listings/skills/property-marketing/references/monthly-scorecard.md +0 -63
  386. package/payload/platform/plugins/listings/skills/supplier-booker/SKILL.md +0 -39
  387. package/payload/platform/plugins/listings/skills/talk-track-composer/SKILL.md +0 -36
  388. package/payload/platform/plugins/listings/skills/terms-of-business-drafter/SKILL.md +0 -54
  389. package/payload/platform/plugins/listings/skills/valuation-prep/SKILL.md +0 -69
  390. package/payload/platform/plugins/loop/.claude-plugin/plugin.json +0 -17
  391. package/payload/platform/plugins/loop/PLUGIN.md +0 -260
  392. package/payload/platform/plugins/loop/mcp/dist/index.d.ts +0 -2
  393. package/payload/platform/plugins/loop/mcp/dist/index.d.ts.map +0 -1
  394. package/payload/platform/plugins/loop/mcp/dist/index.js +0 -320
  395. package/payload/platform/plugins/loop/mcp/dist/index.js.map +0 -1
  396. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.d.ts +0 -10
  397. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.d.ts.map +0 -1
  398. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.js +0 -88
  399. package/payload/platform/plugins/loop/mcp/dist/lib/crypto.js.map +0 -1
  400. package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.d.ts +0 -3
  401. package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.d.ts.map +0 -1
  402. package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.js +0 -48
  403. package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.js.map +0 -1
  404. package/payload/platform/plugins/loop/mcp/dist/lib/key-store.d.ts +0 -22
  405. package/payload/platform/plugins/loop/mcp/dist/lib/key-store.d.ts.map +0 -1
  406. package/payload/platform/plugins/loop/mcp/dist/lib/key-store.js +0 -165
  407. package/payload/platform/plugins/loop/mcp/dist/lib/key-store.js.map +0 -1
  408. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.d.ts +0 -82
  409. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.d.ts.map +0 -1
  410. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.js +0 -392
  411. package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.js.map +0 -1
  412. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.d.ts +0 -5
  413. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.d.ts.map +0 -1
  414. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.js +0 -40
  415. package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.js.map +0 -1
  416. package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.d.ts +0 -12
  417. package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.d.ts.map +0 -1
  418. package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.js +0 -22
  419. package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.js.map +0 -1
  420. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.d.ts +0 -10
  421. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.d.ts.map +0 -1
  422. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.js +0 -24
  423. package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.js.map +0 -1
  424. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.d.ts +0 -16
  425. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.d.ts.map +0 -1
  426. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.js +0 -35
  427. package/payload/platform/plugins/loop/mcp/dist/tools/feedback.js.map +0 -1
  428. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.d.ts +0 -5
  429. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.d.ts.map +0 -1
  430. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.js +0 -9
  431. package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.js.map +0 -1
  432. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.d.ts +0 -4
  433. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.d.ts.map +0 -1
  434. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.js +0 -14
  435. package/payload/platform/plugins/loop/mcp/dist/tools/key-list.js.map +0 -1
  436. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.d.ts +0 -9
  437. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.d.ts.map +0 -1
  438. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.js +0 -43
  439. package/payload/platform/plugins/loop/mcp/dist/tools/key-register.js.map +0 -1
  440. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts +0 -6
  441. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts.map +0 -1
  442. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.js +0 -7
  443. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.js.map +0 -1
  444. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts +0 -9
  445. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts.map +0 -1
  446. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.js +0 -16
  447. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.js.map +0 -1
  448. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts +0 -15
  449. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts.map +0 -1
  450. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.js +0 -11
  451. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.js.map +0 -1
  452. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.d.ts +0 -10
  453. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.d.ts.map +0 -1
  454. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.js +0 -39
  455. package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.js.map +0 -1
  456. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.d.ts +0 -9
  457. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.d.ts.map +0 -1
  458. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.js +0 -125
  459. package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.js.map +0 -1
  460. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.d.ts +0 -18
  461. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.d.ts.map +0 -1
  462. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.js +0 -87
  463. package/payload/platform/plugins/loop/mcp/dist/tools/people-search.js.map +0 -1
  464. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.d.ts +0 -10
  465. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.d.ts.map +0 -1
  466. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.js +0 -82
  467. package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.js.map +0 -1
  468. package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.d.ts +0 -33
  469. package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.d.ts.map +0 -1
  470. package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.js +0 -19
  471. package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.js.map +0 -1
  472. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.d.ts +0 -11
  473. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.d.ts.map +0 -1
  474. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.js +0 -26
  475. package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.js.map +0 -1
  476. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.d.ts +0 -15
  477. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.d.ts.map +0 -1
  478. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.js +0 -11
  479. package/payload/platform/plugins/loop/mcp/dist/tools/property-request.js.map +0 -1
  480. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.d.ts +0 -16
  481. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.d.ts.map +0 -1
  482. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.js +0 -41
  483. package/payload/platform/plugins/loop/mcp/dist/tools/property-search.js.map +0 -1
  484. package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.d.ts +0 -9
  485. package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.d.ts.map +0 -1
  486. package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.js +0 -19
  487. package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.js.map +0 -1
  488. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.d.ts +0 -13
  489. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.d.ts.map +0 -1
  490. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.js +0 -49
  491. package/payload/platform/plugins/loop/mcp/dist/tools/supplier.js.map +0 -1
  492. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.d.ts +0 -7
  493. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.d.ts.map +0 -1
  494. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.js +0 -19
  495. package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.js.map +0 -1
  496. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.d.ts +0 -5
  497. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.d.ts.map +0 -1
  498. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.js +0 -32
  499. package/payload/platform/plugins/loop/mcp/dist/tools/team-info.js.map +0 -1
  500. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.d.ts +0 -14
  501. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.d.ts.map +0 -1
  502. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.js +0 -11
  503. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.js.map +0 -1
  504. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.d.ts +0 -9
  505. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.d.ts.map +0 -1
  506. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.js +0 -85
  507. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.js.map +0 -1
  508. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.d.ts +0 -13
  509. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.d.ts.map +0 -1
  510. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.js +0 -44
  511. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.js.map +0 -1
  512. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.d.ts +0 -14
  513. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.d.ts.map +0 -1
  514. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.js +0 -18
  515. package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.js.map +0 -1
  516. package/payload/platform/plugins/loop/mcp/package-lock.json +0 -2549
  517. package/payload/platform/plugins/loop/mcp/package.json +0 -21
  518. package/payload/platform/plugins/loop/mcp/src/__tests__/loop-swagger.snapshot.json +0 -26467
  519. package/payload/platform/plugins/loop/mcp/src/__tests__/new-tool-shape.test.ts +0 -99
  520. package/payload/platform/plugins/loop/mcp/src/__tests__/plugin-md-time-doctrine.test.ts +0 -132
  521. package/payload/platform/plugins/loop/mcp/src/__tests__/swagger-write-coverage.test.ts +0 -154
  522. package/payload/platform/plugins/loop/mcp/src/index.ts +0 -498
  523. package/payload/platform/plugins/loop/mcp/src/lib/crypto.ts +0 -105
  524. package/payload/platform/plugins/loop/mcp/src/lib/file-crypto.ts +0 -54
  525. package/payload/platform/plugins/loop/mcp/src/lib/key-store.ts +0 -221
  526. package/payload/platform/plugins/loop/mcp/src/lib/loop-api.ts +0 -567
  527. package/payload/platform/plugins/loop/mcp/src/lib/neo4j.ts +0 -51
  528. package/payload/platform/plugins/loop/mcp/src/tools/auto-responder.ts +0 -80
  529. package/payload/platform/plugins/loop/mcp/src/tools/customer-preferences.ts +0 -66
  530. package/payload/platform/plugins/loop/mcp/src/tools/feedback.ts +0 -86
  531. package/payload/platform/plugins/loop/mcp/src/tools/key-deregister.ts +0 -12
  532. package/payload/platform/plugins/loop/mcp/src/tools/key-list.ts +0 -19
  533. package/payload/platform/plugins/loop/mcp/src/tools/key-register.ts +0 -70
  534. package/payload/platform/plugins/loop/mcp/src/tools/marketing-enquiry.ts +0 -27
  535. package/payload/platform/plugins/loop/mcp/src/tools/marketing-match-batch.ts +0 -53
  536. package/payload/platform/plugins/loop/mcp/src/tools/marketing-match-request.ts +0 -42
  537. package/payload/platform/plugins/loop/mcp/src/tools/marketing-match.ts +0 -84
  538. package/payload/platform/plugins/loop/mcp/src/tools/people-detail.ts +0 -245
  539. package/payload/platform/plugins/loop/mcp/src/tools/people-search.ts +0 -180
  540. package/payload/platform/plugins/loop/mcp/src/tools/property-detail.ts +0 -145
  541. package/payload/platform/plugins/loop/mcp/src/tools/property-intent.ts +0 -84
  542. package/payload/platform/plugins/loop/mcp/src/tools/property-listed.ts +0 -81
  543. package/payload/platform/plugins/loop/mcp/src/tools/property-search.ts +0 -92
  544. package/payload/platform/plugins/loop/mcp/src/tools/property-sold.ts +0 -67
  545. package/payload/platform/plugins/loop/mcp/src/tools/supplier.ts +0 -129
  546. package/payload/platform/plugins/loop/mcp/src/tools/team-availability.ts +0 -52
  547. package/payload/platform/plugins/loop/mcp/src/tools/team-info.ts +0 -95
  548. package/payload/platform/plugins/loop/mcp/src/tools/viewing-create.ts +0 -41
  549. package/payload/platform/plugins/loop/mcp/src/tools/viewing-detail.ts +0 -171
  550. package/payload/platform/plugins/loop/mcp/src/tools/viewing-search.ts +0 -92
  551. package/payload/platform/plugins/loop/mcp/src/tools/viewing-update.ts +0 -53
  552. package/payload/platform/plugins/loop/mcp/tsconfig.json +0 -20
  553. package/payload/platform/plugins/loop/mcp/vitest.config.ts +0 -9
  554. package/payload/platform/plugins/loop/skills/compliance-flag-checker/SKILL.md +0 -53
  555. package/payload/platform/plugins/loop/skills/priority-ranker/SKILL.md +0 -40
  556. package/payload/platform/plugins/loop/skills/tone-matched-drafter/SKILL.md +0 -53
  557. package/payload/platform/plugins/loop/skills/variance-narrator/SKILL.md +0 -50
  558. package/payload/platform/plugins/loop/skills/vendor-research/SKILL.md +0 -54
  559. package/payload/platform/plugins/preval/.claude-plugin/plugin.json +0 -8
  560. package/payload/platform/plugins/preval/PLUGIN.md +0 -55
  561. package/payload/platform/plugins/preval/hooks/preval-prompt-required.sh +0 -140
  562. package/payload/platform/plugins/preval/skills/property-preval/SKILL.md +0 -176
  563. package/payload/platform/plugins/preval/skills/property-preval/references/__tests__/adherence.test.py +0 -373
  564. package/payload/platform/plugins/preval/skills/property-preval/references/render.py +0 -815
  565. package/payload/platform/plugins/preval/skills/property-preval/references/template-inputs.schema.json +0 -199
  566. package/payload/platform/plugins/preval/skills/property-preval/references/template.html +0 -312
  567. package/payload/platform/plugins/property-data/.claude-plugin/plugin.json +0 -17
  568. package/payload/platform/plugins/property-data/PLUGIN.md +0 -180
  569. package/payload/platform/plugins/property-data/mcp/dist/index.d.ts +0 -2
  570. package/payload/platform/plugins/property-data/mcp/dist/index.d.ts.map +0 -1
  571. package/payload/platform/plugins/property-data/mcp/dist/index.js +0 -236
  572. package/payload/platform/plugins/property-data/mcp/dist/index.js.map +0 -1
  573. package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.d.ts +0 -3
  574. package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.d.ts.map +0 -1
  575. package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.js +0 -72
  576. package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.js.map +0 -1
  577. package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.d.ts +0 -3
  578. package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.d.ts.map +0 -1
  579. package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.js +0 -49
  580. package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.js.map +0 -1
  581. package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.d.ts +0 -15
  582. package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.d.ts.map +0 -1
  583. package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.js +0 -135
  584. package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.js.map +0 -1
  585. package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.d.ts +0 -5
  586. package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.d.ts.map +0 -1
  587. package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.js +0 -38
  588. package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.js.map +0 -1
  589. package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts +0 -28
  590. package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts.map +0 -1
  591. package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.js +0 -101
  592. package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.js.map +0 -1
  593. package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.d.ts +0 -24
  594. package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.d.ts.map +0 -1
  595. package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.js +0 -33
  596. package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.js.map +0 -1
  597. package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.d.ts +0 -4
  598. package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.d.ts.map +0 -1
  599. package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.js +0 -9
  600. package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.js.map +0 -1
  601. package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.d.ts +0 -4
  602. package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.d.ts.map +0 -1
  603. package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.js +0 -10
  604. package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.js.map +0 -1
  605. package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.d.ts +0 -5
  606. package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.d.ts.map +0 -1
  607. package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.js +0 -50
  608. package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.js.map +0 -1
  609. package/payload/platform/plugins/property-data/mcp/package-lock.json +0 -2566
  610. package/payload/platform/plugins/property-data/mcp/package.json +0 -21
  611. package/payload/platform/plugins/property-data/mcp/src/__tests__/endpoints.test.ts +0 -252
  612. package/payload/platform/plugins/property-data/mcp/src/__tests__/key-roundtrip.test.ts +0 -107
  613. package/payload/platform/plugins/property-data/mcp/src/__tests__/propertydata-api.test.ts +0 -184
  614. package/payload/platform/plugins/property-data/mcp/src/__tests__/schema-parity.test.ts +0 -62
  615. package/payload/platform/plugins/property-data/mcp/src/index.ts +0 -409
  616. package/payload/platform/plugins/property-data/mcp/src/lib/crypto.ts +0 -79
  617. package/payload/platform/plugins/property-data/mcp/src/lib/file-crypto.ts +0 -55
  618. package/payload/platform/plugins/property-data/mcp/src/lib/key-store.ts +0 -181
  619. package/payload/platform/plugins/property-data/mcp/src/lib/neo4j.ts +0 -47
  620. package/payload/platform/plugins/property-data/mcp/src/lib/propertydata-api.ts +0 -120
  621. package/payload/platform/plugins/property-data/mcp/src/tools/endpoints.ts +0 -47
  622. package/payload/platform/plugins/property-data/mcp/src/tools/key-deregister.ts +0 -9
  623. package/payload/platform/plugins/property-data/mcp/src/tools/key-list.ts +0 -10
  624. package/payload/platform/plugins/property-data/mcp/src/tools/key-register.ts +0 -54
  625. package/payload/platform/plugins/property-data/mcp/tsconfig.json +0 -20
  626. package/payload/platform/plugins/property-data/mcp/vitest.config.ts +0 -8
  627. package/payload/platform/plugins/property-data/skills/property-data/SKILL.md +0 -77
  628. package/payload/platform/plugins/vendors/.claude-plugin/plugin.json +0 -8
  629. package/payload/platform/plugins/vendors/PLUGIN.md +0 -33
  630. package/payload/platform/plugins/vendors/skills/vendor-communication/SKILL.md +0 -42
  631. package/payload/platform/plugins/vendors/skills/vendor-communication/references/fee-protection-and-agenda.md +0 -28
  632. package/payload/platform/plugins/vendors/skills/vendor-communication/references/listing-scripts.md +0 -44
  633. package/payload/platform/plugins/vendors/skills/vendor-communication/references/negotiation-deep-guide.md +0 -70
  634. package/payload/platform/plugins/vendors/skills/vendor-communication/references/price-alignment-scripts.md +0 -33
  635. package/payload/platform/plugins/vendors/skills/vendor-communication/references/price-alignment.md +0 -34
  636. package/payload/platform/plugins/vendors/skills/vendor-communication/references/scenario-scripts.md +0 -38
  637. package/payload/platform/plugins/vendors/skills/vendor-communication/references/seller-engagement.md +0 -51
  638. package/payload/platform/plugins/vendors/skills/vendor-communication/references/valuation-booking.md +0 -76
  639. package/payload/platform/plugins/vendors/skills/vendor-communication/references/vendor-scripts.md +0 -63
  640. package/payload/platform/plugins/vendors/skills/vendor-communication/references/vendor-updates.md +0 -41
  641. package/payload/platform/plugins/vendors/skills/vendor-updates/SKILL.md +0 -153
  642. package/payload/premium-plugins/real-agent/plugins/epc/PLUGIN.md +0 -90
  643. package/payload/premium-plugins/real-agent/plugins/epc/mcp/package-lock.json +0 -2566
  644. package/payload/premium-plugins/real-agent/plugins/epc/mcp/package.json +0 -21
  645. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/epc-api.test.ts +0 -251
  646. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/key-roundtrip.test.ts +0 -113
  647. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/lookup.test.ts +0 -181
  648. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/schema-parity.test.ts +0 -54
  649. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/index.ts +0 -156
  650. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/crypto.ts +0 -79
  651. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/epc-api.ts +0 -241
  652. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/file-crypto.ts +0 -55
  653. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/key-store.ts +0 -172
  654. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/neo4j.ts +0 -47
  655. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/key-deregister.ts +0 -9
  656. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/key-list.ts +0 -10
  657. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/key-register.ts +0 -44
  658. package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/lookup.ts +0 -43
  659. package/payload/premium-plugins/real-agent/plugins/epc/mcp/tsconfig.json +0 -20
  660. package/payload/premium-plugins/real-agent/plugins/epc/mcp/vitest.config.ts +0 -8
  661. 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,38 +0,0 @@
1
- ---
2
- name: epc-checker
3
- description: "Look up the EPC register for a property and decide whether an order is needed. Returns the current EPC rating and expiry if one exists, or stages an order request to the agent's preferred EPC supplier if not. Built for use inside new-instruction."
4
- ---
5
-
6
- # EPC checker
7
-
8
- A building-block skill called by `new-instruction`. Decides whether the property has a current EPC and, if not, stages an order.
9
-
10
- ## What it does
11
-
12
- Queries the EPC register by address. Three outcomes:
13
-
14
- 1. **Current EPC found.** Records the asset rating (A to G), the certificate reference, and the expiry date. The workflow records this in the CRM and moves on. No gate needed.
15
- 2. **Expired EPC found.** Records the prior rating and the expiry date. Stages an order with the agent's preferred EPC supplier from the profile. *Gate: approve order before send.*
16
- 3. **No EPC found.** Stages an order. *Gate: approve order before send.*
17
-
18
- The order is an email draft to the supplier with the property address, vendor contact, and the agent's standard EPC brief.
19
-
20
- ## Compliance ground
21
-
22
- The Energy Performance of Buildings (England and Wales) Regulations 2012 (SI 2012/3118) require an EPC before marketing for sale. The asset rating must be stated in all commercial media. Domestic penalty range GBP 500 to GBP 5,000. `compliance-flag-checker` runs over the listing copy at step 5 of `new-instruction` to make sure the EPC rating is present once the certificate has been issued.
23
-
24
- ## What it does not do
25
-
26
- - It does not perform the EPC inspection. That is the supplier.
27
- - It does not send the order. Sending requires the operator's approval.
28
- - It does not write to the EPC register.
29
-
30
- ## Connectors
31
-
32
- Read: EPC register, profile (preferred supplier).
33
- Write (staged only): email to supplier.
34
-
35
- ## Profile keys
36
-
37
- - `realagent.suppliers.epc`
38
- - `realagent.epc_order.standard_brief` (default email body, learned)