@rubytech/create-realagent 1.0.426 → 1.0.429

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 (40) hide show
  1. package/dist/index.js +82 -37
  2. package/package.json +3 -3
  3. package/payload/maxy/package.json +1 -1
  4. package/payload/maxy/public/assets/{admin-h_MCGiva.js → admin-CvVTy3NI.js} +1 -1
  5. package/payload/maxy/public/brand/favicon.ico +0 -0
  6. package/payload/maxy/public/brand-constants.json +6 -6
  7. package/payload/maxy/public/brand-defaults.css +5 -5
  8. package/payload/maxy/public/index.html +2 -2
  9. package/payload/maxy/public/public.html +1 -1
  10. package/payload/maxy/server.js +29 -9
  11. package/payload/platform/config/brand.json +20 -22
  12. package/payload/platform/plugins/telegram/PLUGIN.md +34 -0
  13. package/payload/platform/plugins/telegram/mcp/dist/index.d.ts +2 -0
  14. package/payload/platform/plugins/telegram/mcp/dist/index.d.ts.map +1 -0
  15. package/payload/platform/plugins/telegram/mcp/dist/index.js +101 -0
  16. package/payload/platform/plugins/telegram/mcp/dist/index.js.map +1 -0
  17. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts +27 -0
  18. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.d.ts.map +1 -0
  19. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js +41 -0
  20. package/payload/platform/plugins/telegram/mcp/dist/lib/telegram.js.map +1 -0
  21. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.d.ts +16 -0
  22. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.d.ts.map +1 -0
  23. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.js +62 -0
  24. package/payload/platform/plugins/telegram/mcp/dist/tools/message-history.js.map +1 -0
  25. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts +20 -0
  26. package/payload/platform/plugins/telegram/mcp/dist/tools/message.d.ts.map +1 -0
  27. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js +34 -0
  28. package/payload/platform/plugins/telegram/mcp/dist/tools/message.js.map +1 -0
  29. package/payload/platform/plugins/telegram/mcp/package.json +19 -0
  30. package/payload/platform/plugins/telegram/references/setup-guide.md +50 -0
  31. package/payload/platform/scripts/vnc.sh +20 -1
  32. package/payload/maxy/public/brand/demo-9pm-enquiry.svg +0 -95
  33. package/payload/maxy/public/brand/demo-create-agent.svg +0 -110
  34. package/payload/maxy/public/brand/demo-morning-briefing.svg +0 -83
  35. package/payload/maxy/public/brand/demo-post-viewing.svg +0 -107
  36. package/payload/maxy/public/brand/how-it-works.svg +0 -152
  37. package/payload/maxy/public/brand/realagent-favicon-dark-32.png +0 -0
  38. package/payload/maxy/public/brand/realagent-icon-dark-round-web.png +0 -0
  39. package/payload/maxy/public/brand/realagent-icon-dark-web.png +0 -0
  40. package/payload/maxy/public/brand/realagent-icon-web.png +0 -0
@@ -12,7 +12,19 @@
12
12
 
13
13
  set -uo pipefail
14
14
 
15
- MAXY_DIR="${HOME}/.maxy"
15
+ # Derive config dir from brand.json so logs go to the correct brand-specific
16
+ # directory (e.g. ~/.realagent/ instead of ~/.maxy/). Primary source is the
17
+ # script's own filesystem location; $MAXY_PLATFORM_ROOT is a fallback.
18
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
19
+ PLATFORM_ROOT="${MAXY_PLATFORM_ROOT:-$(dirname "$SCRIPT_DIR")}"
20
+ BRAND_JSON="${PLATFORM_ROOT}/config/brand.json"
21
+ CONFIG_DIR=".maxy"
22
+ if [ -f "$BRAND_JSON" ] && command -v jq >/dev/null 2>&1; then
23
+ _dir=$(jq -r '.configDir // empty' "$BRAND_JSON" 2>/dev/null) || true
24
+ [ -n "$_dir" ] && CONFIG_DIR="$_dir"
25
+ fi
26
+
27
+ MAXY_DIR="${HOME}/${CONFIG_DIR}"
16
28
  LOG_DIR="${MAXY_DIR}/logs"
17
29
  LOG_FILE="${LOG_DIR}/vnc-boot.log"
18
30
 
