@rubytech/create-realagent-code 0.1.315 → 0.1.319

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/package.json +2 -2
  2. package/payload/platform/lib/mcp-eager/dist/index.d.ts +0 -20
  3. package/payload/platform/lib/mcp-eager/dist/index.d.ts.map +1 -1
  4. package/payload/platform/lib/mcp-eager/dist/index.js +2 -1
  5. package/payload/platform/lib/mcp-eager/dist/index.js.map +1 -1
  6. package/payload/platform/lib/mcp-eager/src/index.ts +3 -1
  7. package/payload/platform/lib/mcp-lifeline/dist/index.d.ts +8 -0
  8. package/payload/platform/lib/mcp-lifeline/dist/index.d.ts.map +1 -0
  9. package/payload/platform/lib/mcp-lifeline/dist/index.js +71 -0
  10. package/payload/platform/lib/mcp-lifeline/dist/index.js.map +1 -0
  11. package/payload/platform/lib/mcp-lifeline/package.json +7 -0
  12. package/payload/platform/lib/mcp-lifeline/src/__tests__/lifeline.test.ts +146 -0
  13. package/payload/platform/lib/mcp-lifeline/src/index.ts +78 -0
  14. package/payload/platform/lib/mcp-lifeline/tsconfig.json +9 -0
  15. package/payload/platform/lib/mcp-lifeline/vitest.config.ts +9 -0
  16. package/payload/platform/lib/models/dist/index.d.ts +8 -0
  17. package/payload/platform/lib/models/dist/index.d.ts.map +1 -1
  18. package/payload/platform/lib/models/dist/index.js +20 -1
  19. package/payload/platform/lib/models/dist/index.js.map +1 -1
  20. package/payload/platform/lib/models/src/index.ts +22 -0
  21. package/payload/platform/package.json +5 -2
  22. package/payload/platform/plugins/admin/mcp/dist/index.js +11 -10
  23. package/payload/platform/plugins/admin/mcp/dist/index.js.map +1 -1
  24. package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +20 -11
  25. package/payload/platform/plugins/docs/references/admin-session.md +1 -1
  26. package/payload/platform/plugins/docs/references/admin-ui.md +5 -3
  27. package/payload/platform/plugins/docs/references/internals.md +14 -7
  28. package/payload/platform/plugins/memory/mcp/dist/index.js +32 -31
  29. package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
  30. package/payload/platform/plugins/memory/references/schema-estate-agent.md +32 -0
  31. package/payload/platform/plugins/outlook/mcp/dist/index.js +8 -7
  32. package/payload/platform/plugins/outlook/mcp/dist/index.js.map +1 -1
  33. package/payload/platform/plugins/quickbooks/mcp/dist/index.js +12 -11
  34. package/payload/platform/plugins/quickbooks/mcp/dist/index.js.map +1 -1
  35. package/payload/platform/plugins/replicate/mcp/dist/index.js +4 -3
  36. package/payload/platform/plugins/replicate/mcp/dist/index.js.map +1 -1
  37. package/payload/platform/plugins/whatsapp/mcp/dist/index.js +11 -10
  38. package/payload/platform/plugins/whatsapp/mcp/dist/index.js.map +1 -1
  39. package/payload/platform/scripts/__tests__/check-no-raw-mcp-registrations.test.sh +57 -0
  40. package/payload/platform/scripts/check-no-raw-mcp-registrations.mjs +70 -0
  41. package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
  42. package/payload/platform/services/claude-session-manager/dist/http-server.js +71 -14
  43. package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
  44. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +5 -0
  45. package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
  46. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +7 -0
  47. package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
  48. package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -1
  49. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js +3 -12
  50. package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
  51. package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts +8 -0
  52. package/payload/platform/services/claude-session-manager/dist/session-sidecar.d.ts.map +1 -1
  53. package/payload/platform/services/claude-session-manager/dist/session-sidecar.js +9 -0
  54. package/payload/platform/services/claude-session-manager/dist/session-sidecar.js.map +1 -1
  55. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts +5 -0
  56. package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
  57. package/payload/platform/services/claude-session-manager/dist/system-prompt.js +15 -0
  58. package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
  59. package/payload/platform/services/webchat-channel/dist/permission.d.ts +46 -0
  60. package/payload/platform/services/webchat-channel/dist/permission.d.ts.map +1 -0
  61. package/payload/platform/services/webchat-channel/dist/permission.js +56 -0
  62. package/payload/platform/services/webchat-channel/dist/permission.js.map +1 -0
  63. package/payload/platform/services/webchat-channel/dist/server.d.ts.map +1 -1
  64. package/payload/platform/services/webchat-channel/dist/server.js +47 -1
  65. package/payload/platform/services/webchat-channel/dist/server.js.map +1 -1
  66. package/payload/platform/templates/specialists/agents/data-manager.md +3 -1
  67. package/payload/premium-plugins/real-agent/agents/listing-curator.md +14 -1
  68. package/payload/premium-plugins/real-agent/lib/mcp-lifeline/dist/index.d.ts +8 -0
  69. package/payload/premium-plugins/real-agent/lib/mcp-lifeline/dist/index.d.ts.map +1 -0
  70. package/payload/premium-plugins/real-agent/lib/mcp-lifeline/dist/index.js +71 -0
  71. package/payload/premium-plugins/real-agent/lib/mcp-lifeline/dist/index.js.map +1 -0
  72. package/payload/premium-plugins/real-agent/lib/mcp-lifeline/package.json +7 -0
  73. package/payload/premium-plugins/real-agent/plugins/buyers/mcp/dist/index.js +9 -8
  74. package/payload/premium-plugins/real-agent/plugins/buyers/mcp/dist/index.js.map +1 -1
  75. package/payload/premium-plugins/real-agent/plugins/buyers/mcp/src/index.ts +9 -8
  76. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.js +28 -27
  77. package/payload/premium-plugins/real-agent/plugins/loop/mcp/dist/index.js.map +1 -1
  78. package/payload/premium-plugins/real-agent/plugins/loop/mcp/src/index.ts +28 -27
  79. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js +23 -22
  80. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js.map +1 -1
  81. package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/index.ts +23 -22
  82. package/payload/server/{chunk-Q7EWROVN.js → chunk-NCRJQEZ3.js} +0 -101
  83. package/payload/server/maxy-edge.js +1 -1
  84. package/payload/server/public/assets/AdminLoginScreens-CrdmA3KA.js +1 -0
  85. package/payload/server/public/assets/AdminShell-0meAFBva.js +1 -0
  86. package/payload/server/public/assets/Checkbox-DXisJRUK.js +1 -0
  87. package/payload/server/public/assets/OperatorConversations-DBy2G8q3.js +9 -0
  88. package/payload/server/public/assets/OperatorConversations-DvRXfq3q.css +1 -0
  89. package/payload/server/public/assets/admin-DX5lZxWt.js +1 -0
  90. package/payload/server/public/assets/{arc-J2g2u5Xv.js → arc-CxLB9WCE.js} +1 -1
  91. package/payload/server/public/assets/architecture-YZFGNWBL-DN-MYxff.js +1 -0
  92. package/payload/server/public/assets/{architectureDiagram-Q4EWVU46-CN0BXxpE.js → architectureDiagram-Q4EWVU46-D-EdJPSY.js} +1 -1
  93. package/payload/server/public/assets/{blockDiagram-DXYQGD6D-HX-8wF2p.js → blockDiagram-DXYQGD6D-CXx9RgCm.js} +1 -1
  94. package/payload/server/public/assets/browser-Bxx8w8BA.js +1 -0
  95. package/payload/server/public/assets/{c4Diagram-AHTNJAMY-wIuarKF5.js → c4Diagram-AHTNJAMY-RFBXEe0B.js} +1 -1
  96. package/payload/server/public/assets/channel-y27xl53N.js +1 -0
  97. package/payload/server/public/assets/chat-CT9YrNtI.js +1 -0
  98. package/payload/server/public/assets/{chunk-2KRD3SAO-Buz7egJZ.js → chunk-2KRD3SAO-DBqAFwK9.js} +1 -1
  99. package/payload/server/public/assets/{chunk-336JU56O-_JcFXJqc.js → chunk-336JU56O-DdnFEz6R.js} +2 -2
  100. package/payload/server/public/assets/chunk-426QAEUC-D8Iwaegm.js +1 -0
  101. package/payload/server/public/assets/{chunk-4BX2VUAB-DUR5Dg3M.js → chunk-4BX2VUAB-cnw-3Gbs.js} +1 -1
  102. package/payload/server/public/assets/{chunk-4TB4RGXK-BRIqQ9st.js → chunk-4TB4RGXK-BnqJ0bDc.js} +1 -1
  103. package/payload/server/public/assets/{chunk-55IACEB6-CezTHWXL.js → chunk-55IACEB6-BwyHvvzo.js} +1 -1
  104. package/payload/server/public/assets/{chunk-5FUZZQ4R-DHYUPzF1.js → chunk-5FUZZQ4R-DXA9U02I.js} +1 -1
  105. package/payload/server/public/assets/{chunk-5PVQY5BW-BVn4_fI5.js → chunk-5PVQY5BW-D78bZ_8D.js} +1 -1
  106. package/payload/server/public/assets/{chunk-67CJDMHE-BBLA8Mbi.js → chunk-67CJDMHE-CtE_Mgv7.js} +1 -1
  107. package/payload/server/public/assets/{chunk-7N4EOEYR-CdWfEI5c.js → chunk-7N4EOEYR-CUZDaySl.js} +1 -1
  108. package/payload/server/public/assets/{chunk-AA7GKIK3-tS11knCR.js → chunk-AA7GKIK3-CYQ3jO4X.js} +1 -1
  109. package/payload/server/public/assets/{chunk-BSJP7CBP-GEu1OOZ6.js → chunk-BSJP7CBP-BbA_HyTR.js} +1 -1
  110. package/payload/server/public/assets/{chunk-CIAEETIT-DKrNbbp_.js → chunk-CIAEETIT-D7_YqRhG.js} +1 -1
  111. package/payload/server/public/assets/{chunk-EDXVE4YY-B0InXNyr.js → chunk-EDXVE4YY-B23LrtSw.js} +1 -1
  112. package/payload/server/public/assets/{chunk-ENJZ2VHE-CO7lkHdm.js → chunk-ENJZ2VHE-D3fTHYKN.js} +1 -1
  113. package/payload/server/public/assets/{chunk-FMBD7UC4-CMj74lWo.js → chunk-FMBD7UC4-DFAA2tyh.js} +1 -1
  114. package/payload/server/public/assets/{chunk-FOC6F5B3-CLnKQoXw.js → chunk-FOC6F5B3-BF4IHvlI.js} +1 -1
  115. package/payload/server/public/assets/{chunk-ICPOFSXX-CdiEKIaz.js → chunk-ICPOFSXX-DBUGemHy.js} +2 -2
  116. package/payload/server/public/assets/{chunk-K5T4RW27-B6LA3fiv.js → chunk-K5T4RW27-rMMs08Eh.js} +1 -1
  117. package/payload/server/public/assets/{chunk-KGLVRYIC-DrhRrb8Q.js → chunk-KGLVRYIC-BD2r8R2G.js} +1 -1
  118. package/payload/server/public/assets/{chunk-LIHQZDEY-DVQukevB.js → chunk-LIHQZDEY-D4sYTTwM.js} +1 -1
  119. package/payload/server/public/assets/{chunk-ORNJ4GCN-ZMLkoDhP.js → chunk-ORNJ4GCN-CAs_uFzb.js} +1 -1
  120. package/payload/server/public/assets/{chunk-OYMX7WX6-C0dJkynG.js → chunk-OYMX7WX6-Fkp-2ORc.js} +1 -1
  121. package/payload/server/public/assets/chunk-QZHKN3VN-qHqDpwz3.js +1 -0
  122. package/payload/server/public/assets/{chunk-U2HBQHQK-BQ9BPIFZ.js → chunk-U2HBQHQK-D_pxZh25.js} +1 -1
  123. package/payload/server/public/assets/{chunk-X2U36JSP-CAonGMOd.js → chunk-X2U36JSP-CeVmvvRf.js} +1 -1
  124. package/payload/server/public/assets/{chunk-XPW4576I-D5C_WNlk.js → chunk-XPW4576I-iWP54fKp.js} +1 -1
  125. package/payload/server/public/assets/{chunk-YZCP3GAM-Ecdvzekb.js → chunk-YZCP3GAM-CNtbWJNN.js} +1 -1
  126. package/payload/server/public/assets/{chunk-ZZ45TVLE-BsFZd1cN.js → chunk-ZZ45TVLE-BmlFjU_9.js} +1 -1
  127. package/payload/server/public/assets/classDiagram-6PBFFD2Q-DgVoYWhO.js +1 -0
  128. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-C0WNP3uN.js +1 -0
  129. package/payload/server/public/assets/clone-D50F_pvg.js +1 -0
  130. package/payload/server/public/assets/{cose-bilkent-S5V4N54A-DBWHaIwm.js → cose-bilkent-S5V4N54A-C7YmF1Pg.js} +1 -1
  131. package/payload/server/public/assets/{dagre-Dr7ZJYeS.js → dagre-BAmiDDtR.js} +1 -1
  132. package/payload/server/public/assets/{dagre-KV5264BT-oIJddk7m.js → dagre-KV5264BT-Ca3ESJhc.js} +1 -1
  133. package/payload/server/public/assets/data-B9NtsXgF.js +1 -0
  134. package/payload/server/public/assets/{diagram-5BDNPKRD-CEVxqOZ4.js → diagram-5BDNPKRD-BgT1ORf2.js} +1 -1
  135. package/payload/server/public/assets/{diagram-G4DWMVQ6-BovF7Rjx.js → diagram-G4DWMVQ6-BTaUIiem.js} +1 -1
  136. package/payload/server/public/assets/{diagram-MMDJMWI5-BhrF8zoF.js → diagram-MMDJMWI5-Bdb2g6Uo.js} +1 -1
  137. package/payload/server/public/assets/{diagram-TYMM5635-DCUYwxtR.js → diagram-TYMM5635-CkLGC0zZ.js} +1 -1
  138. package/payload/server/public/assets/{dist-DSsFp0Qd.js → dist-Bkbhs3jw.js} +1 -1
  139. package/payload/server/public/assets/{erDiagram-SMLLAGMA-BS2-HdCg.js → erDiagram-SMLLAGMA-D_sj4DMg.js} +1 -1
  140. package/payload/server/public/assets/{flatten-BZMXCpLh.js → flatten-E2Sr0FeD.js} +1 -1
  141. package/payload/server/public/assets/{flowDiagram-DWJPFMVM-BzSFLoea.js → flowDiagram-DWJPFMVM-iLERoZTe.js} +1 -1
  142. package/payload/server/public/assets/{ganttDiagram-T4ZO3ILL-1-3QU7mT.js → ganttDiagram-T4ZO3ILL-D60hjMBy.js} +1 -1
  143. package/payload/server/public/assets/gitGraph-7Q5UKJZL-D-L2yzYf.js +1 -0
  144. package/payload/server/public/assets/{gitGraphDiagram-UUTBAWPF-fTrJ35Wk.js → gitGraphDiagram-UUTBAWPF-Di0XM6fi.js} +1 -1
  145. package/payload/server/public/assets/{graph-Dx2a6vGB.js → graph-B59N222f.js} +3 -3
  146. package/payload/server/public/assets/graph-labels-70w-1ov0.js +1 -0
  147. package/payload/server/public/assets/{graphlib-rlEzI2qD.js → graphlib-C8fUP7uV.js} +1 -1
  148. package/payload/server/public/assets/info-OMHHGYJF-BQn6jndO.js +1 -0
  149. package/payload/server/public/assets/infoDiagram-42DDH7IO-BwMdbiXg.js +2 -0
  150. package/payload/server/public/assets/{isEmpty-DaYIrHay.js → isEmpty-CLz-UprQ.js} +1 -1
  151. package/payload/server/public/assets/{ishikawaDiagram-UXIWVN3A-0eU_UtlT.js → ishikawaDiagram-UXIWVN3A-CwgI4B5Z.js} +1 -1
  152. package/payload/server/public/assets/{journeyDiagram-VCZTEJTY-BKLeZohp.js → journeyDiagram-VCZTEJTY-CxBu-tze.js} +1 -1
  153. package/payload/server/public/assets/{kanban-definition-6JOO6SKY-Dq72xyaN.js → kanban-definition-6JOO6SKY-D2qlheA5.js} +1 -1
  154. package/payload/server/public/assets/{line-LQhmDT8k.js → line-Bdod7uzQ.js} +1 -1
  155. package/payload/server/public/assets/{linear-BGotDbGs.js → linear-BiVe6QzC.js} +1 -1
  156. package/payload/server/public/assets/{mermaid-parser.core-DoLdho1V.js → mermaid-parser.core-xZN7hC6M.js} +2 -2
  157. package/payload/server/public/assets/{mermaid.core-C1RRyHGm.js → mermaid.core-D0IylAac.js} +3 -3
  158. package/payload/server/public/assets/{mindmap-definition-QFDTVHPH-vUVVVyV1.js → mindmap-definition-QFDTVHPH-J_Szhwf1.js} +1 -1
  159. package/payload/server/public/assets/operator-DpRAhwQN.js +1 -0
  160. package/payload/server/public/assets/{ordinal-BqEhkPyh.js → ordinal-5RtyPJVt.js} +1 -1
  161. package/payload/server/public/assets/packet-4T2RLAQJ-DmkQBx4h.js +1 -0
  162. package/payload/server/public/assets/page-Ehjc9b9V.js +30 -0
  163. package/payload/server/public/assets/pie-ZZUOXDRM-DDnxYUBm.js +1 -0
  164. package/payload/server/public/assets/{pieDiagram-DEJITSTG-B9Pl6Qhc.js → pieDiagram-DEJITSTG-CV5DxUVx.js} +1 -1
  165. package/payload/server/public/assets/public-BcqXGSaE.js +1 -0
  166. package/payload/server/public/assets/{quadrantDiagram-34T5L4WZ-Drn9T81A.js → quadrantDiagram-34T5L4WZ-BsFMVizF.js} +1 -1
  167. package/payload/server/public/assets/radar-PYXPWWZC-7H4k0ChM.js +1 -0
  168. package/payload/server/public/assets/{reduce-T2IuntYP.js → reduce-B3Mw_0s1.js} +1 -1
  169. package/payload/server/public/assets/{requirementDiagram-MS252O5E-C0PAItJm.js → requirementDiagram-MS252O5E-C5eRRvGc.js} +1 -1
  170. package/payload/server/public/assets/{sankeyDiagram-XADWPNL6-BR42Mtwd.js → sankeyDiagram-XADWPNL6-CJYv5gpw.js} +1 -1
  171. package/payload/server/public/assets/{sequenceDiagram-FGHM5R23-c2lR9UOS.js → sequenceDiagram-FGHM5R23-B25563_2.js} +1 -1
  172. package/payload/server/public/assets/{src-DXUM2BJo.js → src-BKOAoFQc.js} +1 -1
  173. package/payload/server/public/assets/{stateDiagram-FHFEXIEX-BcHhtqsZ.js → stateDiagram-FHFEXIEX-BLyNJYOA.js} +1 -1
  174. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BSVuxZxz.js +1 -0
  175. package/payload/server/public/assets/{timeline-definition-GMOUNBTQ-Ax32c10H.js → timeline-definition-GMOUNBTQ-D-HgOM6Q.js} +1 -1
  176. package/payload/server/public/assets/treeView-SZITEDCU-BLXWTQtW.js +1 -0
  177. package/payload/server/public/assets/treemap-W4RFUUIX-DiePDF5d.js +1 -0
  178. package/payload/server/public/assets/{vennDiagram-DHZGUBPP-BxePewPq.js → vennDiagram-DHZGUBPP-Cw1JElYp.js} +1 -1
  179. package/payload/server/public/assets/wardley-RL74JXVD-OSUWK5LN.js +1 -0
  180. package/payload/server/public/assets/{wardleyDiagram-NUSXRM2D-DmJwZ2f5.js → wardleyDiagram-NUSXRM2D-BqMWzEko.js} +1 -1
  181. package/payload/server/public/assets/{xychartDiagram-5P7HB3ND-YjHomudv.js → xychartDiagram-5P7HB3ND-DBp71TLT.js} +1 -1
  182. package/payload/server/public/browser.html +5 -8
  183. package/payload/server/public/chat.html +8 -12
  184. package/payload/server/public/data.html +5 -7
  185. package/payload/server/public/graph.html +7 -10
  186. package/payload/server/public/index.html +8 -11
  187. package/payload/server/public/operator.html +10 -14
  188. package/payload/server/public/public.html +8 -10
  189. package/payload/server/server.js +376 -226
  190. package/payload/server/public/assets/AccessGate-B0sCa0QJ.js +0 -1
  191. package/payload/server/public/assets/AdminLoginScreens-C7Oaqpr6.js +0 -1
  192. package/payload/server/public/assets/AdminShell-DgK7TWCI.js +0 -1
  193. package/payload/server/public/assets/Checkbox-C4m1jfdP.js +0 -1
  194. package/payload/server/public/assets/OperatorConversations-qc_xy7Az.css +0 -1
  195. package/payload/server/public/assets/OperatorConversations-z2mSY_eQ.js +0 -1
  196. package/payload/server/public/assets/admin-DxYk1Ghu.js +0 -1
  197. package/payload/server/public/assets/architecture-YZFGNWBL-C6nkAxzW.js +0 -1
  198. package/payload/server/public/assets/audio-attachment-mime-BXj3DB3Y.js +0 -30
  199. package/payload/server/public/assets/brand-BwWvCHLs.css +0 -1
  200. package/payload/server/public/assets/brand-DOgCGEoD.js +0 -9
  201. package/payload/server/public/assets/browser-NzxOujfD.js +0 -1
  202. package/payload/server/public/assets/channel-Q39xIXyT.js +0 -1
  203. package/payload/server/public/assets/chat-CEQTEN5z.js +0 -1
  204. package/payload/server/public/assets/chunk-426QAEUC-CCYjp9C2.js +0 -1
  205. package/payload/server/public/assets/chunk-QZHKN3VN-BNBxnHZh.js +0 -1
  206. package/payload/server/public/assets/classDiagram-6PBFFD2Q-BShusfby.js +0 -1
  207. package/payload/server/public/assets/classDiagram-v2-HSJHXN6E-D4ivPLFF.js +0 -1
  208. package/payload/server/public/assets/clone-CjEM8LwB.js +0 -1
  209. package/payload/server/public/assets/data-CTROHvif.js +0 -1
  210. package/payload/server/public/assets/gitGraph-7Q5UKJZL-Btp3PwZh.js +0 -1
  211. package/payload/server/public/assets/graph-labels-Dxqq08v6.js +0 -1
  212. package/payload/server/public/assets/info-OMHHGYJF-CPt2y6_L.js +0 -1
  213. package/payload/server/public/assets/infoDiagram-42DDH7IO-CpXNTMgd.js +0 -2
  214. package/payload/server/public/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  215. package/payload/server/public/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  216. package/payload/server/public/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
  217. package/payload/server/public/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
  218. package/payload/server/public/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  219. package/payload/server/public/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  220. package/payload/server/public/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
  221. package/payload/server/public/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
  222. package/payload/server/public/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  223. package/payload/server/public/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  224. package/payload/server/public/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
  225. package/payload/server/public/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
  226. package/payload/server/public/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  227. package/payload/server/public/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  228. package/payload/server/public/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
  229. package/payload/server/public/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
  230. package/payload/server/public/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  231. package/payload/server/public/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  232. package/payload/server/public/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  233. package/payload/server/public/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  234. package/payload/server/public/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  235. package/payload/server/public/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  236. package/payload/server/public/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
  237. package/payload/server/public/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
  238. package/payload/server/public/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  239. package/payload/server/public/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  240. package/payload/server/public/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  241. package/payload/server/public/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
  242. package/payload/server/public/assets/newsreader-latin-300-normal-AOSWdb_s.woff +0 -0
  243. package/payload/server/public/assets/newsreader-latin-300-normal-FGBQ0wlI.woff2 +0 -0
  244. package/payload/server/public/assets/newsreader-latin-400-normal-BFBkh4jY.woff2 +0 -0
  245. package/payload/server/public/assets/newsreader-latin-400-normal-gRTjlS2D.woff +0 -0
  246. package/payload/server/public/assets/newsreader-latin-500-normal-B66TYsaK.woff2 +0 -0
  247. package/payload/server/public/assets/newsreader-latin-500-normal-DFwuUcdu.woff +0 -0
  248. package/payload/server/public/assets/newsreader-latin-ext-300-normal-CFtw49Zd.woff +0 -0
  249. package/payload/server/public/assets/newsreader-latin-ext-300-normal-DRMzurxT.woff2 +0 -0
  250. package/payload/server/public/assets/newsreader-latin-ext-400-normal-DYA1XoQK.woff +0 -0
  251. package/payload/server/public/assets/newsreader-latin-ext-400-normal-svq1FPys.woff2 +0 -0
  252. package/payload/server/public/assets/newsreader-latin-ext-500-normal-BNHmvKvI.woff2 +0 -0
  253. package/payload/server/public/assets/newsreader-latin-ext-500-normal-CZruMFou.woff +0 -0
  254. package/payload/server/public/assets/newsreader-vietnamese-300-normal-CsrIkm-V.woff +0 -0
  255. package/payload/server/public/assets/newsreader-vietnamese-300-normal-D3VHEe81.woff2 +0 -0
  256. package/payload/server/public/assets/newsreader-vietnamese-400-normal-BekUZro8.woff +0 -0
  257. package/payload/server/public/assets/newsreader-vietnamese-400-normal-DdKr49mV.woff2 +0 -0
  258. package/payload/server/public/assets/newsreader-vietnamese-500-normal-BEAbKU8A.woff +0 -0
  259. package/payload/server/public/assets/newsreader-vietnamese-500-normal-CL6a8tp2.woff2 +0 -0
  260. package/payload/server/public/assets/operator-BTHMTwNI.js +0 -1
  261. package/payload/server/public/assets/packet-4T2RLAQJ-Cwc-j_AI.js +0 -1
  262. package/payload/server/public/assets/page-B9fQp1g9.js +0 -1
  263. package/payload/server/public/assets/pie-ZZUOXDRM-BZ9fjD1_.js +0 -1
  264. package/payload/server/public/assets/public-cuggl7du.js +0 -6
  265. package/payload/server/public/assets/public-next-apqAebbA.js +0 -1
  266. package/payload/server/public/assets/public-vnj7OhQj.css +0 -1
  267. package/payload/server/public/assets/radar-PYXPWWZC-BNz5Rt9V.js +0 -1
  268. package/payload/server/public/assets/stateDiagram-v2-QKLJ7IA2-BUQ_F4eP.js +0 -1
  269. package/payload/server/public/assets/treeView-SZITEDCU-DcVCQgp1.js +0 -1
  270. package/payload/server/public/assets/treemap-W4RFUUIX-Bm12mwGd.js +0 -1
  271. package/payload/server/public/assets/useSelectionMode-DlgEcMtA.js +0 -5
  272. package/payload/server/public/assets/wardley-RL74JXVD-47Z3ymtK.js +0 -1
  273. package/payload/server/public/public-next.html +0 -25
  274. /package/payload/server/public/assets/{_baseFor-Y5mTRiRv.js → _baseFor-DVaNaTfF.js} +0 -0
  275. /package/payload/server/public/assets/{admin-types-D2qTXuCg.js → admin-types-CJrGd46U.js} +0 -0
  276. /package/payload/server/public/assets/{array-BwJyW1Dp.js → array-8_H1156C.js} +0 -0
  277. /package/payload/server/public/assets/{chunk-CAM3fms7.js → chunk-Pqm5yXtL.js} +0 -0
  278. /package/payload/server/public/assets/{cytoscape.esm-D95TtHqz.js → cytoscape.esm-h10p_6j-.js} +0 -0
  279. /package/payload/server/public/assets/{defaultLocale-kiwRz9Au.js → defaultLocale-pD7tFa1r.js} +0 -0
  280. /package/payload/server/public/assets/{init-CKZirZ49.js → init-CwJ4b81e.js} +0 -0
  281. /package/payload/server/public/assets/{katex-8mXVa4k3.js → katex-DJPjIBAI.js} +0 -0
  282. /package/payload/server/public/assets/{path-B0d9ncVi.js → path-CK8wrAxY.js} +0 -0
  283. /package/payload/server/public/assets/{preload-helper-C5gCWwwF.js → preload-helper-Bf_JiD2A.js} +0 -0
  284. /package/payload/server/public/assets/{rough.esm-BWqoIFNR.js → rough.esm-Dwml_la6.js} +0 -0
