@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,172 +0,0 @@
|
|
|
1
|
-
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
|
|
2
|
-
import { resolve, dirname } from "node:path";
|
|
3
|
-
import { homedir } from "node:os";
|
|
4
|
-
import { getSession } from "./neo4j.js";
|
|
5
|
-
import { encrypt, decrypt } from "./crypto.js";
|
|
6
|
-
import { encryptWith, decryptWith } from "./file-crypto.js";
|
|
7
|
-
|
|
8
|
-
// Storage abstraction so the same MCP body runs against Neo4j (platform mode)
|
|
9
|
-
// or an on-disk encrypted file (standalone mode, e.g. spawned by Claude Code
|
|
10
|
-
// from ~/.claude/). Selected by the EPC_STANDALONE env flag at boot. Mirrors
|
|
11
|
-
// the property-data key-store with one node per account: EPC keys are
|
|
12
|
-
// account-scoped and the gov.uk EPC API has no team concept.
|
|
13
|
-
|
|
14
|
-
export interface StoredKey {
|
|
15
|
-
apiKey: string;
|
|
16
|
-
createdAt: string;
|
|
17
|
-
updatedAt: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export interface KeyStore {
|
|
21
|
-
readonly backendName: string;
|
|
22
|
-
readonly backendPath: string;
|
|
23
|
-
load(accountId: string): Promise<StoredKey | null>;
|
|
24
|
-
save(accountId: string, apiKey: string): Promise<void>;
|
|
25
|
-
delete(accountId: string): Promise<boolean>;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
class Neo4jKeyStore implements KeyStore {
|
|
29
|
-
readonly backendName = "neo4j";
|
|
30
|
-
readonly backendPath = process.env.NEO4J_URI ?? "<unset>";
|
|
31
|
-
|
|
32
|
-
async load(accountId: string): Promise<StoredKey | null> {
|
|
33
|
-
const session = getSession();
|
|
34
|
-
try {
|
|
35
|
-
const result = await session.run(
|
|
36
|
-
`MATCH (k:EpcApiKey {accountId: $accountId})
|
|
37
|
-
RETURN k.encryptedKey AS encryptedKey,
|
|
38
|
-
k.createdAt AS createdAt,
|
|
39
|
-
k.updatedAt AS updatedAt`,
|
|
40
|
-
{ accountId },
|
|
41
|
-
);
|
|
42
|
-
if (result.records.length === 0) return null;
|
|
43
|
-
const r = result.records[0];
|
|
44
|
-
return {
|
|
45
|
-
apiKey: decrypt(r.get("encryptedKey")),
|
|
46
|
-
createdAt: r.get("createdAt") ?? "",
|
|
47
|
-
updatedAt: r.get("updatedAt") ?? "",
|
|
48
|
-
};
|
|
49
|
-
} finally {
|
|
50
|
-
await session.close();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
async save(accountId: string, apiKey: string): Promise<void> {
|
|
55
|
-
const encryptedKey = encrypt(apiKey);
|
|
56
|
-
const now = new Date().toISOString();
|
|
57
|
-
const session = getSession();
|
|
58
|
-
try {
|
|
59
|
-
await session.run(
|
|
60
|
-
`CREATE INDEX epc_api_key_account IF NOT EXISTS
|
|
61
|
-
FOR (k:EpcApiKey) ON (k.accountId)`,
|
|
62
|
-
{},
|
|
63
|
-
);
|
|
64
|
-
await session.run(
|
|
65
|
-
`MERGE (k:EpcApiKey {accountId: $accountId})
|
|
66
|
-
ON CREATE SET k.encryptedKey = $encryptedKey, k.createdAt = $now, k.updatedAt = $now
|
|
67
|
-
ON MATCH SET k.encryptedKey = $encryptedKey, k.updatedAt = $now`,
|
|
68
|
-
{ accountId, encryptedKey, now },
|
|
69
|
-
);
|
|
70
|
-
} finally {
|
|
71
|
-
await session.close();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
async delete(accountId: string): Promise<boolean> {
|
|
76
|
-
const session = getSession();
|
|
77
|
-
try {
|
|
78
|
-
const result = await session.run(
|
|
79
|
-
`MATCH (k:EpcApiKey {accountId: $accountId})
|
|
80
|
-
DELETE k
|
|
81
|
-
RETURN count(k) AS deleted`,
|
|
82
|
-
{ accountId },
|
|
83
|
-
);
|
|
84
|
-
const deleted = result.records[0]?.get("deleted")?.toNumber?.() ?? 0;
|
|
85
|
-
return deleted > 0;
|
|
86
|
-
} finally {
|
|
87
|
-
await session.close();
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
interface FileEnvelope {
|
|
93
|
-
[accountId: string]: { encryptedKey: string; createdAt: string; updatedAt: string };
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
const LABEL = "epc";
|
|
97
|
-
|
|
98
|
-
class FileKeyStore implements KeyStore {
|
|
99
|
-
readonly backendName = "file";
|
|
100
|
-
readonly backendPath: string;
|
|
101
|
-
private readonly storePath: string;
|
|
102
|
-
private readonly keyFilePath: string;
|
|
103
|
-
|
|
104
|
-
constructor() {
|
|
105
|
-
const home = homedir();
|
|
106
|
-
this.storePath = resolve(home, ".claude/.realagent-epc-key.enc");
|
|
107
|
-
this.keyFilePath = resolve(home, ".claude/.realagent-epc-encryption-key");
|
|
108
|
-
this.backendPath = this.storePath;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
private ensureDir(): void {
|
|
112
|
-
mkdirSync(dirname(this.storePath), { recursive: true });
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
private readAll(): FileEnvelope {
|
|
116
|
-
if (!existsSync(this.storePath)) return {};
|
|
117
|
-
const blob = readFileSync(this.storePath, "utf-8").trim();
|
|
118
|
-
if (!blob) return {};
|
|
119
|
-
const json = decryptWith(blob, this.keyFilePath, LABEL);
|
|
120
|
-
return JSON.parse(json) as FileEnvelope;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
private writeAll(env: FileEnvelope): void {
|
|
124
|
-
this.ensureDir();
|
|
125
|
-
const blob = encryptWith(JSON.stringify(env), this.keyFilePath, LABEL);
|
|
126
|
-
writeFileSync(this.storePath, blob, { mode: 0o600 });
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
async load(accountId: string): Promise<StoredKey | null> {
|
|
130
|
-
const env = this.readAll();
|
|
131
|
-
const entry = env[accountId];
|
|
132
|
-
if (!entry) return null;
|
|
133
|
-
return {
|
|
134
|
-
apiKey: decryptWith(entry.encryptedKey, this.keyFilePath, LABEL),
|
|
135
|
-
createdAt: entry.createdAt,
|
|
136
|
-
updatedAt: entry.updatedAt,
|
|
137
|
-
};
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
async save(accountId: string, apiKey: string): Promise<void> {
|
|
141
|
-
const env = this.readAll();
|
|
142
|
-
const now = new Date().toISOString();
|
|
143
|
-
const encryptedKey = encryptWith(apiKey, this.keyFilePath, LABEL);
|
|
144
|
-
const prev = env[accountId];
|
|
145
|
-
env[accountId] = {
|
|
146
|
-
encryptedKey,
|
|
147
|
-
createdAt: prev?.createdAt ?? now,
|
|
148
|
-
updatedAt: now,
|
|
149
|
-
};
|
|
150
|
-
this.writeAll(env);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
async delete(accountId: string): Promise<boolean> {
|
|
154
|
-
const env = this.readAll();
|
|
155
|
-
if (!(accountId in env)) return false;
|
|
156
|
-
delete env[accountId];
|
|
157
|
-
this.writeAll(env);
|
|
158
|
-
return true;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
let cached: KeyStore | null = null;
|
|
163
|
-
|
|
164
|
-
export function selectKeyStore(): KeyStore {
|
|
165
|
-
if (cached) return cached;
|
|
166
|
-
cached = process.env.EPC_STANDALONE === "1" ? new FileKeyStore() : new Neo4jKeyStore();
|
|
167
|
-
return cached;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
export function _resetKeyStoreForTests(): void {
|
|
171
|
-
cached = null;
|
|
172
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import neo4j, { Driver, Session } from "neo4j-driver";
|
|
2
|
-
import { readFileSync } from "node:fs";
|
|
3
|
-
import { resolve } from "node:path";
|
|
4
|
-
|
|
5
|
-
let driver: Driver | null = null;
|
|
6
|
-
|
|
7
|
-
function readPassword(): string {
|
|
8
|
-
if (process.env.NEO4J_PASSWORD) return process.env.NEO4J_PASSWORD;
|
|
9
|
-
const passwordFile = resolve(
|
|
10
|
-
process.env.PLATFORM_ROOT ?? resolve(import.meta.dirname, "../../../.."),
|
|
11
|
-
"config/.neo4j-password",
|
|
12
|
-
);
|
|
13
|
-
try {
|
|
14
|
-
return readFileSync(passwordFile, "utf-8").trim();
|
|
15
|
-
} catch {
|
|
16
|
-
throw new Error(
|
|
17
|
-
`Neo4j password not found. Expected at ${passwordFile} or in NEO4J_PASSWORD env var.`,
|
|
18
|
-
);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export function getDriver(): Driver {
|
|
23
|
-
if (!driver) {
|
|
24
|
-
const uri = process.env.NEO4J_URI;
|
|
25
|
-
if (!uri) {
|
|
26
|
-
throw new Error(
|
|
27
|
-
"[epc] NEO4J_URI unset — refusing to default to bolt://localhost:7687",
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
const user = process.env.NEO4J_USER ?? "neo4j";
|
|
31
|
-
const password = readPassword();
|
|
32
|
-
console.error(`[epc] resolved neo4j_uri=${uri}`);
|
|
33
|
-
driver = neo4j.driver(uri, neo4j.auth.basic(user, password));
|
|
34
|
-
}
|
|
35
|
-
return driver;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function getSession(): Session {
|
|
39
|
-
return getDriver().session();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export async function closeDriver(): Promise<void> {
|
|
43
|
-
if (driver) {
|
|
44
|
-
await driver.close();
|
|
45
|
-
driver = null;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { selectKeyStore } from "../lib/key-store.js";
|
|
2
|
-
|
|
3
|
-
export async function keyDeregister(params: { accountId: string }): Promise<void> {
|
|
4
|
-
const deleted = await selectKeyStore().delete(params.accountId);
|
|
5
|
-
if (!deleted) {
|
|
6
|
-
throw new Error("No EPC API key is registered for this account.");
|
|
7
|
-
}
|
|
8
|
-
console.error(`[epc] key-op op=deregister account=${params.accountId}`);
|
|
9
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { loadAccountKey } from "../lib/epc-api.js";
|
|
2
|
-
|
|
3
|
-
export async function keyList(params: { accountId: string }): Promise<string> {
|
|
4
|
-
const key = await loadAccountKey(params.accountId);
|
|
5
|
-
console.error(`[epc] key-op op=list account=${params.accountId}`);
|
|
6
|
-
if (!key) {
|
|
7
|
-
return "No EPC API key registered. Use epc-key-register to add one.";
|
|
8
|
-
}
|
|
9
|
-
return `EPC API key registered (created: ${key.createdAt}, updated: ${key.updatedAt}). Key value is encrypted and cannot be retrieved.`;
|
|
10
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { selectKeyStore } from "../lib/key-store.js";
|
|
2
|
-
import { BASE_URL, REQUEST_TIMEOUT_MS, EpcError } from "../lib/epc-api.js";
|
|
3
|
-
|
|
4
|
-
// Probe the EPC register with the supplied credential against
|
|
5
|
-
// /domestic/search constrained to a tiny page so we do not pull a real
|
|
6
|
-
// payload. A valid credential returns HTTP 200 (rows may be empty for a
|
|
7
|
-
// nonsense postcode, which is fine — authentication is what we test).
|
|
8
|
-
// An invalid credential returns HTTP 401 Unauthorized.
|
|
9
|
-
|
|
10
|
-
async function validateApiKey(credential: string): Promise<void> {
|
|
11
|
-
const url = `${BASE_URL}/domestic/search?postcode=SW1A1AA&size=1`;
|
|
12
|
-
const response = await fetch(url, {
|
|
13
|
-
headers: {
|
|
14
|
-
Accept: "application/json",
|
|
15
|
-
Authorization: `Basic ${Buffer.from(credential, "utf-8").toString("base64")}`,
|
|
16
|
-
},
|
|
17
|
-
signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
|
|
18
|
-
});
|
|
19
|
-
if (response.status === 401 || response.status === 403) {
|
|
20
|
-
throw new Error(
|
|
21
|
-
`EPC register rejected the credential (HTTP ${response.status}). Expected format is email:api-key.`,
|
|
22
|
-
);
|
|
23
|
-
}
|
|
24
|
-
// 200, 404 (no rows for that postcode), and 200-with-rows all prove the
|
|
25
|
-
// credential was accepted. Anything else surfaces as the upstream code.
|
|
26
|
-
if (response.status === 200 || response.status === 404) return;
|
|
27
|
-
const body = await response.text().catch(() => "");
|
|
28
|
-
throw new EpcError(response.status, "domestic/search", body.slice(0, 200));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export async function keyRegister(params: {
|
|
32
|
-
apiKey: string;
|
|
33
|
-
accountId: string;
|
|
34
|
-
}): Promise<void> {
|
|
35
|
-
const { apiKey, accountId } = params;
|
|
36
|
-
if (!apiKey.includes(":")) {
|
|
37
|
-
throw new Error(
|
|
38
|
-
"EPC credential must be in the form email:api-key (email of the account that generated the key, then a colon, then the API key).",
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
await validateApiKey(apiKey);
|
|
42
|
-
await selectKeyStore().save(accountId, apiKey);
|
|
43
|
-
console.error(`[epc] key-op op=register account=${accountId}`);
|
|
44
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { epcSearch, groupAndPickMostRecent, EpcMatch } from "../lib/epc-api.js";
|
|
2
|
-
|
|
3
|
-
interface LookupResult {
|
|
4
|
-
status: "ok";
|
|
5
|
-
matches: EpcMatch[];
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export async function epcLookupByAddress(args: {
|
|
9
|
-
accountId: string;
|
|
10
|
-
address: string;
|
|
11
|
-
postcode?: string;
|
|
12
|
-
}): Promise<string> {
|
|
13
|
-
const { accountId, address, postcode } = args;
|
|
14
|
-
const { rows } = await epcSearch({
|
|
15
|
-
toolName: "epc-lookup-by-address",
|
|
16
|
-
accountId,
|
|
17
|
-
identifier: address,
|
|
18
|
-
params: { address, postcode, size: 25 },
|
|
19
|
-
});
|
|
20
|
-
const result: LookupResult = {
|
|
21
|
-
status: "ok",
|
|
22
|
-
matches: groupAndPickMostRecent(rows),
|
|
23
|
-
};
|
|
24
|
-
return JSON.stringify(result, null, 2);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export async function epcLookupByUprn(args: {
|
|
28
|
-
accountId: string;
|
|
29
|
-
uprn: string;
|
|
30
|
-
}): Promise<string> {
|
|
31
|
-
const { accountId, uprn } = args;
|
|
32
|
-
const { rows } = await epcSearch({
|
|
33
|
-
toolName: "epc-lookup-by-uprn",
|
|
34
|
-
accountId,
|
|
35
|
-
identifier: uprn,
|
|
36
|
-
params: { uprn, size: 25 },
|
|
37
|
-
});
|
|
38
|
-
const result: LookupResult = {
|
|
39
|
-
status: "ok",
|
|
40
|
-
matches: groupAndPickMostRecent(rows),
|
|
41
|
-
};
|
|
42
|
-
return JSON.stringify(result, null, 2);
|
|
43
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "Node16",
|
|
5
|
-
"moduleResolution": "Node16",
|
|
6
|
-
"lib": ["ES2022"],
|
|
7
|
-
"outDir": "dist",
|
|
8
|
-
"rootDir": "src",
|
|
9
|
-
"strict": true,
|
|
10
|
-
"esModuleInterop": true,
|
|
11
|
-
"skipLibCheck": true,
|
|
12
|
-
"forceConsistentCasingInFileNames": true,
|
|
13
|
-
"resolveJsonModule": true,
|
|
14
|
-
"declaration": true,
|
|
15
|
-
"declarationMap": true,
|
|
16
|
-
"sourceMap": true
|
|
17
|
-
},
|
|
18
|
-
"include": ["src"],
|
|
19
|
-
"exclude": ["src/**/__tests__/**", "src/**/*.test.ts"]
|
|
20
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "real-agent-business",
|
|
3
|
-
"description": "Monthly close, commission, payments, and business operations for UK residential estate agencies. Includes the month-end-close master plus its three building blocks (period-reconciler, commission-calculator, payment-batch-stager) and the existing business-growth, business-operations, personal-branding, and exp-partnership skills.",
|
|
4
|
-
"version": "0.1.0",
|
|
5
|
-
"author": {
|
|
6
|
-
"name": "Rubytech LLC"
|
|
7
|
-
}
|
|
8
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: real-agent-business
|
|
3
|
-
description: "Monthly close, commission, payments, and business operations for UK residential estate agencies. Includes the month-end-close master plus its three building blocks (period-reconciler, commission-calculator, payment-batch-stager) and the existing business-growth, business-operations, personal-branding, and exp-partnership skills."
|
|
4
|
-
tools: []
|
|
5
|
-
skills:
|
|
6
|
-
- skills/month-end-close/SKILL.md
|
|
7
|
-
- skills/period-reconciler/SKILL.md
|
|
8
|
-
- skills/commission-calculator/SKILL.md
|
|
9
|
-
- skills/payment-batch-stager/SKILL.md
|
|
10
|
-
- skills/business-growth/SKILL.md
|
|
11
|
-
- skills/business-operations/SKILL.md
|
|
12
|
-
- skills/personal-branding/SKILL.md
|
|
13
|
-
- skills/exp-partnership/SKILL.md
|
|
14
|
-
profileKeys:
|
|
15
|
-
- realagent.accounting.chart_of_accounts_map
|
|
16
|
-
- realagent.accounting.platform
|
|
17
|
-
- realagent.bank.batch_format
|
|
18
|
-
- realagent.bank.preferred_pay_date_offset_days
|
|
19
|
-
- realagent.close.flag_threshold_fee_gbp
|
|
20
|
-
- realagent.close.match_tolerance_days
|
|
21
|
-
- realagent.close.match_tolerance_gbp
|
|
22
|
-
- realagent.close.narrative_voice_samples
|
|
23
|
-
- realagent.close.pack_recipients
|
|
24
|
-
- realagent.close.writeoff_threshold_gbp
|
|
25
|
-
- realagent.commission.adjustments
|
|
26
|
-
- realagent.commission.franchise_levy_pct
|
|
27
|
-
- realagent.commission.splits_table_path
|
|
28
|
-
- realagent.payees
|
|
29
|
-
always: false
|
|
30
|
-
metadata: {"platform":{"optional":true,"embed":["admin"]}}
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
# Real Agent, Month-End and Business Operations
|
|
34
|
-
|
|
35
|
-
Eight skills covering month-end close and commission (the master workflow plus three building blocks) and the existing business operations skills.
|
|
36
|
-
|
|
37
|
-
## When to Activate
|
|
38
|
-
|
|
39
|
-
The user is asking for the monthly close, the commission run, reconciliation against the accountant, or any of the existing business-growth or operations topics.
|
|
40
|
-
|
|
41
|
-
## Skills
|
|
42
|
-
|
|
43
|
-
| Skill | Owner specialist | Purpose |
|
|
44
|
-
|-------|------------------|---------|
|
|
45
|
-
| `month-end-close` | compliance | Master workflow: monthly close, commission, accountant pack |
|
|
46
|
-
| `period-reconciler` | compliance | Matches completions to fees received |
|
|
47
|
-
| `commission-calculator` | compliance | Computes per-agent commission with splits |
|
|
48
|
-
| `payment-batch-stager` | compliance | Stages payment batch for the bank, never initiates a transfer |
|
|
49
|
-
| `business-growth` | negotiator | Growth strategy (existing) |
|
|
50
|
-
| `business-operations` | negotiator | CRM, hiring, delegation (existing) |
|
|
51
|
-
| `personal-branding` | negotiator | Personal brand execution (existing) |
|
|
52
|
-
| `exp-partnership` | negotiator | eXp UK model (existing) |
|
|
53
|
-
|
|
54
|
-
## Tools Used
|
|
55
|
-
|
|
56
|
-
No MCP server. Skills operate via existing platform tools:
|
|
57
|
-
|
|
58
|
-
- `memory-search` for domain knowledge
|
|
59
|
-
- `profile-read` and `profile-update` for the customisation profile
|
|
60
|
-
- `action-pending`, `action-approve`, `action-reject`, `action-edit` for the writeoff, journal, payment-batch, and accountant-pack approval gates
|
|
61
|
-
|
|
62
|
-
## References
|
|
63
|
-
|
|
64
|
-
Domain knowledge files loaded on demand by each skill.
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: business-growth
|
|
3
|
-
description: "Grow confidence, time leverage, and execution systems. Big goals, future-self behavior, ruthless focus, and evolution — without toxic hustle or bravado."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Business Growth
|
|
7
|
-
|
|
8
|
-
You help the user upgrade their operating system: confidence, preparation, time leverage, and disciplined execution — so they can scale.
|
|
9
|
-
|
|
10
|
-
## Core principles
|
|
11
|
-
|
|
12
|
-
1. **Big energy is substance-backed confidence.** Not bragging, not ego.
|
|
13
|
-
2. **Be the future-you now.** Act like the person who already runs the bigger business — then do the work to earn it.
|
|
14
|
-
3. **Minutes are money.** Protect high-leverage time; delegate low-leverage work.
|
|
15
|
-
4. **Evolve or die.** Markets shift; staying still is a strategy for irrelevance.
|
|
16
|
-
|
|
17
|
-
## Guardrails
|
|
18
|
-
|
|
19
|
-
- Never encourage deception. "Perception" must be backed by real preparation.
|
|
20
|
-
- Never encourage unethical pressure tactics.
|
|
21
|
-
- Never encourage burnout as a badge of honor.
|
|
22
|
-
|
|
23
|
-
## Additions for a scaling UK estate agency
|
|
24
|
-
|
|
25
|
-
### 1) Dan Martell — Buy Back Your Time (leverage-first hiring)
|
|
26
|
-
Use the buyback principle:
|
|
27
|
-
- don't hire to "grow"; hire to **remove low-value tasks from the leader's calendar**
|
|
28
|
-
- audit → transfer → fill (with high-value work)
|
|
29
|
-
- calculate effective hourly rate and delegate anything below it
|
|
30
|
-
|
|
31
|
-
Reference: `references/buy-back-your-time.md`.
|
|
32
|
-
|
|
33
|
-
### 2) Keller models — 33 Touch + organisational growth path
|
|
34
|
-
Use Keller's business-building logic:
|
|
35
|
-
- lead generation is non-negotiable
|
|
36
|
-
- database is the asset
|
|
37
|
-
- scale through leverage: admin → buyer agent → listing specialist
|
|
38
|
-
|
|
39
|
-
Reference: `references/keller-org-model.md`.
|
|
40
|
-
|
|
41
|
-
### 3) Lencioni team models (leadership + culture)
|
|
42
|
-
When the user asks about team dysfunction, meetings, leadership and culture:
|
|
43
|
-
- build trust first
|
|
44
|
-
- encourage productive conflict
|
|
45
|
-
- get commitment (clarity over certainty)
|
|
46
|
-
- enforce accountability
|
|
47
|
-
- focus on results
|
|
48
|
-
|
|
49
|
-
Reference: `references/lencioni-team-models.md`.
|
|
50
|
-
|
|
51
|
-
### 4) Team roles & commission structures
|
|
52
|
-
Use a clear roles chart (principal, lead agent, supporting agent, campaign manager, sales associate, admin) and align incentives.
|
|
53
|
-
|
|
54
|
-
Reference: `references/team-roles-commission.md`.
|
|
55
|
-
|
|
56
|
-
### 5) Wingman structure (remote/offshore leverage)
|
|
57
|
-
Use a wingman/VA model for:
|
|
58
|
-
- admin
|
|
59
|
-
- marketing ops
|
|
60
|
-
- database hygiene
|
|
61
|
-
- vendor reports
|
|
62
|
-
- campaign management
|
|
63
|
-
|
|
64
|
-
Reference: `references/wingman-structure.md`.
|
|
65
|
-
|
|
66
|
-
### 6) VA 2026 (estate agency ops playbook)
|
|
67
|
-
Include specific responsibilities:
|
|
68
|
-
- vendor reports
|
|
69
|
-
- on-market tracker
|
|
70
|
-
- seller onboarding + compliance
|
|
71
|
-
- buyer registration + qualifying
|
|
72
|
-
- viewing coordination
|
|
73
|
-
- neighbour campaigns + anniversary campaigns
|
|
74
|
-
- sales progression board
|
|
75
|
-
- content scheduling
|
|
76
|
-
|
|
77
|
-
Reference: `references/va-2026-ops.md`.
|
|
78
|
-
|
|
79
|
-
### 7) Serhant — Business in a Box (systems + time audit + CRM playbook)
|
|
80
|
-
Use it for:
|
|
81
|
-
- time audit (minutes equal money)
|
|
82
|
-
- time blocking / eat the frog / Eisenhower
|
|
83
|
-
- CRM choice + organisation
|
|
84
|
-
- listing playbook mindset
|
|
85
|
-
|
|
86
|
-
Reference: `references/serhant-bizinbox-notes.md`.
|
|
87
|
-
|
|
88
|
-
### 8) Firewave GOST + scorecards
|
|
89
|
-
Help the user plan growth like a business:
|
|
90
|
-
- set GOAL / OBJECTIVE / STRATEGY / TACTICS
|
|
91
|
-
- run a monthly scorecard (output + results)
|
|
92
|
-
|
|
93
|
-
Reference: `references/firewave-gost-scorecards.md`.
|
|
94
|
-
|
|
95
|
-
### 9) Listing management system (12-week L/O cadence)
|
|
96
|
-
Use a simple weekly checklist:
|
|
97
|
-
- **L = Letter**
|
|
98
|
-
- **O = Offer**
|
|
99
|
-
|
|
100
|
-
Reference: `references/listing-management-system.md`.
|
|
101
|
-
|
|
102
|
-
### 10) Net figure forms (fee defence + value framing)
|
|
103
|
-
Use the net figure form to explain:
|
|
104
|
-
- the cheapest agent can be the most expensive
|
|
105
|
-
- focus on net outcome, not headline fee
|
|
106
|
-
|
|
107
|
-
Reference: `references/net-figure-form.md`.
|
|
108
|
-
|
|
109
|
-
## How to respond when the user asks "how do I scale?"
|
|
110
|
-
|
|
111
|
-
Default questions:
|
|
112
|
-
1) What's your current weekly GCI target and actual?
|
|
113
|
-
2) What are you doing that only you can do?
|
|
114
|
-
3) What's the single biggest bottleneck (lead gen, conversion, admin, delivery, recruitment)?
|
|
115
|
-
|
|
116
|
-
Then propose a 30-day plan:
|
|
117
|
-
- buy back time (delegate 3–5 tasks)
|
|
118
|
-
- lock lead-gen time blocks
|
|
119
|
-
- implement one scorecard
|
|
120
|
-
- implement listing management cadence
|
|
121
|
-
|
|
122
|
-
## References (load as needed)
|
|
123
|
-
|
|
124
|
-
- **Buy Back Your Time** → `references/buy-back-your-time.md`
|
|
125
|
-
- **Keller org model** → `references/keller-org-model.md`
|
|
126
|
-
- **Lencioni team models** → `references/lencioni-team-models.md`
|
|
127
|
-
- **Team roles + commission** → `references/team-roles-commission.md`
|
|
128
|
-
- **Wingman structure** → `references/wingman-structure.md`
|
|
129
|
-
- **VA 2026 ops** → `references/va-2026-ops.md`
|
|
130
|
-
- **Serhant BizInBox notes** → `references/serhant-bizinbox-notes.md`
|
|
131
|
-
- **Firewave GOST + scorecards** → `references/firewave-gost-scorecards.md`
|
|
132
|
-
- **Listing management** → `references/listing-management-system.md`
|
|
133
|
-
- **Net figure form** → `references/net-figure-form.md`
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Buy Back Your Time (Dan Martell) — practical notes
|
|
2
|
-
|
|
3
|
-
## Buyback principle
|
|
4
|
-
Hire to **buy back your time**, not just to grow.
|
|
5
|
-
|
|
6
|
-
## Buyback loop
|
|
7
|
-
1) **Audit**: track tasks for 2 weeks
|
|
8
|
-
2) **Transfer**: delegate/automate
|
|
9
|
-
3) **Fill**: replace freed time with high-value work
|
|
10
|
-
|
|
11
|
-
## Effective hourly rate (EHR)
|
|
12
|
-
Target annual income ÷ 2,000 hours = £/hour.
|
|
13
|
-
Delegate anything that can be done for <25% of EHR.
|
|
14
|
-
|
|
15
|
-
## DRIP matrix
|
|
16
|
-
- **D**elegation: someone else can do it
|
|
17
|
-
- **R**eplacement: someone else can do it better
|
|
18
|
-
- **I**nvestment: you should do it to build skill
|
|
19
|
-
- **P**roduction: directly generates revenue
|
|
20
|
-
|
|
21
|
-
## Estate agent application
|
|
22
|
-
Leader protects time for:
|
|
23
|
-
- lead gen
|
|
24
|
-
- listings
|
|
25
|
-
- negotiations
|
|
26
|
-
- recruitment
|
|
27
|
-
- partnerships
|
|
28
|
-
|
|
29
|
-
Delegate:
|
|
30
|
-
- diary admin
|
|
31
|
-
- marketing ops
|
|
32
|
-
- vendor reports
|
|
33
|
-
- CRM updates
|
|
34
|
-
- chasing paperwork
|
|
35
|
-
|
|
36
|
-
## Camcorder method
|
|
37
|
-
Record yourself doing a task once → turn into SOP → delegate.
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# Firewave GOST + scorecards
|
|
2
|
-
|
|
3
|
-
## GOST
|
|
4
|
-
- **Goal** (big, yearly)
|
|
5
|
-
- **Objective** (specific metrics + timeframe)
|
|
6
|
-
- **Strategy** (one-sentence approach)
|
|
7
|
-
- **Tactics** (multi-channel actions)
|
|
8
|
-
|
|
9
|
-
## Monthly scorecard
|
|
10
|
-
Track:
|
|
11
|
-
- outputs (direct mail sent, content posted, funnels)
|
|
12
|
-
- results (valuations, instructions, stock #, pipeline, average fee)
|
|
13
|
-
|
|
14
|
-
Rule: measure what drives growth, not vanity metrics.
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Keller organisational model (estate agency)
|
|
2
|
-
|
|
3
|
-
## Stages
|
|
4
|
-
1) Agent (does everything)
|
|
5
|
-
2) Business owner (hires leverage)
|
|
6
|
-
3) Entrepreneur (leads the business)
|
|
7
|
-
|
|
8
|
-
## Typical order of hires
|
|
9
|
-
1) **Admin assistant** (compliance, scheduling, database)
|
|
10
|
-
2) **Buyer agent** (viewings, buyer management)
|
|
11
|
-
3) **Listing specialist** (scale listings)
|
|
12
|
-
|
|
13
|
-
## Key belief
|
|
14
|
-
Listings build businesses; buyers can become jobs unless systemised.
|
|
15
|
-
|
|
16
|
-
## 33 Touch
|
|
17
|
-
Database is the asset: 33 meaningful touches/year keeps you remembered.
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
# Patrick Lencioni — team models
|
|
2
|
-
|
|
3
|
-
## Five Dysfunctions pyramid
|
|
4
|
-
1) Absence of trust
|
|
5
|
-
2) Fear of conflict
|
|
6
|
-
3) Lack of commitment
|
|
7
|
-
4) Avoidance of accountability
|
|
8
|
-
5) Inattention to results
|
|
9
|
-
|
|
10
|
-
## Leader actions
|
|
11
|
-
- model vulnerability to build trust
|
|
12
|
-
- mine for conflict (ask for disagreement)
|
|
13
|
-
- force clarity (commitment over consensus)
|
|
14
|
-
- create peer accountability
|
|
15
|
-
- track shared results publicly
|
|
16
|
-
|
|
17
|
-
## Five Temptations (CEO)
|
|
18
|
-
- status over results
|
|
19
|
-
- popularity over accountability
|
|
20
|
-
- certainty over clarity
|
|
21
|
-
- harmony over productive conflict
|
|
22
|
-
- invulnerability over trust
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Listing Management System (12-week cadence)
|
|
2
|
-
|
|
3
|
-
Use a simple checklist per listing:
|
|
4
|
-
- **L = Letter** (seller-facing update/value)
|
|
5
|
-
- **O = Offer** (offer/price conversation activity)
|
|
6
|
-
|
|
7
|
-
Each week tick that you delivered:
|
|
8
|
-
- a meaningful vendor touch
|
|
9
|
-
- a pricing/offer strategy touch
|
|
10
|
-
|
|
11
|
-
Goal: keep momentum and avoid “silent listings”.
|