@rubytech/create-maxy-code 0.1.114 → 0.1.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/installer-specialist-registration.test.js +40 -1
- package/dist/__tests__/premium-bundle-gate.test.js +59 -0
- package/dist/index.js +24 -1
- package/dist/specialist-registration.js +15 -0
- package/package.json +1 -1
- package/payload/platform/config/brand.json +1 -1
- package/payload/platform/neo4j/schema.cypher +1 -1
- package/payload/platform/plugins/.claude-plugin/marketplace.json +0 -5
- package/payload/platform/plugins/contacts/mcp/dist/index.js +3 -3
- package/payload/platform/plugins/contacts/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/contacts/mcp/dist/tools/contact-create.js +1 -1
- package/payload/platform/plugins/docs/references/contacts-guide.md +1 -9
- package/payload/platform/plugins/docs/references/getting-started.md +1 -1
- package/payload/platform/plugins/docs/references/internals.md +1 -1
- package/payload/platform/plugins/docs/references/platform.md +1 -1
- package/payload/platform/plugins/docs/references/plugins-guide.md +1 -2
- package/payload/platform/plugins/linkedin-import/PLUGIN.md +1 -1
- package/payload/platform/plugins/memory/PLUGIN.md +1 -1
- package/payload/platform/plugins/sales/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/sales/PLUGIN.md +9 -9
- package/payload/platform/plugins/sales/references/close-tracking.md +6 -6
- package/payload/platform/plugins/sales/references/faq.md +1 -5
- package/payload/platform/plugins/sales/references/objection-handling.md +2 -2
- package/payload/platform/plugins/scheduling/PLUGIN.md +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/index.js +2 -2
- package/payload/platform/plugins/scheduling/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/scheduling/mcp/dist/lib/__tests__/getUserTimezone.test.js +1 -1
- package/payload/platform/plugins/venture-studio/skills/office-hours/SKILL.md +3 -3
- package/payload/platform/plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +4 -4
- package/payload/platform/plugins/workflows/PLUGIN.md +1 -1
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.d.ts +1 -1
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js +2 -2
- package/payload/platform/plugins/workflows/mcp/dist/tools/workflow-execute.js.map +1 -1
- package/payload/platform/scripts/conversation-id-allowlist.txt +0 -7
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +42 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +34 -0
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +83 -2
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/templates/specialists/agents/project-manager.md +1 -3
- package/payload/premium-plugins/.claude-plugin/marketplace.json +0 -10
- package/payload/premium-plugins/venture-studio/skills/office-hours/SKILL.md +3 -3
- package/payload/premium-plugins/venture-studio/skills/zero-to-prototype/references/landing-page.md +4 -4
- package/payload/server/{chunk-FSPPVVWM.js → chunk-FJCI6X3H.js} +192 -0
- package/payload/server/maxy-edge.js +1 -1
- package/payload/server/public/assets/{ChatInput-CsnIedhS.js → ChatInput-CJo_77bp.js} +5 -1
- package/payload/server/public/assets/{Checkbox-CWugFyFT.js → Checkbox-YrQovXpN.js} +1 -1
- package/payload/server/public/assets/{admin-D3gZuyUn.js → admin-DOxHsV7g.js} +25 -25
- package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CeTRKWDb.js → architectureDiagram-Q4EWVU46-Breg9-99.js} +1 -1
- package/payload/server/public/assets/{blockDiagram-DXYQGD6D-DeeIX5U3.js → blockDiagram-DXYQGD6D-DXf1_673.js} +1 -1
- package/payload/server/public/assets/{c4Diagram-AHTNJAMY-CFsqZuil.js → c4Diagram-AHTNJAMY-CSZ36W4-.js} +1 -1
- package/payload/server/public/assets/channel-BmZnt3PP.js +1 -0
- package/payload/server/public/assets/{chunk-336JU56O-DpIXuFM0.js → chunk-336JU56O-DsrLk2eK.js} +2 -2
- package/payload/server/public/assets/{chunk-426QAEUC-Qk8qqrvA.js → chunk-426QAEUC-JpNfNf81.js} +1 -1
- package/payload/server/public/assets/{chunk-4TB4RGXK-DtM8-CUn.js → chunk-4TB4RGXK-DmClEAD0.js} +1 -1
- package/payload/server/public/assets/{chunk-5FUZZQ4R-CrSQ4ySU.js → chunk-5FUZZQ4R-BI9blW3N.js} +1 -1
- package/payload/server/public/assets/{chunk-5PVQY5BW-Bn2nQwdj.js → chunk-5PVQY5BW-BbgttEFO.js} +1 -1
- package/payload/server/public/assets/{chunk-EDXVE4YY-CzCPnR0P.js → chunk-EDXVE4YY-BX_LCFOx.js} +1 -1
- package/payload/server/public/assets/{chunk-ENJZ2VHE-CgZj9RoG.js → chunk-ENJZ2VHE-Bb7EoD0w.js} +1 -1
- package/payload/server/public/assets/{chunk-ICPOFSXX-wy-eNjwW.js → chunk-ICPOFSXX-DH8uQk-s.js} +1 -1
- package/payload/server/public/assets/{chunk-OYMX7WX6-CMmJtL8S.js → chunk-OYMX7WX6-FH5kgXsw.js} +1 -1
- package/payload/server/public/assets/{chunk-U2HBQHQK-CFCW7OaT.js → chunk-U2HBQHQK-D_ljlkHr.js} +1 -1
- package/payload/server/public/assets/{chunk-X2U36JSP-Bgh-CJSN.js → chunk-X2U36JSP-BX3EmZvm.js} +1 -1
- package/payload/server/public/assets/{chunk-YZCP3GAM-BXKwZ4vN.js → chunk-YZCP3GAM-Vu7-E93h.js} +1 -1
- package/payload/server/public/assets/{chunk-ZZ45TVLE-BiOuK5NP.js → chunk-ZZ45TVLE-CwjhNPX5.js} +1 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-kmMLFUpV.js +1 -0
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BV7Ae8ct.js +1 -0
- package/payload/server/public/assets/clone-B5eqoN9I.js +1 -0
- package/payload/server/public/assets/{dagre-DyCxa9Q2.js → dagre-Ce6gsj0C.js} +1 -1
- package/payload/server/public/assets/{dagre-KV5264BT-Cffo_hmf.js → dagre-KV5264BT-BaMGpsoy.js} +1 -1
- package/payload/server/public/assets/data-NMvGx6jm.js +1 -0
- package/payload/server/public/assets/{diagram-5BDNPKRD-Bt93Du3V.js → diagram-5BDNPKRD-CHEE9rjq.js} +1 -1
- package/payload/server/public/assets/{diagram-G4DWMVQ6-v4r-tBsC.js → diagram-G4DWMVQ6-C98sZLW1.js} +1 -1
- package/payload/server/public/assets/{diagram-MMDJMWI5-DKrVPOP-.js → diagram-MMDJMWI5-DNvMGsTZ.js} +1 -1
- package/payload/server/public/assets/{diagram-TYMM5635-B1PzWQb9.js → diagram-TYMM5635-Cdte4IBa.js} +1 -1
- package/payload/server/public/assets/{erDiagram-SMLLAGMA-ClQzsQAs.js → erDiagram-SMLLAGMA-C9VZsWXK.js} +1 -1
- package/payload/server/public/assets/{flowDiagram-DWJPFMVM-h3IbpN_7.js → flowDiagram-DWJPFMVM-tuP5fzzR.js} +1 -1
- package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-ClaxOJi8.js → ganttDiagram-T4ZO3ILL-SJgRPUwx.js} +1 -1
- package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-pM-U4ClD.js → gitGraphDiagram-UUTBAWPF-DU_cI_50.js} +1 -1
- package/payload/server/public/assets/graph-BkwTCV2Y.js +1 -0
- package/payload/server/public/assets/graph-labels-h39S93Xo.js +1 -0
- package/payload/server/public/assets/{graphlib-CwimOv_M.js → graphlib-D_nAsvmx.js} +1 -1
- package/payload/server/public/assets/{infoDiagram-42DDH7IO-DcO3Giwe.js → infoDiagram-42DDH7IO-Cj2Y19m6.js} +1 -1
- package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-BcdSL5VS.js → ishikawaDiagram-UXIWVN3A-DMc1xq1y.js} +1 -1
- package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-CYahHYzf.js → journeyDiagram-VCZTEJTY-C4CRAQma.js} +1 -1
- package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Cl5KhoS4.js → kanban-definition-6JOO6SKY-CTr4AldU.js} +1 -1
- package/payload/server/public/assets/lib-Bnh57com.js +29 -0
- package/payload/server/public/assets/{line-d_2oTxLp.js → line-Btlm_IAl.js} +1 -1
- package/payload/server/public/assets/{mermaid-parser.core-CMMDGv3x.js → mermaid-parser.core-DXFdj_y1.js} +1 -1
- package/payload/server/public/assets/{mermaid.core-DK9ENGbr.js → mermaid.core-DFBhoCr5.js} +3 -3
- package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-mA3x3MFG.js → mindmap-definition-QFDTVHPH-r9gVQybo.js} +1 -1
- package/payload/server/public/assets/{page-CgDmg_fX.js → page-B0iMmY6t.js} +1 -1
- package/payload/server/public/assets/{page-D9lluVl7.js → page-zQ79YCEt.js} +2 -2
- package/payload/server/public/assets/{pieDiagram-DEJITSTG-CW1nGFlY.js → pieDiagram-DEJITSTG-CHKZjSaH.js} +1 -1
- package/payload/server/public/assets/{public-DdLMkNdS.js → public-DyGWgfaZ.js} +4 -4
- package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-DI5igJhR.js → quadrantDiagram-34T5L4WZ-CSGR1HJr.js} +1 -1
- package/payload/server/public/assets/{requirementDiagram-MS252O5E-DyVeI4e_.js → requirementDiagram-MS252O5E-DZ6hX9D6.js} +1 -1
- package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-CCTTBYKY.js → sankeyDiagram-XADWPNL6-DbZBKh0m.js} +1 -1
- package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-hVVf35ly.js → sequenceDiagram-FGHM5R23-BHHpb8dt.js} +1 -1
- package/payload/server/public/assets/{stateDiagram-FHFEXIEX-CSLuQDUX.js → stateDiagram-FHFEXIEX-DQ1jiLB4.js} +1 -1
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-CByT2RzF.js +1 -0
- package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-sxC3W8Q4.js → timeline-definition-GMOUNBTQ-BlGiEU7p.js} +1 -1
- package/payload/server/public/assets/{vennDiagram-DHZGUBPP-Ro-ton6Z.js → vennDiagram-DHZGUBPP-DmEH-hsB.js} +1 -1
- package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-T-dKD0Zx.js → wardleyDiagram-NUSXRM2D-C7KJJ40d.js} +1 -1
- package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-CfProPts.js → xychartDiagram-5P7HB3ND-JDnusCaa.js} +1 -1
- package/payload/server/public/data.html +4 -4
- package/payload/server/public/graph.html +5 -5
- package/payload/server/public/index.html +7 -7
- package/payload/server/public/public.html +4 -4
- package/payload/server/server.js +52 -8
- package/payload/platform/plugins/waitlist/.claude-plugin/plugin.json +0 -17
- package/payload/platform/plugins/waitlist/PLUGIN.md +0 -86
- package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts +0 -2
- package/payload/platform/plugins/waitlist/mcp/dist/index.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/index.js +0 -388
- package/payload/platform/plugins/waitlist/mcp/dist/index.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts +0 -16
- package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js +0 -58
- package/payload/platform/plugins/waitlist/mcp/dist/lib/admin-model.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts +0 -3
- package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js +0 -48
- package/payload/platform/plugins/waitlist/mcp/dist/lib/embedding.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts +0 -5
- package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js +0 -40
- package/payload/platform/plugins/waitlist/mcp/dist/lib/neo4j.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts +0 -2
- package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js +0 -70
- package/payload/platform/plugins/waitlist/mcp/dist/tools/__tests__/waitlist-persist.test.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts +0 -34
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js +0 -129
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-extract.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts +0 -27
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js +0 -127
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-heal.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts +0 -23
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js +0 -58
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-list.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts +0 -83
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js +0 -433
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-persist.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts +0 -19
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js +0 -81
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-review.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts +0 -28
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js +0 -50
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-scan.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts +0 -33
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.d.ts.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js +0 -297
- package/payload/platform/plugins/waitlist/mcp/dist/tools/waitlist-setup.js.map +0 -1
- package/payload/platform/plugins/waitlist/mcp/package.json +0 -23
- package/payload/platform/plugins/waitlist/mcp/vitest.config.ts +0 -9
- package/payload/premium-plugins/real-agent/BUNDLE.md +0 -47
- package/payload/premium-plugins/real-agent/agents/buyer-enquiry/IDENTITY.md +0 -13
- package/payload/premium-plugins/real-agent/agents/buyer-enquiry/SOUL.md +0 -19
- package/payload/premium-plugins/real-agent/agents/buyer-enquiry/template.json +0 -9
- package/payload/premium-plugins/real-agent/agents/compliance.md +0 -317
- package/payload/premium-plugins/real-agent/agents/listing-curator.md +0 -152
- package/payload/premium-plugins/real-agent/agents/negotiator.md +0 -167
- package/payload/premium-plugins/real-agent/agents/valuer.md +0 -155
- package/payload/premium-plugins/real-agent/plugins/.claude-plugin/marketplace.json +0 -68
- package/payload/premium-plugins/real-agent/plugins/brochures/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/brochures/PLUGIN.md +0 -38
- package/payload/premium-plugins/real-agent/plugins/brochures/commands/make-brochure.md +0 -11
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/a4-print-documents/SKILL.md +0 -478
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/brand-design/SKILL.md +0 -235
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/make-brochure/SKILL.md +0 -355
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/make-brochure/references/seller-brief-template.md +0 -115
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/SKILL.md +0 -195
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/build.md +0 -689
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/copy.md +0 -211
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/images.md +0 -166
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/index-landing.md +0 -376
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/index.html +0 -1290
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/placeholders.md +0 -250
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/registers.md +0 -105
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/seller-brief.md +0 -56
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/structure.md +0 -249
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-brochure/references/template.html +0 -2400
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-extract/SKILL.md +0 -366
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-market-report/SKILL.md +0 -100
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-market-report/references/render.py +0 -267
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-market-report/references/template.html +0 -266
- package/payload/premium-plugins/real-agent/plugins/brochures/skills/property-socials/SKILL.md +0 -143
- package/payload/premium-plugins/real-agent/plugins/buyers/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/buyers/PLUGIN.md +0 -35
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-feedback/SKILL.md +0 -109
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/SKILL.md +0 -42
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-qualification-questions.md +0 -16
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-qualification.md +0 -59
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-scripts.md +0 -63
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/buyer-working-scripts.md +0 -54
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/feedback-collection.md +0 -42
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/offer-capture.md +0 -38
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/viewing-booking.md +0 -32
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-management/references/viewing-management.md +0 -52
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/SKILL.md +0 -407
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/care-fees-guide.md +0 -68
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/divorce-sales-guide.md +0 -61
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/downsizing-guide.md +0 -45
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/first-time-buyers.md +0 -92
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/first-time-sellers.md +0 -78
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/probate-guide.md +0 -53
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/buyer-seller-guides/references/upsizing-guide.md +0 -41
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/property-enquiry/SKILL.md +0 -126
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/property-recommender/SKILL.md +0 -116
- package/payload/premium-plugins/real-agent/plugins/buyers/skills/viewing-management/SKILL.md +0 -111
- package/payload/premium-plugins/real-agent/plugins/estate-business/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/estate-business/PLUGIN.md +0 -64
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/SKILL.md +0 -133
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/buy-back-your-time.md +0 -37
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/firewave-gost-scorecards.md +0 -14
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/keller-org-model.md +0 -17
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/lencioni-team-models.md +0 -22
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/listing-management-system.md +0 -11
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/net-figure-form.md +0 -11
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/serhant-bizinbox-notes.md +0 -13
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/team-roles-commission.md +0 -14
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/va-2026-ops.md +0 -43
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-growth/references/wingman-structure.md +0 -13
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/SKILL.md +0 -32
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/crm-systems.md +0 -57
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/hiring-guide.md +0 -59
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/impact-framework.md +0 -47
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/minutes-equal-money.md +0 -55
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/business-operations/references/team-management.md +0 -48
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/commission-calculator/SKILL.md +0 -40
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/SKILL.md +0 -52
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/12-reasons.md +0 -39
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/95-5-system.md +0 -66
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/agent-attraction-scripts.md +0 -90
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/business-partnership.md +0 -92
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/exp-model-overview.md +0 -66
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/model-comparison.md +0 -66
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/exp-partnership/references/revenue-share-explained.md +0 -57
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/month-end-close/SKILL.md +0 -69
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/payment-batch-stager/SKILL.md +0 -42
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/period-reconciler/SKILL.md +0 -42
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/SKILL.md +0 -117
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/attraction-agent-notes.md +0 -31
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/attraction-agent.md +0 -58
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/authenticity-boundaries.md +0 -28
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/become-a-brand-leader-notes.md +0 -19
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/blast-formula.md +0 -42
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/brand-leader.md +0 -48
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/brand-strategy-system.md +0 -59
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/content-engine.md +0 -49
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/firewave-blast-and-blogging.md +0 -23
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/gary-v-content.md +0 -52
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/gary-v-principles.md +0 -20
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/oversubscribed-positioning.md +0 -18
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/platforms.md +0 -41
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/priestley-oversubscribed.md +0 -54
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/storeys-style-examples.md +0 -25
- package/payload/premium-plugins/real-agent/plugins/estate-business/skills/personal-branding/references/visual-identity.md +0 -27
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/PLUGIN.md +0 -54
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/SKILL.md +0 -371
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/atomic-habits.md +0 -52
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/daily-routine-scorecard.md +0 -104
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/hp6-model.md +0 -63
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/agent-performance/references/twelve-week-year.md +0 -71
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/SKILL.md +0 -36
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/references/coaching-boundaries.md +0 -56
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/references/feedback-framework.md +0 -61
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/bespoke-coaching/references/performance-framework.md +0 -109
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/SKILL.md +0 -421
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/coaching-exercises.md +0 -86
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/goal-setting.md +0 -78
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/one-to-one-framework.md +0 -92
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/coaching-toolkit/references/soi-workbook.md +0 -103
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/SKILL.md +0 -410
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/agent-training-guide.md +0 -70
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/business-in-a-box.md +0 -72
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/buyers-guide.md +0 -53
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/codo-method.md +0 -72
- package/payload/premium-plugins/real-agent/plugins/estate-coaching/skills/serhant-training/references/website-planning-guide.md +0 -79
- package/payload/premium-plugins/real-agent/plugins/estate-sales/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/estate-sales/PLUGIN.md +0 -52
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/chase-progression/SKILL.md +0 -107
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/SKILL.md +0 -35
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/deal-saving.md +0 -47
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/negotiation-deep-guide.md +0 -64
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/negotiation-prep-principles.md +0 -29
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/negotiation-techniques.md +0 -42
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/negotiation/references/offer-presentation.md +0 -43
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/risk-scorer/SKILL.md +0 -42
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-closer/SKILL.md +0 -24
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-closer/references/serhant-emotion-stages.md +0 -36
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/SKILL.md +0 -30
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/chris-voss-discovery.md +0 -88
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/firewave-gost-journey.md +0 -68
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/phil-jones-openers.md +0 -78
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/pre-listing-checklist.md +0 -77
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/serhant-improv.md +0 -22
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/tom-ferry-discovery.md +0 -103
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-discovery/references/vendor-motivation-competitor.md +0 -52
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/SKILL.md +0 -29
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/chris-voss-negotiation.md +0 -70
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/phil-jones-price-words.md +0 -40
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/serhant-negotiation-plus.md +0 -55
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/tom-panos-commission-pricing.md +0 -57
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-negotiation/references/tony-morris-questioning.md +0 -54
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-progression/SKILL.md +0 -27
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-progression/references/conveyancing-guide.md +0 -54
- package/payload/premium-plugins/real-agent/plugins/estate-sales/skills/sales-progression/references/transaction-tracking.md +0 -66
- package/payload/premium-plugins/real-agent/plugins/estate-teaching/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/estate-teaching/PLUGIN.md +0 -30
- package/payload/premium-plugins/real-agent/plugins/estate-teaching/skills/content-directory/SKILL.md +0 -39
- package/payload/premium-plugins/real-agent/plugins/estate-teaching/skills/content-directory/references/module-delivery.md +0 -65
- package/payload/premium-plugins/real-agent/plugins/estate-teaching/skills/content-directory/references/progress-tracking.md +0 -47
- package/payload/premium-plugins/real-agent/plugins/leads/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/leads/PLUGIN.md +0 -61
- package/payload/premium-plugins/real-agent/plugins/leads/skills/chain-progression-tracker/SKILL.md +0 -51
- package/payload/premium-plugins/real-agent/plugins/leads/skills/diary-builder/SKILL.md +0 -38
- package/payload/premium-plugins/real-agent/plugins/leads/skills/enquiry-triage/SKILL.md +0 -36
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/SKILL.md +0 -137
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/buyer-search-letter.md +0 -28
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/buyer-search-letters.md +0 -37
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/database-reactivation.md +0 -30
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/email-nurture-sequences.md +0 -45
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/facebook-referrals.md +0 -30
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/firewave-email-nurture-sequences.md +0 -41
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/keller-33-touch.md +0 -34
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/neighbour-letters.md +0 -31
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/neighbour-notification-letter.md +0 -20
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/ofi-follow-up-dialogue.md +0 -22
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/ofi-follow-up.md +0 -26
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/serhant-three-fs-plus.md +0 -21
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sharran-10x10x10.md +0 -18
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sms-templates.md +0 -40
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sphere-of-influence-notes.md +0 -34
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/sphere-of-influence.md +0 -60
- package/payload/premium-plugins/real-agent/plugins/leads/skills/lead-nurturing/references/tom-panos-sms-templates.md +0 -59
- package/payload/premium-plugins/real-agent/plugins/leads/skills/morning-round/SKILL.md +0 -72
- package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/SKILL.md +0 -33
- package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/database-matching.md +0 -30
- package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/database-value.md +0 -53
- package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/prospecting-dialogues.md +0 -24
- package/payload/premium-plugins/real-agent/plugins/leads/skills/prospecting/references/reactivation.md +0 -34
- package/payload/premium-plugins/real-agent/plugins/listings/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/listings/PLUGIN.md +0 -100
- package/payload/premium-plugins/real-agent/plugins/listings/skills/comparable-finder/SKILL.md +0 -52
- package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/SKILL.md +0 -28
- package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/kerb-appeal.md +0 -38
- package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/photo-day.md +0 -59
- package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/situational-tips.md +0 -50
- package/payload/premium-plugins/real-agent/plugins/listings/skills/home-preparation/references/staging-guide.md +0 -52
- package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-copy-writer/SKILL.md +0 -55
- package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/SKILL.md +0 -286
- package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/booking-script.md +0 -51
- package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/objection-scripts.md +0 -193
- package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/penhaul-presentation.md +0 -123
- package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/pre-listing-kit.md +0 -139
- package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/set-to-sell.md +0 -55
- package/payload/premium-plugins/real-agent/plugins/listings/skills/listing-presentation/references/sharran-frameworks.md +0 -107
- package/payload/premium-plugins/real-agent/plugins/listings/skills/local-market-stats/SKILL.md +0 -33
- package/payload/premium-plugins/real-agent/plugins/listings/skills/new-instruction/SKILL.md +0 -77
- package/payload/premium-plugins/real-agent/plugins/listings/skills/particulars-builder/SKILL.md +0 -48
- package/payload/premium-plugins/real-agent/plugins/listings/skills/portal-launch-scheduler/SKILL.md +0 -49
- package/payload/premium-plugins/real-agent/plugins/listings/skills/pricing-scenario-builder/SKILL.md +0 -35
- package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/SKILL.md +0 -337
- package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/auction-report-template.md +0 -41
- package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/coming-soon-campaign.md +0 -43
- package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/direct-mail-templates.md +0 -121
- package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/eoi-form-template.md +0 -62
- package/payload/premium-plugins/real-agent/plugins/listings/skills/property-marketing/references/monthly-scorecard.md +0 -63
- package/payload/premium-plugins/real-agent/plugins/listings/skills/supplier-booker/SKILL.md +0 -39
- package/payload/premium-plugins/real-agent/plugins/listings/skills/talk-track-composer/SKILL.md +0 -36
- package/payload/premium-plugins/real-agent/plugins/listings/skills/terms-of-business-drafter/SKILL.md +0 -54
- package/payload/premium-plugins/real-agent/plugins/listings/skills/valuation-prep/SKILL.md +0 -69
- package/payload/premium-plugins/real-agent/plugins/loop/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/loop/PLUGIN.md +0 -261
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.d.ts +0 -2
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.js +0 -320
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.d.ts +0 -10
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.js +0 -88
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/crypto.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.d.ts +0 -3
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.js +0 -48
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/file-crypto.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.d.ts +0 -22
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.js +0 -165
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/key-store.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.d.ts +0 -82
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.js +0 -392
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/loop-api.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.d.ts +0 -5
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.js +0 -40
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/lib/neo4j.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.d.ts +0 -12
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.js +0 -22
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/auto-responder.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.d.ts +0 -10
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.js +0 -24
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/customer-preferences.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.d.ts +0 -16
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.js +0 -35
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/feedback.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.d.ts +0 -5
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.js +0 -9
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-deregister.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.d.ts +0 -4
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.js +0 -14
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-list.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.d.ts +0 -9
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.js +0 -43
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/key-register.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts +0 -6
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.js +0 -7
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-enquiry.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts +0 -9
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.js +0 -16
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-batch.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts +0 -15
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.js +0 -11
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match-request.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.d.ts +0 -10
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.js +0 -39
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/marketing-match.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.d.ts +0 -9
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.js +0 -125
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-detail.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.d.ts +0 -18
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.js +0 -87
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/people-search.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.d.ts +0 -10
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.js +0 -82
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-detail.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.d.ts +0 -33
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.js +0 -19
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-intent.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.d.ts +0 -11
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.js +0 -26
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-listed.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.d.ts +0 -15
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.js +0 -11
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-request.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.d.ts +0 -16
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.js +0 -41
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-search.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.d.ts +0 -9
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.js +0 -19
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/property-sold.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.d.ts +0 -13
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.js +0 -49
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/supplier.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.d.ts +0 -7
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.js +0 -19
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-availability.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.d.ts +0 -5
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.js +0 -32
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/team-info.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.d.ts +0 -14
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.js +0 -11
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-create.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.d.ts +0 -9
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.js +0 -85
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-detail.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.d.ts +0 -13
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.js +0 -44
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-search.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.d.ts +0 -14
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.js +0 -18
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/tools/viewing-update.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/package-lock.json +0 -2549
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/package.json +0 -21
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/loop-swagger.snapshot.json +0 -26467
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/new-tool-shape.test.ts +0 -99
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/plugin-md-time-doctrine.test.ts +0 -132
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/__tests__/swagger-write-coverage.test.ts +0 -154
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/index.ts +0 -498
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/crypto.ts +0 -105
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/file-crypto.ts +0 -54
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/key-store.ts +0 -221
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/loop-api.ts +0 -567
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/lib/neo4j.ts +0 -51
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/auto-responder.ts +0 -80
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/customer-preferences.ts +0 -66
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/feedback.ts +0 -86
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/key-deregister.ts +0 -12
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/key-list.ts +0 -19
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/key-register.ts +0 -70
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-enquiry.ts +0 -27
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-match-batch.ts +0 -53
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-match-request.ts +0 -42
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/marketing-match.ts +0 -84
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/people-detail.ts +0 -245
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/people-search.ts +0 -180
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-detail.ts +0 -145
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-intent.ts +0 -84
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-listed.ts +0 -81
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-search.ts +0 -92
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/property-sold.ts +0 -67
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/supplier.ts +0 -129
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/team-availability.ts +0 -52
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/team-info.ts +0 -95
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-create.ts +0 -41
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-detail.ts +0 -171
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-search.ts +0 -92
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/tools/viewing-update.ts +0 -53
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/tsconfig.json +0 -20
- package/payload/premium-plugins/real-agent/plugins/loop/mcp/vitest.config.ts +0 -9
- package/payload/premium-plugins/real-agent/plugins/loop/skills/compliance-flag-checker/SKILL.md +0 -53
- package/payload/premium-plugins/real-agent/plugins/loop/skills/priority-ranker/SKILL.md +0 -40
- package/payload/premium-plugins/real-agent/plugins/loop/skills/tone-matched-drafter/SKILL.md +0 -53
- package/payload/premium-plugins/real-agent/plugins/loop/skills/variance-narrator/SKILL.md +0 -50
- package/payload/premium-plugins/real-agent/plugins/loop/skills/vendor-research/SKILL.md +0 -54
- package/payload/premium-plugins/real-agent/plugins/preval/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/preval/PLUGIN.md +0 -55
- package/payload/premium-plugins/real-agent/plugins/preval/hooks/preval-prompt-required.sh +0 -140
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/SKILL.md +0 -198
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/__tests__/adherence.test.py +0 -373
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/render.py +0 -814
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template-inputs.schema.json +0 -204
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template.html +0 -381
- package/payload/premium-plugins/real-agent/plugins/property-data/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/property-data/PLUGIN.md +0 -181
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.d.ts +0 -2
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js +0 -236
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.d.ts +0 -3
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.js +0 -72
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/crypto.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.d.ts +0 -3
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.js +0 -49
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/file-crypto.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.d.ts +0 -15
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.js +0 -135
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/key-store.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.d.ts +0 -5
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.js +0 -38
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/neo4j.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts +0 -28
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.js +0 -101
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/lib/propertydata-api.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.d.ts +0 -24
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.js +0 -33
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.d.ts +0 -4
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.js +0 -9
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-deregister.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.d.ts +0 -4
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.js +0 -10
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-list.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.d.ts +0 -5
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.d.ts.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.js +0 -50
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/key-register.js.map +0 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/package-lock.json +0 -2566
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/package.json +0 -21
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/endpoints.test.ts +0 -252
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/key-roundtrip.test.ts +0 -107
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/propertydata-api.test.ts +0 -184
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/schema-parity.test.ts +0 -62
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/index.ts +0 -409
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/crypto.ts +0 -79
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/file-crypto.ts +0 -55
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/key-store.ts +0 -181
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/neo4j.ts +0 -47
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/propertydata-api.ts +0 -120
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/endpoints.ts +0 -47
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-deregister.ts +0 -9
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-list.ts +0 -10
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-register.ts +0 -54
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/tsconfig.json +0 -20
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/vitest.config.ts +0 -8
- package/payload/premium-plugins/real-agent/plugins/property-data/skills/property-data/SKILL.md +0 -77
- package/payload/premium-plugins/real-agent/plugins/vendors/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/real-agent/plugins/vendors/PLUGIN.md +0 -33
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/SKILL.md +0 -42
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/fee-protection-and-agenda.md +0 -28
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/listing-scripts.md +0 -44
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/negotiation-deep-guide.md +0 -70
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/price-alignment-scripts.md +0 -33
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/price-alignment.md +0 -34
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/scenario-scripts.md +0 -38
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/seller-engagement.md +0 -51
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/valuation-booking.md +0 -76
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/vendor-scripts.md +0 -63
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/references/vendor-updates.md +0 -41
- package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-updates/SKILL.md +0 -153
- package/payload/premium-plugins/real-agent/specs/00-architecture-and-customization.md +0 -122
- package/payload/premium-plugins/real-agent/specs/01-morning-round.md +0 -76
- package/payload/premium-plugins/real-agent/specs/02-valuation-prep.md +0 -81
- package/payload/premium-plugins/real-agent/specs/03-new-instruction.md +0 -96
- package/payload/premium-plugins/real-agent/specs/04-chase-progression.md +0 -120
- package/payload/premium-plugins/real-agent/specs/05-month-end-close.md +0 -79
- package/payload/premium-plugins/teaching/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/teaching/PLUGIN.md +0 -58
- package/payload/premium-plugins/teaching/skills/interactive-tutor/SKILL.md +0 -59
- package/payload/premium-plugins/teaching/skills/interactive-tutor/references/assessment.md +0 -70
- package/payload/premium-plugins/teaching/skills/interactive-tutor/references/classroom-conduct.md +0 -43
- package/payload/premium-plugins/teaching/skills/interactive-tutor/references/teaching-modes.md +0 -83
- package/payload/premium-plugins/teaching/skills/lesson-planner/SKILL.md +0 -48
- package/payload/premium-plugins/teaching/skills/lesson-planner/references/context-gathering.md +0 -41
- package/payload/premium-plugins/teaching/skills/lesson-planner/references/plan-structure.md +0 -94
- package/payload/premium-plugins/teaching/skills/study-pack-builder/SKILL.md +0 -52
- package/payload/premium-plugins/teaching/skills/study-pack-builder/references/disaggregation.md +0 -49
- package/payload/premium-plugins/teaching/skills/study-pack-builder/references/materials.md +0 -116
- package/payload/premium-plugins/writer-craft/.claude-plugin/plugin.json +0 -8
- package/payload/premium-plugins/writer-craft/PLUGIN.md +0 -88
- package/payload/premium-plugins/writer-craft/agents/writer-craft--manuscript-reviewer.md +0 -92
- package/payload/premium-plugins/writer-craft/skills/citation-style/SKILL.md +0 -94
- package/payload/premium-plugins/writer-craft/skills/citation-style/references/book-and-chapter-models.md +0 -77
- package/payload/premium-plugins/writer-craft/skills/citation-style/references/citation-rules.md +0 -103
- package/payload/premium-plugins/writer-craft/skills/citation-style/references/journal-article-models.md +0 -74
- package/payload/premium-plugins/writer-craft/skills/citation-style/references/other-source-models.md +0 -146
- package/payload/premium-plugins/writer-craft/skills/citation-style/references/reference-list-rules.md +0 -70
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/SKILL.md +0 -108
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/copyediting.md +0 -73
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/developmental-editing.md +0 -85
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/genre-specific-editing.md +0 -78
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/line-editing.md +0 -55
- package/payload/premium-plugins/writer-craft/skills/editorial-practice/references/self-editing.md +0 -89
- package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/SKILL.md +0 -114
- package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/audience-analysis.md +0 -73
- package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/crafting-persuasive-story.md +0 -76
- package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/persuasion-case-studies.md +0 -67
- package/payload/premium-plugins/writer-craft/skills/persuasive-storytelling/references/transformation-framework.md +0 -86
- package/payload/premium-plugins/writer-craft/skills/point-of-view/SKILL.md +0 -97
- package/payload/premium-plugins/writer-craft/skills/point-of-view/references/indirect-narration.md +0 -72
- package/payload/premium-plugins/writer-craft/skills/point-of-view/references/pov-types-and-voice.md +0 -91
- package/payload/premium-plugins/writer-craft/skills/point-of-view/references/protagonist-filter.md +0 -71
- package/payload/premium-plugins/writer-craft/skills/point-of-view/references/tense-and-person.md +0 -85
- package/payload/premium-plugins/writer-craft/skills/prose-craft/SKILL.md +0 -100
- package/payload/premium-plugins/writer-craft/skills/prose-craft/references/punctuation-and-grammar.md +0 -72
- package/payload/premium-plugins/writer-craft/skills/prose-craft/references/repetition.md +0 -71
- package/payload/premium-plugins/writer-craft/skills/prose-craft/references/sound-and-rhythm.md +0 -64
- package/payload/premium-plugins/writer-craft/skills/prose-craft/references/word-economy.md +0 -93
- package/payload/premium-plugins/writer-craft/skills/reader-engagement/SKILL.md +0 -100
- package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/cause-effect-setup-payoff.md +0 -79
- package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/conflict-escalation.md +0 -81
- package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/hooking-readers.md +0 -67
- package/payload/premium-plugins/writer-craft/skills/reader-engagement/references/neurochemistry-of-engagement.md +0 -94
- package/payload/premium-plugins/writer-craft/skills/review-manuscript/SKILL.md +0 -111
- package/payload/premium-plugins/writer-craft/skills/review-manuscript/references/review-manuscript-checklist.md +0 -119
- package/payload/premium-plugins/writer-craft/skills/review-prose/SKILL.md +0 -99
- package/payload/premium-plugins/writer-craft/skills/review-prose/references/prose-review-checklist.md +0 -112
- package/payload/premium-plugins/writer-craft/skills/review-scene/SKILL.md +0 -99
- package/payload/premium-plugins/writer-craft/skills/review-scene/references/scene-analysis-framework.md +0 -95
- package/payload/premium-plugins/writer-craft/skills/story-architecture/SKILL.md +0 -106
- package/payload/premium-plugins/writer-craft/skills/story-architecture/references/blueprinting-and-scene-cards.md +0 -118
- package/payload/premium-plugins/writer-craft/skills/story-architecture/references/inner-issue-and-protagonist-goal.md +0 -66
- package/payload/premium-plugins/writer-craft/skills/story-architecture/references/misbelief-desire-worldview.md +0 -87
- package/payload/premium-plugins/writer-craft/skills/story-architecture/references/origin-scenes-and-escalation.md +0 -82
- package/payload/premium-plugins/writer-craft/skills/story-blueprint/SKILL.md +0 -133
- package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-exercises.md +0 -118
- package/payload/premium-plugins/writer-craft/skills/story-blueprint/references/blueprinting-process.md +0 -128
- package/payload/server/public/assets/channel-CrSx5mnG.js +0 -1
- package/payload/server/public/assets/classDiagram-6PBFFD2Q-C3IDJsqN.js +0 -1
- package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-BOIrJ5Zb.js +0 -1
- package/payload/server/public/assets/clone-P8Fkz7JD.js +0 -1
- package/payload/server/public/assets/data-DRfwJPja.js +0 -1
- package/payload/server/public/assets/graph-B4FFYwus.js +0 -1
- package/payload/server/public/assets/graph-labels-Cpk9Ktt0.js +0 -1
- package/payload/server/public/assets/lib--yuBd0Xi.js +0 -33
- package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-C5JejhQU.js +0 -1
|
@@ -1,181 +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 PROPERTY_DATA_STANDALONE env flag at
|
|
11
|
-
// boot. See .docs/realagent-mcps-standalone-mode.md for the contract.
|
|
12
|
-
|
|
13
|
-
export interface StoredKey {
|
|
14
|
-
apiKey: string;
|
|
15
|
-
createdAt: string;
|
|
16
|
-
updatedAt: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export interface KeyStore {
|
|
20
|
-
readonly backendName: string;
|
|
21
|
-
readonly backendPath: string;
|
|
22
|
-
load(accountId: string): Promise<StoredKey | null>;
|
|
23
|
-
save(accountId: string, apiKey: string): Promise<void>;
|
|
24
|
-
delete(accountId: string): Promise<boolean>;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
class Neo4jKeyStore implements KeyStore {
|
|
28
|
-
readonly backendName = "neo4j";
|
|
29
|
-
readonly backendPath = process.env.NEO4J_URI ?? "<unset>";
|
|
30
|
-
|
|
31
|
-
async load(accountId: string): Promise<StoredKey | null> {
|
|
32
|
-
const session = getSession();
|
|
33
|
-
try {
|
|
34
|
-
const result = await session.run(
|
|
35
|
-
`MATCH (k:PropertyDataKey {accountId: $accountId})
|
|
36
|
-
RETURN k.encryptedKey AS encryptedKey,
|
|
37
|
-
k.createdAt AS createdAt,
|
|
38
|
-
k.updatedAt AS updatedAt`,
|
|
39
|
-
{ accountId },
|
|
40
|
-
);
|
|
41
|
-
if (result.records.length === 0) return null;
|
|
42
|
-
const r = result.records[0];
|
|
43
|
-
return {
|
|
44
|
-
apiKey: decrypt(r.get("encryptedKey")),
|
|
45
|
-
createdAt: r.get("createdAt") ?? "",
|
|
46
|
-
updatedAt: r.get("updatedAt") ?? "",
|
|
47
|
-
};
|
|
48
|
-
} finally {
|
|
49
|
-
await session.close();
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
async save(accountId: string, apiKey: string): Promise<void> {
|
|
54
|
-
const encryptedKey = encrypt(apiKey);
|
|
55
|
-
const now = new Date().toISOString();
|
|
56
|
-
const session = getSession();
|
|
57
|
-
try {
|
|
58
|
-
await session.run(
|
|
59
|
-
`CREATE INDEX property_data_key_account IF NOT EXISTS
|
|
60
|
-
FOR (k:PropertyDataKey) ON (k.accountId)`,
|
|
61
|
-
{},
|
|
62
|
-
);
|
|
63
|
-
await session.run(
|
|
64
|
-
`MERGE (k:PropertyDataKey {accountId: $accountId})
|
|
65
|
-
ON CREATE SET k.encryptedKey = $encryptedKey, k.createdAt = $now, k.updatedAt = $now
|
|
66
|
-
ON MATCH SET k.encryptedKey = $encryptedKey, k.updatedAt = $now`,
|
|
67
|
-
{ accountId, encryptedKey, now },
|
|
68
|
-
);
|
|
69
|
-
} finally {
|
|
70
|
-
await session.close();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
async delete(accountId: string): Promise<boolean> {
|
|
75
|
-
const session = getSession();
|
|
76
|
-
try {
|
|
77
|
-
const result = await session.run(
|
|
78
|
-
`MATCH (k:PropertyDataKey {accountId: $accountId})
|
|
79
|
-
DELETE k
|
|
80
|
-
RETURN count(k) AS deleted`,
|
|
81
|
-
{ accountId },
|
|
82
|
-
);
|
|
83
|
-
const deleted = result.records[0]?.get("deleted")?.toNumber?.() ?? 0;
|
|
84
|
-
return deleted > 0;
|
|
85
|
-
} finally {
|
|
86
|
-
await session.close();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// FileKeyStore — single key per accountId stored as an AES-256-GCM-encrypted
|
|
92
|
-
// JSON blob. The file holds a map { [accountId]: { encryptedKey, createdAt,
|
|
93
|
-
// updatedAt } } so it parallels the Neo4j shape, but in standalone mode the
|
|
94
|
-
// accountId is "local" (only one).
|
|
95
|
-
|
|
96
|
-
interface FileEnvelope {
|
|
97
|
-
[accountId: string]: { encryptedKey: string; createdAt: string; updatedAt: string };
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
const LABEL = "property-data";
|
|
101
|
-
|
|
102
|
-
class FileKeyStore implements KeyStore {
|
|
103
|
-
readonly backendName = "file";
|
|
104
|
-
readonly backendPath: string;
|
|
105
|
-
private readonly storePath: string;
|
|
106
|
-
private readonly keyFilePath: string;
|
|
107
|
-
|
|
108
|
-
constructor() {
|
|
109
|
-
const home = homedir();
|
|
110
|
-
this.storePath = resolve(home, ".claude/.realagent-property-data-key.enc");
|
|
111
|
-
this.keyFilePath = resolve(home, ".claude/.realagent-property-data-encryption-key");
|
|
112
|
-
this.backendPath = this.storePath;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
private ensureDir(): void {
|
|
116
|
-
mkdirSync(dirname(this.storePath), { recursive: true });
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
private readAll(): FileEnvelope {
|
|
120
|
-
if (!existsSync(this.storePath)) return {};
|
|
121
|
-
const blob = readFileSync(this.storePath, "utf-8").trim();
|
|
122
|
-
if (!blob) return {};
|
|
123
|
-
const json = decryptWith(blob, this.keyFilePath, LABEL);
|
|
124
|
-
return JSON.parse(json) as FileEnvelope;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
private writeAll(env: FileEnvelope): void {
|
|
128
|
-
this.ensureDir();
|
|
129
|
-
const blob = encryptWith(JSON.stringify(env), this.keyFilePath, LABEL);
|
|
130
|
-
writeFileSync(this.storePath, blob, { mode: 0o600 });
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
async load(accountId: string): Promise<StoredKey | null> {
|
|
134
|
-
const env = this.readAll();
|
|
135
|
-
const entry = env[accountId];
|
|
136
|
-
if (!entry) return null;
|
|
137
|
-
// The encryptedKey field is double-encrypted: the file blob is decrypted
|
|
138
|
-
// above, the inner field is the original AES-GCM-wrapped key. Keep the
|
|
139
|
-
// inner layer so an unauthenticated read of decrypted JSON still doesn't
|
|
140
|
-
// expose the API key directly in process memory until decryptWith runs.
|
|
141
|
-
return {
|
|
142
|
-
apiKey: decryptWith(entry.encryptedKey, this.keyFilePath, LABEL),
|
|
143
|
-
createdAt: entry.createdAt,
|
|
144
|
-
updatedAt: entry.updatedAt,
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
async save(accountId: string, apiKey: string): Promise<void> {
|
|
149
|
-
const env = this.readAll();
|
|
150
|
-
const now = new Date().toISOString();
|
|
151
|
-
const encryptedKey = encryptWith(apiKey, this.keyFilePath, LABEL);
|
|
152
|
-
const prev = env[accountId];
|
|
153
|
-
env[accountId] = {
|
|
154
|
-
encryptedKey,
|
|
155
|
-
createdAt: prev?.createdAt ?? now,
|
|
156
|
-
updatedAt: now,
|
|
157
|
-
};
|
|
158
|
-
this.writeAll(env);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
async delete(accountId: string): Promise<boolean> {
|
|
162
|
-
const env = this.readAll();
|
|
163
|
-
if (!(accountId in env)) return false;
|
|
164
|
-
delete env[accountId];
|
|
165
|
-
this.writeAll(env);
|
|
166
|
-
return true;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
let cached: KeyStore | null = null;
|
|
171
|
-
|
|
172
|
-
export function selectKeyStore(): KeyStore {
|
|
173
|
-
if (cached) return cached;
|
|
174
|
-
cached = process.env.PROPERTY_DATA_STANDALONE === "1" ? new FileKeyStore() : new Neo4jKeyStore();
|
|
175
|
-
return cached;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// Test seam — used by unit tests to reset the cached store between cases.
|
|
179
|
-
export function _resetKeyStoreForTests(): void {
|
|
180
|
-
cached = null;
|
|
181
|
-
}
|
|
@@ -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
|
-
"[property-data] 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(`[property-data] 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
|
-
}
|
package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/lib/propertydata-api.ts
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { selectKeyStore } from "./key-store.js";
|
|
2
|
-
|
|
3
|
-
// PropertyData API V1 client. Every endpoint is a GET against
|
|
4
|
-
// https://api.propertydata.co.uk/<endpoint> with `key=<api-key>` plus
|
|
5
|
-
// endpoint-specific query params. Response envelope:
|
|
6
|
-
//
|
|
7
|
-
// { "status": "success", ...payload }
|
|
8
|
-
// { "status": "error", "message": "..." }
|
|
9
|
-
//
|
|
10
|
-
// The `propertyDataCall` helper returns either the parsed payload as a
|
|
11
|
-
// JSON string ready for tool text content, or throws PropertyDataError /
|
|
12
|
-
// KeyNotRegisteredError so the tool wrapper can produce a deterministic
|
|
13
|
-
// error envelope.
|
|
14
|
-
|
|
15
|
-
const BASE_URL = "https://api.propertydata.co.uk";
|
|
16
|
-
const REQUEST_TIMEOUT_MS = 15_000;
|
|
17
|
-
|
|
18
|
-
export class KeyNotRegisteredError extends Error {
|
|
19
|
-
constructor() {
|
|
20
|
-
super("key-not-registered");
|
|
21
|
-
this.name = "KeyNotRegisteredError";
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export class PropertyDataError extends Error {
|
|
26
|
-
constructor(
|
|
27
|
-
public readonly status: number,
|
|
28
|
-
public readonly endpoint: string,
|
|
29
|
-
public readonly upstreamMessage: string,
|
|
30
|
-
) {
|
|
31
|
-
super(`http-${status} from PropertyData endpoint=${endpoint}: ${upstreamMessage}`);
|
|
32
|
-
this.name = "PropertyDataError";
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export class BadResponseError extends Error {
|
|
37
|
-
constructor(public readonly endpoint: string, public readonly length: number) {
|
|
38
|
-
super(`bad-response from PropertyData endpoint=${endpoint} (non-JSON, length=${length})`);
|
|
39
|
-
this.name = "BadResponseError";
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export interface PropertyDataKey {
|
|
44
|
-
createdAt: string;
|
|
45
|
-
updatedAt: string;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export async function loadAccountKey(accountId: string): Promise<PropertyDataKey | null> {
|
|
49
|
-
const stored = await selectKeyStore().load(accountId);
|
|
50
|
-
if (!stored) return null;
|
|
51
|
-
return { createdAt: stored.createdAt, updatedAt: stored.updatedAt };
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export async function resolveAccountApiKey(accountId: string): Promise<string> {
|
|
55
|
-
// Bypass for one-shot CLI runs: explicit env var beats stored key.
|
|
56
|
-
const envKey = process.env.PROPERTY_DATA_API_KEY;
|
|
57
|
-
if (envKey && envKey.trim()) return envKey.trim();
|
|
58
|
-
const stored = await selectKeyStore().load(accountId);
|
|
59
|
-
if (!stored) throw new KeyNotRegisteredError();
|
|
60
|
-
return stored.apiKey;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export interface CallOptions {
|
|
64
|
-
endpoint: string;
|
|
65
|
-
toolName: string;
|
|
66
|
-
accountId: string;
|
|
67
|
-
params: Record<string, string | number | undefined>;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export async function propertyDataCall(opts: CallOptions): Promise<string> {
|
|
71
|
-
const { endpoint, toolName, accountId, params } = opts;
|
|
72
|
-
const apiKey = await resolveAccountApiKey(accountId);
|
|
73
|
-
|
|
74
|
-
const search = new URLSearchParams();
|
|
75
|
-
search.set("key", apiKey);
|
|
76
|
-
for (const [k, v] of Object.entries(params)) {
|
|
77
|
-
if (v === undefined || v === null || v === "") continue;
|
|
78
|
-
search.set(k, String(v));
|
|
79
|
-
}
|
|
80
|
-
const url = `${BASE_URL}/${endpoint}?${search.toString()}`;
|
|
81
|
-
|
|
82
|
-
const postcode = params.postcode ?? "";
|
|
83
|
-
const start = Date.now();
|
|
84
|
-
const response = await fetch(url, {
|
|
85
|
-
headers: { Accept: "application/json" },
|
|
86
|
-
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
87
|
-
});
|
|
88
|
-
const ms = Date.now() - start;
|
|
89
|
-
|
|
90
|
-
const statusTag = response.ok ? "ok" : `http-${Math.floor(response.status / 100)}xx`;
|
|
91
|
-
console.error(
|
|
92
|
-
`[property-data] tool=${toolName} account=${accountId} postcode=${postcode} status=${statusTag} ms=${ms}`,
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
if (!response.ok) {
|
|
96
|
-
const body = await response.text().catch(() => "");
|
|
97
|
-
throw new PropertyDataError(response.status, endpoint, body.slice(0, 200));
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
const text = await response.text();
|
|
101
|
-
let parsed: unknown;
|
|
102
|
-
try {
|
|
103
|
-
parsed = JSON.parse(text);
|
|
104
|
-
} catch {
|
|
105
|
-
throw new BadResponseError(endpoint, text.length);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
if (
|
|
109
|
-
parsed &&
|
|
110
|
-
typeof parsed === "object" &&
|
|
111
|
-
!Array.isArray(parsed) &&
|
|
112
|
-
"status" in parsed &&
|
|
113
|
-
(parsed as { status: unknown }).status === "error"
|
|
114
|
-
) {
|
|
115
|
-
const msg = String((parsed as { message?: unknown }).message ?? "unknown error");
|
|
116
|
-
throw new PropertyDataError(response.status, endpoint, msg);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
return JSON.stringify(parsed, null, 2);
|
|
120
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { propertyDataCall } from "../lib/propertydata-api.js";
|
|
2
|
-
|
|
3
|
-
// Every endpoint tool takes the same shape: { accountId, ...params }.
|
|
4
|
-
// Per-tool param schemas are enforced by zod in index.ts; this layer only
|
|
5
|
-
// forwards values to the HTTP client.
|
|
6
|
-
|
|
7
|
-
type Args = Record<string, unknown> & { accountId: string };
|
|
8
|
-
|
|
9
|
-
function call(toolName: string, endpoint: string, args: Args): Promise<string> {
|
|
10
|
-
const { accountId, ...rest } = args;
|
|
11
|
-
return propertyDataCall({
|
|
12
|
-
endpoint,
|
|
13
|
-
toolName,
|
|
14
|
-
accountId,
|
|
15
|
-
params: rest as Record<string, string | number | undefined>,
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export const valuationSale = (a: Args) => call("property-data-valuation-sale", "valuation-sale", a);
|
|
20
|
-
export const valuationRent = (a: Args) => call("property-data-valuation-rent", "valuation-rent", a);
|
|
21
|
-
export const prices = (a: Args) => call("property-data-prices", "prices", a);
|
|
22
|
-
export const pricesRent = (a: Args) => call("property-data-prices-rent", "rents", a);
|
|
23
|
-
export const soldPrices = (a: Args) => call("property-data-sold-prices", "sold-prices", a);
|
|
24
|
-
export const demand = (a: Args) => call("property-data-demand", "demand", a);
|
|
25
|
-
export const yields = (a: Args) => call("property-data-yields", "yields", a);
|
|
26
|
-
export const growth = (a: Args) => call("property-data-growth", "growth", a);
|
|
27
|
-
export const nationalHpi = (a: Args) => call("property-data-national-hpi", "national-data", a);
|
|
28
|
-
|
|
29
|
-
// Task 144 — 10 additional read endpoints (£/sqft, area risk,
|
|
30
|
-
// planning precedent, UPRN, demand-rent, property-type mix).
|
|
31
|
-
// All inherit the same observability + error contract as above.
|
|
32
|
-
|
|
33
|
-
export const pricesPerSqf = (a: Args) =>
|
|
34
|
-
call("property-data-prices-per-sqf", "prices-per-sqf", a);
|
|
35
|
-
export const soldPricesPerSqf = (a: Args) =>
|
|
36
|
-
call("property-data-sold-prices-per-sqf", "sold-prices-per-sqf", a);
|
|
37
|
-
export const crime = (a: Args) => call("property-data-crime", "crime", a);
|
|
38
|
-
export const floodRisk = (a: Args) => call("property-data-flood-risk", "flood-risk", a);
|
|
39
|
-
export const councilTax = (a: Args) => call("property-data-council-tax", "council-tax", a);
|
|
40
|
-
export const planningApplications = (a: Args) =>
|
|
41
|
-
call("property-data-planning-applications", "planning-applications", a);
|
|
42
|
-
export const addressMatchUprn = (a: Args) =>
|
|
43
|
-
call("property-data-address-match-uprn", "address-match-uprn", a);
|
|
44
|
-
export const growthPsf = (a: Args) => call("property-data-growth-psf", "growth-psf", a);
|
|
45
|
-
export const demandRent = (a: Args) => call("property-data-demand-rent", "demand-rent", a);
|
|
46
|
-
export const propertyTypes = (a: Args) =>
|
|
47
|
-
call("property-data-property-types", "property-types", a);
|
package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-deregister.ts
DELETED
|
@@ -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 PropertyData API key is registered for this account.");
|
|
7
|
-
}
|
|
8
|
-
console.error(`[property-data] key-op op=deregister account=${params.accountId}`);
|
|
9
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { loadAccountKey } from "../lib/propertydata-api.js";
|
|
2
|
-
|
|
3
|
-
export async function keyList(params: { accountId: string }): Promise<string> {
|
|
4
|
-
const key = await loadAccountKey(params.accountId);
|
|
5
|
-
console.error(`[property-data] key-op op=list account=${params.accountId}`);
|
|
6
|
-
if (!key) {
|
|
7
|
-
return "No PropertyData API key registered. Use property-data-key-register to add one.";
|
|
8
|
-
}
|
|
9
|
-
return `PropertyData API key registered (created: ${key.createdAt}, updated: ${key.updatedAt}). Key value is encrypted and cannot be retrieved.`;
|
|
10
|
-
}
|
package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/key-register.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { selectKeyStore } from "../lib/key-store.js";
|
|
2
|
-
import { PropertyDataError } from "../lib/propertydata-api.js";
|
|
3
|
-
|
|
4
|
-
const BASE_URL = "https://api.propertydata.co.uk";
|
|
5
|
-
const REQUEST_TIMEOUT_MS = 15_000;
|
|
6
|
-
|
|
7
|
-
// Validate the key against PropertyData's /valuation-sale endpoint with no
|
|
8
|
-
// inputs — a valid key returns HTTP 400 + body code 701 "Missing input:
|
|
9
|
-
// property_type" (proof the key was accepted), without consuming a credit.
|
|
10
|
-
// An invalid key returns auth failure (401/403) or a different upstream code.
|
|
11
|
-
// Evidence: probing `/national-hpi` returns code X01 "Invalid API endpoint"
|
|
12
|
-
// — that path does not exist on PropertyData; `/valuation-sale` does.
|
|
13
|
-
|
|
14
|
-
async function validateApiKey(apiKey: string): Promise<void> {
|
|
15
|
-
// Probe /valuation-sale with one input. Evidence-backed envelopes:
|
|
16
|
-
// invalid key → {code:"X03", message:"Invalid input: key"}
|
|
17
|
-
// valid key → {code:"701", message:"Missing input: property_type"} (no credit)
|
|
18
|
-
// PropertyData does not charge for missing-input errors, so this is a free probe.
|
|
19
|
-
const url = `${BASE_URL}/valuation-sale?key=${encodeURIComponent(apiKey)}&postcode=SW1A1AA`;
|
|
20
|
-
const response = await fetch(url, {
|
|
21
|
-
headers: { Accept: "application/json" },
|
|
22
|
-
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
23
|
-
});
|
|
24
|
-
const body = await response.text().catch(() => "");
|
|
25
|
-
if (response.status === 401 || response.status === 403) {
|
|
26
|
-
throw new Error(`PropertyData rejected the API key (HTTP ${response.status}).`);
|
|
27
|
-
}
|
|
28
|
-
let parsed: { status?: string; code?: string; message?: string } = {};
|
|
29
|
-
try { parsed = JSON.parse(body); } catch { /* fall through */ }
|
|
30
|
-
if (parsed.code === "X03") {
|
|
31
|
-
throw new Error(`PropertyData rejected the API key (code=X03 ${parsed.message ?? "Invalid input: key"}).`);
|
|
32
|
-
}
|
|
33
|
-
// 701 (missing-input) or status:"success" both prove the key was authenticated.
|
|
34
|
-
// Any other envelope: surface raw so the operator sees the upstream error.
|
|
35
|
-
if (parsed.status === "success" || parsed.code === "701") return;
|
|
36
|
-
if (parsed.status === "error") {
|
|
37
|
-
throw new Error(
|
|
38
|
-
`PropertyData validate probe returned unexpected envelope (code=${parsed.code ?? "?"} message=${parsed.message ?? "?"}).`,
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
if (!response.ok) {
|
|
42
|
-
throw new PropertyDataError(response.status, "valuation-sale", body.slice(0, 200));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export async function keyRegister(params: {
|
|
47
|
-
apiKey: string;
|
|
48
|
-
accountId: string;
|
|
49
|
-
}): Promise<void> {
|
|
50
|
-
const { apiKey, accountId } = params;
|
|
51
|
-
await validateApiKey(apiKey);
|
|
52
|
-
await selectKeyStore().save(accountId, apiKey);
|
|
53
|
-
console.error(`[property-data] key-op op=register account=${accountId}`);
|
|
54
|
-
}
|
|
@@ -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
|
-
}
|
package/payload/premium-plugins/real-agent/plugins/property-data/skills/property-data/SKILL.md
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: property-data
|
|
3
|
-
description: "Given a UK postcode plus property attributes (type, bedrooms, area), return structured market data — comparable sold prices, asking-price baselines, demand index, rental yield, and growth signals — for valuation and negotiation workflows."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Property Data
|
|
7
|
-
|
|
8
|
-
Outcome: given a UK postcode and property attributes, return structured market evidence — comparables, asking prices, sold prices, demand, yield, growth — so the valuer composes a valuation brief and the negotiator backs an offer position with numbers, not prose.
|
|
9
|
-
|
|
10
|
-
## When to use
|
|
11
|
-
|
|
12
|
-
Trigger phrases:
|
|
13
|
-
- "comps for [address|postcode]"
|
|
14
|
-
- "what are properties going for in [postcode]"
|
|
15
|
-
- "demand in [postcode]"
|
|
16
|
-
- "yield on [bedrooms]-bed in [postcode]"
|
|
17
|
-
- "asking prices around [postcode]"
|
|
18
|
-
- "what's it worth — [postcode], [type], [beds]"
|
|
19
|
-
- "sold prices on [street|postcode]"
|
|
20
|
-
- "growth in [postcode]"
|
|
21
|
-
- "£/sqft in [postcode]" / "price per square foot in [postcode]"
|
|
22
|
-
- "£/sqft growth in [postcode]"
|
|
23
|
-
- "crime in [postcode|town]"
|
|
24
|
-
- "flood risk for [postcode]"
|
|
25
|
-
- "council tax band for [postcode]"
|
|
26
|
-
- "planning applications near [postcode]"
|
|
27
|
-
- "what's the UPRN of [address]"
|
|
28
|
-
- "rental demand in [postcode]"
|
|
29
|
-
- "property-type mix in [postcode]"
|
|
30
|
-
|
|
31
|
-
## Inputs required
|
|
32
|
-
|
|
33
|
-
- **Postcode** — UK outcode (e.g. `SN7`) or full postcode (e.g. `SN7 8AA`). The PropertyData endpoints accept either; outcode broadens the sample, full postcode tightens it.
|
|
34
|
-
- **Property type** — one of: `detached`, `semi-detached`, `terraced`, `flat`. Required for valuation and price-distribution endpoints.
|
|
35
|
-
- **Bedrooms** — integer. Required for valuation and yield endpoints.
|
|
36
|
-
- **Internal area (sq ft)** — required for `valuation-sale` and `valuation-rent` point estimates. If unknown, fall back to `prices` / `prices-rent` for a distribution and state the area assumption.
|
|
37
|
-
|
|
38
|
-
## Tools
|
|
39
|
-
|
|
40
|
-
| Tool | Use for | Required inputs |
|
|
41
|
-
|---|---|---|
|
|
42
|
-
| `property-data-valuation-sale` | Point sale-price estimate | postcode, type, bedrooms, bathrooms, internal_area |
|
|
43
|
-
| `property-data-valuation-rent` | Point rent estimate | postcode, type, bedrooms, bathrooms, internal_area |
|
|
44
|
-
| `property-data-prices` | Asking-price distribution (mean / median / 80th pct) | postcode, type, bedrooms |
|
|
45
|
-
| `property-data-prices-rent` | Rent asking-price distribution | postcode, type, bedrooms |
|
|
46
|
-
| `property-data-sold-prices` | Land Registry sold transactions | postcode (max_age, type, bedrooms optional) |
|
|
47
|
-
| `property-data-demand` | Supply count + days to sell-STC | postcode |
|
|
48
|
-
| `property-data-yields` | Gross rental yield | postcode, bedrooms |
|
|
49
|
-
| `property-data-growth` | Short and long-term price growth | postcode |
|
|
50
|
-
| `property-data-national-hpi` | UK national HPI series | (none) |
|
|
51
|
-
| `property-data-prices-per-sqf` | Asking £/sqft distribution | postcode (type, bedrooms optional) |
|
|
52
|
-
| `property-data-sold-prices-per-sqf` | Achieved £/sqft distribution | postcode (type, bedrooms, max_age optional) |
|
|
53
|
-
| `property-data-growth-psf` | 7-year £/sqft series with YoY% | postcode (type optional) |
|
|
54
|
-
| `property-data-crime` | Crime rate + breakdown | postcode, or location, or town |
|
|
55
|
-
| `property-data-flood-risk` | River + sea flood rating | full postcode |
|
|
56
|
-
| `property-data-council-tax` | Council + A–H band charges | full postcode |
|
|
57
|
-
| `property-data-planning-applications` | Planning precedent (2 credits/call) | postcode (decision_rating, category, max_age_decision, results optional) |
|
|
58
|
-
| `property-data-address-match-uprn` | Address → UPRN (10 credits/call) | address |
|
|
59
|
-
| `property-data-demand-rent` | Rental demand signals | postcode (bedrooms, type optional) |
|
|
60
|
-
| `property-data-property-types` | Output-area type distribution | postcode |
|
|
61
|
-
|
|
62
|
-
## Output
|
|
63
|
-
|
|
64
|
-
Return the structured `data` payload directly to the caller (valuer / negotiator). Do not collapse it to prose — downstream skills (`comparable-finder`, `local-market-stats`, `pricing-scenario-builder`) consume the fields.
|
|
65
|
-
|
|
66
|
-
## Failure modes
|
|
67
|
-
|
|
68
|
-
- `Error: key-not-registered` — surface the registration prompt: "PropertyData API key not registered. Register it with `property-data-key-register`."
|
|
69
|
-
- `Error: http-4xx` — bad input (usually invalid postcode or unsupported type). Restate the inputs the operator gave; do not retry blindly.
|
|
70
|
-
- `Error: http-5xx` — PropertyData upstream outage. Surface the failure and fall back to Loop sold-prices (`loop-property-sold`) if available.
|
|
71
|
-
- Empty `data` — the postcode has insufficient comparables. Broaden the postcode (full → outcode) and retry once; if still empty, surface "no PropertyData comparables for this postcode" and let the agent fall back.
|
|
72
|
-
|
|
73
|
-
## Do not
|
|
74
|
-
|
|
75
|
-
- Do not compose a valuation figure or asking-price range in this skill — that is the valuer's output contract, composed downstream from the structured data returned here.
|
|
76
|
-
- Do not call any endpoint without a postcode argument (except `national-hpi`).
|
|
77
|
-
- Do not invent fields not returned by PropertyData. If a field is absent, name it as a gap.
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: real-agent-vendors
|
|
3
|
-
description: "Active vendor lifecycle management — communication, updates, valuation booking, and offer negotiation for UK estate agents."
|
|
4
|
-
tools: []
|
|
5
|
-
always: false
|
|
6
|
-
metadata: {"platform":{"optional":true,"embed":["admin"]}}
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Real Agent — Vendor Management
|
|
10
|
-
|
|
11
|
-
Four skills covering the active vendor lifecycle from valuation enquiry through offer negotiation.
|
|
12
|
-
|
|
13
|
-
## When to Activate
|
|
14
|
-
|
|
15
|
-
The user is managing vendor relationships — handling valuation requests, providing updates on viewing activity, preparing vendor reports, or navigating offer presentation and deal negotiation.
|
|
16
|
-
|
|
17
|
-
## Skills
|
|
18
|
-
|
|
19
|
-
| Skill | Purpose |
|
|
20
|
-
|-------|---------|
|
|
21
|
-
| `vendor-communication` | Full vendor lifecycle — valuation enquiry through active listing management |
|
|
22
|
-
| `vendor-updates` | Regular reporting on viewing activity, feedback, market conditions |
|
|
23
|
-
| `valuation-booking` | Handle valuation requests — capture details, motivation, timeline, book the visit |
|
|
24
|
-
| `negotiation` | Offer presentation, deal saving, multi-offer scenarios, negotiation preparation |
|
|
25
|
-
|
|
26
|
-
## Tools Used
|
|
27
|
-
|
|
28
|
-
No MCP server. Skills operate via existing platform tools:
|
|
29
|
-
- `memory-search` — retrieve domain knowledge from the knowledge base
|
|
30
|
-
|
|
31
|
-
## References
|
|
32
|
-
|
|
33
|
-
Domain knowledge files loaded on demand by each skill. See individual skill files for their specific reference listings.
|
package/payload/premium-plugins/real-agent/plugins/vendors/skills/vendor-communication/SKILL.md
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: vendor-communication
|
|
3
|
-
description: "Manage seller relationships — valuation booking, updates, expectations, price alignment, fee conversations, and marketing strategy."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Vendor Communication
|
|
7
|
-
|
|
8
|
-
Guides the full vendor lifecycle — from initial valuation enquiry through active listing management, updates, and price conversations.
|
|
9
|
-
|
|
10
|
-
## When to Activate
|
|
11
|
-
|
|
12
|
-
Someone is considering selling, asks "how much is my house worth?", requests a valuation/market appraisal, asks about their current listing's performance, or needs guidance on presentation and pricing.
|
|
13
|
-
|
|
14
|
-
## Reference Table
|
|
15
|
-
|
|
16
|
-
| Task | When | Reference |
|
|
17
|
-
|------|------|-----------|
|
|
18
|
-
| Seller engagement | New seller enquiry or switching agents | `references/seller-engagement.md` |
|
|
19
|
-
| Valuation booking | Potential seller wants a market appraisal | `references/valuation-booking.md` |
|
|
20
|
-
| Listing & valuation scripts | Prospecting for valuations, appointment dialogue, objection handling | `references/listing-scripts.md` |
|
|
21
|
-
| Fee protection & agenda | Preparing for fee/commission conversations | `references/fee-protection-and-agenda.md` |
|
|
22
|
-
| Vendor updates | Active listing — weekly updates, feedback relay | `references/vendor-updates.md` |
|
|
23
|
-
| Vendor communication scripts | Good news sandwich, negotiation scripts, update best practices | `references/vendor-scripts.md` |
|
|
24
|
-
| Price alignment (principles) | Market feedback suggests pricing adjustment needed | `references/price-alignment.md` |
|
|
25
|
-
| Price alignment scripts | Preparing for hard pricing/fee conversations | `references/price-alignment-scripts.md` |
|
|
26
|
-
| Scenario scripts | Price adjustments, frustrated sellers, win words | `references/scenario-scripts.md` |
|
|
27
|
-
| Negotiation deep guide | Five techniques, interests vs positions, comps | `references/negotiation-deep-guide.md` |
|
|
28
|
-
|
|
29
|
-
## Key Rules
|
|
30
|
-
|
|
31
|
-
- Never value a property — only the agent does market appraisals, in person
|
|
32
|
-
- Never discuss fee structure or commission rates directly — the agent handles these
|
|
33
|
-
- Vendors should never feel forgotten — if there's nothing to report, say so (silence is worse)
|
|
34
|
-
- Empathise with frustration but never badmouth previous agents
|
|
35
|
-
- Frame everything around getting the best result for the vendor
|
|
36
|
-
- Respond quickly to valuation requests — they have a short shelf life
|
|
37
|
-
- Follow up if not booked within 48 hours
|
|
38
|
-
- Never give a specific valuation figure by message — always in person after viewing
|
|
39
|
-
- The market appraisal is free and no-obligation — always frame it this way
|
|
40
|
-
- Offers go to the vendor promptly — never wait for the scheduled update
|
|
41
|
-
- Record all updates sent in the vendor profile
|
|
42
|
-
- Never reveal vendor's minimum price to buyers, or buyer's financial details to vendors without consent
|