@rubytech/create-maxy-code 0.1.62 → 0.1.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/installer-specialist-registration.test.js +112 -0
- package/dist/index.js +22 -0
- package/dist/specialist-registration.js +78 -0
- package/package.json +1 -1
- package/payload/platform/plugins/admin/PLUGIN.md +22 -0
- package/payload/platform/plugins/admin/hooks/__tests__/turn-completed-graph-write.test.sh +50 -13
- package/payload/platform/plugins/admin/hooks/turn-completed-graph-write.sh +22 -21
- package/payload/platform/plugins/contacts/PLUGIN.md +9 -0
- package/payload/platform/plugins/docs/references/admin-session.md +57 -8
- package/payload/platform/plugins/docs/references/platform.md +4 -0
- package/payload/platform/plugins/email/PLUGIN.md +9 -0
- package/payload/platform/plugins/memory/PLUGIN.md +37 -0
- package/payload/platform/plugins/memory/mcp/dist/index.js +3 -3
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js +137 -75
- package/payload/platform/plugins/memory/mcp/dist/lib/__tests__/live-schema-source.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts +0 -17
- package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js +32 -4
- package/payload/platform/plugins/memory/mcp/dist/lib/live-schema-source.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.d.ts +65 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.js +182 -0
- package/payload/platform/plugins/memory/mcp/dist/lib/log-ingest.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js +8 -8
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/conversation-archive-enrich-rejection.test.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.d.ts +2 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.d.ts.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.js +241 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/__tests__/log-ingest.test.js.map +1 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js +9 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-derive-insights.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.d.ts +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.js +9 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-archive-enrich-rejection.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.js +10 -2
- package/payload/platform/plugins/memory/mcp/dist/tools/conversation-memory-expunge.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.d.ts +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.js +5 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-add.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.d.ts +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.js +5 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/graph-prune-denylist-remove.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-archive-write.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-classify.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-delete.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-edit-attachment.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-empty-trash.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-extract.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest-web.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js +5 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-ingest.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-reindex.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-rename-attachment.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-restore.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js +5 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-update.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js +6 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/memory-write.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-delete.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.d.ts.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js +4 -0
- package/payload/platform/plugins/memory/mcp/dist/tools/profile-update.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/vitest.config.ts +10 -3
- package/payload/platform/plugins/outlook/PLUGIN.md +7 -0
- package/payload/platform/plugins/replicate/PLUGIN.md +3 -0
- package/payload/platform/plugins/scheduling/PLUGIN.md +8 -0
- package/payload/platform/plugins/tasks/PLUGIN.md +14 -0
- package/payload/platform/plugins/telegram/PLUGIN.md +3 -0
- package/payload/platform/plugins/waitlist/PLUGIN.md +7 -0
- package/payload/platform/plugins/whatsapp/PLUGIN.md +12 -0
- package/payload/platform/plugins/workflows/PLUGIN.md +8 -0
- package/payload/platform/services/claude-session-manager/dist/index.js +43 -1
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +33 -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 +214 -59
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/specialist-drift.d.ts +23 -0
- package/payload/platform/services/claude-session-manager/dist/specialist-drift.d.ts.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/specialist-drift.js +141 -0
- package/payload/platform/services/claude-session-manager/dist/specialist-drift.js.map +1 -0
- package/payload/platform/services/claude-session-manager/dist/tool-surface.d.ts +13 -2
- package/payload/platform/services/claude-session-manager/dist/tool-surface.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/tool-surface.js +150 -37
- package/payload/platform/services/claude-session-manager/dist/tool-surface.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/types.d.ts +5 -0
- package/payload/platform/services/claude-session-manager/dist/types.d.ts.map +1 -1
- package/payload/platform/templates/agents/admin/IDENTITY.md +1 -1
- package/payload/premium-plugins/real-agent/BUNDLE.md +2 -4
- package/payload/premium-plugins/real-agent/agents/compliance.md +1 -1
- package/payload/premium-plugins/real-agent/agents/valuer.md +1 -2
- package/payload/premium-plugins/real-agent/plugins/epc/.claude-plugin/plugin.json +3 -3
- package/payload/premium-plugins/real-agent/plugins/listings/.claude-plugin/plugin.json +1 -1
- package/payload/premium-plugins/real-agent/plugins/listings/PLUGIN.md +1 -3
- package/payload/premium-plugins/real-agent/plugins/listings/skills/new-instruction/SKILL.md +11 -12
- package/payload/premium-plugins/real-agent/plugins/loop/PLUGIN.md +27 -0
- package/payload/premium-plugins/real-agent/plugins/preval/.claude-plugin/plugin.json +1 -1
- package/payload/premium-plugins/real-agent/plugins/preval/PLUGIN.md +16 -8
- package/payload/premium-plugins/real-agent/plugins/preval/hooks/preval-prompt-required.sh +140 -0
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/SKILL.md +92 -40
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/__tests__/adherence.test.py +373 -0
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/render.py +299 -115
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template-inputs.schema.json +34 -19
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template.html +88 -19
- package/payload/premium-plugins/real-agent/plugins/property-data/PLUGIN.md +22 -0
- package/payload/premium-plugins/real-agent/specs/03-new-instruction.md +8 -12
- package/payload/server/{chunk-2IKQERHN.js → chunk-S6PQA6Q4.js} +43 -34
- package/payload/server/maxy-edge.js +1 -1
- package/payload/server/public/assets/{admin-DhN3G8W7.js → admin-ymReS1mN.js} +1 -1
- package/payload/server/public/assets/{data-B2ZVXOcE.js → data-D6U2e85B.js} +1 -1
- package/payload/server/public/assets/{graph-BAMGPHrK.js → graph-C274PN27.js} +1 -1
- package/payload/server/public/assets/{graph-labels-D9eBbvxo.js → graph-labels-DQFzd1FY.js} +1 -1
- package/payload/server/public/assets/{page-DjdVMWCz.js → page-D-OLjort.js} +1 -1
- package/payload/server/public/assets/{page-CV27Al6Z.js → page-DFFt9_Q0.js} +1 -1
- package/payload/server/public/data.html +3 -3
- package/payload/server/public/graph.html +3 -3
- package/payload/server/public/index.html +4 -4
- package/payload/server/server.js +2 -2
- package/payload/platform/plugins/brochures/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/brochures/PLUGIN.md +0 -38
- package/payload/platform/plugins/brochures/commands/make-brochure.md +0 -11
- package/payload/platform/plugins/brochures/skills/a4-print-documents/SKILL.md +0 -478
- package/payload/platform/plugins/brochures/skills/brand-design/SKILL.md +0 -192
- package/payload/platform/plugins/brochures/skills/make-brochure/SKILL.md +0 -354
- package/payload/platform/plugins/brochures/skills/make-brochure/references/seller-brief-template.md +0 -115
- package/payload/platform/plugins/brochures/skills/property-brochure/SKILL.md +0 -142
- package/payload/platform/plugins/brochures/skills/property-brochure/references/build.md +0 -270
- package/payload/platform/plugins/brochures/skills/property-brochure/references/copy.md +0 -211
- package/payload/platform/plugins/brochures/skills/property-brochure/references/images.md +0 -166
- package/payload/platform/plugins/brochures/skills/property-brochure/references/index-landing.md +0 -376
- package/payload/platform/plugins/brochures/skills/property-brochure/references/index.html +0 -1288
- package/payload/platform/plugins/brochures/skills/property-brochure/references/placeholders.md +0 -250
- package/payload/platform/plugins/brochures/skills/property-brochure/references/registers.md +0 -47
- package/payload/platform/plugins/brochures/skills/property-brochure/references/seller-brief.md +0 -56
- package/payload/platform/plugins/brochures/skills/property-brochure/references/structure.md +0 -249
- package/payload/platform/plugins/brochures/skills/property-brochure/references/template.html +0 -2370
- package/payload/platform/plugins/brochures/skills/property-extract/SKILL.md +0 -372
- package/payload/platform/plugins/brochures/skills/property-market-report/SKILL.md +0 -100
- package/payload/platform/plugins/brochures/skills/property-market-report/references/render.py +0 -267
- package/payload/platform/plugins/brochures/skills/property-market-report/references/template.html +0 -266
- package/payload/platform/plugins/brochures/skills/property-socials/SKILL.md +0 -141
- package/payload/platform/plugins/buyers/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/buyers/PLUGIN.md +0 -34
- package/payload/platform/plugins/buyers/skills/buyer-feedback/SKILL.md +0 -109
- package/payload/platform/plugins/buyers/skills/buyer-management/SKILL.md +0 -42
- package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-qualification-questions.md +0 -16
- package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-qualification.md +0 -59
- package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-scripts.md +0 -63
- package/payload/platform/plugins/buyers/skills/buyer-management/references/buyer-working-scripts.md +0 -54
- package/payload/platform/plugins/buyers/skills/buyer-management/references/feedback-collection.md +0 -42
- package/payload/platform/plugins/buyers/skills/buyer-management/references/offer-capture.md +0 -38
- package/payload/platform/plugins/buyers/skills/buyer-management/references/viewing-booking.md +0 -32
- package/payload/platform/plugins/buyers/skills/buyer-management/references/viewing-management.md +0 -52
- package/payload/platform/plugins/buyers/skills/buyer-seller-guides/SKILL.md +0 -407
- package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/care-fees-guide.md +0 -68
- package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/divorce-sales-guide.md +0 -61
- package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/downsizing-guide.md +0 -45
- package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/first-time-buyers.md +0 -92
- package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/first-time-sellers.md +0 -78
- package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/probate-guide.md +0 -53
- package/payload/platform/plugins/buyers/skills/buyer-seller-guides/references/upsizing-guide.md +0 -41
- package/payload/platform/plugins/buyers/skills/property-enquiry/SKILL.md +0 -126
- package/payload/platform/plugins/buyers/skills/viewing-management/SKILL.md +0 -111
- package/payload/platform/plugins/epc/.claude-plugin/plugin.json +0 -17
- package/payload/platform/plugins/epc/PLUGIN.md +0 -85
- package/payload/platform/plugins/epc/mcp/dist/index.d.ts +0 -2
- package/payload/platform/plugins/epc/mcp/dist/index.d.ts.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/index.js +0 -117
- package/payload/platform/plugins/epc/mcp/dist/index.js.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/lib/crypto.d.ts +0 -3
- package/payload/platform/plugins/epc/mcp/dist/lib/crypto.d.ts.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/lib/crypto.js +0 -72
- package/payload/platform/plugins/epc/mcp/dist/lib/crypto.js.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.d.ts +0 -60
- package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.d.ts.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.js +0 -181
- package/payload/platform/plugins/epc/mcp/dist/lib/epc-api.js.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.d.ts +0 -3
- package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.d.ts.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.js +0 -49
- package/payload/platform/plugins/epc/mcp/dist/lib/file-crypto.js.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/lib/key-store.d.ts +0 -15
- package/payload/platform/plugins/epc/mcp/dist/lib/key-store.d.ts.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/lib/key-store.js +0 -130
- package/payload/platform/plugins/epc/mcp/dist/lib/key-store.js.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.d.ts +0 -5
- package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.d.ts.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.js +0 -38
- package/payload/platform/plugins/epc/mcp/dist/lib/neo4j.js.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.d.ts +0 -4
- package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.d.ts.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.js +0 -9
- package/payload/platform/plugins/epc/mcp/dist/tools/key-deregister.js.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/tools/key-list.d.ts +0 -4
- package/payload/platform/plugins/epc/mcp/dist/tools/key-list.d.ts.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/tools/key-list.js +0 -10
- package/payload/platform/plugins/epc/mcp/dist/tools/key-list.js.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/tools/key-register.d.ts +0 -5
- package/payload/platform/plugins/epc/mcp/dist/tools/key-register.d.ts.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/tools/key-register.js +0 -36
- package/payload/platform/plugins/epc/mcp/dist/tools/key-register.js.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/tools/lookup.d.ts +0 -10
- package/payload/platform/plugins/epc/mcp/dist/tools/lookup.d.ts.map +0 -1
- package/payload/platform/plugins/epc/mcp/dist/tools/lookup.js +0 -30
- package/payload/platform/plugins/epc/mcp/dist/tools/lookup.js.map +0 -1
- package/payload/platform/plugins/epc/mcp/package-lock.json +0 -2566
- package/payload/platform/plugins/epc/mcp/package.json +0 -21
- package/payload/platform/plugins/epc/mcp/src/__tests__/epc-api.test.ts +0 -251
- package/payload/platform/plugins/epc/mcp/src/__tests__/key-roundtrip.test.ts +0 -113
- package/payload/platform/plugins/epc/mcp/src/__tests__/lookup.test.ts +0 -181
- package/payload/platform/plugins/epc/mcp/src/__tests__/schema-parity.test.ts +0 -54
- package/payload/platform/plugins/epc/mcp/src/index.ts +0 -156
- package/payload/platform/plugins/epc/mcp/src/lib/crypto.ts +0 -79
- package/payload/platform/plugins/epc/mcp/src/lib/epc-api.ts +0 -241
- package/payload/platform/plugins/epc/mcp/src/lib/file-crypto.ts +0 -55
- package/payload/platform/plugins/epc/mcp/src/lib/key-store.ts +0 -172
- package/payload/platform/plugins/epc/mcp/src/lib/neo4j.ts +0 -47
- package/payload/platform/plugins/epc/mcp/src/tools/key-deregister.ts +0 -9
- package/payload/platform/plugins/epc/mcp/src/tools/key-list.ts +0 -10
- package/payload/platform/plugins/epc/mcp/src/tools/key-register.ts +0 -44
- package/payload/platform/plugins/epc/mcp/src/tools/lookup.ts +0 -43
- package/payload/platform/plugins/epc/mcp/tsconfig.json +0 -20
- package/payload/platform/plugins/epc/mcp/vitest.config.ts +0 -8
- package/payload/platform/plugins/estate-business/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/estate-business/PLUGIN.md +0 -64
- package/payload/platform/plugins/estate-business/skills/business-growth/SKILL.md +0 -133
- package/payload/platform/plugins/estate-business/skills/business-growth/references/buy-back-your-time.md +0 -37
- package/payload/platform/plugins/estate-business/skills/business-growth/references/firewave-gost-scorecards.md +0 -14
- package/payload/platform/plugins/estate-business/skills/business-growth/references/keller-org-model.md +0 -17
- package/payload/platform/plugins/estate-business/skills/business-growth/references/lencioni-team-models.md +0 -22
- package/payload/platform/plugins/estate-business/skills/business-growth/references/listing-management-system.md +0 -11
- package/payload/platform/plugins/estate-business/skills/business-growth/references/net-figure-form.md +0 -11
- package/payload/platform/plugins/estate-business/skills/business-growth/references/serhant-bizinbox-notes.md +0 -13
- package/payload/platform/plugins/estate-business/skills/business-growth/references/team-roles-commission.md +0 -14
- package/payload/platform/plugins/estate-business/skills/business-growth/references/va-2026-ops.md +0 -43
- package/payload/platform/plugins/estate-business/skills/business-growth/references/wingman-structure.md +0 -13
- package/payload/platform/plugins/estate-business/skills/business-operations/SKILL.md +0 -32
- package/payload/platform/plugins/estate-business/skills/business-operations/references/crm-systems.md +0 -57
- package/payload/platform/plugins/estate-business/skills/business-operations/references/hiring-guide.md +0 -59
- package/payload/platform/plugins/estate-business/skills/business-operations/references/impact-framework.md +0 -47
- package/payload/platform/plugins/estate-business/skills/business-operations/references/minutes-equal-money.md +0 -55
- package/payload/platform/plugins/estate-business/skills/business-operations/references/team-management.md +0 -48
- package/payload/platform/plugins/estate-business/skills/commission-calculator/SKILL.md +0 -40
- package/payload/platform/plugins/estate-business/skills/exp-partnership/SKILL.md +0 -52
- package/payload/platform/plugins/estate-business/skills/exp-partnership/references/12-reasons.md +0 -39
- package/payload/platform/plugins/estate-business/skills/exp-partnership/references/95-5-system.md +0 -66
- package/payload/platform/plugins/estate-business/skills/exp-partnership/references/agent-attraction-scripts.md +0 -90
- package/payload/platform/plugins/estate-business/skills/exp-partnership/references/business-partnership.md +0 -92
- package/payload/platform/plugins/estate-business/skills/exp-partnership/references/exp-model-overview.md +0 -66
- package/payload/platform/plugins/estate-business/skills/exp-partnership/references/model-comparison.md +0 -66
- package/payload/platform/plugins/estate-business/skills/exp-partnership/references/revenue-share-explained.md +0 -57
- package/payload/platform/plugins/estate-business/skills/month-end-close/SKILL.md +0 -69
- package/payload/platform/plugins/estate-business/skills/payment-batch-stager/SKILL.md +0 -42
- package/payload/platform/plugins/estate-business/skills/period-reconciler/SKILL.md +0 -42
- package/payload/platform/plugins/estate-business/skills/personal-branding/SKILL.md +0 -117
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/attraction-agent-notes.md +0 -31
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/attraction-agent.md +0 -58
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/authenticity-boundaries.md +0 -28
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/become-a-brand-leader-notes.md +0 -19
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/blast-formula.md +0 -42
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/brand-leader.md +0 -48
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/brand-strategy-system.md +0 -59
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/content-engine.md +0 -49
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/firewave-blast-and-blogging.md +0 -23
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/gary-v-content.md +0 -52
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/gary-v-principles.md +0 -20
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/oversubscribed-positioning.md +0 -18
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/platforms.md +0 -41
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/priestley-oversubscribed.md +0 -54
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/storeys-style-examples.md +0 -25
- package/payload/platform/plugins/estate-business/skills/personal-branding/references/visual-identity.md +0 -27
- package/payload/platform/plugins/estate-coaching/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/estate-coaching/PLUGIN.md +0 -54
- package/payload/platform/plugins/estate-coaching/skills/agent-performance/SKILL.md +0 -371
- package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/atomic-habits.md +0 -52
- package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/daily-routine-scorecard.md +0 -104
- package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/hp6-model.md +0 -63
- package/payload/platform/plugins/estate-coaching/skills/agent-performance/references/twelve-week-year.md +0 -71
- package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/SKILL.md +0 -36
- package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/coaching-boundaries.md +0 -56
- package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/feedback-framework.md +0 -61
- package/payload/platform/plugins/estate-coaching/skills/bespoke-coaching/references/performance-framework.md +0 -109
- package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/SKILL.md +0 -421
- package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/coaching-exercises.md +0 -86
- package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/goal-setting.md +0 -78
- package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/one-to-one-framework.md +0 -92
- package/payload/platform/plugins/estate-coaching/skills/coaching-toolkit/references/soi-workbook.md +0 -103
- package/payload/platform/plugins/estate-coaching/skills/serhant-training/SKILL.md +0 -410
- package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/agent-training-guide.md +0 -70
- package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/business-in-a-box.md +0 -72
- package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/buyers-guide.md +0 -53
- package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/codo-method.md +0 -72
- package/payload/platform/plugins/estate-coaching/skills/serhant-training/references/website-planning-guide.md +0 -79
- package/payload/platform/plugins/estate-sales/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/estate-sales/PLUGIN.md +0 -52
- package/payload/platform/plugins/estate-sales/skills/chase-progression/SKILL.md +0 -107
- package/payload/platform/plugins/estate-sales/skills/negotiation/SKILL.md +0 -35
- package/payload/platform/plugins/estate-sales/skills/negotiation/references/deal-saving.md +0 -47
- package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-deep-guide.md +0 -64
- package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-prep-principles.md +0 -29
- package/payload/platform/plugins/estate-sales/skills/negotiation/references/negotiation-techniques.md +0 -42
- package/payload/platform/plugins/estate-sales/skills/negotiation/references/offer-presentation.md +0 -43
- package/payload/platform/plugins/estate-sales/skills/risk-scorer/SKILL.md +0 -42
- package/payload/platform/plugins/estate-sales/skills/sales-closer/SKILL.md +0 -24
- package/payload/platform/plugins/estate-sales/skills/sales-closer/references/serhant-emotion-stages.md +0 -36
- package/payload/platform/plugins/estate-sales/skills/sales-discovery/SKILL.md +0 -30
- package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/chris-voss-discovery.md +0 -88
- package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/firewave-gost-journey.md +0 -68
- package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/phil-jones-openers.md +0 -78
- package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/pre-listing-checklist.md +0 -77
- package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/serhant-improv.md +0 -22
- package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/tom-ferry-discovery.md +0 -103
- package/payload/platform/plugins/estate-sales/skills/sales-discovery/references/vendor-motivation-competitor.md +0 -52
- package/payload/platform/plugins/estate-sales/skills/sales-negotiation/SKILL.md +0 -29
- package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/chris-voss-negotiation.md +0 -70
- package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/phil-jones-price-words.md +0 -40
- package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/serhant-negotiation-plus.md +0 -55
- package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/tom-panos-commission-pricing.md +0 -57
- package/payload/platform/plugins/estate-sales/skills/sales-negotiation/references/tony-morris-questioning.md +0 -54
- package/payload/platform/plugins/estate-sales/skills/sales-progression/SKILL.md +0 -27
- package/payload/platform/plugins/estate-sales/skills/sales-progression/references/conveyancing-guide.md +0 -54
- package/payload/platform/plugins/estate-sales/skills/sales-progression/references/transaction-tracking.md +0 -66
- package/payload/platform/plugins/estate-teaching/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/estate-teaching/PLUGIN.md +0 -30
- package/payload/platform/plugins/estate-teaching/skills/content-directory/SKILL.md +0 -39
- package/payload/platform/plugins/estate-teaching/skills/content-directory/references/module-delivery.md +0 -65
- package/payload/platform/plugins/estate-teaching/skills/content-directory/references/progress-tracking.md +0 -47
- package/payload/platform/plugins/leads/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/leads/PLUGIN.md +0 -61
- package/payload/platform/plugins/leads/skills/chain-progression-tracker/SKILL.md +0 -51
- package/payload/platform/plugins/leads/skills/diary-builder/SKILL.md +0 -38
- package/payload/platform/plugins/leads/skills/enquiry-triage/SKILL.md +0 -36
- package/payload/platform/plugins/leads/skills/lead-nurturing/SKILL.md +0 -137
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/buyer-search-letter.md +0 -28
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/buyer-search-letters.md +0 -37
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/database-reactivation.md +0 -30
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/email-nurture-sequences.md +0 -45
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/facebook-referrals.md +0 -30
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/firewave-email-nurture-sequences.md +0 -41
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/keller-33-touch.md +0 -34
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/neighbour-letters.md +0 -31
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/neighbour-notification-letter.md +0 -20
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/ofi-follow-up-dialogue.md +0 -22
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/ofi-follow-up.md +0 -26
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/serhant-three-fs-plus.md +0 -21
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/sharran-10x10x10.md +0 -18
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/sms-templates.md +0 -40
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/sphere-of-influence-notes.md +0 -34
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/sphere-of-influence.md +0 -60
- package/payload/platform/plugins/leads/skills/lead-nurturing/references/tom-panos-sms-templates.md +0 -59
- package/payload/platform/plugins/leads/skills/morning-round/SKILL.md +0 -72
- package/payload/platform/plugins/leads/skills/prospecting/SKILL.md +0 -33
- package/payload/platform/plugins/leads/skills/prospecting/references/database-matching.md +0 -30
- package/payload/platform/plugins/leads/skills/prospecting/references/database-value.md +0 -53
- package/payload/platform/plugins/leads/skills/prospecting/references/prospecting-dialogues.md +0 -24
- package/payload/platform/plugins/leads/skills/prospecting/references/reactivation.md +0 -34
- package/payload/platform/plugins/listings/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/listings/PLUGIN.md +0 -102
- package/payload/platform/plugins/listings/skills/comparable-finder/SKILL.md +0 -52
- package/payload/platform/plugins/listings/skills/epc-checker/SKILL.md +0 -38
- package/payload/platform/plugins/listings/skills/home-preparation/SKILL.md +0 -28
- package/payload/platform/plugins/listings/skills/home-preparation/references/kerb-appeal.md +0 -38
- package/payload/platform/plugins/listings/skills/home-preparation/references/photo-day.md +0 -59
- package/payload/platform/plugins/listings/skills/home-preparation/references/situational-tips.md +0 -50
- package/payload/platform/plugins/listings/skills/home-preparation/references/staging-guide.md +0 -52
- package/payload/platform/plugins/listings/skills/listing-copy-writer/SKILL.md +0 -55
- package/payload/platform/plugins/listings/skills/listing-presentation/SKILL.md +0 -286
- package/payload/platform/plugins/listings/skills/listing-presentation/references/booking-script.md +0 -51
- package/payload/platform/plugins/listings/skills/listing-presentation/references/objection-scripts.md +0 -193
- package/payload/platform/plugins/listings/skills/listing-presentation/references/penhaul-presentation.md +0 -123
- package/payload/platform/plugins/listings/skills/listing-presentation/references/pre-listing-kit.md +0 -139
- package/payload/platform/plugins/listings/skills/listing-presentation/references/set-to-sell.md +0 -55
- package/payload/platform/plugins/listings/skills/listing-presentation/references/sharran-frameworks.md +0 -107
- package/payload/platform/plugins/listings/skills/local-market-stats/SKILL.md +0 -33
- package/payload/platform/plugins/listings/skills/new-instruction/SKILL.md +0 -78
- package/payload/platform/plugins/listings/skills/particulars-builder/SKILL.md +0 -48
- package/payload/platform/plugins/listings/skills/portal-launch-scheduler/SKILL.md +0 -49
- package/payload/platform/plugins/listings/skills/pricing-scenario-builder/SKILL.md +0 -35
- package/payload/platform/plugins/listings/skills/property-marketing/SKILL.md +0 -337
- package/payload/platform/plugins/listings/skills/property-marketing/references/auction-report-template.md +0 -41
- package/payload/platform/plugins/listings/skills/property-marketing/references/coming-soon-campaign.md +0 -43
- package/payload/platform/plugins/listings/skills/property-marketing/references/direct-mail-templates.md +0 -121
- package/payload/platform/plugins/listings/skills/property-marketing/references/eoi-form-template.md +0 -62
- package/payload/platform/plugins/listings/skills/property-marketing/references/monthly-scorecard.md +0 -63
- package/payload/platform/plugins/listings/skills/supplier-booker/SKILL.md +0 -39
- package/payload/platform/plugins/listings/skills/talk-track-composer/SKILL.md +0 -36
- package/payload/platform/plugins/listings/skills/terms-of-business-drafter/SKILL.md +0 -54
- package/payload/platform/plugins/listings/skills/valuation-prep/SKILL.md +0 -69
- package/payload/platform/plugins/loop/.claude-plugin/plugin.json +0 -17
- package/payload/platform/plugins/loop/PLUGIN.md +0 -233
- package/payload/platform/plugins/loop/mcp/dist/index.d.ts +0 -2
- package/payload/platform/plugins/loop/mcp/dist/index.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/index.js +0 -320
- package/payload/platform/plugins/loop/mcp/dist/index.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/lib/crypto.d.ts +0 -10
- package/payload/platform/plugins/loop/mcp/dist/lib/crypto.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/lib/crypto.js +0 -88
- package/payload/platform/plugins/loop/mcp/dist/lib/crypto.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.d.ts +0 -3
- package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.js +0 -48
- package/payload/platform/plugins/loop/mcp/dist/lib/file-crypto.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/lib/key-store.d.ts +0 -22
- package/payload/platform/plugins/loop/mcp/dist/lib/key-store.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/lib/key-store.js +0 -165
- package/payload/platform/plugins/loop/mcp/dist/lib/key-store.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.d.ts +0 -82
- package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.js +0 -392
- package/payload/platform/plugins/loop/mcp/dist/lib/loop-api.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.d.ts +0 -5
- package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.js +0 -40
- package/payload/platform/plugins/loop/mcp/dist/lib/neo4j.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.d.ts +0 -12
- package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.js +0 -22
- package/payload/platform/plugins/loop/mcp/dist/tools/auto-responder.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.d.ts +0 -10
- package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.js +0 -24
- package/payload/platform/plugins/loop/mcp/dist/tools/customer-preferences.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/feedback.d.ts +0 -16
- package/payload/platform/plugins/loop/mcp/dist/tools/feedback.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/feedback.js +0 -35
- package/payload/platform/plugins/loop/mcp/dist/tools/feedback.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.d.ts +0 -5
- package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.js +0 -9
- package/payload/platform/plugins/loop/mcp/dist/tools/key-deregister.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/key-list.d.ts +0 -4
- package/payload/platform/plugins/loop/mcp/dist/tools/key-list.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/key-list.js +0 -14
- package/payload/platform/plugins/loop/mcp/dist/tools/key-list.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/key-register.d.ts +0 -9
- package/payload/platform/plugins/loop/mcp/dist/tools/key-register.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/key-register.js +0 -43
- package/payload/platform/plugins/loop/mcp/dist/tools/key-register.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts +0 -6
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.js +0 -7
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-enquiry.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts +0 -9
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.js +0 -16
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-batch.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts +0 -15
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.js +0 -11
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match-request.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.d.ts +0 -10
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.js +0 -39
- package/payload/platform/plugins/loop/mcp/dist/tools/marketing-match.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.d.ts +0 -9
- package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.js +0 -125
- package/payload/platform/plugins/loop/mcp/dist/tools/people-detail.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/people-search.d.ts +0 -18
- package/payload/platform/plugins/loop/mcp/dist/tools/people-search.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/people-search.js +0 -87
- package/payload/platform/plugins/loop/mcp/dist/tools/people-search.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.d.ts +0 -10
- package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.js +0 -82
- package/payload/platform/plugins/loop/mcp/dist/tools/property-detail.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.d.ts +0 -33
- package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.js +0 -19
- package/payload/platform/plugins/loop/mcp/dist/tools/property-intent.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.d.ts +0 -11
- package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.js +0 -26
- package/payload/platform/plugins/loop/mcp/dist/tools/property-listed.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-request.d.ts +0 -15
- package/payload/platform/plugins/loop/mcp/dist/tools/property-request.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-request.js +0 -11
- package/payload/platform/plugins/loop/mcp/dist/tools/property-request.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-search.d.ts +0 -16
- package/payload/platform/plugins/loop/mcp/dist/tools/property-search.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-search.js +0 -41
- package/payload/platform/plugins/loop/mcp/dist/tools/property-search.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.d.ts +0 -9
- package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.js +0 -19
- package/payload/platform/plugins/loop/mcp/dist/tools/property-sold.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/supplier.d.ts +0 -13
- package/payload/platform/plugins/loop/mcp/dist/tools/supplier.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/supplier.js +0 -49
- package/payload/platform/plugins/loop/mcp/dist/tools/supplier.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.d.ts +0 -7
- package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.js +0 -19
- package/payload/platform/plugins/loop/mcp/dist/tools/team-availability.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/team-info.d.ts +0 -5
- package/payload/platform/plugins/loop/mcp/dist/tools/team-info.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/team-info.js +0 -32
- package/payload/platform/plugins/loop/mcp/dist/tools/team-info.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.d.ts +0 -14
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.js +0 -11
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-create.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.d.ts +0 -9
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.js +0 -85
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-detail.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.d.ts +0 -13
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.js +0 -44
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-search.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.d.ts +0 -14
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.d.ts.map +0 -1
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.js +0 -18
- package/payload/platform/plugins/loop/mcp/dist/tools/viewing-update.js.map +0 -1
- package/payload/platform/plugins/loop/mcp/package-lock.json +0 -2549
- package/payload/platform/plugins/loop/mcp/package.json +0 -21
- package/payload/platform/plugins/loop/mcp/src/__tests__/loop-swagger.snapshot.json +0 -26467
- package/payload/platform/plugins/loop/mcp/src/__tests__/new-tool-shape.test.ts +0 -99
- package/payload/platform/plugins/loop/mcp/src/__tests__/plugin-md-time-doctrine.test.ts +0 -132
- package/payload/platform/plugins/loop/mcp/src/__tests__/swagger-write-coverage.test.ts +0 -154
- package/payload/platform/plugins/loop/mcp/src/index.ts +0 -498
- package/payload/platform/plugins/loop/mcp/src/lib/crypto.ts +0 -105
- package/payload/platform/plugins/loop/mcp/src/lib/file-crypto.ts +0 -54
- package/payload/platform/plugins/loop/mcp/src/lib/key-store.ts +0 -221
- package/payload/platform/plugins/loop/mcp/src/lib/loop-api.ts +0 -567
- package/payload/platform/plugins/loop/mcp/src/lib/neo4j.ts +0 -51
- package/payload/platform/plugins/loop/mcp/src/tools/auto-responder.ts +0 -80
- package/payload/platform/plugins/loop/mcp/src/tools/customer-preferences.ts +0 -66
- package/payload/platform/plugins/loop/mcp/src/tools/feedback.ts +0 -86
- package/payload/platform/plugins/loop/mcp/src/tools/key-deregister.ts +0 -12
- package/payload/platform/plugins/loop/mcp/src/tools/key-list.ts +0 -19
- package/payload/platform/plugins/loop/mcp/src/tools/key-register.ts +0 -70
- package/payload/platform/plugins/loop/mcp/src/tools/marketing-enquiry.ts +0 -27
- package/payload/platform/plugins/loop/mcp/src/tools/marketing-match-batch.ts +0 -53
- package/payload/platform/plugins/loop/mcp/src/tools/marketing-match-request.ts +0 -42
- package/payload/platform/plugins/loop/mcp/src/tools/marketing-match.ts +0 -84
- package/payload/platform/plugins/loop/mcp/src/tools/people-detail.ts +0 -245
- package/payload/platform/plugins/loop/mcp/src/tools/people-search.ts +0 -180
- package/payload/platform/plugins/loop/mcp/src/tools/property-detail.ts +0 -145
- package/payload/platform/plugins/loop/mcp/src/tools/property-intent.ts +0 -84
- package/payload/platform/plugins/loop/mcp/src/tools/property-listed.ts +0 -81
- package/payload/platform/plugins/loop/mcp/src/tools/property-search.ts +0 -92
- package/payload/platform/plugins/loop/mcp/src/tools/property-sold.ts +0 -67
- package/payload/platform/plugins/loop/mcp/src/tools/supplier.ts +0 -129
- package/payload/platform/plugins/loop/mcp/src/tools/team-availability.ts +0 -52
- package/payload/platform/plugins/loop/mcp/src/tools/team-info.ts +0 -95
- package/payload/platform/plugins/loop/mcp/src/tools/viewing-create.ts +0 -41
- package/payload/platform/plugins/loop/mcp/src/tools/viewing-detail.ts +0 -171
- package/payload/platform/plugins/loop/mcp/src/tools/viewing-search.ts +0 -92
- package/payload/platform/plugins/loop/mcp/src/tools/viewing-update.ts +0 -53
- package/payload/platform/plugins/loop/mcp/tsconfig.json +0 -20
- package/payload/platform/plugins/loop/mcp/vitest.config.ts +0 -9
- package/payload/platform/plugins/loop/skills/compliance-flag-checker/SKILL.md +0 -53
- package/payload/platform/plugins/loop/skills/priority-ranker/SKILL.md +0 -40
- package/payload/platform/plugins/loop/skills/tone-matched-drafter/SKILL.md +0 -53
- package/payload/platform/plugins/loop/skills/variance-narrator/SKILL.md +0 -50
- package/payload/platform/plugins/loop/skills/vendor-research/SKILL.md +0 -54
- package/payload/platform/plugins/preval/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/preval/PLUGIN.md +0 -47
- package/payload/platform/plugins/preval/skills/property-preval/SKILL.md +0 -146
- package/payload/platform/plugins/preval/skills/property-preval/references/render.py +0 -630
- package/payload/platform/plugins/preval/skills/property-preval/references/template-inputs.schema.json +0 -189
- package/payload/platform/plugins/preval/skills/property-preval/references/template.html +0 -312
- package/payload/platform/plugins/property-data/.claude-plugin/plugin.json +0 -17
- package/payload/platform/plugins/property-data/PLUGIN.md +0 -158
- package/payload/platform/plugins/property-data/mcp/dist/index.d.ts +0 -2
- package/payload/platform/plugins/property-data/mcp/dist/index.d.ts.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/index.js +0 -236
- package/payload/platform/plugins/property-data/mcp/dist/index.js.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.d.ts +0 -3
- package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.d.ts.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.js +0 -72
- package/payload/platform/plugins/property-data/mcp/dist/lib/crypto.js.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.d.ts +0 -3
- package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.d.ts.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.js +0 -49
- package/payload/platform/plugins/property-data/mcp/dist/lib/file-crypto.js.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.d.ts +0 -15
- package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.d.ts.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.js +0 -135
- package/payload/platform/plugins/property-data/mcp/dist/lib/key-store.js.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.d.ts +0 -5
- package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.d.ts.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.js +0 -38
- package/payload/platform/plugins/property-data/mcp/dist/lib/neo4j.js.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts +0 -28
- package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.d.ts.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.js +0 -101
- package/payload/platform/plugins/property-data/mcp/dist/lib/propertydata-api.js.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.d.ts +0 -24
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.d.ts.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.js +0 -33
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.js.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.d.ts +0 -4
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.d.ts.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.js +0 -9
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-deregister.js.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.d.ts +0 -4
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.d.ts.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.js +0 -10
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-list.js.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.d.ts +0 -5
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.d.ts.map +0 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.js +0 -50
- package/payload/platform/plugins/property-data/mcp/dist/tools/key-register.js.map +0 -1
- package/payload/platform/plugins/property-data/mcp/package-lock.json +0 -2566
- package/payload/platform/plugins/property-data/mcp/package.json +0 -21
- package/payload/platform/plugins/property-data/mcp/src/__tests__/endpoints.test.ts +0 -252
- package/payload/platform/plugins/property-data/mcp/src/__tests__/key-roundtrip.test.ts +0 -107
- package/payload/platform/plugins/property-data/mcp/src/__tests__/propertydata-api.test.ts +0 -184
- package/payload/platform/plugins/property-data/mcp/src/__tests__/schema-parity.test.ts +0 -62
- package/payload/platform/plugins/property-data/mcp/src/index.ts +0 -409
- package/payload/platform/plugins/property-data/mcp/src/lib/crypto.ts +0 -79
- package/payload/platform/plugins/property-data/mcp/src/lib/file-crypto.ts +0 -55
- package/payload/platform/plugins/property-data/mcp/src/lib/key-store.ts +0 -181
- package/payload/platform/plugins/property-data/mcp/src/lib/neo4j.ts +0 -47
- package/payload/platform/plugins/property-data/mcp/src/lib/propertydata-api.ts +0 -120
- package/payload/platform/plugins/property-data/mcp/src/tools/endpoints.ts +0 -47
- package/payload/platform/plugins/property-data/mcp/src/tools/key-deregister.ts +0 -9
- package/payload/platform/plugins/property-data/mcp/src/tools/key-list.ts +0 -10
- package/payload/platform/plugins/property-data/mcp/src/tools/key-register.ts +0 -54
- package/payload/platform/plugins/property-data/mcp/tsconfig.json +0 -20
- package/payload/platform/plugins/property-data/mcp/vitest.config.ts +0 -8
- package/payload/platform/plugins/property-data/skills/property-data/SKILL.md +0 -77
- package/payload/platform/plugins/vendors/.claude-plugin/plugin.json +0 -8
- package/payload/platform/plugins/vendors/PLUGIN.md +0 -33
- package/payload/platform/plugins/vendors/skills/vendor-communication/SKILL.md +0 -42
- package/payload/platform/plugins/vendors/skills/vendor-communication/references/fee-protection-and-agenda.md +0 -28
- package/payload/platform/plugins/vendors/skills/vendor-communication/references/listing-scripts.md +0 -44
- package/payload/platform/plugins/vendors/skills/vendor-communication/references/negotiation-deep-guide.md +0 -70
- package/payload/platform/plugins/vendors/skills/vendor-communication/references/price-alignment-scripts.md +0 -33
- package/payload/platform/plugins/vendors/skills/vendor-communication/references/price-alignment.md +0 -34
- package/payload/platform/plugins/vendors/skills/vendor-communication/references/scenario-scripts.md +0 -38
- package/payload/platform/plugins/vendors/skills/vendor-communication/references/seller-engagement.md +0 -51
- package/payload/platform/plugins/vendors/skills/vendor-communication/references/valuation-booking.md +0 -76
- package/payload/platform/plugins/vendors/skills/vendor-communication/references/vendor-scripts.md +0 -63
- package/payload/platform/plugins/vendors/skills/vendor-communication/references/vendor-updates.md +0 -41
- package/payload/platform/plugins/vendors/skills/vendor-updates/SKILL.md +0 -153
- package/payload/premium-plugins/real-agent/plugins/epc/PLUGIN.md +0 -85
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/package-lock.json +0 -2566
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/package.json +0 -21
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/epc-api.test.ts +0 -251
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/key-roundtrip.test.ts +0 -113
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/lookup.test.ts +0 -181
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/__tests__/schema-parity.test.ts +0 -54
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/index.ts +0 -156
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/crypto.ts +0 -79
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/epc-api.ts +0 -241
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/file-crypto.ts +0 -55
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/key-store.ts +0 -172
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/lib/neo4j.ts +0 -47
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/key-deregister.ts +0 -9
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/key-list.ts +0 -10
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/key-register.ts +0 -44
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/src/tools/lookup.ts +0 -43
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/tsconfig.json +0 -20
- package/payload/premium-plugins/real-agent/plugins/epc/mcp/vitest.config.ts +0 -8
- package/payload/premium-plugins/real-agent/plugins/listings/skills/epc-checker/SKILL.md +0 -38
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
3
|
"title": "property-preval inputs",
|
|
4
|
-
"description": "Single-source contract for render.py. Mirrors the 12 property-data MCP responses
|
|
4
|
+
"description": "Single-source contract for render.py. Mirrors the 12 property-data MCP responses for one full UK address, plus operator-supplied brand, subject (including the three EPC certificate fields pasted before invocation), and agent_listings. `subject.narrative` and `market_summary` are composed by the agent from the fan-out — not operator-supplied.",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"required": [
|
|
7
7
|
"out_dir", "filename_stem", "address", "postcode", "generated",
|
|
8
8
|
"brand", "subject", "valuation", "area", "demand_trend",
|
|
9
|
-
"market_summary", "agent_listings"
|
|
9
|
+
"market_summary", "agent_listings", "agent_overrides"
|
|
10
10
|
],
|
|
11
11
|
"properties": {
|
|
12
12
|
"out_dir": { "type": "string", "description": "Absolute path to the output directory (created if missing)." },
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"address": { "type": "string", "description": "Full UK address as the operator gave it." },
|
|
15
15
|
"postcode": { "type": "string", "description": "Postcode derived from the address, e.g. 'CM23 2UJ'." },
|
|
16
16
|
"generated": { "type": "string", "description": "Human date, e.g. '19 May 2026'." },
|
|
17
|
+
"variant": { "type": "string", "enum": ["premium", "on-brand"], "description": "Render variant. 'premium' (default) keeps the editorial Cormorant/Lora/Inter typography lock and only applies the brand's colours + logo. 'on-brand' overrides the type system with brand.font_display + brand.font_body — the pack follows the agent's identity end-to-end. Decision rule: if the operator says 'premium' use premium; if brand.font_display + brand.font_body are both set and the operator did not say premium, default to 'on-brand'; otherwise premium." },
|
|
17
18
|
|
|
18
19
|
"brand": {
|
|
19
20
|
"type": "object",
|
|
@@ -28,25 +29,26 @@
|
|
|
28
29
|
"paper_banded": { "type": "string" },
|
|
29
30
|
"rule": { "type": "string" },
|
|
30
31
|
"logo_light": { "type": "string", "description": "Optional filesystem path to white-on-transparent logo for the cover." },
|
|
31
|
-
"logo_dark": { "type": "string", "description": "Optional filesystem path to full-colour logo for body-page headers." }
|
|
32
|
+
"logo_dark": { "type": "string", "description": "Optional filesystem path to full-colour logo for body-page headers." },
|
|
33
|
+
"agent_name": { "type": "string", "description": "Optional. Name of the individual agent preparing the pitch — printed in the cover's 'Prepared by' meta cell. Falls back to brand.name when omitted." },
|
|
34
|
+
"font_display": { "type": "string", "description": "Optional. CSS font-family value for the display typeface (h1/h2/h4/eyebrows). Only honoured when variant='on-brand'. e.g. '\"Azo Sans\", system-ui, sans-serif'." },
|
|
35
|
+
"font_body": { "type": "string", "description": "Optional. CSS font-family value for body typography (paragraphs, lists). Only honoured when variant='on-brand'. e.g. 'Poppins, sans-serif'." }
|
|
32
36
|
}
|
|
33
37
|
},
|
|
34
38
|
|
|
35
39
|
"subject": {
|
|
36
40
|
"type": "object",
|
|
37
|
-
"required": ["cover_hero", "
|
|
41
|
+
"required": ["cover_hero", "total_floor_area_m2", "current_energy_rating", "lodgement_date"],
|
|
38
42
|
"properties": {
|
|
39
|
-
"cover_hero":
|
|
40
|
-
"beds":
|
|
41
|
-
"type":
|
|
42
|
-
"tenure":
|
|
43
|
-
"condition":
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"epc_lodgement": { "type": ["string", "null"], "description": "ISO date of the EPC lodgement." },
|
|
49
|
-
"narrative": { "type": ["string", "null"], "description": "One short paragraph the operator writes about the subject — shown under the valuation panel." },
|
|
43
|
+
"cover_hero": { "type": "string", "description": "Filesystem path or URL to a photo of the subject property — required for the cover. Renderer asserts the file exists, is ≥ 1200×800, and is not symlinked to another property's folder." },
|
|
44
|
+
"beds": { "type": ["integer", "null"] },
|
|
45
|
+
"type": { "type": ["string", "null"], "description": "e.g. 'Semi-detached', 'Terraced', 'Flat'." },
|
|
46
|
+
"tenure": { "type": ["string", "null"], "description": "e.g. 'Freehold', 'Leasehold'." },
|
|
47
|
+
"condition": { "type": ["string", "null"], "description": "'well' | 'average' | 'needs work'." },
|
|
48
|
+
"total_floor_area_m2": { "type": "number", "description": "Total internal area in square metres, copied verbatim from the EPC certificate. Operator pastes this into inputs.json before invocation. Null aborts with epc-certificate-not-supplied." },
|
|
49
|
+
"current_energy_rating": { "type": "string", "description": "Current energy rating from the EPC certificate, e.g. 'C'. Operator paste-in. Null aborts with epc-certificate-not-supplied." },
|
|
50
|
+
"lodgement_date": { "type": "string", "description": "ISO date of the EPC certificate's lodgement, e.g. '2018-04-21'. Operator paste-in. Null aborts with epc-certificate-not-supplied." },
|
|
51
|
+
"narrative": { "type": ["string", "null"], "description": "One short paragraph (1–3 sentences) under the valuation panel. Composed by the agent from EPC + council-tax records + adjustments — not operator-supplied." },
|
|
50
52
|
"adjustments": {
|
|
51
53
|
"type": "array",
|
|
52
54
|
"description": "Operator-curated esoteric factors that shift the headline range. Deltas sum linearly into the final factor (1 + Σ delta_pct/100).",
|
|
@@ -83,6 +85,7 @@
|
|
|
83
85
|
"date": { "type": "string" },
|
|
84
86
|
"address": { "type": "string" },
|
|
85
87
|
"type": { "type": "string" },
|
|
88
|
+
"beds": { "type": ["integer", "null"], "description": "Bedroom count from the Land Registry transaction; some rows are null in the source." },
|
|
86
89
|
"price": { "type": "integer" }
|
|
87
90
|
}
|
|
88
91
|
}
|
|
@@ -155,10 +158,11 @@
|
|
|
155
158
|
|
|
156
159
|
"market_summary": {
|
|
157
160
|
"type": "object",
|
|
161
|
+
"description": "Composed by the agent from the 12-call PropertyData fan-out — not operator-supplied. See SKILL.md \"Composed by the agent from the fan-out\" for the field-by-field mapping.",
|
|
158
162
|
"required": ["headline", "paragraphs", "demand_gauge_position", "price_growth_note", "demand_note"],
|
|
159
163
|
"properties": {
|
|
160
164
|
"headline": { "type": "string", "description": "One-line display-italic h2 for the market context page." },
|
|
161
|
-
"paragraphs": { "type": "array", "minItems": 2, "items": { "type": "string" }, "description": "2–3 short paragraphs. First gets a drop cap. Fewer than 2 aborts the run
|
|
165
|
+
"paragraphs": { "type": "array", "minItems": 2, "items": { "type": "string" }, "description": "2–3 short paragraphs. First gets a drop cap. Fewer than 2 aborts the run with `market-summary-too-thin`." },
|
|
162
166
|
"demand_gauge_position": { "type": "string", "description": "Percentage string for the gauge marker position, e.g. '62%'." },
|
|
163
167
|
"price_growth_note": { "type": "string" },
|
|
164
168
|
"demand_note": { "type": "string" }
|
|
@@ -172,7 +176,7 @@
|
|
|
172
176
|
"description": "Agent's own recent listings to feature on the closing page. Operator paste-in (not the PropertyData sample). Empty array aborts the run.",
|
|
173
177
|
"items": {
|
|
174
178
|
"type": "object",
|
|
175
|
-
"required": ["address", "price", "status", "slug"],
|
|
179
|
+
"required": ["address", "price", "status", "slug", "origin"],
|
|
176
180
|
"properties": {
|
|
177
181
|
"url": { "type": ["string", "null"], "description": "Source URL — listing card becomes an <a> when present." },
|
|
178
182
|
"address": { "type": "string" },
|
|
@@ -180,10 +184,21 @@
|
|
|
180
184
|
"beds": { "type": ["integer", "null"] },
|
|
181
185
|
"type": { "type": ["string", "null"] },
|
|
182
186
|
"image": { "type": ["string", "null"], "description": "Path or URL to a tile photo for the card." },
|
|
183
|
-
"status": { "type": "string", "
|
|
184
|
-
"slug": { "type": "string", "description": "Used to name the copied image file under img/." }
|
|
187
|
+
"status": { "type": "string", "enum": ["Sold", "Under offer", "For sale"], "description": "Operator picks; no default. The gate aborts if status was set when the source property.json had status:null without agent_overrides.listings_status_curated." },
|
|
188
|
+
"slug": { "type": "string", "description": "Used to name the copied image file under img/." },
|
|
189
|
+
"origin": { "type": "string", "description": "'operator' when the operator typed the row by hand, or the filesystem path of the source property.json the row was copied from." }
|
|
185
190
|
}
|
|
186
191
|
}
|
|
192
|
+
},
|
|
193
|
+
|
|
194
|
+
"agent_overrides": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"description": "Explicit operator confirmations that authorise bypass of adherence gates. Each override is a named boolean that lands next to the disputed value in inputs.json — auditable post-hoc.",
|
|
197
|
+
"required": ["brand_selected_by_operator", "listings_status_curated"],
|
|
198
|
+
"properties": {
|
|
199
|
+
"brand_selected_by_operator": { "type": "boolean", "description": "True only when the operator told the agent which estate agent is pitching. Inferring brand from on-disk DESIGN.md files is invention." },
|
|
200
|
+
"listings_status_curated": { "type": "boolean", "description": "True only when the operator explicitly signed off on each agent_listings[].status value." }
|
|
201
|
+
}
|
|
187
202
|
}
|
|
188
203
|
}
|
|
189
204
|
}
|
|
@@ -139,7 +139,7 @@
|
|
|
139
139
|
.gauge-ends{display:flex;justify-content:space-between;font-family:var(--sans);font-weight:500;font-size:7.5pt;letter-spacing:1.5pt;text-transform:uppercase;color:var(--text-muted);margin-top:2mm}
|
|
140
140
|
|
|
141
141
|
/* --- SPARKLINE --- */
|
|
142
|
-
.spark{width:100%;height:
|
|
142
|
+
.spark{width:100%;height:48mm;display:block;background:var(--surface-card);border:1px solid var(--rule-300);border-radius:var(--radius-md)}
|
|
143
143
|
.spark .pl{fill:none;stroke:var(--teal-900);stroke-width:1.4}
|
|
144
144
|
.spark .pl-psf{fill:none;stroke:var(--gold-500);stroke-width:1.4;stroke-dasharray:2 1.5}
|
|
145
145
|
.spark .pt{fill:var(--teal-900)}
|
|
@@ -179,6 +179,7 @@
|
|
|
179
179
|
.wm.small .wm-name{font-size:20pt}
|
|
180
180
|
.wm.small .wm-sub{margin-top:.8mm;font-size:5.5pt;letter-spacing:1.8pt}
|
|
181
181
|
</style>
|
|
182
|
+
<!-- REPLACE: variant_css -->
|
|
182
183
|
</head>
|
|
183
184
|
<body>
|
|
184
185
|
|
|
@@ -193,11 +194,11 @@
|
|
|
193
194
|
<div class="cover-rule"></div>
|
|
194
195
|
<h4 style="color:var(--gold-500);margin:6mm 0 4mm"><!-- REPLACE: brand_name --> · Pre-valuation</h4>
|
|
195
196
|
<h1><!-- REPLACE: address --></h1>
|
|
196
|
-
<p class="lede">
|
|
197
|
+
<p class="lede">Market context and comparable evidence — prepared <!-- REPLACE: generated -->.</p>
|
|
197
198
|
<div style="margin-top:8mm"><span class="pc-chip"><!-- REPLACE: postcode --></span></div>
|
|
198
199
|
</div>
|
|
199
200
|
<dl class="cover-meta">
|
|
200
|
-
<div><dt>
|
|
201
|
+
<div><dt>Prepared by</dt><dd style="font-size:13pt;line-height:1.2"><!-- REPLACE: prepared_by --></dd></div>
|
|
201
202
|
<div><dt>Address</dt><dd style="font-size:11pt;line-height:1.2"><!-- REPLACE: address_short --></dd></div>
|
|
202
203
|
<div><dt>Postcode</dt><dd><!-- REPLACE: postcode --></dd></div>
|
|
203
204
|
<div><dt>Generated</dt><dd><!-- REPLACE: generated --></dd></div>
|
|
@@ -206,22 +207,22 @@
|
|
|
206
207
|
<div class="doc-foot" style="z-index:2"><span><!-- REPLACE: brand_name --> · Property Intelligence</span><span>01</span></div>
|
|
207
208
|
</section>
|
|
208
209
|
|
|
209
|
-
<!-- PAGE 2 —
|
|
210
|
+
<!-- PAGE 2 — ABOUT THE PROPERTY -->
|
|
210
211
|
<section class="page">
|
|
211
212
|
<header class="doc-head">
|
|
212
213
|
<!-- REPLACE: wordmark_dark -->
|
|
213
|
-
<div class="breadcrumb">
|
|
214
|
+
<div class="breadcrumb">About the property · <!-- REPLACE: postcode --> · <!-- REPLACE: generated --></div>
|
|
214
215
|
</header>
|
|
215
216
|
<div class="eyebrow">Subject property</div>
|
|
216
|
-
<h2 style="margin-top:3mm">
|
|
217
|
+
<h2 style="margin-top:3mm">About the property.</h2>
|
|
217
218
|
<div class="kpis">
|
|
218
219
|
<div class="kpi subject"><div class="label">Floor area</div><div class="value"><!-- REPLACE: kpi_subject_sqft --></div><div class="sub"><!-- REPLACE: kpi_subject_sqft_sub --></div></div>
|
|
219
220
|
<div class="kpi subject"><div class="label">Bedrooms</div><div class="value"><!-- REPLACE: kpi_subject_beds --></div><div class="sub">As recorded</div></div>
|
|
220
221
|
<div class="kpi subject"><div class="label">EPC rating</div><div class="value"><!-- REPLACE: kpi_subject_epc --></div><div class="sub"><!-- REPLACE: kpi_subject_epc_sub --></div></div>
|
|
221
222
|
<div class="kpi subject"><div class="label">Type</div><div class="value" style="font-size:16pt"><!-- REPLACE: kpi_subject_type --></div><div class="sub"><!-- REPLACE: kpi_subject_tenure --></div></div>
|
|
222
223
|
</div>
|
|
223
|
-
<!-- REPLACE: valuation_block -->
|
|
224
224
|
<p class="muted" style="margin-top:6mm;max-width:170mm"><!-- REPLACE: subject_narrative --></p>
|
|
225
|
+
<!-- REPLACE: notable_features -->
|
|
225
226
|
<div class="doc-foot"><span><!-- REPLACE: brand_name --> · Property Intelligence</span><span>02</span></div>
|
|
226
227
|
</section>
|
|
227
228
|
|
|
@@ -234,7 +235,7 @@
|
|
|
234
235
|
<div class="eyebrow">Market summary</div>
|
|
235
236
|
<h2 style="margin-top:3mm"><!-- REPLACE: summary_headline --></h2>
|
|
236
237
|
<div class="summary" style="max-width:170mm"><!-- REPLACE: summary_paragraphs --></div>
|
|
237
|
-
<div style="height:
|
|
238
|
+
<div style="height:3mm"></div>
|
|
238
239
|
<div class="kpis three">
|
|
239
240
|
<div class="kpi gold"><div class="label">Average asking £</div><div class="value"><!-- REPLACE: kpi_avg_asking --></div><div class="sub">Current listings · <!-- REPLACE: postcode --></div></div>
|
|
240
241
|
<div class="kpi"><div class="label">Average sold £</div><div class="value"><!-- REPLACE: kpi_avg_sold --></div><div class="sub">Completed transactions</div></div>
|
|
@@ -257,26 +258,94 @@
|
|
|
257
258
|
<p class="muted" style="margin-top:4mm"><!-- REPLACE: demand_note --></p>
|
|
258
259
|
</div>
|
|
259
260
|
</div>
|
|
260
|
-
<div class="
|
|
261
|
-
|
|
261
|
+
<div class="doc-foot"><span><!-- REPLACE: brand_name --> · Property Intelligence</span><span>03</span></div>
|
|
262
|
+
</section>
|
|
263
|
+
|
|
264
|
+
<!-- PAGE 4 — MARKET DEPTH (chart + stock mix + rental pillar) -->
|
|
265
|
+
<section class="page">
|
|
266
|
+
<header class="doc-head">
|
|
267
|
+
<!-- REPLACE: wordmark_dark -->
|
|
268
|
+
<div class="breadcrumb">Market depth · <!-- REPLACE: postcode --> · <!-- REPLACE: generated --></div>
|
|
269
|
+
</header>
|
|
270
|
+
<div class="eyebrow">Price trajectory</div>
|
|
271
|
+
<h2 style="margin-top:3mm;margin-bottom:5mm">Seven years of CM23 pricing.</h2>
|
|
272
|
+
<div class="panel" style="padding:5mm">
|
|
273
|
+
<div style="display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3mm">
|
|
274
|
+
<h4 style="margin-bottom:0">£ headline vs achieved £/sqft</h4>
|
|
275
|
+
<div class="legend" style="margin-top:0"><span><span class="sw"></span>Average £</span><span><span class="sw gold"></span>£/sqft</span></div>
|
|
276
|
+
</div>
|
|
262
277
|
<!-- REPLACE: spark_svg -->
|
|
263
|
-
<div class="legend"><span><span class="sw"></span>Average £</span><span><span class="sw gold"></span>£/sqft</span></div>
|
|
264
278
|
</div>
|
|
265
|
-
<div
|
|
279
|
+
<div style="height:8mm"></div>
|
|
280
|
+
<div class="eyebrow">Output area & rental pillar</div>
|
|
281
|
+
<div class="two-col" style="align-items:stretch;margin-top:3mm">
|
|
282
|
+
<div class="panel banded" style="display:flex;flex-direction:column">
|
|
283
|
+
<h4>Output-area stock mix</h4>
|
|
284
|
+
<div style="margin-top:3mm;display:flex;flex-direction:column;gap:2mm"><!-- REPLACE: type_dist_rows --></div>
|
|
285
|
+
<p class="muted" style="margin-top:auto;padding-top:3mm">Detached stock is the scarce type in this output area.</p>
|
|
286
|
+
</div>
|
|
287
|
+
<div class="panel" style="display:flex;flex-direction:column">
|
|
288
|
+
<h4>Rental pillar</h4>
|
|
289
|
+
<div style="margin-top:3mm"><span class="pill"><!-- REPLACE: rental_rating --></span></div>
|
|
290
|
+
<div class="kpis" style="grid-template-columns:repeat(3,1fr);margin-top:4mm;margin-bottom:0">
|
|
291
|
+
<div class="kpi"><div class="label">For rent</div><div class="value"><!-- REPLACE: rental_for_rent --></div><div class="sub">homes</div></div>
|
|
292
|
+
<div class="kpi"><div class="label">DoM</div><div class="value"><!-- REPLACE: rental_dom --></div><div class="sub">days · avg</div></div>
|
|
293
|
+
<div class="kpi"><div class="label">Take-up</div><div class="value"><!-- REPLACE: rental_turnover --></div><div class="sub">of stock · mo</div></div>
|
|
294
|
+
</div>
|
|
295
|
+
</div>
|
|
296
|
+
</div>
|
|
297
|
+
<div class="doc-foot"><span><!-- REPLACE: brand_name --> · Property Intelligence</span><span>04</span></div>
|
|
298
|
+
</section>
|
|
299
|
+
|
|
300
|
+
<!-- PAGE 5 — SELLER PREP (what gets the best price) -->
|
|
301
|
+
<section class="page">
|
|
302
|
+
<header class="doc-head">
|
|
303
|
+
<!-- REPLACE: wordmark_dark -->
|
|
304
|
+
<div class="breadcrumb">What gets the best price · <!-- REPLACE: postcode --> · <!-- REPLACE: generated --></div>
|
|
305
|
+
</header>
|
|
306
|
+
<div class="eyebrow">Quick wins for the vendor</div>
|
|
307
|
+
<h2 style="margin-top:3mm;margin-bottom:3mm">What gets the best price.</h2>
|
|
308
|
+
<p class="muted" style="max-width:170mm;margin-bottom:6mm">Photography and the first viewings carry more weight than any other moment in the campaign. These are the highest-impact prep moves — none are expensive, all are noticed by buyers.</p>
|
|
309
|
+
|
|
310
|
+
<div class="two-col" style="align-items:start;gap:8mm">
|
|
311
|
+
<div class="panel banded" style="padding:6mm">
|
|
312
|
+
<h4 style="margin-bottom:4mm">Five high-impact moves</h4>
|
|
313
|
+
<ol style="margin:0;padding-left:5mm;font-family:var(--body);font-size:10.5pt;line-height:1.55">
|
|
314
|
+
<li style="margin-bottom:3.5mm"><strong style="font-family:var(--display);font-style:italic;font-weight:500;font-size:12pt">Declutter ruthlessly.</strong> Surfaces should carry roughly half what they normally do. Buyers need space to project themselves into the home, not your life on display.</li>
|
|
315
|
+
<li style="margin-bottom:3.5mm"><strong style="font-family:var(--display);font-style:italic;font-weight:500;font-size:12pt">Deep-clean before any staging.</strong> Especially: oven, grout, windows, garden edges. Staging on top of dirt doesn't read.</li>
|
|
316
|
+
<li style="margin-bottom:3.5mm"><strong style="font-family:var(--display);font-style:italic;font-weight:500;font-size:12pt">Open up the light.</strong> Curtains fully open, lamps on even in daytime, mirrors to bounce light. Most homes photograph noticeably better with every light on.</li>
|
|
317
|
+
<li style="margin-bottom:3.5mm"><strong style="font-family:var(--display);font-style:italic;font-weight:500;font-size:12pt">Fix the small things.</strong> Dripping taps, chipped paint, loose handles, squeaky doors. Buyers register every defect — and discount for each one.</li>
|
|
318
|
+
<li><strong style="font-family:var(--display);font-style:italic;font-weight:500;font-size:12pt">Define each room.</strong> A study-in-a-bedroom shows as a study. Return rooms to their named purpose for photos and viewings.</li>
|
|
319
|
+
</ol>
|
|
320
|
+
</div>
|
|
321
|
+
<div class="panel" style="padding:6mm">
|
|
322
|
+
<h4 style="margin-bottom:4mm">Common mistakes</h4>
|
|
323
|
+
<ul style="margin:0;padding-left:5mm;font-family:var(--body);font-size:10.5pt;line-height:1.55">
|
|
324
|
+
<li style="margin-bottom:3mm">Strong air fresheners — they signal you're hiding something.</li>
|
|
325
|
+
<li style="margin-bottom:3mm">Personal photos, religious items, children's artwork — the buyer can't project on top.</li>
|
|
326
|
+
<li style="margin-bottom:3mm">A cold house in winter — no one buys a cold home enthusiastically.</li>
|
|
327
|
+
<li style="margin-bottom:3mm">Overgrown garden or untidy front — the first ten seconds are kerb appeal.</li>
|
|
328
|
+
<li>Wardrobes left untouched — buyers do open them. Reduce by half.</li>
|
|
329
|
+
</ul>
|
|
330
|
+
<p class="muted" style="margin-top:6mm;font-size:9pt;font-style:italic"><!-- REPLACE: prepared_by --> can walk you through this room-by-room ahead of photo day.</p>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
|
|
334
|
+
<div class="doc-foot"><span><!-- REPLACE: brand_name --> · Property Intelligence</span><span>05</span></div>
|
|
266
335
|
</section>
|
|
267
336
|
|
|
268
|
-
<!-- PAGE
|
|
337
|
+
<!-- PAGE 6 — COMPARABLES (FULL-WIDTH, STACKED) -->
|
|
269
338
|
<section class="page">
|
|
270
339
|
<header class="doc-head">
|
|
271
340
|
<!-- REPLACE: wordmark_dark -->
|
|
272
341
|
<div class="breadcrumb">Comparables · <!-- REPLACE: postcode --> · <!-- REPLACE: generated --></div>
|
|
273
342
|
</header>
|
|
274
343
|
<div class="eyebrow">Evidence</div>
|
|
275
|
-
<h2 style="margin-top:3mm;margin-bottom:5mm">
|
|
344
|
+
<h2 style="margin-top:3mm;margin-bottom:5mm">Comparable transactions and live listings.</h2>
|
|
276
345
|
<div class="panel banded">
|
|
277
346
|
<h4>Nearest sold transactions · Land Registry</h4>
|
|
278
347
|
<table class="cmp" style="margin-top:3mm">
|
|
279
|
-
<tr><th>Date</th><th>Address</th><th>Type</th><th style="text-align:right">Price</th></tr>
|
|
348
|
+
<tr><th>Date</th><th>Address</th><th>Type</th><th>Beds</th><th style="text-align:right">Price</th></tr>
|
|
280
349
|
<!-- REPLACE: sold_comps_rows -->
|
|
281
350
|
</table>
|
|
282
351
|
</div>
|
|
@@ -286,10 +355,10 @@
|
|
|
286
355
|
<!-- REPLACE: asking_comps_tiles -->
|
|
287
356
|
</div>
|
|
288
357
|
</div>
|
|
289
|
-
<div class="doc-foot"><span><!-- REPLACE: brand_name --> · Property Intelligence</span><span>
|
|
358
|
+
<div class="doc-foot"><span><!-- REPLACE: brand_name --> · Property Intelligence</span><span>06</span></div>
|
|
290
359
|
</section>
|
|
291
360
|
|
|
292
|
-
<!-- PAGE
|
|
361
|
+
<!-- PAGE 7 — AGENT LISTINGS + SOURCES -->
|
|
293
362
|
<section class="page">
|
|
294
363
|
<header class="doc-head">
|
|
295
364
|
<!-- REPLACE: wordmark_dark -->
|
|
@@ -302,10 +371,10 @@
|
|
|
302
371
|
<div class="sources">
|
|
303
372
|
<h4>Sources & methodology</h4>
|
|
304
373
|
<p><strong>Sources.</strong> PropertyData (asking, sold, demand, growth, crime, flood, council tax, property-type mix). HM Land Registry (sold transactions). Home Office (recorded crime). Environment Agency (flood risk). Valuation Office Agency (council-tax bands). Department for Levelling Up, Housing & Communities — EPC register (subject floor area & energy rating).</p>
|
|
305
|
-
<p><strong>Method.</strong> Twelve PropertyData endpoints called on the postcode derived from the address, plus
|
|
374
|
+
<p><strong>Method.</strong> Twelve PropertyData endpoints called on the postcode derived from the address, plus the EPC certificate fields for the subject. This pack does <em>not</em> quote a numeric valuation — the human agent values the property in person, drawing on the Land Registry sold £/sqft band, the live asking £/sqft, and the comparables on this page. Live and recent listings shown on the next page were picked by <!-- REPLACE: brand_name -->.</p>
|
|
306
375
|
<p><strong>Accuracy.</strong> Property data can change rapidly. Figures are estimates — obtain independent professional advice for specific decisions. This pack is not financial or investment advice.</p>
|
|
307
376
|
</div>
|
|
308
|
-
<div class="doc-foot"><span><!-- REPLACE: brand_name --> · Generated <!-- REPLACE: generated --> · <!-- REPLACE: postcode --></span><span>
|
|
377
|
+
<div class="doc-foot"><span><!-- REPLACE: brand_name --> · Generated <!-- REPLACE: generated --> · <!-- REPLACE: postcode --></span><span>07</span></div>
|
|
309
378
|
</section>
|
|
310
379
|
|
|
311
380
|
</body>
|
|
@@ -4,48 +4,70 @@ description: "PropertyData UK market analytics — postcode-keyed valuation, ask
|
|
|
4
4
|
tools:
|
|
5
5
|
- name: property-data-key-register
|
|
6
6
|
publicAllowlist: false
|
|
7
|
+
adminAllowlist: false
|
|
7
8
|
- name: property-data-key-deregister
|
|
8
9
|
publicAllowlist: false
|
|
10
|
+
adminAllowlist: false
|
|
9
11
|
- name: property-data-key-list
|
|
10
12
|
publicAllowlist: false
|
|
13
|
+
adminAllowlist: false
|
|
11
14
|
- name: property-data-valuation-sale
|
|
12
15
|
publicAllowlist: false
|
|
16
|
+
adminAllowlist: false
|
|
13
17
|
- name: property-data-valuation-rent
|
|
14
18
|
publicAllowlist: false
|
|
19
|
+
adminAllowlist: false
|
|
15
20
|
- name: property-data-prices
|
|
16
21
|
publicAllowlist: false
|
|
22
|
+
adminAllowlist: false
|
|
17
23
|
- name: property-data-prices-rent
|
|
18
24
|
publicAllowlist: false
|
|
25
|
+
adminAllowlist: false
|
|
19
26
|
- name: property-data-sold-prices
|
|
20
27
|
publicAllowlist: false
|
|
28
|
+
adminAllowlist: false
|
|
21
29
|
- name: property-data-demand
|
|
22
30
|
publicAllowlist: false
|
|
31
|
+
adminAllowlist: false
|
|
23
32
|
- name: property-data-yields
|
|
24
33
|
publicAllowlist: false
|
|
34
|
+
adminAllowlist: false
|
|
25
35
|
- name: property-data-growth
|
|
26
36
|
publicAllowlist: false
|
|
37
|
+
adminAllowlist: false
|
|
27
38
|
- name: property-data-national-hpi
|
|
28
39
|
publicAllowlist: false
|
|
40
|
+
adminAllowlist: false
|
|
29
41
|
- name: property-data-prices-per-sqf
|
|
30
42
|
publicAllowlist: false
|
|
43
|
+
adminAllowlist: false
|
|
31
44
|
- name: property-data-sold-prices-per-sqf
|
|
32
45
|
publicAllowlist: false
|
|
46
|
+
adminAllowlist: false
|
|
33
47
|
- name: property-data-crime
|
|
34
48
|
publicAllowlist: false
|
|
49
|
+
adminAllowlist: false
|
|
35
50
|
- name: property-data-flood-risk
|
|
36
51
|
publicAllowlist: false
|
|
52
|
+
adminAllowlist: false
|
|
37
53
|
- name: property-data-council-tax
|
|
38
54
|
publicAllowlist: false
|
|
55
|
+
adminAllowlist: false
|
|
39
56
|
- name: property-data-planning-applications
|
|
40
57
|
publicAllowlist: false
|
|
58
|
+
adminAllowlist: false
|
|
41
59
|
- name: property-data-address-match-uprn
|
|
42
60
|
publicAllowlist: false
|
|
61
|
+
adminAllowlist: false
|
|
43
62
|
- name: property-data-growth-psf
|
|
44
63
|
publicAllowlist: false
|
|
64
|
+
adminAllowlist: false
|
|
45
65
|
- name: property-data-demand-rent
|
|
46
66
|
publicAllowlist: false
|
|
67
|
+
adminAllowlist: false
|
|
47
68
|
- name: property-data-property-types
|
|
48
69
|
publicAllowlist: false
|
|
70
|
+
adminAllowlist: false
|
|
49
71
|
skills:
|
|
50
72
|
- skills/property-data/SKILL.md
|
|
51
73
|
always: false
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
## 1. Purpose
|
|
11
11
|
|
|
12
|
-
Compress what is normally a half-day of admin — terms of business signed,
|
|
12
|
+
Compress what is normally a half-day of admin — terms of business signed, photographer booked, floorplan commissioned, listing copy written, particulars produced, portal launches scheduled — into a guided sequence the agent reviews and approves in fifteen minutes.
|
|
13
13
|
|
|
14
14
|
This workflow is the second-highest-value moment in the agent's week (after winning the instruction itself). Done well, the property is on the portals within 72 hours of the appointment rather than 7–10 days. That speed compounds: faster on-market means more viewings in the first weekend, which is when offers happen.
|
|
15
15
|
|
|
@@ -31,8 +31,6 @@ A sequenced checklist where each item is either auto-prepared (the workflow does
|
|
|
31
31
|
|
|
32
32
|
**Terms of business.** Drafted from agency template, populated with property, vendor, fee structure, sole/multi agency, marketing period, withdrawal fee. Staged in DocuSign with vendor as recipient. *Gate: approve before send.*
|
|
33
33
|
|
|
34
|
-
**EPC.** If the property does not have a current EPC (checked via EPC register), an order is staged with the agent's preferred supplier (from profile). If a current EPC exists, the workflow records the expiry date and moves on. *Gate: approve order before send if no current EPC.*
|
|
35
|
-
|
|
36
34
|
**Photography.** A booking request is drafted to the agent's preferred photographer (from profile), with the property address, vendor contact, and the agent's standard brief. *Gate: approve before send.*
|
|
37
35
|
|
|
38
36
|
**Floorplan.** As photography. Combined into a single booking request if the same supplier handles both. *Gate: approve before send.*
|
|
@@ -50,7 +48,6 @@ A sequenced checklist where each item is either auto-prepared (the workflow does
|
|
|
50
48
|
| Skill | Purpose |
|
|
51
49
|
|---|---|
|
|
52
50
|
| `terms-of-business-drafter` | Populates the agency's template with deal specifics |
|
|
53
|
-
| `epc-checker` | Looks up the EPC register, computes order need |
|
|
54
51
|
| `supplier-booker` | Drafts and stages booking requests to photographer, EPC supplier, floorplan supplier |
|
|
55
52
|
| `listing-copy-writer` | Generates portal-optimised property descriptions |
|
|
56
53
|
| `particulars-builder` | Composes the PDF brochure |
|
|
@@ -60,7 +57,7 @@ A sequenced checklist where each item is either auto-prepared (the workflow does
|
|
|
60
57
|
|
|
61
58
|
## 5. Connectors read and written
|
|
62
59
|
|
|
63
|
-
Read: CRM,
|
|
60
|
+
Read: CRM, calendar, profile.
|
|
64
61
|
Write: DocuSign (terms), email (vendor welcome, supplier bookings), portal upload APIs (Rightmove, Zoopla, OnTheMarket — staged only).
|
|
65
62
|
|
|
66
63
|
## 6. Approval gates
|
|
@@ -68,13 +65,12 @@ Write: DocuSign (terms), email (vendor welcome, supplier bookings), portal uploa
|
|
|
68
65
|
This workflow has the most write actions of any in the set. Each one is individually gated:
|
|
69
66
|
|
|
70
67
|
1. Terms of business send
|
|
71
|
-
2.
|
|
72
|
-
3.
|
|
73
|
-
4.
|
|
74
|
-
5.
|
|
75
|
-
6.
|
|
76
|
-
7.
|
|
77
|
-
8. Vendor welcome email send
|
|
68
|
+
2. Photographer booking
|
|
69
|
+
3. Floorplan booking
|
|
70
|
+
4. Listing copy use (final version before portal upload)
|
|
71
|
+
5. Particulars distribution
|
|
72
|
+
6. Portal launch schedule confirmation
|
|
73
|
+
7. Vendor welcome email send
|
|
78
74
|
|
|
79
75
|
The workflow presents these in sequence and respects the operator's pace. The agent can approve them all in one go ("ship everything") or one at a time, or pause the workflow and return later. State is preserved.
|
|
80
76
|
|
|
@@ -3582,8 +3582,10 @@ import {
|
|
|
3582
3582
|
readdirSync as readdirSync2,
|
|
3583
3583
|
existsSync as existsSync5,
|
|
3584
3584
|
statSync as statSync2,
|
|
3585
|
-
cpSync
|
|
3585
|
+
cpSync,
|
|
3586
|
+
rmSync
|
|
3586
3587
|
} from "fs";
|
|
3588
|
+
import { createHash as createHash2 } from "crypto";
|
|
3587
3589
|
function isMissingPluginDir(pluginDir) {
|
|
3588
3590
|
const pluginRoot = resolve4(PLATFORM_ROOT2, "plugins", pluginDir);
|
|
3589
3591
|
if (existsSync5(resolve4(pluginRoot, "PLUGIN.md"))) return false;
|
|
@@ -3642,49 +3644,52 @@ function walkPremiumBundles() {
|
|
|
3642
3644
|
}
|
|
3643
3645
|
return result;
|
|
3644
3646
|
}
|
|
3647
|
+
function reapDuplicateFlatPremiumSubs(bundles, stagingRoot, pluginsDir) {
|
|
3648
|
+
const TAG = "[premium-auto-deliver]";
|
|
3649
|
+
for (const { bundle, subs } of bundles) {
|
|
3650
|
+
for (const sub of subs) {
|
|
3651
|
+
const premiumManifest = resolve4(stagingRoot, bundle, "plugins", sub, "PLUGIN.md");
|
|
3652
|
+
const flatDir = resolve4(pluginsDir, sub);
|
|
3653
|
+
const flatManifest = resolve4(flatDir, "PLUGIN.md");
|
|
3654
|
+
if (!existsSync5(premiumManifest) || !existsSync5(flatManifest)) continue;
|
|
3655
|
+
const premiumSha = createHash2("sha256").update(readFileSync5(premiumManifest)).digest("hex");
|
|
3656
|
+
const flatSha = createHash2("sha256").update(readFileSync5(flatManifest)).digest("hex");
|
|
3657
|
+
if (premiumSha === flatSha) {
|
|
3658
|
+
try {
|
|
3659
|
+
rmSync(flatDir, { recursive: true });
|
|
3660
|
+
console.log(`${TAG} reaped sub=${sub} reason=duplicate-of-premium-tree`);
|
|
3661
|
+
} catch (err) {
|
|
3662
|
+
console.log(`${TAG} reap-failed sub=${sub} err=${err instanceof Error ? err.message : String(err)}`);
|
|
3663
|
+
}
|
|
3664
|
+
} else {
|
|
3665
|
+
console.log(`${TAG} flat-copy-divergent sub=${sub} action=skip-keep`);
|
|
3666
|
+
}
|
|
3667
|
+
}
|
|
3668
|
+
}
|
|
3669
|
+
}
|
|
3645
3670
|
function autoDeliverPremiumPlugins() {
|
|
3646
3671
|
const TAG = "[premium-auto-deliver]";
|
|
3647
3672
|
const bundles = walkPremiumBundles();
|
|
3648
3673
|
if (bundles.length === 0) return;
|
|
3649
3674
|
const stagingRoot = resolve4(PLATFORM_ROOT2, "../premium-plugins");
|
|
3650
3675
|
const pluginsDir = resolve4(PLATFORM_ROOT2, "plugins");
|
|
3651
|
-
|
|
3676
|
+
reapDuplicateFlatPremiumSubs(bundles, stagingRoot, pluginsDir);
|
|
3677
|
+
for (const { bundle, subs: _subs } of bundles) {
|
|
3652
3678
|
const stagingDir = resolve4(stagingRoot, bundle);
|
|
3653
3679
|
const bundlePath = join3(stagingDir, "BUNDLE.md");
|
|
3654
3680
|
const isBundle = existsSync5(bundlePath);
|
|
3655
3681
|
if (isBundle) {
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
skipped++;
|
|
3662
|
-
continue;
|
|
3663
|
-
}
|
|
3664
|
-
const source = resolve4(stagingDir, "plugins", sub);
|
|
3665
|
-
if (!existsSync5(source)) {
|
|
3666
|
-
console.log(`${TAG} ${bundle}/${sub}: source missing in staging, skipping`);
|
|
3667
|
-
continue;
|
|
3668
|
-
}
|
|
3669
|
-
try {
|
|
3670
|
-
cpSync(source, target, { recursive: true });
|
|
3671
|
-
delivered++;
|
|
3672
|
-
} catch (err) {
|
|
3673
|
-
console.log(`${TAG} ${bundle}/${sub}: copy failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
3674
|
-
}
|
|
3675
|
-
}
|
|
3676
|
-
console.log(`${TAG} ${bundle} (bundle): ${delivered} delivered, ${skipped} already present`);
|
|
3682
|
+
continue;
|
|
3683
|
+
}
|
|
3684
|
+
const target = resolve4(pluginsDir, bundle);
|
|
3685
|
+
if (existsSync5(resolve4(target, "PLUGIN.md"))) {
|
|
3686
|
+
console.log(`${TAG} ${bundle}: already present, skipping`);
|
|
3677
3687
|
} else {
|
|
3678
|
-
|
|
3679
|
-
|
|
3680
|
-
console.log(`${TAG} ${bundle}:
|
|
3681
|
-
}
|
|
3682
|
-
|
|
3683
|
-
cpSync(stagingDir, target, { recursive: true });
|
|
3684
|
-
console.log(`${TAG} ${bundle} (standalone): delivered`);
|
|
3685
|
-
} catch (err) {
|
|
3686
|
-
console.log(`${TAG} ${bundle}: copy failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
3687
|
-
}
|
|
3688
|
+
try {
|
|
3689
|
+
cpSync(stagingDir, target, { recursive: true });
|
|
3690
|
+
console.log(`${TAG} ${bundle} (standalone): delivered`);
|
|
3691
|
+
} catch (err) {
|
|
3692
|
+
console.log(`${TAG} ${bundle}: copy failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
3688
3693
|
}
|
|
3689
3694
|
}
|
|
3690
3695
|
}
|
|
@@ -3693,13 +3698,17 @@ function reconcileEnabledPlugins(accountDir, config) {
|
|
|
3693
3698
|
const TAG = "[premium-auto-deliver]";
|
|
3694
3699
|
if (!accountDir || !config) return;
|
|
3695
3700
|
const bundles = walkPremiumBundles();
|
|
3701
|
+
const stagingRoot = resolve4(PLATFORM_ROOT2, "../premium-plugins");
|
|
3696
3702
|
const pluginsDir = resolve4(PLATFORM_ROOT2, "plugins");
|
|
3697
3703
|
const bundleNames = [];
|
|
3698
3704
|
const allSubs = [];
|
|
3699
3705
|
for (const { bundle, subs } of bundles) {
|
|
3700
3706
|
bundleNames.push(bundle);
|
|
3707
|
+
const bundlePath = join3(stagingRoot, bundle, "BUNDLE.md");
|
|
3708
|
+
const isBundle = existsSync5(bundlePath);
|
|
3701
3709
|
for (const sub of subs) {
|
|
3702
|
-
|
|
3710
|
+
const subManifest = isBundle ? resolve4(stagingRoot, bundle, "plugins", sub, "PLUGIN.md") : resolve4(pluginsDir, sub, "PLUGIN.md");
|
|
3711
|
+
if (!existsSync5(subManifest)) continue;
|
|
3703
3712
|
allSubs.push(sub);
|
|
3704
3713
|
}
|
|
3705
3714
|
}
|