@@ -57,6 +69,9 @@ start_chrome() {
57
69
  --disable-default-apps \
58
70
  --disable-component-update \
59
71
  --disable-features=TranslateUI \
72
+ --disable-session-crashed-bubble \
73
+ --hide-crash-restore-bubble \
74
+ --noerrdialogs \
60
75
  --metrics-recording-only \
61
76
  --window-size=1280,800 \
62
77
  --window-position=0,0 \
@@ -92,6 +107,10 @@ case "${1:-}" in
92
107
  exit 1
93
108
  fi
94
109
 
110
+ # Guard against duplicate websockify — kill any stale instance before starting
111
+ pkill -f 'websockify.*6080' 2>/dev/null || true
112
+ sleep 0.2
113
+
95
114
  websockify --web /usr/share/novnc [::]:6080 localhost:5900 >> "$LOG_FILE" 2>&1 &
96
115
 
97
116
  if wait_for_port 6080; then
@@ -1,95 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 460">
2
- <defs>
3
- <style>
4
- .bg { fill: #FAFAF8; }
5
- .title { font-family: 'Georgia', 'Times New Roman', serif; font-size: 20px; font-weight: 700; fill: #2A2F2B; }
6
- .scene-label { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; font-weight: 600; fill: #B87333; letter-spacing: 1px; }
7
- .time { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 28px; font-weight: 700; fill: #2A2F2B; }
8
- .body { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; fill: #3A3E3B; line-height: 1.5; }
9
- .body-muted { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 11px; fill: #8B8A85; }
10
- .body-bold { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 600; fill: #2A2F2B; }
11
- .chat-agent { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 11px; fill: #3A3E3B; }
12
- .chat-label { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 9px; font-weight: 600; fill: #7C8C72; }
13
- .outcome-text { font-family: 'Georgia', 'Times New Roman', serif; font-size: 14px; font-weight: 700; fill: #5A6B52; }
14
- .footer { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; fill: #B0A9A1; }
15
- </style>
16
- </defs>
17
-
18
- <rect class="bg" width="800" height="460" rx="12"/>
19
-
20
- <!-- Header -->
21
- <text class="scene-label" x="400" y="28" text-anchor="middle">REAL AGENT IN ACTION</text>
22
- <text class="title" x="400" y="54" text-anchor="middle">The 9pm Enquiry</text>
23
- <line x1="340" y1="64" x2="460" y2="64" stroke="#B87333" stroke-width="2"/>
24
-
25
- <!-- Three-panel layout -->
26
-
27
- <!-- Panel 1: Before (the problem) -->
28
- <rect x="30" y="86" width="230" height="300" rx="10" fill="#FFF5F5" stroke="#E8DDD3" stroke-width="1"/>
29
- <text class="scene-label" x="145" y="108" text-anchor="middle" fill="#CC6666">WITHOUT REAL AGENT</text>
30
- <text class="time" x="145" y="148" text-anchor="middle">9:14 pm</text>
31
- <text class="body" x="145" y="172" text-anchor="middle">A buyer enquiry arrives</text>
32
- <text class="body" x="145" y="188" text-anchor="middle">from Rightmove.</text>
33
-
34
- <!-- Phone icon (sleeping — Lucide Moon) -->
35
- <rect x="108" y="206" width="74" height="44" rx="8" fill="#E8DDD3"/>
36
- <g transform="translate(133,216) scale(0.75)" fill="none" stroke="#8B8A85" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"/></g>
37
-
38
- <text class="body-muted" x="145" y="272" text-anchor="middle">You don't see it until</text>
39
- <text class="body-muted" x="145" y="286" text-anchor="middle">8am the next morning.</text>
40
-
41
- <text class="body-bold" x="145" y="316" text-anchor="middle" fill="#CC6666">By then, they've called</text>
42
- <text class="body-bold" x="145" y="332" text-anchor="middle" fill="#CC6666">your competitor.</text>
43
-
44
- <!-- Panel 2: Real Agent acts -->
45
- <rect x="280" y="86" width="230" height="300" rx="10" fill="#F5F8F4" stroke="#7C8C72" stroke-width="1.5"/>
46
- <text class="scene-label" x="395" y="108" text-anchor="middle">REAL AGENT RESPONDS</text>
47
- <text class="time" x="395" y="148" text-anchor="middle">9:14 pm</text>
48
- <text class="body" x="395" y="172" text-anchor="middle">Same enquiry arrives.</text>
49
- <text class="body" x="395" y="188" text-anchor="middle">Real Agent is awake.</text>
50
-
51
- <!-- Chat simulation -->
52
- <rect x="300" y="204" width="190" height="28" rx="6" fill="#7C8C72" opacity="0.12"/>
53
- <text class="chat-label" x="310" y="215">REAL AGENT</text>
54
- <text class="chat-agent" x="310" y="226">Hi Sarah, thanks for your</text>
55
-
56
- <rect x="300" y="238" width="190" height="28" rx="6" fill="#7C8C72" opacity="0.12"/>
57
- <text class="chat-agent" x="310" y="249">enquiry on 14 Elm Street.</text>
58
- <text class="chat-agent" x="310" y="260">When suits you for a viewing?</text>
59
-
60
- <rect x="300" y="272" width="190" height="28" rx="6" fill="#F3EDE5"/>
61
- <text class="chat-label" x="310" y="283" fill="#B87333">SARAH</text>
62
- <text class="chat-agent" x="310" y="294">Saturday 10am would be great</text>
63
-
64
- <rect x="300" y="306" width="190" height="28" rx="6" fill="#7C8C72" opacity="0.12"/>
65
- <text class="chat-label" x="310" y="317">REAL AGENT</text>
66
- <text class="chat-agent" x="310" y="328">Booked. Confirmation sent.</text>
67
-
68
- <text class="body-muted" x="395" y="358" text-anchor="middle">Qualified, confirmed,</text>
69
- <text class="body-muted" x="395" y="372" text-anchor="middle">booked — in 4 minutes.</text>
70
-
71
- <!-- Panel 3: Outcome (next morning) -->
72
- <rect x="530" y="86" width="230" height="300" rx="10" fill="#FEFEFE" stroke="#E8DDD3" stroke-width="1"/>
73
- <text class="scene-label" x="645" y="108" text-anchor="middle">NEXT MORNING, 8AM</text>
74
- <text class="time" x="645" y="148" text-anchor="middle">8:00 am</text>
75
- <text class="body" x="645" y="172" text-anchor="middle">Your morning briefing</text>
76
- <text class="body" x="645" y="188" text-anchor="middle">is already waiting:</text>
77
-
78
- <!-- Briefing card -->
79
- <rect x="555" y="204" width="180" height="112" rx="8" fill="#F3EDE5"/>
80
- <text x="565" y="222" font-family="Inter, sans-serif" font-size="10" font-weight="600" fill="#7C8C72">BRIEFING</text>
81
- <text x="565" y="240" font-family="Inter, sans-serif" font-size="10.5" fill="#3A3E3B">&#x2713; Sarah booked for 14 Elm</text>
82
- <text x="575" y="254" font-family="Inter, sans-serif" font-size="10.5" fill="#3A3E3B">Street, Sat 10am</text>
83
- <text x="565" y="272" font-family="Inter, sans-serif" font-size="10.5" fill="#3A3E3B">&#x2713; 2 more viewings today</text>
84
- <text x="565" y="290" font-family="Inter, sans-serif" font-size="10.5" fill="#3A3E3B">&#x2713; Vendor report for Oak</text>
85
- <text x="575" y="304" font-family="Inter, sans-serif" font-size="10.5" fill="#3A3E3B">Lane ready to review</text>
86
-
87
- <text class="body-bold" x="645" y="340" text-anchor="middle" fill="#5A6B52">You attend a warm</text>
88
- <text class="body-bold" x="645" y="356" text-anchor="middle" fill="#5A6B52">appointment on Saturday.</text>
89
-
90
- <!-- Bottom bar -->
91
- <rect x="30" y="400" width="740" height="36" rx="8" fill="#7C8C72" opacity="0.08"/>
92
- <text class="outcome-text" x="400" y="423" text-anchor="middle">Real Agent works while you sleep. You never miss a lead.</text>
93
-
94
- <text class="footer" x="400" y="452" text-anchor="middle">Real Agent — Built for agents. By agents.</text>
95
- </svg>
@@ -1,110 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500">
2
- <defs>
3
- <style>
4
- .bg { fill: #FAFAF8; }
5
- .title { font-family: 'Georgia', 'Times New Roman', serif; font-size: 20px; font-weight: 700; fill: #2A2F2B; }
6
- .scene-label { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; font-weight: 600; fill: #B87333; letter-spacing: 1px; }
7
- .body { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; fill: #3A3E3B; }
8
- .body-muted { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 11px; fill: #8B8A85; }
9
- .body-bold { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 600; fill: #2A2F2B; }
10
- .chat-bubble-user { fill: #F3EDE5; }
11
- .chat-bubble-agent { fill: #7C8C72; opacity: 0.12; }
12
- .chat-text { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 11px; fill: #3A3E3B; }
13
- .chat-label-user { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 9px; font-weight: 600; fill: #B87333; }
14
- .chat-label-agent { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 9px; font-weight: 600; fill: #7C8C72; }
15
- .agent-card-title { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 11px; font-weight: 600; fill: #2A2F2B; }
16
- .agent-card-detail { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; fill: #8B8A85; }
17
- .agent-card-tag { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 9px; font-weight: 600; }
18
- .outcome-text { font-family: 'Georgia', 'Times New Roman', serif; font-size: 14px; font-weight: 700; fill: #5A6B52; }
19
- .footer { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; fill: #B0A9A1; }
20
- </style>
21
- </defs>
22
-
23
- <rect class="bg" width="800" height="500" rx="12"/>
24
-
25
- <!-- Header -->
26
- <text class="scene-label" x="400" y="28" text-anchor="middle">REAL AGENT IN ACTION</text>
27
- <text class="title" x="400" y="54" text-anchor="middle">Creating a Specialist Agent</text>
28
- <line x1="300" y1="64" x2="500" y2="64" stroke="#B87333" stroke-width="2"/>
29
- <text class="body-muted" x="400" y="82" text-anchor="middle">One conversation with your admin agent. No technical setup. No code.</text>
30
-
31
- <!-- Left side: Conversation -->
32
- <rect x="40" y="100" width="380" height="340" rx="10" fill="#FEFEFE" stroke="#E8DDD3" stroke-width="1"/>
33
- <text class="scene-label" x="230" y="122" text-anchor="middle">THE CONVERSATION</text>
34
-
35
- <!-- Chat message 1: User -->
36
- <rect x="60" y="136" width="280" height="32" rx="6" class="chat-bubble-user"/>
37
- <text class="chat-label-user" x="72" y="149">YOU</text>
38
- <text class="chat-text" x="72" y="162">I need a sales progression agent for the</text>
39
-
40
- <rect x="60" y="172" width="280" height="20" rx="6" class="chat-bubble-user"/>
41
- <text class="chat-text" x="72" y="186">Harrison deal. Buyer, seller, both solicitors.</text>
42
-
43
- <!-- Chat message 2: Agent -->
44
- <rect x="60" y="200" width="340" height="32" rx="6" fill="#7C8C72" opacity="0.1"/>
45
- <text class="chat-label-agent" x="72" y="213">REAL AGENT</text>
46
- <text class="chat-text" x="72" y="226">I'll create a gated agent for the Harrison chain.</text>
47
-
48
- <rect x="60" y="236" width="340" height="32" rx="6" fill="#7C8C72" opacity="0.1"/>
49
- <text class="chat-text" x="72" y="249">Access for: buyer, seller, both solicitors.</text>
50
- <text class="chat-text" x="72" y="262">It'll know the full chain status and chase weekly.</text>
51
-
52
- <!-- Chat message 3: Agent confirms -->
53
- <rect x="60" y="276" width="340" height="44" rx="6" fill="#7C8C72" opacity="0.1"/>
54
- <text class="chat-label-agent" x="72" y="289">REAL AGENT</text>
55
- <text class="chat-text" x="72" y="302">Done. "Harrison Sale Progression" is live.</text>
56
- <text class="chat-text" x="72" y="314">Invitations sent. Each party has their own login.</text>
57
-
58
- <!-- Chat message 4: User -->
59
- <rect x="60" y="328" width="280" height="20" rx="6" class="chat-bubble-user"/>
60
- <text class="chat-label-user" x="72" y="341">YOU</text>
61
-
62
- <rect x="60" y="352" width="280" height="20" rx="6" class="chat-bubble-user"/>
63
- <text class="chat-text" x="72" y="366">What can they ask it?</text>
64
-
65
- <!-- Chat message 5: Agent -->
66
- <rect x="60" y="380" width="340" height="44" rx="6" fill="#7C8C72" opacity="0.1"/>
67
- <text class="chat-label-agent" x="72" y="393">REAL AGENT</text>
68
- <text class="chat-text" x="72" y="406">Chain status, completion timeline, next steps,</text>
69
- <text class="chat-text" x="72" y="418">outstanding actions. 24/7. No phone tag.</text>
70
-
71
- <!-- Right side: What was created -->
72
- <rect x="440" y="100" width="320" height="340" rx="10" fill="#F5F8F4" stroke="#7C8C72" stroke-width="1"/>
73
- <text class="scene-label" x="600" y="122" text-anchor="middle">WHAT WAS CREATED</text>
74
-
75
- <!-- Agent card -->
76
- <rect x="460" y="140" width="280" height="80" rx="8" fill="#FEFEFE" stroke="#E8DDD3" stroke-width="1"/>
77
- <circle cx="486" cy="168" r="14" fill="#7C8C72"/>
78
- <text x="486" y="173" text-anchor="middle" font-family="Inter, sans-serif" font-size="12" fill="#FEFEFE" font-weight="700">H</text>
79
- <text class="agent-card-title" x="508" y="164">Harrison Sale Progression</text>
80
- <text class="agent-card-detail" x="508" y="178">Specialist public agent</text>
81
- <!-- Tags -->
82
- <rect x="508" y="190" width="52" height="18" rx="4" fill="#7C8C72" opacity="0.12"/>
83
- <text class="agent-card-tag" x="534" y="202" text-anchor="middle" fill="#5A6B52">GATED</text>
84
- <rect x="566" y="190" width="42" height="18" rx="4" fill="#B87333" opacity="0.12"/>
85
- <text class="agent-card-tag" x="587" y="202" text-anchor="middle" fill="#B87333">LIVE</text>
86
-
87
- <!-- Access list -->
88
- <text x="460" y="244" font-family="Inter, sans-serif" font-size="10" font-weight="600" fill="#7C8C72">ACCESS GRANTED TO</text>
89
- <text class="agent-card-detail" x="460" y="262">&#x2713; James Harrison (buyer)</text>
90
- <text class="agent-card-detail" x="460" y="278">&#x2713; Margaret Ellis (seller)</text>
91
- <text class="agent-card-detail" x="460" y="294">&#x2713; Taylor &amp; Co Solicitors (buyer)</text>
92
- <text class="agent-card-detail" x="460" y="310">&#x2713; Marsh Legal (seller)</text>
93
-
94
- <!-- Capabilities -->
95
- <text x="460" y="336" font-family="Inter, sans-serif" font-size="10" font-weight="600" fill="#7C8C72">KNOWS</text>
96
- <text class="agent-card-detail" x="460" y="354">Full chain status, agreed price, survey dates,</text>
97
- <text class="agent-card-detail" x="460" y="368">solicitor contacts, outstanding actions.</text>
98
- <text class="agent-card-detail" x="460" y="386">Chases solicitors weekly by email.</text>
99
- <text class="agent-card-detail" x="460" y="400">Answers questions from any party, 24/7.</text>
100
-
101
- <!-- Other examples -->
102
- <text x="460" y="422" font-family="Inter, sans-serif" font-size="9" fill="#B0A9A1">Other agents you could create: lead response,</text>
103
- <text x="460" y="434" font-family="Inter, sans-serif" font-size="9" fill="#B0A9A1">viewing booking, vendor updates, lettings...</text>
104
-
105
- <!-- Bottom bar -->
106
- <rect x="40" y="452" width="720" height="18" rx="4" fill="#7C8C72" opacity="0.08"/>
107
- <text class="outcome-text" x="400" y="465" text-anchor="middle" font-size="12">Not one chatbot. An AI team you deploy wherever they create value.</text>
108
-
109
- <text class="footer" x="400" y="492" text-anchor="middle">Real Agent — Built for agents. By agents.</text>
110
- </svg>
@@ -1,83 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 480">
2
- <defs>
3
- <style>
4
- .bg { fill: #FAFAF8; }
5
- .title { font-family: 'Georgia', 'Times New Roman', serif; font-size: 20px; font-weight: 700; fill: #2A2F2B; }
6
- .scene-label { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; font-weight: 600; fill: #B87333; letter-spacing: 1px; }
7
- .time { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 24px; font-weight: 700; fill: #2A2F2B; }
8
- .body { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; fill: #3A3E3B; }
9
- .body-muted { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 11px; fill: #8B8A85; }
10
- .body-bold { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 600; fill: #2A2F2B; }
11
- .card-title { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; font-weight: 600; fill: #7C8C72; letter-spacing: 0.5px; }
12
- .card-item { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 11px; fill: #3A3E3B; }
13
- .card-detail { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; fill: #8B8A85; }
14
- .outcome-text { font-family: 'Georgia', 'Times New Roman', serif; font-size: 14px; font-weight: 700; fill: #5A6B52; }
15
- .footer { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; fill: #B0A9A1; }
16
- .check { fill: #7C8C72; font-size: 11px; }
17
- .priority { fill: #B87333; font-size: 10px; font-weight: 600; }
18
- </style>
19
- </defs>
20
-
21
- <rect class="bg" width="800" height="480" rx="12"/>
22
-
23
- <!-- Header -->
24
- <text class="scene-label" x="400" y="28" text-anchor="middle">REAL AGENT IN ACTION</text>
25
- <text class="title" x="400" y="54" text-anchor="middle">The Morning Briefing</text>
26
- <line x1="330" y1="64" x2="470" y2="64" stroke="#B87333" stroke-width="2"/>
27
-
28
- <!-- Time + intro -->
29
- <text class="time" x="400" y="100" text-anchor="middle">8:00 am — You open your laptop</text>
30
- <text class="body-muted" x="400" y="118" text-anchor="middle">Everything is already prepared. You focus on decisions, not assembly.</text>
31
-
32
- <!-- Card grid: 2x2 -->
33
-
34
- <!-- Card 1: Today's Schedule -->
35
- <rect x="40" y="140" width="350" height="120" rx="10" fill="#F5F8F4" stroke="#7C8C72" stroke-width="1"/>
36
- <text class="card-title" x="56" y="162">TODAY'S SCHEDULE</text>
37
- <text class="check" x="56" y="182">&#x2713;</text>
38
- <text class="card-item" x="72" y="182">3 viewings — all confirmations sent</text>
39
- <text class="check" x="56" y="200">&#x2713;</text>
40
- <text class="card-item" x="72" y="200">1 valuation at 1pm — pack ready</text>
41
- <text class="card-detail" x="80" y="214">Comparables, market analysis, pricing recommendation</text>
42
- <text class="check" x="56" y="232">&#x2713;</text>
43
- <text class="card-item" x="72" y="232">2pm vendor meeting — report pre-built</text>
44
- <text class="card-detail" x="80" y="246">Portal stats, feedback summary, pricing context</text>
45
-
46
- <!-- Card 2: Overnight Activity -->
47
- <rect x="410" y="140" width="350" height="120" rx="10" fill="#FFF9F3" stroke="#D4A06A" stroke-width="1"/>
48
- <text class="card-title" x="426" y="162" fill="#B87333">OVERNIGHT ACTIVITY</text>
49
- <text class="priority" x="426" y="182">&#x25CF;</text>
50
- <text class="card-item" x="440" y="182">Sarah enquired at 9:14pm — viewing booked</text>
51
- <text class="card-detail" x="448" y="196">14 Elm Street, Saturday 10am. Qualified: mortgage agreed.</text>
52
- <text class="priority" x="426" y="214">&#x25CF;</text>
53
- <text class="card-item" x="440" y="214">Offer received on 7 Oak Lane — details below</text>
54
- <text class="card-detail" x="448" y="228">Buyer: James P. Offer: 425k (asking: 450k). Chain-free.</text>
55
- <text class="card-item" x="440" y="248" fill="#8B8A85">3 portal enquiries handled, 1 callback scheduled</text>
56
-
57
- <!-- Card 3: Prospecting Call List -->
58
- <rect x="40" y="276" width="350" height="110" rx="10" fill="#FEFEFE" stroke="#E8DDD3" stroke-width="1"/>
59
- <text class="card-title" x="56" y="298">PROSPECTING — RANKED WITH REASONING</text>
60
- <text class="card-item" x="56" y="318">1. Sarah Williams — viewed twice, positive feedback,</text>
61
- <text class="card-detail" x="68" y="332">solicitor search suggests ready to move. Call first.</text>
62
- <text class="card-item" x="56" y="352">2. The Petersons — 3 comparable sales this month avg.</text>
63
- <text class="card-detail" x="68" y="366">8% above their original valuation. Good re-approach.</text>
64
- <text class="card-item" x="56" y="378" fill="#8B8A85">3. David Chen — tenancy ends 8 weeks. Worth a call.</text>
65
-
66
- <!-- Card 4: Already Done -->
67
- <rect x="410" y="276" width="350" height="110" rx="10" fill="#F3EDE5" stroke="#E8DDD3" stroke-width="1"/>
68
- <text class="card-title" x="426" y="298">ALREADY DONE FOR YOU</text>
69
- <text class="check" x="426" y="318">&#x2713;</text>
70
- <text class="card-item" x="442" y="318">Vendor reports pre-generated (Sunday evening)</text>
71
- <text class="check" x="426" y="338">&#x2713;</text>
72
- <text class="card-item" x="442" y="338">Solicitor chases sent (sales progression)</text>
73
- <text class="check" x="426" y="358">&#x2713;</text>
74
- <text class="card-item" x="442" y="358">CRM updated from Friday's conversations</text>
75
- <text class="check" x="426" y="378">&#x2713;</text>
76
- <text class="card-item" x="442" y="378">Prospect letters drafted and ready to send</text>
77
-
78
- <!-- Bottom bar -->
79
- <rect x="40" y="402" width="720" height="36" rx="8" fill="#7C8C72" opacity="0.08"/>
80
- <text class="outcome-text" x="400" y="425" text-anchor="middle">Monday morning: hot prospects, not admin. You start selling at 8:01.</text>
81
-
82
- <text class="footer" x="400" y="468" text-anchor="middle">Real Agent — Built for agents. By agents.</text>
83
- </svg>
@@ -1,107 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 500">
2
- <defs>
3
- <style>
4
- .bg { fill: #FAFAF8; }
5
- .title { font-family: 'Georgia', 'Times New Roman', serif; font-size: 20px; font-weight: 700; fill: #2A2F2B; }
6
- .scene-label { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; font-weight: 600; fill: #B87333; letter-spacing: 1px; }
7
- .body { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; fill: #3A3E3B; }
8
- .body-muted { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 11px; fill: #8B8A85; }
9
- .body-bold { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 600; fill: #2A2F2B; }
10
- .step-num { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 700; fill: #FEFEFE; }
11
- .step-title { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; font-weight: 600; fill: #2A2F2B; }
12
- .step-body { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10.5px; fill: #3A3E3B; }
13
- .step-detail { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; fill: #8B8A85; }
14
- .branch-label { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; font-weight: 600; fill: #7C8C72; }
15
- .outcome-text { font-family: 'Georgia', 'Times New Roman', serif; font-size: 14px; font-weight: 700; fill: #5A6B52; }
16
- .footer { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; fill: #B0A9A1; }
17
- </style>
18
- <marker id="arr" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
19
- <polygon points="0 0, 8 3, 0 6" fill="#B87333"/>
20
- </marker>
21
- <marker id="arr-sage" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
22
- <polygon points="0 0, 8 3, 0 6" fill="#7C8C72"/>
23
- </marker>
24
- </defs>
25
-
26
- <rect class="bg" width="800" height="500" rx="12"/>
27
-
28
- <!-- Header -->
29
- <text class="scene-label" x="400" y="28" text-anchor="middle">REAL AGENT IN ACTION</text>
30
- <text class="title" x="400" y="54" text-anchor="middle">Post-Viewing Feedback Workflow</text>
31
- <line x1="290" y1="64" x2="510" y2="64" stroke="#B87333" stroke-width="2"/>
32
- <text class="body-muted" x="400" y="82" text-anchor="middle">Saturday's viewings are done. The automated follow-up chain begins Sunday morning.</text>
33
-
34
- <!-- Step 1: Prep -->
35
- <circle cx="120" cy="128" r="16" fill="#7C8C72"/>
36
- <text class="step-num" x="120" y="133" text-anchor="middle">1</text>
37
- <text class="step-title" x="120" y="160" text-anchor="middle">AI Preps Your Brief</text>
38
- <text class="step-detail" x="120" y="174" text-anchor="middle">Property details, buyer history,</text>
39
- <text class="step-detail" x="120" y="186" text-anchor="middle">previous feedback compiled.</text>
40
-
41
- <!-- Arrow 1→2 -->
42
- <line x1="155" y1="128" x2="248" y2="128" stroke="#B87333" stroke-width="1.5" marker-end="url(#arr)"/>
43
-
44
- <!-- Step 2: You call -->
45
- <circle cx="290" cy="128" r="16" fill="#B87333"/>
46
- <text class="step-num" x="290" y="133" text-anchor="middle">2</text>
47
- <text class="step-title" x="290" y="160" text-anchor="middle">You Make the Call</text>
48
- <text class="step-detail" x="290" y="174" text-anchor="middle">Personal, high-value work.</text>
49
- <text class="step-detail" x="290" y="186" text-anchor="middle">This is what you do best.</text>
50
-
51
- <!-- Arrow 2→branch -->
52
- <line x1="325" y1="128" x2="418" y2="128" stroke="#B87333" stroke-width="1.5" marker-end="url(#arr)"/>
53
-
54
- <!-- Step 3: Branch point -->
55
- <circle cx="460" cy="128" r="16" fill="#7C8C72"/>
56
- <text class="step-num" x="460" y="133" text-anchor="middle">3</text>
57
- <text class="step-title" x="460" y="160" text-anchor="middle">AI Handles the Rest</text>
58
- <text class="step-detail" x="460" y="174" text-anchor="middle">Based on what you heard,</text>
59
- <text class="step-detail" x="460" y="186" text-anchor="middle">Real Agent takes over.</text>
60
-
61
- <!-- Branch lines -->
62
- <!-- Positive -->
63
- <line x1="460" y1="200" x2="460" y2="224" stroke="#7C8C72" stroke-width="1.5"/>
64
- <line x1="460" y1="224" x2="180" y2="224" stroke="#7C8C72" stroke-width="1.5"/>
65
- <line x1="180" y1="224" x2="180" y2="244" stroke="#7C8C72" stroke-width="1.5" marker-end="url(#arr-sage)"/>
66
-
67
- <!-- Negative -->
68
- <line x1="460" y1="224" x2="460" y2="244" stroke="#7C8C72" stroke-width="1.5" marker-end="url(#arr-sage)"/>
69
-
70
- <!-- No answer -->
71
- <line x1="460" y1="224" x2="660" y2="224" stroke="#7C8C72" stroke-width="1.5"/>
72
- <line x1="660" y1="224" x2="660" y2="244" stroke="#7C8C72" stroke-width="1.5" marker-end="url(#arr-sage)"/>
73
-
74
- <!-- Branch A: Positive feedback -->
75
- <rect x="60" y="248" width="240" height="110" rx="8" fill="#F0F7EE" stroke="#7C8C72" stroke-width="1"/>
76
- <text class="branch-label" x="76" y="268">IF POSITIVE</text>
77
- <text class="step-body" x="76" y="288">&#x2713; Vendor update drafted and sent</text>
78
- <text class="step-body" x="76" y="306">&#x2713; Second viewing offered to buyer</text>
79
- <text class="step-body" x="76" y="324">&#x2713; Offer invitation prepared</text>
80
- <text class="step-detail" x="76" y="344">Pipeline status updated automatically.</text>
81
-
82
- <!-- Branch B: Negative feedback -->
83
- <rect x="320" y="248" width="240" height="110" rx="8" fill="#FFF9F3" stroke="#D4A06A" stroke-width="1"/>
84
- <text class="branch-label" x="336" y="268" fill="#B87333">IF NEGATIVE</text>
85
- <text class="step-body" x="336" y="288">&#x2713; Buyer requirements re-checked</text>
86
- <text class="step-body" x="336" y="306">&#x2713; Alternative properties matched</text>
87
- <text class="step-body" x="336" y="324">&#x2713; Alternatives sent to buyer</text>
88
- <text class="step-detail" x="336" y="344">Vendor updated with honest feedback.</text>
89
-
90
- <!-- Branch C: No answer -->
91
- <rect x="580" y="248" width="180" height="110" rx="8" fill="#F3EDE5" stroke="#E8DDD3" stroke-width="1"/>
92
- <text class="branch-label" x="596" y="268" fill="#8B8A85">IF NO ANSWER</text>
93
- <text class="step-body" x="596" y="288">&#x2713; Email sent immediately</text>
94
- <text class="step-body" x="596" y="306">&#x2713; Vendor notified: attempted</text>
95
- <text class="step-body" x="596" y="324">&#x2713; Daily callback until contact</text>
96
- <text class="step-detail" x="596" y="344">Feedback enforced before next</text>
97
-
98
- <!-- Rule callout -->
99
- <rect x="160" y="374" width="480" height="36" rx="6" fill="#B87333" opacity="0.08"/>
100
- <text x="400" y="396" text-anchor="middle" font-family="Inter, sans-serif" font-size="11" font-weight="600" fill="#B87333">Rule: If that buyer books a new viewing, they must provide feedback on the last one first.</text>
101
-
102
- <!-- Bottom bar -->
103
- <rect x="40" y="424" width="720" height="36" rx="8" fill="#7C8C72" opacity="0.08"/>
104
- <text class="outcome-text" x="400" y="447" text-anchor="middle">You make the phone call. Real Agent handles everything around it.</text>
105
-
106
- <text class="footer" x="400" y="488" text-anchor="middle">Real Agent — Built for agents. By agents.</text>
107
- </svg>
@@ -1,152 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 540">
2
- <defs>
3
- <style>
4
- .bg { fill: #FAFAF8; }
5
- .title { font-family: 'Georgia', 'Times New Roman', serif; font-size: 22px; font-weight: 700; fill: #2A2F2B; }
6
- .subtitle { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12px; fill: #8B8A85; letter-spacing: 0.5px; }
7
- .step-num { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 13px; font-weight: 700; fill: #FEFEFE; }
8
- .step-label { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 12.5px; font-weight: 600; fill: #2A2F2B; }
9
- .step-desc { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10.5px; fill: #8B8A85; }
10
- .ext-label { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 11px; font-weight: 500; fill: #5A6B52; }
11
- .ext-desc { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 9.5px; fill: #8B8A85; }
12
- .section-label { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; font-weight: 600; fill: #B87333; letter-spacing: 1px; text-transform: uppercase; }
13
- .footer { font-family: Inter, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 10px; fill: #B0A9A1; }
14
- .sage { fill: #7C8C72; }
15
- .sage-light { fill: #9AAD8F; }
16
- .copper { fill: #B87333; }
17
- .copper-light { fill: rgba(184, 115, 51, 0.12); }
18
- .arrow { stroke: #B87333; stroke-width: 2; fill: none; marker-end: url(#arrowhead); }
19
- .connector { stroke: #D4C9BC; stroke-width: 1.5; stroke-dasharray: 4 3; fill: none; }
20
- </style>
21
- <marker id="arrowhead" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
22
- <polygon points="0 0, 8 3, 0 6" fill="#B87333"/>
23
- </marker>
24
- </defs>
25
-
26
- <!-- Background -->
27
- <rect class="bg" width="800" height="540" rx="12"/>
28
-
29
- <!-- Header -->
30
- <text class="subtitle" x="400" y="32" text-anchor="middle">REAL AGENT</text>
31
- <text class="title" x="400" y="58" text-anchor="middle">How It Works</text>
32
- <line x1="360" y1="68" x2="440" y2="68" stroke="#B87333" stroke-width="2"/>
33
-
34
- <!-- Section label: Core loop -->
35
- <text class="section-label" x="40" y="100">THE CORE LOOP</text>
36
-
37
- <!-- Step 1: Lead comes in -->
38
- <circle cx="95" cy="150" r="18" class="sage"/>
39
- <text class="step-num" x="95" y="155" text-anchor="middle">1</text>
40
- <text class="step-label" x="95" y="185" text-anchor="middle">Lead Arrives</text>
41
- <text class="step-desc" x="95" y="198" text-anchor="middle">Portal, website,</text>
42
- <text class="step-desc" x="95" y="210" text-anchor="middle">WhatsApp, social</text>
43
-
44
- <!-- Arrow 1→2 -->
45
- <path class="arrow" d="M 118 150 L 178 150"/>
46
-
47
- <!-- Step 2: AI responds -->
48
- <circle cx="235" cy="150" r="18" class="sage"/>
49
- <text class="step-num" x="235" y="155" text-anchor="middle">2</text>
50
- <text class="step-label" x="235" y="185" text-anchor="middle">AI Responds</text>
51
- <text class="step-desc" x="235" y="198" text-anchor="middle">Instantly, 24/7.</text>
52
- <text class="step-desc" x="235" y="210" text-anchor="middle">Even at 9pm.</text>
53
-
54
- <!-- Arrow 2→3 -->
55
- <path class="arrow" d="M 258 150 L 318 150"/>
56
-
57
- <!-- Step 3: AI follows up -->
58
- <circle cx="375" cy="150" r="18" class="sage"/>
59
- <text class="step-num" x="375" y="155" text-anchor="middle">3</text>
60
- <text class="step-label" x="375" y="185" text-anchor="middle">AI Follows Up</text>
61
- <text class="step-desc" x="375" y="198" text-anchor="middle">Automatically.</text>
62
- <text class="step-desc" x="375" y="210" text-anchor="middle">Never forgets.</text>
63
-
64
- <!-- Arrow 3→4 -->
65
- <path class="arrow" d="M 398 150 L 458 150"/>
66
-
67
- <!-- Step 4: Books appointments -->
68
- <circle cx="515" cy="150" r="18" class="sage"/>
69
- <text class="step-num" x="515" y="155" text-anchor="middle">4</text>
70
- <text class="step-label" x="515" y="185" text-anchor="middle">Books Viewings</text>
71
- <text class="step-desc" x="515" y="198" text-anchor="middle">Schedules, confirms,</text>
72
- <text class="step-desc" x="515" y="210" text-anchor="middle">groups efficiently.</text>
73
-
74
- <!-- Arrow 4→5 -->
75
- <path class="arrow" d="M 538 150 L 598 150"/>
76
-
77
- <!-- Step 5: Agent closes -->
78
- <circle cx="660" cy="150" r="18" class="copper"/>
79
- <text class="step-num" x="660" y="155" text-anchor="middle">5</text>
80
- <text class="step-label" x="660" y="185" text-anchor="middle">You Close</text>
81
- <text class="step-desc" x="660" y="198" text-anchor="middle">Attend a warm</text>
82
- <text class="step-desc" x="660" y="210" text-anchor="middle">appointment.</text>
83
-
84
- <!-- Divider -->
85
- <line x1="40" y1="240" x2="760" y2="240" stroke="#E8DDD3" stroke-width="1"/>
86
-
87
- <!-- Section label: Extended capabilities -->
88
- <text class="section-label" x="40" y="268">BEYOND THE CORE</text>
89
- <text class="step-desc" x="215" y="268">Real Agent handles your entire operation — not just leads.</text>
90
-
91
- <!-- Extended capability cards -->
92
- <!-- Row 1 -->
93
- <!-- Card 1: Database Prospecting -->
94
- <rect x="40" y="286" width="218" height="56" rx="8" fill="#F3EDE5"/>
95
- <circle cx="66" cy="314" r="12" fill="#7C8C72" opacity="0.15"/>
96
- <g transform="translate(57,305) scale(0.75)" fill="none" stroke="#7C8C72" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></g>
97
- <text class="ext-label" x="86" y="308">Database Prospecting</text>
98
- <text class="ext-desc" x="86" y="322">Work through 20,000+ contacts.</text>
99
- <text class="ext-desc" x="86" y="334">Surface re-approach candidates.</text>
100
-
101
- <!-- Card 2: Organisation -->
102
- <rect x="270" y="286" width="218" height="56" rx="8" fill="#F3EDE5"/>
103
- <circle cx="296" cy="314" r="12" fill="#7C8C72" opacity="0.15"/>
104
- <g transform="translate(287,305) scale(0.75)" fill="none" stroke="#7C8C72" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="8" y="2" width="8" height="4" rx="1" ry="1"/><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/><path d="M12 11h4"/><path d="M12 16h4"/><path d="M8 11h.01"/><path d="M8 16h.01"/></g>
105
- <text class="ext-label" x="316" y="308">Organisation &amp; Tasks</text>
106
- <text class="ext-desc" x="316" y="322">CRM updates, pipeline tracking,</text>
107
- <text class="ext-desc" x="316" y="334">vendor reports — all automatic.</text>
108
-
109
- <!-- Card 3: Marketing -->
110
- <rect x="500" y="286" width="218" height="56" rx="8" fill="#F3EDE5"/>
111
- <circle cx="526" cy="314" r="12" fill="#7C8C72" opacity="0.15"/>
112
- <g transform="translate(517,305) scale(0.75)" fill="none" stroke="#7C8C72" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m3 11 18-5v12L3 13v-2z"/><path d="M11.6 16.8a3 3 0 1 1-5.8-1.6"/></g>
113
- <text class="ext-label" x="546" y="308">Marketing &amp; Content</text>
114
- <text class="ext-desc" x="546" y="322">Social posts, prospect letters,</text>
115
- <text class="ext-desc" x="546" y="334">email campaigns — from activity.</text>
116
-
117
- <!-- Row 2 -->
118
- <!-- Card 4: Reporting -->
119
- <rect x="40" y="354" width="218" height="56" rx="8" fill="#F3EDE5"/>
120
- <circle cx="66" cy="382" r="12" fill="#7C8C72" opacity="0.15"/>
121
- <g transform="translate(57,373) scale(0.75)" fill="none" stroke="#7C8C72" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="M18 17V9"/><path d="M13 17V5"/><path d="M8 17v-3"/></g>
122
- <text class="ext-label" x="86" y="376">Reporting &amp; Targets</text>
123
- <text class="ext-desc" x="86" y="390">Weekly vendor reports pre-built.</text>
124
- <text class="ext-desc" x="86" y="402">Pipeline insights surfaced daily.</text>
125
-
126
- <!-- Card 5: Coaching -->
127
- <rect x="270" y="354" width="218" height="56" rx="8" fill="#F3EDE5"/>
128
- <circle cx="296" cy="382" r="12" fill="#7C8C72" opacity="0.15"/>
129
- <g transform="translate(287,373) scale(0.75)" fill="none" stroke="#7C8C72" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 10v6M2 10l10-5 10 5-10 5z"/><path d="M6 12v5c0 2 4 4 6 4s6-2 6-4v-5"/></g>
130
- <text class="ext-label" x="316" y="376">Coaching &amp; Development</text>
131
- <text class="ext-desc" x="316" y="390">Adapts to each person's level.</text>
132
- <text class="ext-desc" x="316" y="402">Builds capability, not dependence.</text>
133
-
134
- <!-- Card 6: Privacy -->
135
- <rect x="500" y="354" width="218" height="56" rx="8" fill="#F3EDE5"/>
136
- <circle cx="526" cy="382" r="12" fill="#7C8C72" opacity="0.15"/>
137
- <g transform="translate(517,373) scale(0.75)" fill="none" stroke="#7C8C72" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></g>
138
- <text class="ext-label" x="546" y="376">Your Data, Your Premises</text>
139
- <text class="ext-desc" x="546" y="390">Runs on a device in your office.</text>
140
- <text class="ext-desc" x="546" y="402">Nothing leaves. GDPR by design.</text>
141
-
142
- <!-- Divider -->
143
- <line x1="40" y1="430" x2="760" y2="430" stroke="#E8DDD3" stroke-width="1"/>
144
-
145
- <!-- Bottom bar: key message -->
146
- <rect x="40" y="446" width="720" height="48" rx="8" fill="#7C8C72" opacity="0.08"/>
147
- <text x="400" y="467" text-anchor="middle" font-family="Georgia, serif" font-size="14" font-weight="700" fill="#5A6B52">AI handles the middle. You handle the relationships.</text>
148
- <text x="400" y="484" text-anchor="middle" font-family="Inter, -apple-system, Helvetica, Arial, sans-serif" font-size="11" fill="#8B8A85">17 tasks fully automated. 10 AI-assisted. One conversation to run it all.</text>
149
-
150
- <!-- Footer -->
151
- <text class="footer" x="400" y="524" text-anchor="middle">Real Agent — Built for agents. By agents.</text>
152
- </svg>