@rubytech/create-maxy-code 0.1.58 → 0.1.59
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/package.json +1 -1
- package/payload/platform/plugins/admin/hooks/__tests__/turn-completed-graph-write.test.sh +30 -19
- package/payload/platform/plugins/admin/hooks/turn-completed-graph-write.sh +35 -90
- package/payload/platform/plugins/docs/references/admin-session.md +17 -16
- package/payload/platform/plugins/docs/references/platform.md +3 -3
- package/payload/platform/plugins/docs/references/plugins-guide.md +1 -1
- package/payload/platform/plugins/preval/.claude-plugin/plugin.json +8 -0
- package/payload/platform/plugins/preval/PLUGIN.md +39 -0
- package/payload/platform/plugins/preval/skills/property-preval/SKILL.md +78 -0
- package/payload/platform/plugins/preval/skills/property-preval/references/render.py +265 -0
- package/payload/platform/plugins/preval/skills/property-preval/references/template-inputs.schema.json +143 -0
- package/payload/platform/plugins/preval/skills/property-preval/references/template.html +253 -0
- package/payload/platform/plugins/property-data/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/property-data/PLUGIN.md +46 -1
- package/payload/platform/plugins/property-data/mcp/dist/index.js +81 -1
- package/payload/platform/plugins/property-data/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.d.ts +10 -0
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.d.ts.map +1 -1
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.js +13 -0
- package/payload/platform/plugins/property-data/mcp/dist/tools/endpoints.js.map +1 -1
- package/payload/platform/plugins/property-data/mcp/src/__tests__/endpoints.test.ts +252 -0
- package/payload/platform/plugins/property-data/mcp/src/__tests__/schema-parity.test.ts +16 -2
- package/payload/platform/plugins/property-data/mcp/src/index.ts +155 -0
- package/payload/platform/plugins/property-data/mcp/src/tools/endpoints.ts +20 -0
- package/payload/platform/plugins/property-data/skills/property-data/SKILL.md +19 -0
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +25 -260
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts +3 -7
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js +6 -32
- package/payload/platform/services/claude-session-manager/dist/jsonl-enumerator.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +6 -24
- 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 +18 -91
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/reaper.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/reaper.js +0 -11
- package/payload/platform/services/claude-session-manager/dist/reaper.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-store.d.ts +0 -21
- package/payload/platform/services/claude-session-manager/dist/session-store.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/session-store.js.map +1 -1
- package/payload/platform/templates/agents/admin/IDENTITY.md +1 -1
- package/payload/platform/templates/agents/admin/SOUL.md +1 -1
- package/payload/premium-plugins/real-agent/BUNDLE.md +5 -3
- package/payload/premium-plugins/real-agent/agents/negotiator.md +1 -1
- package/payload/premium-plugins/real-agent/agents/valuer.md +1 -1
- package/payload/premium-plugins/real-agent/plugins/.claude-plugin/marketplace.json +5 -0
- package/payload/premium-plugins/real-agent/plugins/preval/.claude-plugin/plugin.json +8 -0
- package/payload/premium-plugins/real-agent/plugins/preval/PLUGIN.md +39 -0
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/SKILL.md +78 -0
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/render.py +265 -0
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template-inputs.schema.json +143 -0
- package/payload/premium-plugins/real-agent/plugins/preval/skills/property-preval/references/template.html +253 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/.claude-plugin/plugin.json +1 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/PLUGIN.md +46 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js +81 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/index.js.map +1 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.d.ts +10 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.d.ts.map +1 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.js +13 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/dist/tools/endpoints.js.map +1 -1
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/endpoints.test.ts +252 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/__tests__/schema-parity.test.ts +16 -2
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/index.ts +155 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/mcp/src/tools/endpoints.ts +20 -0
- package/payload/premium-plugins/real-agent/plugins/property-data/skills/property-data/SKILL.md +19 -0
- package/payload/server/public/assets/{admin-2ZJmzJ_g.js → admin-nqCBFiSl.js} +1 -1
- package/payload/server/public/assets/{data-DlmoKxmN.js → data-BGUAGVkV.js} +1 -1
- package/payload/server/public/assets/{graph-BVvcFSEQ.js → graph-MvYxZOBF.js} +1 -1
- package/payload/server/public/assets/{graph-labels-cCvgu38Y.js → graph-labels-D865qb3K.js} +1 -1
- package/payload/server/public/assets/{page-BnAxPkmg.js → page--hOVRrgN.js} +1 -1
- package/payload/server/public/assets/{page-BnaN3u86.js → page-C2b1nlOc.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 +19 -85
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>Pre-valuation · <!-- REPLACE: address --> · <!-- REPLACE: generated --></title>
|
|
6
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&family=Lora:ital,wght@0,400;0,500;0,600;1,400&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
|
10
|
+
<style>
|
|
11
|
+
:root{
|
|
12
|
+
--teal-900:#064444;
|
|
13
|
+
--teal-950:#042D2D;
|
|
14
|
+
--gold-500:#B8945F;
|
|
15
|
+
--paper-0:#FFFFFF;
|
|
16
|
+
--paper-25:#FAF7F2;
|
|
17
|
+
--paper-50:#FBF8F8;
|
|
18
|
+
--paper-75:#F2EDE3;
|
|
19
|
+
--slate-500:#56605F; --slate-600:#6E6E6E;
|
|
20
|
+
--rule-300:#E3DCCE;
|
|
21
|
+
|
|
22
|
+
--text-default:var(--teal-900);
|
|
23
|
+
--text-muted:var(--slate-600);
|
|
24
|
+
--text-accent:var(--gold-500);
|
|
25
|
+
--text-on-dark:var(--paper-0);
|
|
26
|
+
--surface-page:var(--paper-25);
|
|
27
|
+
--surface-card:var(--paper-0);
|
|
28
|
+
--surface-banded:var(--paper-75);
|
|
29
|
+
--surface-deep:var(--teal-900);
|
|
30
|
+
--radius-md:4px; --radius-lg:8px; --radius-xl:16px;
|
|
31
|
+
|
|
32
|
+
--display:"Cormorant Garamond",Garamond,Georgia,serif;
|
|
33
|
+
--body:"Lora",Georgia,serif;
|
|
34
|
+
--sans:"Inter",system-ui,sans-serif;
|
|
35
|
+
}
|
|
36
|
+
*{box-sizing:border-box;margin:0;padding:0}
|
|
37
|
+
html,body{background:var(--rule-300);font-family:var(--body);color:var(--text-default);font-weight:400;-webkit-font-smoothing:antialiased}
|
|
38
|
+
.page{width:210mm;min-height:297mm;height:297mm;margin:8mm auto;background:var(--surface-page);position:relative;overflow:hidden;padding:18mm 16mm;page-break-after:always}
|
|
39
|
+
.page.dark{background:var(--surface-deep);color:var(--text-on-dark)}
|
|
40
|
+
@page{size:A4 portrait;margin:0}
|
|
41
|
+
@media print{html,body{background:transparent} .page{margin:0;box-shadow:none;page-break-after:always}}
|
|
42
|
+
|
|
43
|
+
h1,h2,h3,h4{font-family:var(--display);font-weight:500;line-height:1.15;color:inherit}
|
|
44
|
+
h1{font-family:var(--display);font-style:italic;font-weight:400;font-size:38pt;letter-spacing:-.6pt;line-height:1.05}
|
|
45
|
+
h2{font-size:24pt;font-style:italic;font-weight:400;margin-bottom:5mm;letter-spacing:-.3pt}
|
|
46
|
+
h3{font-size:14pt;font-weight:500}
|
|
47
|
+
h4{font-family:var(--sans);font-size:8.5pt;font-weight:600;letter-spacing:2.2pt;text-transform:uppercase;color:var(--text-accent)}
|
|
48
|
+
p{font-size:11pt;line-height:1.65;color:inherit;font-family:var(--body)}
|
|
49
|
+
.muted{color:var(--text-muted);font-size:9.5pt;line-height:1.55;font-family:var(--body)}
|
|
50
|
+
.eyebrow{font-family:var(--sans);font-weight:600;font-size:9pt;letter-spacing:3pt;text-transform:uppercase;color:var(--text-accent)}
|
|
51
|
+
|
|
52
|
+
.cover-frame{position:absolute;inset:0;padding:24mm 18mm;display:flex;flex-direction:column;justify-content:space-between;z-index:1;background:linear-gradient(180deg,var(--teal-900) 0%,var(--teal-950) 100%);color:var(--text-on-dark)}
|
|
53
|
+
.cover-eyebrow{font-family:var(--sans);font-weight:600;font-size:9pt;letter-spacing:3.5pt;text-transform:uppercase;color:var(--gold-500)}
|
|
54
|
+
.cover-rule{height:1px;background:var(--gold-500);width:30mm}
|
|
55
|
+
.pc-chip{display:inline-flex;align-items:center;padding:2.5mm 6mm;border:1px solid var(--gold-500);border-radius:50px;color:var(--gold-500);font-family:var(--sans);font-weight:600;font-size:10pt;letter-spacing:2.5pt}
|
|
56
|
+
.cover-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8mm;border-top:1px solid rgba(255,255,255,.22);padding-top:8mm}
|
|
57
|
+
.cover-meta dt{font-family:var(--sans);font-weight:600;font-size:8pt;letter-spacing:2pt;text-transform:uppercase;color:var(--gold-500);margin-bottom:3mm}
|
|
58
|
+
.cover-meta dd{font-family:var(--display);font-style:italic;font-weight:500;font-size:14pt;color:var(--text-on-dark)}
|
|
59
|
+
|
|
60
|
+
.doc-head{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:6mm;border-bottom:1px solid var(--rule-300);margin-bottom:7mm}
|
|
61
|
+
.doc-head .wm{font-family:var(--display);font-style:normal;font-weight:600;font-size:18pt;color:var(--teal-900);letter-spacing:-.4pt}
|
|
62
|
+
.doc-head .breadcrumb{font-family:var(--sans);font-weight:500;font-size:8pt;letter-spacing:2pt;text-transform:uppercase;color:var(--text-muted);text-align:right}
|
|
63
|
+
|
|
64
|
+
.kpis-4{display:grid;grid-template-columns:repeat(4,1fr);gap:4mm;margin-bottom:6mm}
|
|
65
|
+
.kpi{background:var(--surface-card);border-radius:var(--radius-lg);padding:5mm;border:1px solid var(--rule-300);position:relative;overflow:hidden}
|
|
66
|
+
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1.4mm;background:var(--gold-500)}
|
|
67
|
+
.kpi .label{font-family:var(--sans);font-weight:600;font-size:7pt;letter-spacing:1.7pt;text-transform:uppercase;color:var(--text-muted);margin-bottom:2mm}
|
|
68
|
+
.kpi .value{font-family:var(--display);font-style:italic;font-weight:500;font-size:20pt;color:var(--text-default);line-height:1;letter-spacing:-.3pt}
|
|
69
|
+
.kpi .sub{font-size:8pt;color:var(--text-muted);margin-top:2mm;font-family:var(--body);font-style:italic}
|
|
70
|
+
|
|
71
|
+
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:6mm;align-items:start}
|
|
72
|
+
.panel{background:var(--surface-card);border-radius:var(--radius-lg);padding:5.5mm;border:1px solid var(--rule-300)}
|
|
73
|
+
.panel.banded{background:var(--surface-banded)}
|
|
74
|
+
.panel h4{margin-bottom:3mm}
|
|
75
|
+
|
|
76
|
+
table.cmp{width:100%;border-collapse:collapse;font-size:10pt;font-family:var(--body)}
|
|
77
|
+
table.cmp th,table.cmp td{padding:2.2mm 2mm;text-align:left;border-bottom:1px solid var(--rule-300)}
|
|
78
|
+
table.cmp th{font-family:var(--sans);font-weight:600;font-size:7.5pt;letter-spacing:1.8pt;text-transform:uppercase;color:var(--text-muted)}
|
|
79
|
+
table.cmp td.num{font-family:var(--display);font-style:italic;font-weight:500;text-align:right;font-size:11pt}
|
|
80
|
+
table.cmp tr:last-child td{border-bottom:none}
|
|
81
|
+
|
|
82
|
+
.ask-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3mm}
|
|
83
|
+
.ask-tile{background:var(--surface-card);border:1px solid var(--rule-300);border-radius:var(--radius-md);padding:3mm}
|
|
84
|
+
.ask-tile .addr{font-family:var(--display);font-style:italic;font-weight:500;font-size:11pt;color:var(--text-default);line-height:1.15}
|
|
85
|
+
.ask-tile .price{font-family:var(--display);font-style:italic;font-weight:500;font-size:13pt;color:var(--teal-900);margin-top:1.5mm}
|
|
86
|
+
.ask-tile .meta{font-family:var(--sans);font-weight:500;font-size:6.5pt;letter-spacing:.5pt;color:var(--text-muted);margin-top:1.5mm;text-transform:uppercase}
|
|
87
|
+
|
|
88
|
+
.dist{display:flex;flex-direction:column;gap:2.5mm;margin-top:2mm}
|
|
89
|
+
.dist-row{display:grid;grid-template-columns:40mm 1fr 14mm;align-items:center;gap:3mm}
|
|
90
|
+
.dist-row .name{font-size:9.5pt;color:var(--text-default);font-family:var(--body)}
|
|
91
|
+
.dist-row .pct{font-family:var(--display);font-style:italic;font-weight:500;font-size:11pt;color:var(--text-default);text-align:right}
|
|
92
|
+
.bar{height:4mm;background:var(--paper-75);border-radius:var(--radius-md);overflow:hidden}
|
|
93
|
+
.bar > span{display:block;height:100%;background:var(--teal-900);border-radius:var(--radius-md)}
|
|
94
|
+
.bar > span.gold{background:var(--gold-500)}
|
|
95
|
+
|
|
96
|
+
.pill{display:inline-flex;align-items:center;gap:2.5mm;padding:1.5mm 4mm;border-radius:50px;background:var(--gold-500);color:var(--text-on-dark);font-family:var(--display);font-style:italic;font-weight:500;font-size:10pt;letter-spacing:.3pt}
|
|
97
|
+
.pill::before{content:"";width:2mm;height:2mm;border-radius:50%;background:#fff}
|
|
98
|
+
|
|
99
|
+
.spark{width:100%;height:38mm;display:block;background:var(--surface-card);border:1px solid var(--rule-300);border-radius:var(--radius-md)}
|
|
100
|
+
.spark .pl{fill:none;stroke:var(--teal-900);stroke-width:1.4}
|
|
101
|
+
.spark .pl-psf{fill:none;stroke:var(--gold-500);stroke-width:1.4;stroke-dasharray:2 1.5}
|
|
102
|
+
.spark .pt{fill:var(--teal-900)}
|
|
103
|
+
.spark .pt-psf{fill:var(--gold-500)}
|
|
104
|
+
.spark text{font-family:Inter,sans-serif;font-size:5pt;fill:#6E6E6E;letter-spacing:.4pt}
|
|
105
|
+
.spark .axis{stroke:var(--rule-300);stroke-width:.4}
|
|
106
|
+
|
|
107
|
+
.legend{display:flex;gap:6mm;font-family:var(--sans);font-weight:500;font-size:7pt;letter-spacing:1.3pt;text-transform:uppercase;color:var(--text-muted);margin-top:2mm}
|
|
108
|
+
.legend .sw{display:inline-block;width:6mm;height:1mm;vertical-align:middle;margin-right:2mm;background:var(--teal-900)}
|
|
109
|
+
.legend .sw.gold{background:var(--gold-500)}
|
|
110
|
+
|
|
111
|
+
.doc-foot{position:absolute;bottom:9mm;left:16mm;right:16mm;display:flex;justify-content:space-between;font-family:var(--sans);font-weight:500;font-size:8pt;letter-spacing:1.5pt;text-transform:uppercase;color:var(--text-muted)}
|
|
112
|
+
.page.dark .doc-foot{color:#7FA0A0}
|
|
113
|
+
|
|
114
|
+
.sources{margin-top:5mm;padding-top:5mm;border-top:1px solid var(--rule-300)}
|
|
115
|
+
.sources h4{margin-bottom:3mm}
|
|
116
|
+
.sources p{font-size:8pt;color:var(--text-muted);line-height:1.55;font-family:var(--body);font-style:italic}
|
|
117
|
+
.sources p + p{margin-top:2.5mm}
|
|
118
|
+
</style>
|
|
119
|
+
</head>
|
|
120
|
+
<body>
|
|
121
|
+
|
|
122
|
+
<!-- PAGE 1 — COVER -->
|
|
123
|
+
<section class="page dark">
|
|
124
|
+
<div class="cover-frame">
|
|
125
|
+
<div>
|
|
126
|
+
<div class="cover-eyebrow">Real Agent · Pre-valuation</div>
|
|
127
|
+
<div class="cover-rule" style="margin-top:6mm"></div>
|
|
128
|
+
</div>
|
|
129
|
+
<div>
|
|
130
|
+
<h4 style="color:var(--gold-500);margin-bottom:6mm">Pre-valuation pack</h4>
|
|
131
|
+
<h1 style="color:var(--text-on-dark);max-width:170mm"><!-- REPLACE: address --></h1>
|
|
132
|
+
<div style="margin-top:10mm"><span class="pc-chip"><!-- REPLACE: postcode --></span></div>
|
|
133
|
+
</div>
|
|
134
|
+
<dl class="cover-meta">
|
|
135
|
+
<div><dt>Report</dt><dd>Pre-valuation</dd></div>
|
|
136
|
+
<div><dt>Postcode</dt><dd><!-- REPLACE: postcode --></dd></div>
|
|
137
|
+
<div><dt>Generated</dt><dd><!-- REPLACE: generated --></dd></div>
|
|
138
|
+
</dl>
|
|
139
|
+
</div>
|
|
140
|
+
<div class="doc-foot" style="z-index:2"><span>Real Agent · Property Intelligence</span><span>01</span></div>
|
|
141
|
+
</section>
|
|
142
|
+
|
|
143
|
+
<!-- PAGE 2 — VALUATION -->
|
|
144
|
+
<section class="page">
|
|
145
|
+
<header class="doc-head">
|
|
146
|
+
<div class="wm">Real Agent</div>
|
|
147
|
+
<div class="breadcrumb">Valuation · <!-- REPLACE: postcode --> · <!-- REPLACE: generated --></div>
|
|
148
|
+
</header>
|
|
149
|
+
<div class="eyebrow">Valuation evidence</div>
|
|
150
|
+
<h2 style="margin-top:3mm">What this property is worth.</h2>
|
|
151
|
+
<div class="kpis-4">
|
|
152
|
+
<div class="kpi"><div class="label">Avg asking £</div><div class="value"><!-- REPLACE: kpi_avg_asking --></div><div class="sub">Live listings — <!-- REPLACE: postcode --></div></div>
|
|
153
|
+
<div class="kpi"><div class="label">Asking £/sqft</div><div class="value"><!-- REPLACE: kpi_asking_psf --></div><div class="sub">Mean listing PSF</div></div>
|
|
154
|
+
<div class="kpi"><div class="label">Avg sold £</div><div class="value"><!-- REPLACE: kpi_avg_sold --></div><div class="sub">Completed transactions</div></div>
|
|
155
|
+
<div class="kpi"><div class="label">Sold £/sqft</div><div class="value"><!-- REPLACE: kpi_sold_psf --></div><div class="sub">Achieved PSF</div></div>
|
|
156
|
+
</div>
|
|
157
|
+
<div class="two-col" style="grid-template-columns:1.15fr .85fr">
|
|
158
|
+
<div class="panel banded">
|
|
159
|
+
<h4>Nearest sold comparables</h4>
|
|
160
|
+
<table class="cmp" style="margin-top:3mm">
|
|
161
|
+
<tr><th>Date</th><th>Address</th><th>Type</th><th style="text-align:right">Price</th></tr>
|
|
162
|
+
<!-- REPLACE: sold_comps_rows -->
|
|
163
|
+
</table>
|
|
164
|
+
</div>
|
|
165
|
+
<div class="panel">
|
|
166
|
+
<h4>Live asking comparables</h4>
|
|
167
|
+
<div class="ask-grid" style="margin-top:3mm">
|
|
168
|
+
<!-- REPLACE: asking_comps_tiles -->
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
<div class="doc-foot"><span>Real Agent · Property Intelligence</span><span>02</span></div>
|
|
173
|
+
</section>
|
|
174
|
+
|
|
175
|
+
<!-- PAGE 3 — AREA -->
|
|
176
|
+
<section class="page">
|
|
177
|
+
<header class="doc-head">
|
|
178
|
+
<div class="wm">Real Agent</div>
|
|
179
|
+
<div class="breadcrumb">Area · <!-- REPLACE: postcode --> · <!-- REPLACE: generated --></div>
|
|
180
|
+
</header>
|
|
181
|
+
<div class="eyebrow">Area read</div>
|
|
182
|
+
<h2 style="margin-top:3mm"><!-- REPLACE: area_headline --></h2>
|
|
183
|
+
<div class="kpis-4">
|
|
184
|
+
<div class="kpi"><div class="label">Crime rating</div><div class="value"><!-- REPLACE: kpi_crime --></div><div class="sub">Area average</div></div>
|
|
185
|
+
<div class="kpi"><div class="label">Flood risk</div><div class="value"><!-- REPLACE: kpi_flood --></div><div class="sub">Postcode level</div></div>
|
|
186
|
+
<div class="kpi"><div class="label">Council tax · D</div><div class="value"><!-- REPLACE: kpi_band_d --></div><div class="sub">Annual at band D</div></div>
|
|
187
|
+
<div class="kpi"><div class="label">Population</div><div class="value"><!-- REPLACE: kpi_population --></div><div class="sub">Local area</div></div>
|
|
188
|
+
</div>
|
|
189
|
+
<div class="two-col">
|
|
190
|
+
<div class="panel">
|
|
191
|
+
<h4>Crime breakdown · 12-month</h4>
|
|
192
|
+
<div class="dist" style="margin-top:3mm">
|
|
193
|
+
<!-- REPLACE: crime_rows -->
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
<div class="panel banded">
|
|
197
|
+
<h4>Council-tax bands</h4>
|
|
198
|
+
<table class="cmp" style="margin-top:3mm">
|
|
199
|
+
<tr><th>Band</th><th style="text-align:right">Annual £</th></tr>
|
|
200
|
+
<!-- REPLACE: band_rows -->
|
|
201
|
+
</table>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
<div class="doc-foot"><span>Real Agent · Property Intelligence</span><span>03</span></div>
|
|
205
|
+
</section>
|
|
206
|
+
|
|
207
|
+
<!-- PAGE 4 — DEMAND + TREND + SOURCES -->
|
|
208
|
+
<section class="page">
|
|
209
|
+
<header class="doc-head">
|
|
210
|
+
<div class="wm">Real Agent</div>
|
|
211
|
+
<div class="breadcrumb">Demand & trend · <!-- REPLACE: postcode --> · <!-- REPLACE: generated --></div>
|
|
212
|
+
</header>
|
|
213
|
+
<div class="eyebrow">Market posture</div>
|
|
214
|
+
<h2 style="margin-top:3mm">How the market is moving.</h2>
|
|
215
|
+
<div class="kpis-4">
|
|
216
|
+
<div class="kpi"><div class="label">Demand</div><div class="value" style="font-size:14pt"><!-- REPLACE: kpi_demand_rating --></div><div class="sub">Sales-side rating</div></div>
|
|
217
|
+
<div class="kpi"><div class="label">Days on market</div><div class="value"><!-- REPLACE: kpi_dom --></div><div class="sub">Average list-to-sale</div></div>
|
|
218
|
+
<div class="kpi"><div class="label">Turnover / mo</div><div class="value"><!-- REPLACE: kpi_turnover --></div><div class="sub">Stock churn</div></div>
|
|
219
|
+
<div class="kpi"><div class="label">For sale</div><div class="value"><!-- REPLACE: kpi_for_sale --></div><div class="sub">Live listings</div></div>
|
|
220
|
+
</div>
|
|
221
|
+
<div class="two-col" style="grid-template-columns:1.4fr .6fr">
|
|
222
|
+
<div class="panel">
|
|
223
|
+
<h4>7-year price trend · £ and £/sqft</h4>
|
|
224
|
+
<!-- REPLACE: spark_svg -->
|
|
225
|
+
<div class="legend"><span><span class="sw"></span>Average £</span><span><span class="sw gold"></span>£/sqft</span></div>
|
|
226
|
+
</div>
|
|
227
|
+
<div class="panel banded">
|
|
228
|
+
<h4>Rental side</h4>
|
|
229
|
+
<div style="margin-top:3mm"><span class="pill"><!-- REPLACE: rental_rating --></span></div>
|
|
230
|
+
<table class="cmp" style="margin-top:4mm">
|
|
231
|
+
<tr><td>Days on market</td><td class="num"><!-- REPLACE: rental_dom --></td></tr>
|
|
232
|
+
<tr><td>Turnover / month</td><td class="num"><!-- REPLACE: rental_turnover --></td></tr>
|
|
233
|
+
<tr><td>For rent</td><td class="num"><!-- REPLACE: rental_for_rent --></td></tr>
|
|
234
|
+
</table>
|
|
235
|
+
</div>
|
|
236
|
+
</div>
|
|
237
|
+
<div class="panel" style="margin-top:5mm">
|
|
238
|
+
<h4>Property-type mix</h4>
|
|
239
|
+
<div class="dist" style="margin-top:2mm">
|
|
240
|
+
<!-- REPLACE: type_dist_rows -->
|
|
241
|
+
</div>
|
|
242
|
+
</div>
|
|
243
|
+
<div class="sources">
|
|
244
|
+
<h4>Sources & methodology</h4>
|
|
245
|
+
<p><strong>Sources.</strong> PropertyData (asking, sold, demand, growth, crime, flood, council tax, property-type mix). HM Land Registry (sold transactions). Home Office (recorded crime). Environment Agency (flood risk). Valuation Office Agency (council-tax bands).</p>
|
|
246
|
+
<p><strong>Method.</strong> Twelve PropertyData endpoints called on the postcode derived from the address. £/sqft baselines from listing & transaction prices. 7-year trend from PropertyData growth series. Sample sizes vary by postcode density.</p>
|
|
247
|
+
<p><strong>Accuracy.</strong> Property data can change rapidly. Figures are estimates — obtain independent professional advice for specific decisions. This pack is not financial or investment advice.</p>
|
|
248
|
+
</div>
|
|
249
|
+
<div class="doc-foot"><span>Real Agent · Generated <!-- REPLACE: generated --> · <!-- REPLACE: postcode --></span><span>04</span></div>
|
|
250
|
+
</section>
|
|
251
|
+
|
|
252
|
+
</body>
|
|
253
|
+
</html>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "real-agent-property-data",
|
|
3
|
-
"description": "PropertyData UK market analytics — postcode-keyed valuation, asking prices, sold prices, demand, yields,
|
|
3
|
+
"description": "PropertyData UK market analytics — postcode-keyed valuation, asking prices, sold prices, £/sqft baselines and growth, demand (sales + rent), yields, area risk (crime, flood), council tax, planning precedent, UPRN resolution, property-type mix, national HPI. One encrypted API key per account.",
|
|
4
4
|
"version": "0.1.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Rubytech LLC"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: real-agent-property-data
|
|
3
|
-
description: "PropertyData UK market analytics — postcode-keyed valuation, asking prices, sold prices, demand, yields,
|
|
3
|
+
description: "PropertyData UK market analytics — postcode-keyed valuation, asking prices, sold prices, £/sqft baselines and growth, demand (sales + rent), yields, area risk (crime, flood), council tax, planning precedent, UPRN resolution, property-type mix, national HPI. One encrypted API key per account."
|
|
4
4
|
tools:
|
|
5
5
|
- name: property-data-key-register
|
|
6
6
|
publicAllowlist: false
|
|
@@ -26,6 +26,26 @@ tools:
|
|
|
26
26
|
publicAllowlist: false
|
|
27
27
|
- name: property-data-national-hpi
|
|
28
28
|
publicAllowlist: false
|
|
29
|
+
- name: property-data-prices-per-sqf
|
|
30
|
+
publicAllowlist: false
|
|
31
|
+
- name: property-data-sold-prices-per-sqf
|
|
32
|
+
publicAllowlist: false
|
|
33
|
+
- name: property-data-crime
|
|
34
|
+
publicAllowlist: false
|
|
35
|
+
- name: property-data-flood-risk
|
|
36
|
+
publicAllowlist: false
|
|
37
|
+
- name: property-data-council-tax
|
|
38
|
+
publicAllowlist: false
|
|
39
|
+
- name: property-data-planning-applications
|
|
40
|
+
publicAllowlist: false
|
|
41
|
+
- name: property-data-address-match-uprn
|
|
42
|
+
publicAllowlist: false
|
|
43
|
+
- name: property-data-growth-psf
|
|
44
|
+
publicAllowlist: false
|
|
45
|
+
- name: property-data-demand-rent
|
|
46
|
+
publicAllowlist: false
|
|
47
|
+
- name: property-data-property-types
|
|
48
|
+
publicAllowlist: false
|
|
29
49
|
skills:
|
|
30
50
|
- skills/property-data/SKILL.md
|
|
31
51
|
always: false
|
|
@@ -57,6 +77,13 @@ Local stdio MCP that proxies the PropertyData UK market-analytics HTTP API (prop
|
|
|
57
77
|
- **Rental yield** — gross yield estimates by postcode and bedroom count (`yields`).
|
|
58
78
|
- **Growth signals** — short and long-term price growth by postcode (`growth`).
|
|
59
79
|
- **National house-price index** — UK-wide HPI series (`national-hpi`).
|
|
80
|
+
- **£/sqft baselines** — asking and achieved £/sqft distributions for a postcode (`prices-per-sqf`, `sold-prices-per-sqf`), plus a 7-year £/sqft growth series with year-on-year percent change (`growth-psf`).
|
|
81
|
+
- **Area risk** — recent crime statistics with breakdown by type (`crime`); river and sea flood-risk rating for a full postcode (`flood-risk`).
|
|
82
|
+
- **Cost of occupancy** — council-tax authority, rating, and per-band charges (`council-tax`).
|
|
83
|
+
- **Planning precedent** — planning applications near a postcode with references, proposals, decisions, appeals, distance (`planning-applications`). Costs 2 credits per call; upstream-throttled to ~4 calls / 10 s.
|
|
84
|
+
- **Address resolution** — full address → UPRN, classification, lat/lng (`address-match-uprn`). Costs 10 credits per call — call once per address you actually need to resolve.
|
|
85
|
+
- **Rental demand signals** — for-rent count, lets per month, turnover, months of inventory, days on market, rating (`demand-rent`).
|
|
86
|
+
- **Property-type mix** — output-area distribution by property class (`property-types`).
|
|
60
87
|
|
|
61
88
|
## Security
|
|
62
89
|
|
|
@@ -81,10 +108,28 @@ The PropertyData API key is encrypted at rest with AES-256-GCM. Encryption key l
|
|
|
81
108
|
|
|
82
109
|
**Triggers** — operator says "demand in", "yield on", "growth", "is the market moving":
|
|
83
110
|
- `property-data-demand` — supply count + average days to sell-STC
|
|
111
|
+
- `property-data-demand-rent` — for-rent count, lets per month, months of inventory, days on market
|
|
84
112
|
- `property-data-yields` — gross rental yield by bedroom count
|
|
85
113
|
- `property-data-growth` — short and long-term price growth
|
|
114
|
+
- `property-data-growth-psf` — 7-year £/sqft series with YoY%
|
|
86
115
|
- `property-data-national-hpi` — national HPI context
|
|
87
116
|
|
|
117
|
+
### Pillar 4 — £/sqft baselines
|
|
118
|
+
|
|
119
|
+
**Triggers** — operator says "psf in", "price per square foot in", "£/sqft":
|
|
120
|
+
- `property-data-prices-per-sqf` — asking £/sqft distribution
|
|
121
|
+
- `property-data-sold-prices-per-sqf` — achieved £/sqft distribution
|
|
122
|
+
|
|
123
|
+
### Pillar 5 — Area risk + cost of occupancy + planning + UPRN + mix
|
|
124
|
+
|
|
125
|
+
**Triggers** — operator says "crime in", "flood risk for", "council tax band for", "planning applications near", "what's the UPRN of", "property-type mix in":
|
|
126
|
+
- `property-data-crime` — area-risk crime stats
|
|
127
|
+
- `property-data-flood-risk` — river/sea flood rating (full postcode only)
|
|
128
|
+
- `property-data-council-tax` — council, rating, A–H bands (full postcode only)
|
|
129
|
+
- `property-data-planning-applications` — planning precedent (2 credits/call, upstream-throttled)
|
|
130
|
+
- `property-data-address-match-uprn` — full address → UPRN (10 credits/call)
|
|
131
|
+
- `property-data-property-types` — output-area type distribution
|
|
132
|
+
|
|
88
133
|
### Key prerequisite
|
|
89
134
|
|
|
90
135
|
Every PropertyData tool requires a registered key. If `property-data-key-list` returns nothing for the account, surface the registration prompt before attempting any other call — every downstream tool will return `status=key-missing` otherwise.
|
|
@@ -6,7 +6,7 @@ import { z } from "zod";
|
|
|
6
6
|
import { keyRegister } from "./tools/key-register.js";
|
|
7
7
|
import { keyDeregister } from "./tools/key-deregister.js";
|
|
8
8
|
import { keyList } from "./tools/key-list.js";
|
|
9
|
-
import { valuationSale, valuationRent, prices, pricesRent, soldPrices, demand, yields, growth, nationalHpi, } from "./tools/endpoints.js";
|
|
9
|
+
import { valuationSale, valuationRent, prices, pricesRent, soldPrices, demand, yields, growth, nationalHpi, pricesPerSqf, soldPricesPerSqf, crime, floodRisk, councilTax, planningApplications, addressMatchUprn, growthPsf, demandRent, propertyTypes, } from "./tools/endpoints.js";
|
|
10
10
|
import { closeDriver } from "./lib/neo4j.js";
|
|
11
11
|
import { KeyNotRegisteredError, PropertyDataError, BadResponseError, } from "./lib/propertydata-api.js";
|
|
12
12
|
const accountId = process.env.ACCOUNT_ID;
|
|
@@ -142,6 +142,86 @@ server.tool("property-data-yields", "Gross rental yield for a postcode and bedro
|
|
|
142
142
|
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));
|
|
143
143
|
server.tool("property-data-national-hpi", "UK national house-price index series. No postcode required.", {}, endpointHandler(nationalHpi));
|
|
144
144
|
// ─────────────────────────────────────────────────────────────────
|
|
145
|
+
// Task 144 — £/sqft baselines and growth
|
|
146
|
+
// ─────────────────────────────────────────────────────────────────
|
|
147
|
+
const pricesPerSqfSchema = {
|
|
148
|
+
postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
|
|
149
|
+
type: z
|
|
150
|
+
.enum(["detached", "semi-detached", "terraced", "flat"])
|
|
151
|
+
.optional()
|
|
152
|
+
.describe("Filter by property type"),
|
|
153
|
+
bedrooms: z.number().int().min(0).optional().describe("Filter by bedroom count"),
|
|
154
|
+
};
|
|
155
|
+
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));
|
|
156
|
+
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.", {
|
|
157
|
+
postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
|
|
158
|
+
type: z
|
|
159
|
+
.enum(["detached", "semi-detached", "terraced", "flat"])
|
|
160
|
+
.optional()
|
|
161
|
+
.describe("Filter by property type"),
|
|
162
|
+
bedrooms: z.number().int().min(0).optional().describe("Filter by bedroom count"),
|
|
163
|
+
max_age: z.number().int().min(1).optional().describe("Max transaction age in months"),
|
|
164
|
+
}, endpointHandler(soldPricesPerSqf));
|
|
165
|
+
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.", {
|
|
166
|
+
postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
|
|
167
|
+
type: z
|
|
168
|
+
.enum(["detached", "semi-detached", "terraced", "flat"])
|
|
169
|
+
.optional()
|
|
170
|
+
.describe("Filter by property type"),
|
|
171
|
+
}, endpointHandler(growthPsf));
|
|
172
|
+
// ─────────────────────────────────────────────────────────────────
|
|
173
|
+
// Task 144 — Area risk and cost of occupancy
|
|
174
|
+
// ─────────────────────────────────────────────────────────────────
|
|
175
|
+
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.", {
|
|
176
|
+
postcode: z.string().min(2).optional().describe("UK postcode (outcode or full)"),
|
|
177
|
+
location: z
|
|
178
|
+
.string()
|
|
179
|
+
.optional()
|
|
180
|
+
.describe("Latitude,longitude pair (e.g. '51.5074,-0.1278'). Alternative to postcode."),
|
|
181
|
+
town: z.string().optional().describe("UK town name. Alternative to postcode."),
|
|
182
|
+
}, endpointHandler(crime));
|
|
183
|
+
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.", {
|
|
184
|
+
postcode: z.string().min(5).describe("Full UK postcode (not outcode)"),
|
|
185
|
+
}, endpointHandler(floodRisk));
|
|
186
|
+
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.", {
|
|
187
|
+
postcode: z.string().min(5).describe("Full UK postcode (not outcode)"),
|
|
188
|
+
}, endpointHandler(councilTax));
|
|
189
|
+
// ─────────────────────────────────────────────────────────────────
|
|
190
|
+
// Task 144 — Planning precedent and address resolution
|
|
191
|
+
// ─────────────────────────────────────────────────────────────────
|
|
192
|
+
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.", {
|
|
193
|
+
postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
|
|
194
|
+
decision_rating: z
|
|
195
|
+
.enum(["positive", "neutral", "negative"])
|
|
196
|
+
.optional()
|
|
197
|
+
.describe("Filter by decision sentiment"),
|
|
198
|
+
category: z.string().optional().describe("PropertyData planning category filter"),
|
|
199
|
+
max_age_decision: z
|
|
200
|
+
.number()
|
|
201
|
+
.int()
|
|
202
|
+
.min(1)
|
|
203
|
+
.optional()
|
|
204
|
+
.describe("Max age of decision in months"),
|
|
205
|
+
results: z.number().int().min(1).max(100).optional().describe("Max results to return"),
|
|
206
|
+
}, endpointHandler(planningApplications));
|
|
207
|
+
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.", {
|
|
208
|
+
address: z.string().min(5).describe("Full UK address (line one + postcode)"),
|
|
209
|
+
}, endpointHandler(addressMatchUprn));
|
|
210
|
+
// ─────────────────────────────────────────────────────────────────
|
|
211
|
+
// Task 144 — Rental demand and property-type mix
|
|
212
|
+
// ─────────────────────────────────────────────────────────────────
|
|
213
|
+
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.", {
|
|
214
|
+
postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
|
|
215
|
+
bedrooms: z.number().int().min(0).optional().describe("Filter by bedroom count"),
|
|
216
|
+
type: z
|
|
217
|
+
.enum(["detached", "semi-detached", "terraced", "flat"])
|
|
218
|
+
.optional()
|
|
219
|
+
.describe("Filter by property type"),
|
|
220
|
+
}, endpointHandler(demandRent));
|
|
221
|
+
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.", {
|
|
222
|
+
postcode: z.string().min(2).describe("UK postcode (outcode or full)"),
|
|
223
|
+
}, endpointHandler(propertyTypes));
|
|
224
|
+
// ─────────────────────────────────────────────────────────────────
|
|
145
225
|
// Lifecycle
|
|
146
226
|
// ─────────────────────────────────────────────────────────────────
|
|
147
227
|
process.on("SIGINT", async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAC5F,aAAa,CAAC,eAAe,CAAC,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,aAAa,EACb,MAAM,EACN,UAAU,EACV,UAAU,EACV,MAAM,EACN,MAAM,EACN,MAAM,EACN,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,5 +10,15 @@ export declare const demand: (a: Args) => Promise<string>;
|
|
|
10
10
|
export declare const yields: (a: Args) => Promise<string>;
|
|
11
11
|
export declare const growth: (a: Args) => Promise<string>;
|
|
12
12
|
export declare const nationalHpi: (a: Args) => Promise<string>;
|
|
13
|
+
export declare const pricesPerSqf: (a: Args) => Promise<string>;
|
|
14
|
+
export declare const soldPricesPerSqf: (a: Args) => Promise<string>;
|
|
15
|
+
export declare const crime: (a: Args) => Promise<string>;
|
|
16
|
+
export declare const floodRisk: (a: Args) => Promise<string>;
|
|
17
|
+
export declare const councilTax: (a: Args) => Promise<string>;
|
|
18
|
+
export declare const planningApplications: (a: Args) => Promise<string>;
|
|
19
|
+
export declare const addressMatchUprn: (a: Args) => Promise<string>;
|
|
20
|
+
export declare const growthPsf: (a: Args) => Promise<string>;
|
|
21
|
+
export declare const demandRent: (a: Args) => Promise<string>;
|
|
22
|
+
export declare const propertyTypes: (a: Args) => Promise<string>;
|
|
13
23
|
export {};
|
|
14
24
|
//# sourceMappingURL=endpoints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/tools/endpoints.ts"],"names":[],"mappings":"AAMA,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAY5D,eAAO,MAAM,aAAa,GAAI,GAAG,IAAI,oBAA8D,CAAC;AACpG,eAAO,MAAM,aAAa,GAAI,GAAG,IAAI,oBAA8D,CAAC;AACpG,eAAO,MAAM,MAAM,GAAI,GAAG,IAAI,oBAA8C,CAAC;AAC7E,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,oBAAwD,CAAC;AAC3F,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,oBAAwD,CAAC;AAC3F,eAAO,MAAM,MAAM,GAAI,GAAG,IAAI,oBAA8C,CAAC;AAC7E,eAAO,MAAM,MAAM,GAAI,GAAG,IAAI,oBAA8C,CAAC;AAC7E,eAAO,MAAM,MAAM,GAAI,GAAG,IAAI,oBAA8C,CAAC;AAC7E,eAAO,MAAM,WAAW,GAAI,GAAG,IAAI,oBAA0D,CAAC"}
|
|
1
|
+
{"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/tools/endpoints.ts"],"names":[],"mappings":"AAMA,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAY5D,eAAO,MAAM,aAAa,GAAI,GAAG,IAAI,oBAA8D,CAAC;AACpG,eAAO,MAAM,aAAa,GAAI,GAAG,IAAI,oBAA8D,CAAC;AACpG,eAAO,MAAM,MAAM,GAAI,GAAG,IAAI,oBAA8C,CAAC;AAC7E,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,oBAAwD,CAAC;AAC3F,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,oBAAwD,CAAC;AAC3F,eAAO,MAAM,MAAM,GAAI,GAAG,IAAI,oBAA8C,CAAC;AAC7E,eAAO,MAAM,MAAM,GAAI,GAAG,IAAI,oBAA8C,CAAC;AAC7E,eAAO,MAAM,MAAM,GAAI,GAAG,IAAI,oBAA8C,CAAC;AAC7E,eAAO,MAAM,WAAW,GAAI,GAAG,IAAI,oBAA0D,CAAC;AAM9F,eAAO,MAAM,YAAY,GAAI,GAAG,IAAI,oBACuB,CAAC;AAC5D,eAAO,MAAM,gBAAgB,GAAI,GAAG,IAAI,oBAC6B,CAAC;AACtE,eAAO,MAAM,KAAK,GAAI,GAAG,IAAI,oBAA4C,CAAC;AAC1E,eAAO,MAAM,SAAS,GAAI,GAAG,IAAI,oBAAsD,CAAC;AACxF,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,oBAAwD,CAAC;AAC3F,eAAO,MAAM,oBAAoB,GAAI,GAAG,IAAI,oBAC6B,CAAC;AAC1E,eAAO,MAAM,gBAAgB,GAAI,GAAG,IAAI,oBAC2B,CAAC;AACpE,eAAO,MAAM,SAAS,GAAI,GAAG,IAAI,oBAAsD,CAAC;AACxF,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,oBAAwD,CAAC;AAC3F,eAAO,MAAM,aAAa,GAAI,GAAG,IAAI,oBACsB,CAAC"}
|
|
@@ -17,4 +17,17 @@ export const demand = (a) => call("property-data-demand", "demand", a);
|
|
|
17
17
|
export const yields = (a) => call("property-data-yields", "yields", a);
|
|
18
18
|
export const growth = (a) => call("property-data-growth", "growth", a);
|
|
19
19
|
export const nationalHpi = (a) => call("property-data-national-hpi", "national-hpi", a);
|
|
20
|
+
// Task 144 — 10 additional read endpoints (£/sqft, area risk,
|
|
21
|
+
// planning precedent, UPRN, demand-rent, property-type mix).
|
|
22
|
+
// All inherit the same observability + error contract as above.
|
|
23
|
+
export const pricesPerSqf = (a) => call("property-data-prices-per-sqf", "prices-per-sqf", a);
|
|
24
|
+
export const soldPricesPerSqf = (a) => call("property-data-sold-prices-per-sqf", "sold-prices-per-sqf", a);
|
|
25
|
+
export const crime = (a) => call("property-data-crime", "crime", a);
|
|
26
|
+
export const floodRisk = (a) => call("property-data-flood-risk", "flood-risk", a);
|
|
27
|
+
export const councilTax = (a) => call("property-data-council-tax", "council-tax", a);
|
|
28
|
+
export const planningApplications = (a) => call("property-data-planning-applications", "planning-applications", a);
|
|
29
|
+
export const addressMatchUprn = (a) => call("property-data-address-match-uprn", "address-match-uprn", a);
|
|
30
|
+
export const growthPsf = (a) => call("property-data-growth-psf", "growth-psf", a);
|
|
31
|
+
export const demandRent = (a) => call("property-data-demand-rent", "demand-rent", a);
|
|
32
|
+
export const propertyTypes = (a) => call("property-data-property-types", "property-types", a);
|
|
20
33
|
//# sourceMappingURL=endpoints.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/tools/endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAQ9D,SAAS,IAAI,CAAC,QAAgB,EAAE,QAAgB,EAAE,IAAU;IAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACpC,OAAO,gBAAgB,CAAC;QACtB,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM,EAAE,IAAmD;KAC5D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACpG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACpG,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/tools/endpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAQ9D,SAAS,IAAI,CAAC,QAAgB,EAAE,QAAgB,EAAE,IAAU;IAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACpC,OAAO,gBAAgB,CAAC;QACtB,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,MAAM,EAAE,IAAmD;KAC5D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACpG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;AACpG,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAE9F,8DAA8D;AAC9D,6DAA6D;AAC7D,gEAAgE;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAO,EAAE,EAAE,CACtC,IAAI,CAAC,8BAA8B,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAO,EAAE,EAAE,CAC1C,IAAI,CAAC,mCAAmC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAO,EAAE,EAAE,CAC9C,IAAI,CAAC,qCAAqC,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAO,EAAE,EAAE,CAC1C,IAAI,CAAC,kCAAkC,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AACxF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAC3F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAO,EAAE,EAAE,CACvC,IAAI,CAAC,8BAA8B,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC"}
|