@@ -28,6 +28,7 @@ import { marketingEnquiry } from "./tools/marketing-enquiry.js";
28
28
  import { autoResponder } from "./tools/auto-responder.js";
29
29
  import { customerPreferences } from "./tools/customer-preferences.js";
30
30
  import { supplier } from "./tools/supplier.js";
31
+ import { lifelineTool } from "../../../../../../platform/lib/mcp-lifeline/dist/index.js";
31
32
  import { closeDriver } from "./lib/neo4j.js";
32
33
  import { selectLoopKeyStore } from "./lib/key-store.js";
33
34
 
@@ -72,7 +73,7 @@ function toolHandler(fn: (p: Record<string, unknown>) => Promise<string>) {
72
73
  // Key Management Tools (3)
73
74
  // ─────────────────────────────────────────────────────────────────
74
75
 
75
- server.tool(
76
+ lifelineTool(server,
76
77
  "loop-key-register",
77
78
  "Register a Loop CRM API key for a team. Validates the key against Loop's API, encrypts it, and stores it in the graph. Each key maps to one team.",
78
79
  {
@@ -101,7 +102,7 @@ server.tool(
101
102
  }
102
103
  );
103
104
 
104
- server.tool(
105
+ lifelineTool(server,
105
106
  "loop-key-deregister",
106
107
  "Remove a registered Loop CRM team key. The key is permanently deleted from the graph.",
107
108
  { teamName: z.string().min(1).describe("Name of the team to remove") },
@@ -121,7 +122,7 @@ server.tool(
121
122
  }
122
123
  );
123
124
 
124
- server.tool(
125
+ lifelineTool(server,
125
126
  "loop-key-list",
126
127
  "List all registered Loop CRM teams for this account. Shows team names, addresses, and permissions. Never reveals API key values.",
127
128
  {},
@@ -132,7 +133,7 @@ server.tool(
132
133
  // People Tools (2) — permission: people
133
134
  // ─────────────────────────────────────────────────────────────────
134
135
 
135
- server.tool(
136
+ lifelineTool(server,
136
137
  "loop-people-search",
137
138
  "Search people in Loop CRM. Without a role, searches all contacts. With a role (buyers/sellers/renters/landlords), returns role-specific results with rich filters.",
138
139
  {
@@ -152,7 +153,7 @@ server.tool(
152
153
  toolHandler(async (p) => peopleSearch(p as Parameters<typeof peopleSearch>[0]))
153
154
  );
154
155
 
155
- server.tool(
156
+ lifelineTool(server,
156
157
  "loop-people-detail",
157
158
  "Get full details for a specific person by ID. Optionally specify a role (buyers/sellers/renters/landlords) for role-specific detail.",
158
159
  {
@@ -167,7 +168,7 @@ server.tool(
167
168
  // Property Tools (4) — permission: properties
168
169
  // ─────────────────────────────────────────────────────────────────
169
170
 
170
- server.tool(
171
+ lifelineTool(server,
171
172
  "loop-property-search",
172
173
  "Search properties in Loop CRM. Queries /property/residential/sales and /property/residential/lettings. Use department to narrow to one type.",
173
174
  {
@@ -185,7 +186,7 @@ server.tool(
185
186
  toolHandler(async (p) => propertySearch(p as Parameters<typeof propertySearch>[0]))
186
187
  );
187
188
 
188
- server.tool(
189
+ lifelineTool(server,
189
190
  "loop-property-detail",
190
191
  "Get full details for a specific property by ID and department. Optionally include a preview hash for the public preview.",
191
192
  {
@@ -197,7 +198,7 @@ server.tool(
197
198
  toolHandler(async (p) => propertyDetail(p as Parameters<typeof propertyDetail>[0]))
198
199
  );
199
200
 
200
- server.tool(
201
+ lifelineTool(server,
201
202
  "loop-property-listed",
202
203
  "Get properties currently listed on a specific channel (Rightmove, Zoopla, OnTheMarket, website). For exchanged/completed properties use loop-property-sold.",
203
204
  {
@@ -209,7 +210,7 @@ server.tool(
209
210
  toolHandler(async (p) => propertyListed(p as Parameters<typeof propertyListed>[0]))
210
211
  );
211
212
 
212
- server.tool(
213
+ lifelineTool(server,
213
214
  "loop-property-sold",
214
215
  "Get exchanged or completed properties on a specific channel. Powers canvassing from recent sales and sold-gallery rendering.",
215
216
  {
@@ -224,7 +225,7 @@ server.tool(
224
225
  // Each intent is a distinct operator action so the agent's tool surface
225
226
  // preserves intent fidelity.
226
227
 
227
- server.tool(
228
+ lifelineTool(server,
228
229
  "loop-property-viewing",
229
230
  "Request a viewing for a property. Use when the operator says 'book a viewing', 'arrange a viewing', or 'ask to see the property'.",
230
231
  {
@@ -239,7 +240,7 @@ server.tool(
239
240
  toolHandler(async (p) => propertyViewing(p as Parameters<typeof propertyViewing>[0]))
240
241
  );
241
242
 
242
- server.tool(
243
+ lifelineTool(server,
243
244
  "loop-property-callback",
244
245
  "Request a callback about a property. Use when the operator says 'ask them to call', 'request a callback', or 'have someone ring back'.",
245
246
  {
@@ -254,7 +255,7 @@ server.tool(
254
255
  toolHandler(async (p) => propertyCallback(p as Parameters<typeof propertyCallback>[0]))
255
256
  );
256
257
 
257
- server.tool(
258
+ lifelineTool(server,
258
259
  "loop-property-information",
259
260
  "Request more information about a property. Use when the operator says 'ask for details', 'request the brochure', or 'find out more'.",
260
261
  {
@@ -273,7 +274,7 @@ server.tool(
273
274
  // Viewing Tools (4) — permission: viewings
274
275
  // ─────────────────────────────────────────────────────────────────
275
276
 
276
- server.tool(
277
+ lifelineTool(server,
277
278
  "loop-viewing-search",
278
279
  "Search viewings in Loop CRM. Queries /residential/sales/viewings and /residential/lettings/viewings.",
279
280
  {
@@ -288,7 +289,7 @@ server.tool(
288
289
  toolHandler(async (p) => viewingSearch(p as Parameters<typeof viewingSearch>[0]))
289
290
  );
290
291
 
291
- server.tool(
292
+ lifelineTool(server,
292
293
  "loop-viewing-detail",
293
294
  "Get full details for a specific viewing by ID and department.",
294
295
  {
@@ -299,7 +300,7 @@ server.tool(
299
300
  toolHandler(async (p) => viewingDetail(p as Parameters<typeof viewingDetail>[0]))
300
301
  );
301
302
 
302
- server.tool(
303
+ lifelineTool(server,
303
304
  "loop-viewing-create",
304
305
  "Create a new viewing in Loop CRM. Creates the viewing and associated buyer/renter record.",
305
306
  {
@@ -315,7 +316,7 @@ server.tool(
315
316
  toolHandler(async (p) => viewingCreate(p as Parameters<typeof viewingCreate>[0]))
316
317
  );
317
318
 
318
- server.tool(
319
+ lifelineTool(server,
319
320
  "loop-viewing-update",
320
321
  "Add a note or record feedback for a viewing. For feedback, specify the party: buyer/seller (sales) or renter/landlord (lettings).",
321
322
  {
@@ -333,7 +334,7 @@ server.tool(
333
334
  // Feedback Tools (2) — permission: feedback
334
335
  // ─────────────────────────────────────────────────────────────────
335
336
 
336
- server.tool(
337
+ lifelineTool(server,
337
338
  "loop-feedback-get",
338
339
  "Get feedback for a specific viewing. Reads from /feedback/residential/{department}/viewings/{id}.",
339
340
  {
@@ -344,7 +345,7 @@ server.tool(
344
345
  toolHandler(async (p) => feedbackGet(p as Parameters<typeof feedbackGet>[0]))
345
346
  );
346
347
 
347
- server.tool(
348
+ lifelineTool(server,
348
349
  "loop-feedback-submit",
349
350
  "Submit feedback for a viewing. Writes to /feedback/residential/{department}/viewings/{id}/feedback.",
350
351
  {
@@ -360,7 +361,7 @@ server.tool(
360
361
  // Team Tools (2) — permission: team
361
362
  // ─────────────────────────────────────────────────────────────────
362
363
 
363
- server.tool(
364
+ lifelineTool(server,
364
365
  "loop-team-info",
365
366
  "Get team details from Loop CRM. Returns team name, address, phone, and email.",
366
367
  {
@@ -369,7 +370,7 @@ server.tool(
369
370
  toolHandler(async (p) => teamInfo(p as Parameters<typeof teamInfo>[0]))
370
371
  );
371
372
 
372
- server.tool(
373
+ lifelineTool(server,
373
374
  "loop-team-availability",
374
375
  "Get available time slots for a specific agent on a given date.",
375
376
  {
@@ -384,7 +385,7 @@ server.tool(
384
385
  // Marketing Tools (4) — permission: marketing
385
386
  // ─────────────────────────────────────────────────────────────────
386
387
 
387
- server.tool(
388
+ lifelineTool(server,
388
389
  "loop-marketing-match",
389
390
  "Get matching property detail and optionally the team profile for that match.",
390
391
  {
@@ -396,7 +397,7 @@ server.tool(
396
397
  toolHandler(async (p) => marketingMatchDetail(p as Parameters<typeof marketingMatchDetail>[0]))
397
398
  );
398
399
 
399
- server.tool(
400
+ lifelineTool(server,
400
401
  "loop-marketing-match-batch",
401
402
  "Get batch matching results for multiple property IDs.",
402
403
  {
@@ -407,7 +408,7 @@ server.tool(
407
408
  toolHandler(async (p) => marketingMatchBatch(p as Parameters<typeof marketingMatchBatch>[0]))
408
409
  );
409
410
 
410
- server.tool(
411
+ lifelineTool(server,
411
412
  "loop-marketing-match-request",
412
413
  "Submit a viewing, information, or callback request for a matching property.",
413
414
  {
@@ -423,7 +424,7 @@ server.tool(
423
424
  toolHandler(async (p) => marketingMatchRequest(p as Parameters<typeof marketingMatchRequest>[0]))
424
425
  );
425
426
 
426
- server.tool(
427
+ lifelineTool(server,
427
428
  "loop-marketing-enquiry",
428
429
  "Submit a seller-side marketing enquiry to Loop. For inbound applicant auto-responder workflows use loop-auto-responder.",
429
430
  {
@@ -433,7 +434,7 @@ server.tool(
433
434
  toolHandler(async (p) => marketingEnquiry(p as Parameters<typeof marketingEnquiry>[0]))
434
435
  );
435
436
 
436
- server.tool(
437
+ lifelineTool(server,
437
438
  "loop-auto-responder",
438
439
  "Read or progress an inbound enquiry through Loop's auto-responder (the surface behind Loop's 40% enquiry-efficiency claim). action=get reads questions+details; answers submits applicant replies; details updates the enquiry record; refer hands it to another team.",
439
440
  {
@@ -451,7 +452,7 @@ server.tool(
451
452
  // Customer Tools (1) — permission: customer
452
453
  // ─────────────────────────────────────────────────────────────────
453
454
 
454
- server.tool(
455
+ lifelineTool(server,
455
456
  "loop-customer-preferences",
456
457
  "Read or write customer preferences for a person. Action 'read' returns current preferences, 'write' updates them.",
457
458
  {
@@ -467,7 +468,7 @@ server.tool(
467
468
  // Supplier Tools (1) — permission: supplier
468
469
  // ─────────────────────────────────────────────────────────────────
469
470
 
470
- server.tool(
471
+ lifelineTool(server,
471
472
  "loop-supplier",
472
473
  "Supplier operations: maintenance jobs, quotes, board contractor jobs. Supports listing, completing, and quoting.",
473
474
  {
@@ -8,6 +8,7 @@ import { keyRegister } from "./tools/key-register.js";
8
8
  import { keyDeregister } from "./tools/key-deregister.js";
9
9
  import { keyList } from "./tools/key-list.js";
10
10
  import { valuationSale, valuationRent, prices, pricesRent, soldPrices, demand, yields, growth, nationalHpi, pricesPerSqf, soldPricesPerSqf, crime, floodRisk, councilTax, planningApplications, addressMatchUprn, growthPsf, demandRent, propertyTypes, } from "./tools/endpoints.js";
11
+ import { lifelineTool } from "../../../../lib/mcp-lifeline/dist/index.js";
11
12
  import { closeDriver } from "./lib/neo4j.js";
12
13
  import { KeyNotRegisteredError, PropertyDataError, BadResponseError, } from "./lib/propertydata-api.js";
13
14
  import { selectKeyStore } from "./lib/key-store.js";
@@ -52,7 +53,7 @@ function endpointHandler(fn) {
52
53
  // ─────────────────────────────────────────────────────────────────
53
54
  // Key Management
54
55
  // ─────────────────────────────────────────────────────────────────
55
- server.tool("property-data-key-register", "Register the account's PropertyData API key. Validates the key against PropertyData's /national-hpi endpoint, encrypts it with AES-256-GCM, and stores it in Neo4j. One key per account; re-registering overwrites the existing key.", {
56
+ lifelineTool(server, "property-data-key-register", "Register the account's PropertyData API key. Validates the key against PropertyData's /national-hpi endpoint, encrypts it with AES-256-GCM, and stores it in Neo4j. One key per account; re-registering overwrites the existing key.", {
56
57
  apiKey: z.string().min(8).describe("PropertyData API key from propertydata.co.uk dashboard"),
57
58
  }, async ({ apiKey }) => {
58
59
  try {
@@ -70,7 +71,7 @@ server.tool("property-data-key-register", "Register the account's PropertyData A
70
71
  return errorEnvelope(err);
71
72
  }
72
73
  });
73
- server.tool("property-data-key-deregister", "Remove the account's PropertyData API key. The encrypted key is permanently deleted from Neo4j.", {}, async () => {
74
+ lifelineTool(server, "property-data-key-deregister", "Remove the account's PropertyData API key. The encrypted key is permanently deleted from Neo4j.", {}, async () => {
74
75
  try {
75
76
  await keyDeregister({ accountId });
76
77
  return {
@@ -81,7 +82,7 @@ server.tool("property-data-key-deregister", "Remove the account's PropertyData A
81
82
  return errorEnvelope(err);
82
83
  }
83
84
  });
84
- server.tool("property-data-key-list", "Show whether a PropertyData API key is registered for this account. Never reveals the key value.", {}, async () => {
85
+ lifelineTool(server, "property-data-key-list", "Show whether a PropertyData API key is registered for this account. Never reveals the key value.", {}, async () => {
85
86
  try {
86
87
  const text = await keyList({ accountId });
87
88
  return { content: [{ type: "text", text }] };
@@ -107,8 +108,8 @@ const valuationSchema = {
107
108
  .optional()
108
109
  .describe("Finish quality"),
109
110
  };
110
- server.tool("property-data-valuation-sale", "Point sale-price estimate for a property given postcode + attributes. Returns point estimate plus comparables.", valuationSchema, endpointHandler(valuationSale));
111
- server.tool("property-data-valuation-rent", "Point rent estimate (PCM) for a property given postcode + attributes. Returns point estimate plus comparables.", valuationSchema, endpointHandler(valuationRent));
111
+ lifelineTool(server, "property-data-valuation-sale", "Point sale-price estimate for a property given postcode + attributes. Returns point estimate plus comparables.", valuationSchema, endpointHandler(valuationSale));
112
+ lifelineTool(server, "property-data-valuation-rent", "Point rent estimate (PCM) for a property given postcode + attributes. Returns point estimate plus comparables.", valuationSchema, endpointHandler(valuationRent));
112
113
  // ─────────────────────────────────────────────────────────────────
113
114
  // Asking-price distributions
114
115
  // ─────────────────────────────────────────────────────────────────
@@ -120,12 +121,12 @@ const pricesSchema = {
120
121
  .describe("Filter by property type"),
121
122
  bedrooms: z.number().int().min(0).optional().describe("Filter by bedroom count"),
122
123
  };
123
- server.tool("property-data-prices", "Asking-price distribution for sale listings in a postcode — mean, median, 80th percentile.", pricesSchema, endpointHandler(prices));
124
- server.tool("property-data-prices-rent", "Asking-price distribution for rental listings in a postcode — mean, median, 80th percentile (PCM).", pricesSchema, endpointHandler(pricesRent));
124
+ lifelineTool(server, "property-data-prices", "Asking-price distribution for sale listings in a postcode — mean, median, 80th percentile.", pricesSchema, endpointHandler(prices));
125
+ lifelineTool(server, "property-data-prices-rent", "Asking-price distribution for rental listings in a postcode — mean, median, 80th percentile (PCM).", pricesSchema, endpointHandler(pricesRent));
125
126
  // ─────────────────────────────────────────────────────────────────
126
127
  // Sold prices (Land Registry)
127
128
  // ─────────────────────────────────────────────────────────────────
128
- server.tool("property-data-sold-prices", "Land Registry sold transactions for a postcode, optionally filtered by age, type, and bedrooms.", {
129
+ lifelineTool(server, "property-data-sold-prices", "Land Registry sold transactions for a postcode, optionally filtered by age, type, and bedrooms.", {
129
130
  postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
130
131
  max_age: z.number().int().min(1).optional().describe("Max transaction age in months"),
131
132
  type: z
@@ -137,13 +138,13 @@ server.tool("property-data-sold-prices", "Land Registry sold transactions for a
137
138
  // ─────────────────────────────────────────────────────────────────
138
139
  // Demand / yields / growth / national HPI
139
140
  // ─────────────────────────────────────────────────────────────────
140
- server.tool("property-data-demand", "Demand signals for a postcode — count of properties for sale and average days to sell-STC.", { postcode: z.string().min(2).describe("UK postcode (outcode or full)") }, endpointHandler(demand));
141
- server.tool("property-data-yields", "Gross rental yield for a postcode and bedroom count.", {
141
+ lifelineTool(server, "property-data-demand", "Demand signals for a postcode — count of properties for sale and average days to sell-STC.", { postcode: z.string().min(2).describe("UK postcode (outcode or full)") }, endpointHandler(demand));
142
+ lifelineTool(server, "property-data-yields", "Gross rental yield for a postcode and bedroom count.", {
142
143
  postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
143
144
  bedrooms: z.number().int().min(0).describe("Bedroom count"),
144
145
  }, endpointHandler(yields));
145
- server.tool("property-data-growth", "Short-term and long-term price growth signals for a postcode.", { postcode: z.string().min(2).describe("UK postcode (outcode or full)") }, endpointHandler(growth));
146
- server.tool("property-data-national-hpi", "UK national house-price index series. No postcode required.", {}, endpointHandler(nationalHpi));
146
+ lifelineTool(server, "property-data-growth", "Short-term and long-term price growth signals for a postcode.", { postcode: z.string().min(2).describe("UK postcode (outcode or full)") }, endpointHandler(growth));
147
+ lifelineTool(server, "property-data-national-hpi", "UK national house-price index series. No postcode required.", {}, endpointHandler(nationalHpi));
147
148
  // ─────────────────────────────────────────────────────────────────
148
149
  // Task 144 — £/sqft baselines and growth
149
150
  // ─────────────────────────────────────────────────────────────────
@@ -155,8 +156,8 @@ const pricesPerSqfSchema = {
155
156
  .describe("Filter by property type"),
156
157
  bedrooms: z.number().int().min(0).optional().describe("Filter by bedroom count"),
157
158
  };
158
- server.tool("property-data-prices-per-sqf", "Asking £/sqft distribution for sale listings in a postcode — avg plus 70/80/90/100% percentile ranges, with the raw listings that have square-foot data. Use for the asking £/sqft KPI on a market report. Costs 1 credit per call.", pricesPerSqfSchema, endpointHandler(pricesPerSqf));
159
- server.tool("property-data-sold-prices-per-sqf", "Land Registry sold £/sqft distribution for a postcode — avg plus percentile ranges, up to 20 raw sales with square-foot data and a sales-window date range. Use for the achieved £/sqft KPI. Costs 1 credit per call.", {
159
+ lifelineTool(server, "property-data-prices-per-sqf", "Asking £/sqft distribution for sale listings in a postcode — avg plus 70/80/90/100% percentile ranges, with the raw listings that have square-foot data. Use for the asking £/sqft KPI on a market report. Costs 1 credit per call.", pricesPerSqfSchema, endpointHandler(pricesPerSqf));
160
+ lifelineTool(server, "property-data-sold-prices-per-sqf", "Land Registry sold £/sqft distribution for a postcode — avg plus percentile ranges, up to 20 raw sales with square-foot data and a sales-window date range. Use for the achieved £/sqft KPI. Costs 1 credit per call.", {
160
161
  postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
161
162
  type: z
162
163
  .enum(["detached", "semi-detached", "terraced", "flat"])
@@ -165,7 +166,7 @@ server.tool("property-data-sold-prices-per-sqf", "Land Registry sold £/sqft dis
165
166
  bedrooms: z.number().int().min(0).optional().describe("Filter by bedroom count"),
166
167
  max_age: z.number().int().min(1).optional().describe("Max transaction age in months"),
167
168
  }, endpointHandler(soldPricesPerSqf));
168
- server.tool("property-data-growth-psf", "7-year £/sqft series with year-on-year percent change for a postcode. Use for the £/sqft growth chart on a market report. Costs 1 credit per call.", {
169
+ lifelineTool(server, "property-data-growth-psf", "7-year £/sqft series with year-on-year percent change for a postcode. Use for the £/sqft growth chart on a market report. Costs 1 credit per call.", {
169
170
  postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
170
171
  type: z
171
172
  .enum(["detached", "semi-detached", "terraced", "flat"])
@@ -175,7 +176,7 @@ server.tool("property-data-growth-psf", "7-year £/sqft series with year-on-year
175
176
  // ─────────────────────────────────────────────────────────────────
176
177
  // Task 144 — Area risk and cost of occupancy
177
178
  // ─────────────────────────────────────────────────────────────────
178
- server.tool("property-data-crime", "Recent crime statistics for a postcode (or location / town) — per-1,000 rate, 12-month total, breakdown by crime type, and per-month observations. Use for the area-risk pillar. Costs 1 credit per call.", {
179
+ lifelineTool(server, "property-data-crime", "Recent crime statistics for a postcode (or location / town) — per-1,000 rate, 12-month total, breakdown by crime type, and per-month observations. Use for the area-risk pillar. Costs 1 credit per call.", {
179
180
  postcode: z.string().min(2).optional().describe("UK postcode (outcode or full)"),
180
181
  location: z
181
182
  .string()
@@ -183,16 +184,16 @@ server.tool("property-data-crime", "Recent crime statistics for a postcode (or l
183
184
  .describe("Latitude,longitude pair (e.g. '51.5074,-0.1278'). Alternative to postcode."),
184
185
  town: z.string().optional().describe("UK town name. Alternative to postcode."),
185
186
  }, endpointHandler(crime));
186
- server.tool("property-data-flood-risk", "River and sea flood-risk rating for a full UK postcode. Use for area-risk reporting and lender-ready disclosures. Requires a full postcode (not outcode). Costs 1 credit per call.", {
187
+ lifelineTool(server, "property-data-flood-risk", "River and sea flood-risk rating for a full UK postcode. Use for area-risk reporting and lender-ready disclosures. Requires a full postcode (not outcode). Costs 1 credit per call.", {
187
188
  postcode: z.string().min(5).describe("Full UK postcode (not outcode)"),
188
189
  }, endpointHandler(floodRisk));
189
- server.tool("property-data-council-tax", "Council-tax authority, rating, and per-band charges (A–H) for a full UK postcode, plus any per-property bands the API returns. Use for cost-of-occupancy disclosures. Requires a full postcode. Costs 1 credit per call.", {
190
+ lifelineTool(server, "property-data-council-tax", "Council-tax authority, rating, and per-band charges (A–H) for a full UK postcode, plus any per-property bands the API returns. Use for cost-of-occupancy disclosures. Requires a full postcode. Costs 1 credit per call.", {
190
191
  postcode: z.string().min(5).describe("Full UK postcode (not outcode)"),
191
192
  }, endpointHandler(councilTax));
192
193
  // ─────────────────────────────────────────────────────────────────
193
194
  // Task 144 — Planning precedent and address resolution
194
195
  // ─────────────────────────────────────────────────────────────────
195
- server.tool("property-data-planning-applications", "Planning applications within a radius of a postcode — references, proposals, decisions, appeals, distance. Use for development precedent and pre-purchase risk. Costs 2 credits per call. Throttled to ~4 calls per 10 seconds upstream — wrap in the preval skill for fan-out, do not loop directly.", {
196
+ lifelineTool(server, "property-data-planning-applications", "Planning applications within a radius of a postcode — references, proposals, decisions, appeals, distance. Use for development precedent and pre-purchase risk. Costs 2 credits per call. Throttled to ~4 calls per 10 seconds upstream — wrap in the preval skill for fan-out, do not loop directly.", {
196
197
  postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
197
198
  decision_rating: z
198
199
  .enum(["positive", "neutral", "negative"])
@@ -207,13 +208,13 @@ server.tool("property-data-planning-applications", "Planning applications within
207
208
  .describe("Max age of decision in months"),
208
209
  results: z.number().int().min(1).max(100).optional().describe("Max results to return"),
209
210
  }, endpointHandler(planningApplications));
210
- server.tool("property-data-address-match-uprn", "Resolve a full UK address string to its UPRN, address classification, and lat/lng. Use for CRM hygiene and unique-property identification. Costs 10 credits per call — do not fan out blindly; call once per address you actually need to resolve.", {
211
+ lifelineTool(server, "property-data-address-match-uprn", "Resolve a full UK address string to its UPRN, address classification, and lat/lng. Use for CRM hygiene and unique-property identification. Costs 10 credits per call — do not fan out blindly; call once per address you actually need to resolve.", {
211
212
  address: z.string().min(5).describe("Full UK address (line one + postcode)"),
212
213
  }, endpointHandler(addressMatchUprn));
213
214
  // ─────────────────────────────────────────────────────────────────
214
215
  // Task 144 — Rental demand and property-type mix
215
216
  // ─────────────────────────────────────────────────────────────────
216
- server.tool("property-data-demand-rent", "Rental demand signals for a postcode — for-rent count, lets per month, turnover percent, months of inventory, days on market, and a rating. Use for the rental pillar on a market report. Costs 1 credit per call.", {
217
+ lifelineTool(server, "property-data-demand-rent", "Rental demand signals for a postcode — for-rent count, lets per month, turnover percent, months of inventory, days on market, and a rating. Use for the rental pillar on a market report. Costs 1 credit per call.", {
217
218
  postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
218
219
  bedrooms: z.number().int().min(0).optional().describe("Filter by bedroom count"),
219
220
  type: z
@@ -221,7 +222,7 @@ server.tool("property-data-demand-rent", "Rental demand signals for a postcode
221
222
  .optional()
222
223
  .describe("Filter by property type"),
223
224
  }, endpointHandler(demandRent));
224
- server.tool("property-data-property-types", "Output-area property-type distribution (percent by class — detached, semi-detached, terraced, flat) for a postcode. Use for the property-type mix doughnut on a market report. Costs 1 credit per call.", {
225
+ lifelineTool(server, "property-data-property-types", "Output-area property-type distribution (percent by class — detached, semi-detached, terraced, flat) for a postcode. Use for the property-type mix doughnut on a market report. Costs 1 credit per call.", {
225
226
  postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
226
227
  }, endpointHandler(propertyTypes));
227
228
  // ─────────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}