togitoon commited on
Commit
4c3c8d8
·
1 Parent(s): d2cd8c8
ai-agent-ui/components/sections/generation.html CHANGED
@@ -26,7 +26,6 @@
26
  </div>
27
  <div class="launch-text">
28
  <span class="primary">Launch Intelligence Generation</span>
29
- <span class="secondary">Start AI-powered lead discovery</span>
30
  </div>
31
  </button>
32
  </div>
 
26
  </div>
27
  <div class="launch-text">
28
  <span class="primary">Launch Intelligence Generation</span>
 
29
  </div>
30
  </button>
31
  </div>
ai-agent-ui/index.html CHANGED
@@ -5,18 +5,34 @@
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>AI Lead Intelligence Platform | Professional Dashboard</title>
7
 
8
- <!-- Tailwind CSS CDN -->
9
  <script src="https://cdn.tailwindcss.com"></script>
10
  <script>
11
  tailwind.config = {
12
  theme: {
13
  extend: {
14
  colors: {
15
- primary: '#6366F1',
16
- accent: '#8B5CF6',
17
- success: '#10B981',
18
- warning: '#F59E0B',
19
- danger: '#EF4444',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  },
21
  fontFamily: {
22
  'sans': ['Inter', 'system-ui', 'sans-serif'],
@@ -27,395 +43,368 @@
27
  }
28
  </script>
29
 
30
- <!-- Modern Fonts -->
31
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
32
- <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
33
- <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" rel="stylesheet">
34
 
35
- <!-- Custom Styles for legacy compatibility -->
36
- <link rel="stylesheet" href="styles/main.css">
37
- <link rel="stylesheet" href="styles/checkbox.css">
 
 
 
 
 
 
 
 
38
  </head>
39
- <body class="bg-gray-50 font-sans">
40
 
41
- <!-- Professional Header -->
42
- <header class="bg-white shadow-sm border-b border-gray-200">
43
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
44
- <div class="flex justify-between items-center py-4">
45
- <div class="flex items-center">
46
- <div class="w-10 h-10 bg-gradient-to-r from-primary to-accent rounded-lg flex items-center justify-center mr-3">
47
- <span class="material-symbols-outlined text-white text-xl">psychology</span>
48
  </div>
49
  <div>
50
- <h1 class="text-xl font-bold text-gray-900">AI Lead Intelligence</h1>
51
- <p class="text-sm text-gray-500">Professional Dashboard</p>
52
  </div>
53
  </div>
54
  <div class="flex items-center space-x-4">
55
- <div class="text-sm text-gray-600">
56
- <span id="user-email-display" class="font-medium"></span>
57
  </div>
58
  </div>
59
  </div>
60
  </div>
61
  </header>
62
 
63
- <!-- Main Application -->
64
- <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
65
- <!-- Progress Indicator -->
66
- <div class="mb-8">
67
- <div class="bg-white rounded-xl shadow-sm p-6 border border-gray-200">
68
- <h3 class="text-lg font-semibold text-gray-900 mb-4">Setup Progress</h3>
69
- <div class="flex items-center justify-between text-sm">
70
- <div class="flex items-center space-x-4 w-full">
71
- <button class="step-nav active flex items-center" data-step="1" onclick="showStep(1)">
72
- <div class="flex flex-col items-center">
73
- <span class="w-10 h-10 rounded-full bg-primary text-white border-2 border-primary flex items-center justify-center text-sm font-bold shadow-sm mb-2 transition-all duration-300">1</span>
74
- <span class="text-sm font-semibold text-primary">Setup</span>
75
  </div>
76
- </button>
77
- <div class="flex-1 h-0.5 bg-gray-200 mx-4">
78
- <div class="h-full bg-gray-300 transition-all duration-500" id="progress-line-1" style="width: 0%"></div>
79
  </div>
80
- <button class="step-nav flex items-center" data-step="2" onclick="showStep(2)">
81
- <div class="flex flex-col items-center">
82
- <span class="w-10 h-10 rounded-full bg-gray-100 text-gray-400 border-2 border-gray-200 flex items-center justify-center text-sm font-bold shadow-sm mb-2 transition-all duration-300">2</span>
83
- <span class="text-sm font-medium text-gray-500">Configure</span>
 
 
 
 
84
  </div>
85
- </button>
86
- <div class="flex-1 h-0.5 bg-gray-200 mx-4">
87
- <div class="h-full bg-gray-300 transition-all duration-500" id="progress-line-2" style="width: 0%"></div>
88
  </div>
89
- <button class="step-nav flex items-center" data-step="3" onclick="showStep(3)">
90
- <div class="flex flex-col items-center">
91
- <span class="w-10 h-10 rounded-full bg-gray-100 text-gray-400 border-2 border-gray-200 flex items-center justify-center text-sm font-bold shadow-sm mb-2 transition-all duration-300">3</span>
92
- <span class="text-sm font-medium text-gray-500">Generate</span>
 
 
 
 
93
  </div>
94
- </button>
95
- </div>
96
  </div>
97
  </div>
98
  </div>
99
 
100
- <!-- Step Content -->
101
- <!-- Step 1: Email & Basic Setup -->
102
- <div id="app-step-1" class="step-content">
103
- <div class="mb-8">
104
- <h2 class="text-2xl font-bold text-gray-50 mb-2">Let's Get Started</h2>
105
- <p class="text-gray-50">Configure your basic settings to begin generating AI-powered lead intelligence.</p>
106
- </div>
107
-
108
- <div class="grid grid-cols-1 lg:grid-cols-2 gap-8">
109
- <!-- Email Configuration Card -->
110
- <div class="bg-white rounded-xl shadow-sm p-6 border border-gray-200">
111
- <div class="flex items-center mb-4">
112
- <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-3">
113
- <span class="material-symbols-outlined text-primary">mail</span>
114
- </div>
115
- <div>
116
- <h3 class="text-lg font-semibold text-gray-900">Email Configuration</h3>
117
- <p class="text-sm text-gray-600">Where to send lead reports</p>
118
- </div>
119
- <div class="ml-auto">
120
- <div class="w-3 h-3 rounded-full bg-gray-300" id="email-status"></div>
121
- </div>
122
- </div>
123
- <div class="space-y-4">
124
- <div>
125
- <label class="block text-sm font-medium text-gray-700 mb-2">Business Email Address</label>
126
- <input type="email" id="email-input" placeholder="your.email@company.com"
127
- class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary focus:border-transparent"
128
- onblur="validateEmail()">
129
- <p class="text-sm text-gray-500 mt-2">Reports will be delivered to this address</p>
130
- </div>
131
- </div>
132
- </div>
133
-
134
- <!-- Quick Setup Tips -->
135
- <div class="bg-blue-50 rounded-xl p-6 border border-blue-100">
136
- <h3 class="text-lg font-semibold text-gray-900 mb-4">Quick Setup Tips</h3>
137
- <div class="space-y-3">
138
- <div class="flex items-start">
139
- <span class="material-symbols-outlined text-success text-lg mr-3 mt-0.5">check_circle</span>
140
- <div>
141
- <p class="font-medium text-gray-900">Use your business email</p>
142
- <p class="text-sm text-gray-600">Ensure you can receive professional reports</p>
143
  </div>
144
- </div>
145
- <div class="flex items-start">
146
- <span class="material-symbols-outlined text-success text-lg mr-3 mt-0.5">check_circle</span>
147
  <div>
148
- <p class="font-medium text-gray-900">Check spam folder</p>
149
- <p class="text-sm text-gray-600">AI reports might initially go to spam</p>
 
 
 
150
  </div>
151
  </div>
152
- <div class="flex items-start">
153
- <span class="material-symbols-outlined text-warning text-lg mr-3 mt-0.5">info</span>
154
- <div>
155
- <p class="font-medium text-gray-900">Settings are saved automatically</p>
156
- <p class="text-sm text-gray-600">Your preferences persist across sessions</p>
157
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
158
  </div>
159
  </div>
160
  </div>
161
- </div>
162
-
163
- <div class="flex justify-between mt-8">
164
- <div></div>
165
- <button onclick="continueToStep2()" class="px-8 py-3 bg-primary text-white rounded-xl hover:bg-primary/90 transition disabled:opacity-50 disabled:cursor-not-allowed" id="step1-next">
166
- Continue Setup
167
- </button>
168
- </div>
169
- </div>
170
 
171
- <!-- Step 2: Advanced Configuration -->
172
- <div id="app-step-2" class="step-content hidden">
173
- <div class="mb-8">
174
- <h2 class="text-2xl font-bold text-gray-900 mb-2">Configure AI Parameters</h2>
175
- <p class="text-gray-600">Fine-tune your AI lead generation settings for optimal results.</p>
176
  </div>
177
 
178
- <div class="grid grid-cols-1 gap-8">
179
- <!-- Search Criteria -->
180
- <div class="bg-white rounded-xl shadow-sm p-6 border border-gray-200">
181
- <div class="flex items-center mb-4">
182
- <div class="w-10 h-10 bg-accent/10 rounded-lg flex items-center justify-center mr-3">
183
- <span class="material-symbols-outlined text-accent">search</span>
 
 
 
184
  </div>
185
  <div>
186
- <h3 class="text-lg font-semibold text-gray-900">Discovery Criteria</h3>
187
- <p class="text-sm text-gray-600">Define what companies to search for</p>
 
 
 
188
  </div>
189
  </div>
190
- <div>
191
- <label class="block text-sm font-medium text-gray-700 mb-2">Search Keywords & Topics</label>
192
- <textarea id="search-criteria" rows="4"
193
- placeholder="e.g., SaaS startups, AI companies, fintech, Series A funding, hiring engineers..."
194
- class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-accent focus:border-transparent"></textarea>
195
- <p class="text-sm text-gray-500 mt-2">AI will discover companies based on these criteria</p>
196
- </div>
197
- </div>
198
-
199
- <!-- AI System Prompt -->
200
- <div class="bg-white rounded-xl shadow-sm p-6 border border-gray-200">
201
- <div class="flex items-center mb-4">
202
- <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-3">
203
- <span class="material-symbols-outlined text-primary">psychology</span>
204
  </div>
205
  <div>
206
- <h3 class="text-lg font-semibold text-gray-900">AI Intelligence Engine</h3>
207
- <p class="text-sm text-gray-600">Customize AI analysis behavior</p>
 
 
208
  </div>
209
  </div>
210
- <div>
211
- <label class="block text-sm font-medium text-gray-700 mb-2">System Instructions</label>
212
- <textarea id="system-prompt" rows="6"
213
- class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary focus:border-transparent"></textarea>
214
- <p class="text-sm text-gray-500 mt-2">Configure how AI analyzes and scores leads</p>
215
- </div>
216
- </div>
217
-
218
- <!-- Lead Preferences -->
219
- <div class="bg-white rounded-xl shadow-sm p-6 border border-gray-200">
220
- <div class="flex items-center mb-4">
221
- <div class="w-10 h-10 bg-success/10 rounded-lg flex items-center justify-center mr-3">
222
- <span class="material-symbols-outlined text-success">tune</span>
223
  </div>
224
  <div>
225
- <h3 class="text-lg font-semibold text-gray-900">Lead Targeting</h3>
226
- <p class="text-sm text-gray-600">Define your ideal customer profile</p>
 
 
 
227
  </div>
228
  </div>
229
- <div>
230
- <label class="block text-sm font-medium text-gray-700 mb-2">Targeting Preferences</label>
231
- <textarea id="preferences" rows="4"
232
- placeholder="e.g., B2B SaaS, 10-500 employees, Series A-C, North America/Europe..."
233
- class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-success focus:border-transparent"></textarea>
234
- <p class="text-sm text-gray-500 mt-2">Specify criteria for maximum relevance</p>
235
- </div>
236
  </div>
237
- </div>
238
-
239
- <div class="flex justify-between mt-8">
240
- <button onclick="showStep(1)" class="px-6 py-3 text-gray-600 hover:text-gray-800 transition">
241
- ← Back
242
- </button>
243
- <button onclick="showStep(3)" class="px-8 py-3 bg-primary text-white rounded-xl hover:bg-primary/90 transition">
244
- Ready to Generate
245
- </button>
246
- </div>
247
- </div>
248
 
249
- <!-- Step 3: Generation & Results -->
250
- <div id="app-step-3" class="step-content hidden">
251
- <div class="mb-8">
252
- <h2 class="text-2xl font-bold text-gray-900 mb-2">Launch AI Lead Generation</h2>
253
- <p class="text-gray-600">Your AI system is configured and ready to generate high-quality leads.</p>
 
 
 
254
  </div>
255
 
256
- <!-- Generation Options -->
257
- <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-8">
258
- <!-- Manual Generation -->
259
- <div class="bg-white rounded-xl shadow-sm p-6 border border-gray-200">
260
- <div class="flex items-center mb-4">
261
- <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-3">
262
- <span class="material-symbols-outlined text-primary">rocket_launch</span>
263
- </div>
264
- <div>
265
- <h3 class="text-lg font-semibold text-gray-900">Manual Generation</h3>
266
- <p class="text-sm text-gray-600">Generate leads on-demand</p>
267
- </div>
268
- </div>
269
-
270
- <p class="text-gray-600 mb-6">Launch your AI-powered lead generation system immediately. Our intelligent agents will analyze companies, score opportunities, and deliver a professional report.</p>
271
-
272
- <!-- Process Info Box -->
273
- <div class="bg-blue-50 rounded-lg p-4 border border-blue-100 mb-4">
274
- <div class="flex items-start">
275
- <span class="material-symbols-outlined text-blue-600 mr-2 mt-0.5">info</span>
276
- <div class="flex-1">
277
- <p class="font-medium text-blue-900">Email Notification</p>
278
- <p class="text-sm text-blue-700 mt-1">An email will be sent when the lead generation process finishes</p>
279
- <p class="text-sm text-blue-700 mt-2">
280
- Report will be sent to:
281
- <span id="manual-email" class="font-medium"></span>
282
- </p>
283
  </div>
284
  </div>
285
- </div>
286
-
287
- <button
288
- id="generate-btn"
289
- onclick="startGeneration()"
290
- class="w-full px-5 py-3 bg-primary text-white font-medium rounded-lg hover:bg-primary/90 transition disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-4 text-left"
291
- >
292
- <!-- Icon -->
293
- <span class="material-symbols-outlined text-2xl">rocket_launch</span>
294
-
295
- <!-- Text Block -->
296
- <div class="flex flex-col leading-tight">
297
- <span class="text-base font-semibold">Launch Intelligence Generation</span>
298
- <span class="text-sm text-white/80">Start AI-powered lead discovery</span>
299
  </div>
300
- </button>
301
-
302
-
303
- <div class="text-sm text-gray-600 text-center mt-4">
304
- <p>Estimated time: 3-5 minutes • Professional report via email</p>
305
  </div>
306
- </div>
307
 
308
- <!-- Automated Scheduling -->
309
- <div class="bg-white rounded-xl shadow-sm p-6 border border-gray-200">
310
- <div class="flex items-center mb-4">
311
- <div class="w-10 h-10 bg-accent/10 rounded-lg flex items-center justify-center mr-3">
312
- <span class="material-symbols-outlined text-accent">schedule</span>
313
- </div>
314
- <div>
315
- <h3 class="text-lg font-semibold text-gray-900">Automated Scheduling</h3>
316
- <p class="text-sm text-gray-600">Enable daily automated lead generation</p>
317
  </div>
318
- </div>
319
-
320
- <p class="text-gray-600 mb-6">Enable automatic daily lead generation that runs every weekday at 9:00 AM UTC. Perfect for staying on top of new opportunities without manual intervention.</p>
321
-
322
- <div class="space-y-4">
323
- <!-- Checkbox Option -->
324
- <div class="p-4 bg-gray-50 rounded-lg">
325
- <label class="flex items-center cursor-pointer">
326
- <div class="relative">
327
- <input type="checkbox" id="schedule-enabled" class="sr-only" onchange="updateScheduleToggle()">
328
- <div class="w-6 h-6 bg-white border-2 border-gray-300 rounded-md flex items-center justify-center transition-all duration-200 checkbox-custom">
329
- <span class="material-symbols-outlined text-white text-sm opacity-0 transition-opacity duration-200">check</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
330
  </div>
331
  </div>
332
- <div class="ml-4">
333
- <p class="font-medium text-gray-900">Daily Automated Reports</p>
334
- <p class="text-sm text-gray-600">Weekdays at 9:00 AM UTC</p>
335
- </div>
336
- </label>
337
- </div>
338
-
339
- <!-- Schedule Details -->
340
- <div id="schedule-details" class="hidden space-y-4">
341
- <div class="bg-blue-50 rounded-lg p-4 border border-blue-100">
342
- <div class="flex items-start">
343
- <span class="material-symbols-outlined text-blue-600 mr-2 mt-0.5">info</span>
344
- <div class="flex-1">
345
- <p class="font-medium text-blue-900">Daily Scheduling Active</p>
346
- <p class="text-sm text-blue-700 mt-1">Reports will be automatically generated every weekday at 9:00 AM UTC</p>
347
- <p class="text-sm text-blue-700 mt-2">
348
- Reports will be sent to:
349
- <span id="schedule-email" class="font-medium"></span>
350
- </p>
351
  </div>
352
  </div>
353
  </div>
354
 
355
- <div class="bg-amber-50 rounded-lg p-4 border border-amber-100">
356
- <div class="flex items-start">
357
- <span class="material-symbols-outlined text-amber-600 mr-2 mt-0.5">lightbulb</span>
358
- <div class="flex-1">
359
- <p class="font-medium text-amber-900">Need to Update Preferences?</p>
360
- <p class="text-sm text-amber-700 mt-1">You can modify your search criteria, targeting preferences, and AI settings anytime by going back to the Configure step - your schedule will remain active.</p>
 
 
361
  </div>
362
  </div>
363
  </div>
 
 
 
 
 
 
 
364
  </div>
365
-
366
- <button id="schedule-btn" onclick="saveScheduleSettings()"
367
- class="w-full px-6 py-4 bg-accent text-white text-lg font-semibold rounded-xl hover:bg-accent/90 transition disabled:opacity-50 disabled:cursor-not-allowed"
368
- disabled>
369
- <span class="material-symbols-outlined mr-2">save</span>
370
- Save Schedule Settings
371
- </button>
372
  </div>
373
  </div>
374
- </div>
375
 
376
- <!-- Progress & Results Area -->
377
- <div id="progress-section" class="hidden">
378
- <div class="bg-white rounded-xl shadow-sm p-6 border border-gray-200 mb-6">
379
- <div class="flex items-center mb-4">
380
- <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center mr-3">
381
- <span class="material-symbols-outlined text-primary animate-spin">psychology</span>
 
 
 
 
382
  </div>
383
- <div>
384
- <h3 class="text-lg font-semibold text-gray-900">AI Generation in Progress</h3>
385
- <p class="text-sm text-gray-600" id="progress-message">Initializing AI systems...</p>
386
  </div>
387
  </div>
388
- <div class="w-full bg-gray-200 rounded-full h-2 mb-4">
389
- <div class="bg-gradient-to-r from-primary to-accent h-2 rounded-full transition-all duration-300" id="progress-bar" style="width: 0%"></div>
390
- </div>
391
- </div>
392
 
393
- <!-- Live Feed -->
394
- <div class="bg-white rounded-xl shadow-sm border border-gray-200">
395
- <div class="p-6 border-b border-gray-200">
396
- <h3 class="text-lg font-semibold text-gray-900">Live Intelligence Feed</h3>
397
- <p class="text-sm text-gray-600">Real-time updates from AI analysis</p>
398
- </div>
399
- <div id="feed-messages" class="p-6 space-y-4 max-h-96 overflow-y-auto">
400
- <!-- Messages will be added here dynamically -->
401
  </div>
402
  </div>
403
- </div>
404
 
405
- <div class="flex justify-between mt-8">
406
- <button onclick="showStep(2)" class="px-6 py-3 text-gray-600 hover:text-gray-800 transition">
407
- Back to Configuration
408
- </button>
409
- <button onclick="resetAndStart()" class="px-8 py-3 bg-gray-200 text-gray-700 rounded-xl hover:bg-gray-300 transition">
410
- Reset & Start Over
411
- </button>
 
412
  </div>
413
  </div>
414
- </div>
415
 
416
- <!-- Scripts -->
417
  <script src="components/component-loader.js"></script>
418
  <script type="module" src="js/main.js"></script>
419
  <script src="js/wizard.js"></script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
420
  </body>
421
  </html>
 
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>AI Lead Intelligence Platform | Professional Dashboard</title>
7
 
 
8
  <script src="https://cdn.tailwindcss.com"></script>
9
  <script>
10
  tailwind.config = {
11
  theme: {
12
  extend: {
13
  colors: {
14
+ // Primary brand colors
15
+ primary: '#6366F1', // Indigo
16
+ accent: '#8B5CF6', // Violet
17
+
18
+ // Semantic colors
19
+ success: '#10B981', // Emerald
20
+ warning: '#F59E0B', // Amber
21
+ danger: '#EF4444', // Red
22
+
23
+ // Neutral palette for a professional feel
24
+ slate: {
25
+ 50: '#f8fafc',
26
+ 100: '#f1f5f9',
27
+ 200: '#e2e8f0',
28
+ 300: '#cbd5e1',
29
+ 400: '#94a3b8',
30
+ 500: '#64748b',
31
+ 600: '#475569',
32
+ 700: '#334155',
33
+ 800: '#1e293b',
34
+ 900: '#0f172a',
35
+ }
36
  },
37
  fontFamily: {
38
  'sans': ['Inter', 'system-ui', 'sans-serif'],
 
43
  }
44
  </script>
45
 
46
+ <link rel="preconnect" href="https://fonts.googleapis.com">
47
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
48
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
49
+ <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0" rel="stylesheet" />
50
 
51
+ <style>
52
+ /* This ensures the original checkbox functionality works with the new theme */
53
+ .checkbox-custom-js input:checked ~ .checkbox-bg {
54
+ background-color: #8B5CF6; /* accent color */
55
+ border-color: #8B5CF6; /* accent color */
56
+ }
57
+ .checkbox-custom-js input:checked ~ .checkbox-bg .checkbox-icon {
58
+ opacity: 1;
59
+ }
60
+ </style>
61
+
62
  </head>
63
+ <body class="bg-slate-50 font-sans text-slate-700">
64
 
65
+ <header class="bg-white border-b border-slate-200 sticky top-0 z-10">
 
66
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
67
+ <div class="flex justify-between items-center h-16">
68
+ <div class="flex items-center gap-3">
69
+ <div class="w-9 h-9 bg-primary/10 rounded-lg flex items-center justify-center">
70
+ <span class="material-symbols-outlined text-primary text-xl">psychology</span>
71
  </div>
72
  <div>
73
+ <h1 class="text-lg font-bold text-slate-900">AI Lead Intelligence</h1>
74
+ <p class="text-xs text-slate-500 -mt-0.5">Professional Dashboard</p>
75
  </div>
76
  </div>
77
  <div class="flex items-center space-x-4">
78
+ <div class="text-sm text-slate-600">
79
+ <span id="user-email-display" class="font-medium text-slate-900"></span>
80
  </div>
81
  </div>
82
  </div>
83
  </div>
84
  </header>
85
 
86
+ <main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-10">
87
+ <div class="mb-10">
88
+ <div class="bg-white rounded-xl border border-slate-200 p-6">
89
+ <h3 class="text-lg font-semibold text-slate-900 mb-1">Setup Progress</h3>
90
+ <p class="text-sm text-slate-500 mb-6">Complete the following steps to launch the AI</p>
91
+ <div class="flex items-center">
92
+ <button class="step-nav active group flex items-center" data-step="1" onclick="showStep(1)">
93
+ <div class="flex items-center gap-3">
94
+ <span class="step-circle w-9 h-9 rounded-full bg-primary text-white border-2 border-primary flex items-center justify-center text-sm font-bold transition-all duration-300">1</span>
95
+ <div>
96
+ <span class="step-label text-sm font-semibold text-primary">Setup</span>
97
+ <p class="text-xs text-slate-500">Basic Info</p>
98
  </div>
 
 
 
99
  </div>
100
+ </button>
101
+ <div class="flex-1 h-0.5 bg-slate-200 mx-4"><div id="progress-line-1" class="h-full bg-primary transition-all duration-500" style="width: 0%;"></div></div>
102
+ <button class="step-nav group flex items-center" data-step="2" onclick="showStep(2)">
103
+ <div class="flex items-center gap-3">
104
+ <span class="step-circle w-9 h-9 rounded-full bg-white text-slate-400 border-2 border-slate-300 group-hover:border-primary/50 flex items-center justify-center text-sm font-bold transition-all duration-300">2</span>
105
+ <div>
106
+ <span class="step-label text-sm font-medium text-slate-500 group-hover:text-slate-800">Configure</span>
107
+ <p class="text-xs text-slate-400 group-hover:text-slate-500">AI Parameters</p>
108
  </div>
 
 
 
109
  </div>
110
+ </button>
111
+ <div class="flex-1 h-0.5 bg-slate-200 mx-4"><div id="progress-line-2" class="h-full bg-primary transition-all duration-500" style="width: 0%;"></div></div>
112
+ <button class="step-nav group flex items-center" data-step="3" onclick="showStep(3)">
113
+ <div class="flex items-center gap-3">
114
+ <span class="step-circle w-9 h-9 rounded-full bg-white text-slate-400 border-2 border-slate-300 group-hover:border-primary/50 flex items-center justify-center text-sm font-bold transition-all duration-300">3</span>
115
+ <div>
116
+ <span class="step-label text-sm font-medium text-slate-500 group-hover:text-slate-800">Generate</span>
117
+ <p class="text-xs text-slate-400 group-hover:text-slate-500">Launch & Automate</p>
118
  </div>
119
+ </div>
120
+ </button>
121
  </div>
122
  </div>
123
  </div>
124
 
125
+ <div>
126
+ <div id="app-step-1" class="step-content">
127
+ <div class="grid grid-cols-1 lg:grid-cols-5 gap-8">
128
+ <div class="lg:col-span-3">
129
+ <div class="bg-white rounded-xl border border-slate-200 p-6">
130
+ <div class="flex justify-between items-start mb-5">
131
+ <div class="flex items-center gap-4">
132
+ <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center shrink-0">
133
+ <span class="material-symbols-outlined text-primary">mail</span>
134
+ </div>
135
+ <div>
136
+ <h3 class="text-lg font-semibold text-slate-900">Email Configuration</h3>
137
+ <p class="text-sm text-slate-500">Where should we send your lead reports?</p>
138
+ </div>
139
+ </div>
140
+ <div class="w-2.5 h-2.5 rounded-full bg-slate-300 mt-1.5" id="email-status" title="Email status"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  </div>
 
 
 
142
  <div>
143
+ <label for="email-input" class="block text-sm font-medium text-slate-700 mb-2">Business Email Address</label>
144
+ <input type="email" id="email-input" placeholder="your.email@company.com"
145
+ class="w-full px-4 py-2.5 border border-slate-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary placeholder:text-slate-400"
146
+ onblur="validateEmail()">
147
+ <p class="text-xs text-slate-500 mt-2">This address will be used for all report deliveries and notifications.</p>
148
  </div>
149
  </div>
150
+ </div>
151
+ <div class="lg:col-span-2">
152
+ <div class="bg-slate-100 rounded-xl p-6 border border-slate-200 h-full">
153
+ <h3 class="text-base font-semibold text-slate-800 mb-4">Quick Setup Tips</h3>
154
+ <ul class="space-y-4">
155
+ <li class="flex items-start gap-3">
156
+ <span class="material-symbols-outlined text-success text-xl mt-px">check_circle</span>
157
+ <div>
158
+ <p class="font-medium text-slate-800 text-sm">Use your business email</p>
159
+ <p class="text-xs text-slate-500">Ensures professional report delivery and credibility.</p>
160
+ </div>
161
+ </li>
162
+ <li class="flex items-start gap-3">
163
+ <span class="material-symbols-outlined text-primary text-xl mt-px">mark_email_read</span>
164
+ <div>
165
+ <p class="font-medium text-slate-800 text-sm">Check your spam folder</p>
166
+ <p class="text-xs text-slate-500">Initial AI reports can sometimes be misclassified.</p>
167
+ </div>
168
+ </li>
169
+ <li class="flex items-start gap-3">
170
+ <span class="material-symbols-outlined text-warning text-xl mt-px">model_training</span>
171
+ <div>
172
+ <p class="font-medium text-slate-800 text-sm">Settings are saved locally</p>
173
+ <p class="text-xs text-slate-500">Your preferences persist in this browser.</p>
174
+ </div>
175
+ </li>
176
+ </ul>
177
  </div>
178
  </div>
179
  </div>
 
 
 
 
 
 
 
 
 
180
 
181
+ <div class="flex justify-end mt-8">
182
+ <button onclick="continueToStep2()" class="px-6 py-2.5 bg-primary text-white rounded-lg font-semibold hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2" id="step1-next">
183
+ Continue Setup <span class="material-symbols-outlined">arrow_forward</span>
184
+ </button>
185
+ </div>
186
  </div>
187
 
188
+ <div id="app-step-2" class="step-content hidden">
189
+ <div class="space-y-8">
190
+ <div class="bg-white rounded-xl border border-slate-200 p-6">
191
+ <div class="flex items-center gap-4 mb-4">
192
+ <div class="w-10 h-10 bg-accent/10 rounded-lg flex items-center justify-center shrink-0"><span class="material-symbols-outlined text-accent">search</span></div>
193
+ <div>
194
+ <h3 class="text-lg font-semibold text-slate-900">Discovery Criteria</h3>
195
+ <p class="text-sm text-slate-500">Define what types of companies the AI should look for.</p>
196
+ </div>
197
  </div>
198
  <div>
199
+ <label for="search-criteria" class="block text-sm font-medium text-slate-700 mb-2">Search Keywords & Topics</label>
200
+ <textarea id="search-criteria" rows="3"
201
+ placeholder="e.g., SaaS startups developing AI tools, fintech companies that recently received Series A funding, organizations hiring remote software engineers..."
202
+ class="w-full px-4 py-2.5 border border-slate-300 rounded-lg focus:ring-2 focus:ring-accent/50 focus:border-accent placeholder:text-slate-400"></textarea>
203
+ <p class="text-xs text-slate-500 mt-2">Use descriptive, comma-separated phrases for best results.</p>
204
  </div>
205
  </div>
206
+ <div class="bg-white rounded-xl border border-slate-200 p-6">
207
+ <div class="flex items-center gap-4 mb-4">
208
+ <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center shrink-0"><span class="material-symbols-outlined text-primary">psychology</span></div>
209
+ <div>
210
+ <h3 class="text-lg font-semibold text-slate-900">AI Intelligence Engine</h3>
211
+ <p class="text-sm text-slate-500">Provide instructions for how the AI should analyze and report on leads.</p>
212
+ </div>
 
 
 
 
 
 
 
213
  </div>
214
  <div>
215
+ <label for="system-prompt" class="block text-sm font-medium text-slate-700 mb-2">System Instructions (Prompt)</label>
216
+ <textarea id="system-prompt" rows="6"
217
+ class="w-full px-4 py-2.5 border border-slate-300 rounded-lg focus:ring-2 focus:ring-primary/50 focus:border-primary placeholder:text-slate-400 font-mono text-sm"></textarea>
218
+ <p class="text-xs text-slate-500 mt-2">This prompt guides the AI's analysis. The default is recommended for most users.</p>
219
  </div>
220
  </div>
221
+ <div class="bg-white rounded-xl border border-slate-200 p-6">
222
+ <div class="flex items-center gap-4 mb-4">
223
+ <div class="w-10 h-10 bg-success/10 rounded-lg flex items-center justify-center shrink-0"><span class="material-symbols-outlined text-success">tune</span></div>
224
+ <div>
225
+ <h3 class="text-lg font-semibold text-slate-900">Lead Targeting Profile</h3>
226
+ <p class="text-sm text-slate-500">Describe your ideal customer to help the AI score lead relevance.</p>
227
+ </div>
 
 
 
 
 
 
228
  </div>
229
  <div>
230
+ <label for="preferences" class="block text-sm font-medium text-slate-700 mb-2">Ideal Customer Profile</label>
231
+ <textarea id="preferences" rows="3"
232
+ placeholder="e.g., B2B SaaS in the marketing tech space, 50-200 employees, located in North America, has shown recent growth signals like new executive hires or funding rounds."
233
+ class="w-full px-4 py-2.5 border border-slate-300 rounded-lg focus:ring-2 focus:ring-success/50 focus:border-success placeholder:text-slate-400"></textarea>
234
+ <p class="text-xs text-slate-500 mt-2">The more specific you are, the more accurate the lead scoring will be.</p>
235
  </div>
236
  </div>
 
 
 
 
 
 
 
237
  </div>
 
 
 
 
 
 
 
 
 
 
 
238
 
239
+ <div class="flex justify-between items-center mt-8">
240
+ <button onclick="showStep(1)" class="px-4 py-2 text-slate-600 hover:text-slate-900 transition-colors rounded-lg font-semibold flex items-center gap-1">
241
+ <span class="material-symbols-outlined">arrow_back</span> Back
242
+ </button>
243
+ <button onclick="showStep(3)" class="px-6 py-2.5 bg-primary text-white rounded-lg font-semibold hover:bg-primary/90 transition-colors flex items-center gap-2">
244
+ Ready to Generate <span class="material-symbols-outlined">arrow_forward</span>
245
+ </button>
246
+ </div>
247
  </div>
248
 
249
+ <div id="app-step-3" class="step-content hidden">
250
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-8 items-start">
251
+ <div class="bg-white rounded-xl border border-slate-200 p-6 flex flex-col">
252
+ <div class="flex items-center gap-4 mb-3">
253
+ <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center shrink-0"><span class="material-symbols-outlined text-primary">rocket_launch</span></div>
254
+ <div>
255
+ <h3 class="text-lg font-semibold text-slate-900">On-Demand Generation</h3>
256
+ <p class="text-sm text-slate-500">Manually trigger the lead generation process.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
257
  </div>
258
  </div>
259
+ <p class="text-sm text-slate-600 mb-4 flex-grow">Launch the AI system now. It will discover companies, perform analysis based on your configuration, and deliver a detailed report to your email.</p>
260
+ <div class="bg-primary/5 rounded-lg p-4 border border-primary/20 mb-6">
261
+ <div class="flex items-start gap-3">
262
+ <span class="material-symbols-outlined text-primary/80 mt-px">notification_important</span>
263
+ <div class="flex-1">
264
+ <p class="font-medium text-slate-800 text-sm">Report Delivery</p>
265
+ <p class="text-xs text-slate-600 mt-1">A professional report will be sent to <strong id="manual-email" class="font-semibold"></strong> upon completion (est. 3-5 mins).</p>
266
+ </div>
267
+ </div>
 
 
 
 
 
268
  </div>
269
+ <button id="generate-btn" onclick="startGeneration()" class="w-full px-5 py-3 bg-primary text-white font-semibold rounded-lg hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-3 text-base">
270
+ <span class="material-symbols-outlined">rocket_launch</span>
271
+ <span>Launch Intelligence Generation</span>
272
+ </button>
 
273
  </div>
 
274
 
275
+ <div class="bg-white rounded-xl border border-slate-200 p-6">
276
+ <div class="flex items-center gap-4 mb-3">
277
+ <div class="w-10 h-10 bg-accent/10 rounded-lg flex items-center justify-center shrink-0"><span class="material-symbols-outlined text-accent">schedule</span></div>
278
+ <div>
279
+ <h3 class="text-lg font-semibold text-slate-900">Automated Scheduling</h3>
280
+ <p class="text-sm text-slate-500">Receive lead reports automatically.</p>
281
+ </div>
 
 
282
  </div>
283
+ <p class="text-sm text-slate-600 mb-6">Enable automated reports to run every weekday at 9:00 AM UTC. Stay ahead of opportunities without manual effort.</p>
284
+
285
+ <div class="space-y-4">
286
+ <div class="p-4 bg-slate-100 rounded-lg border border-slate-200">
287
+ <label class="flex items-center cursor-pointer checkbox-custom-js">
288
+ <div class="relative">
289
+ <input type="checkbox" id="schedule-enabled" class="sr-only" onchange="updateScheduleToggle()">
290
+ <div class="checkbox-bg w-6 h-6 bg-white border-2 border-slate-300 rounded-md flex items-center justify-center transition-all duration-200">
291
+ <span class="checkbox-icon material-symbols-outlined text-white text-base opacity-0 transition-opacity duration-200">check</span>
292
+ </div>
293
+ </div>
294
+ <div class="ml-4">
295
+ <p class="font-medium text-slate-900">Enable Daily Automated Reports</p>
296
+ <p class="text-sm text-slate-600">Weekdays at 9:00 AM UTC</p>
297
+ </div>
298
+ </label>
299
+ </div>
300
+
301
+ <div id="schedule-details" class="hidden space-y-4">
302
+ <div class="bg-sky-50 rounded-lg p-4 border border-sky-200">
303
+ <div class="flex items-start gap-3">
304
+ <span class="material-symbols-outlined text-sky-600 mt-px">info</span>
305
+ <div class="flex-1">
306
+ <p class="font-medium text-sky-900 text-sm">Daily Scheduling Active</p>
307
+ <p class="text-xs text-sky-700 mt-1">Reports will be automatically generated every weekday.</p>
308
+ <p class="text-xs text-sky-700 mt-1">
309
+ Reports will be sent to:
310
+ <strong id="schedule-email" class="font-semibold"></strong>
311
+ </p>
312
+ </div>
313
  </div>
314
  </div>
315
+
316
+ <div class="bg-amber-50 rounded-lg p-4 border border-amber-200">
317
+ <div class="flex items-start gap-3">
318
+ <span class="material-symbols-outlined text-amber-600 mt-px">lightbulb</span>
319
+ <div class="flex-1">
320
+ <p class="font-medium text-amber-900 text-sm">Need to Update Preferences?</p>
321
+ <p class="text-xs text-amber-700 mt-1">Return to the 'Configure' step to modify your settings at any time. Your schedule will remain active with the new settings.</p>
322
+ </div>
 
 
 
 
 
 
 
 
 
 
 
323
  </div>
324
  </div>
325
  </div>
326
 
327
+ <div id="schedule-disable-info" class="hidden">
328
+ <div class="bg-orange-50 rounded-lg p-4 border border-orange-200">
329
+ <div class="flex items-start gap-3">
330
+ <span class="material-symbols-outlined text-orange-600 mt-px">info</span>
331
+ <div class="flex-1">
332
+ <p class="font-medium text-orange-900 text-sm">Save to Disable Scheduler</p>
333
+ <p class="text-xs text-orange-700 mt-1">Click "Save to Disable Schedule" below to permanently turn off automated reports. Your settings will be updated and no future reports will be scheduled.</p>
334
+ </div>
335
  </div>
336
  </div>
337
  </div>
338
+
339
+ <button id="schedule-btn" onclick="saveScheduleSettings()"
340
+ class="w-full px-5 py-3 bg-accent text-white font-semibold rounded-lg hover:bg-accent/90 transition-colors disabled:opacity-40 disabled:cursor-not-allowed flex items-center justify-center gap-2"
341
+ disabled>
342
+ <span class="material-symbols-outlined">save</span>
343
+ Save Schedule Settings
344
+ </button>
345
  </div>
 
 
 
 
 
 
 
346
  </div>
347
  </div>
 
348
 
349
+ <div id="progress-section" class="hidden">
350
+ <div class="bg-white rounded-xl border border-slate-200 p-6 mb-6">
351
+ <div class="flex items-center mb-4 gap-4">
352
+ <div class="w-10 h-10 bg-primary/10 rounded-lg flex items-center justify-center shrink-0">
353
+ <span class="material-symbols-outlined text-primary animate-spin">psychology</span>
354
+ </div>
355
+ <div>
356
+ <h3 class="text-lg font-semibold text-slate-900">AI Generation in Progress...</h3>
357
+ <p class="text-sm text-slate-500" id="progress-message">Initializing AI systems...</p>
358
+ </div>
359
  </div>
360
+ <div class="w-full bg-slate-200 rounded-full h-2.5">
361
+ <div class="bg-gradient-to-r from-primary to-accent h-2.5 rounded-full transition-all duration-300" id="progress-bar" style="width: 0%"></div>
 
362
  </div>
363
  </div>
 
 
 
 
364
 
365
+ <div class="bg-slate-900 rounded-xl border border-slate-700">
366
+ <div class="p-5 border-b border-slate-700">
367
+ <h3 class="text-lg font-semibold text-slate-100">Live Intelligence Feed</h3>
368
+ <p class="text-sm text-slate-400">Real-time updates from the AI analysis engine.</p>
369
+ </div>
370
+ <div id="feed-messages" class="p-6 space-y-3 max-h-96 overflow-y-auto font-mono text-sm text-slate-300">
371
+ </div>
 
372
  </div>
373
  </div>
 
374
 
375
+ <div class="flex justify-between items-center mt-8 pt-6 border-t border-slate-200">
376
+ <button onclick="showStep(2)" class="px-4 py-2 text-slate-600 hover:text-slate-900 transition-colors rounded-lg font-semibold flex items-center gap-1">
377
+ <span class="material-symbols-outlined">arrow_back</span> Back to Configuration
378
+ </button>
379
+ <button onclick="resetAndStart()" class="px-4 py-2 bg-slate-200 text-slate-700 rounded-lg font-semibold hover:bg-slate-300 transition-colors flex items-center gap-2">
380
+ <span class="material-symbols-outlined">refresh</span> Reset & Start Over
381
+ </button>
382
+ </div>
383
  </div>
384
  </div>
385
+ </main>
386
 
 
387
  <script src="components/component-loader.js"></script>
388
  <script type="module" src="js/main.js"></script>
389
  <script src="js/wizard.js"></script>
390
+
391
+ <script>
392
+ // A small script to add a default prompt to the textarea, improving user experience.
393
+ document.addEventListener('DOMContentLoaded', function() {
394
+ const systemPromptTextarea = document.getElementById('system-prompt');
395
+ if (systemPromptTextarea && !systemPromptTextarea.value) {
396
+ systemPromptTextarea.value = `You are an expert business analyst AI. Your primary function is to analyze companies based on user-provided criteria.
397
+
398
+ For each discovered company, perform the following tasks:
399
+ 1. **Company Summary:** Provide a concise, one-paragraph overview of the company, its mission, and its primary products or services.
400
+ 2. **Alignment Analysis:** Based on the user's "Ideal Customer Profile", explain why this company is or is not a good fit. Be specific.
401
+ 3. **Key Signals:** Identify 3-5 recent positive signals (e.g., funding, new product launch, key hires, market expansion).
402
+ 4. **Potential Risks:** Identify 1-2 potential risks or challenges the company faces.
403
+ 5. **Lead Score:** Assign a "Lead Fit Score" from 0 to 100, where 100 is a perfect match for the user's profile.
404
+
405
+ Present the final output in a clean, well-structured markdown format.`;
406
+ }
407
+ });
408
+ </script>
409
  </body>
410
  </html>
ai-agent-ui/js/components/form-handler.js CHANGED
@@ -262,7 +262,6 @@ export class FormHandler {
262
  </div>
263
  <div class="launch-text">
264
  <span class="primary">Launch Intelligence Generation</span>
265
- <span class="secondary">Start AI-powered lead discovery</span>
266
  </div>
267
  `;
268
  }
 
262
  </div>
263
  <div class="launch-text">
264
  <span class="primary">Launch Intelligence Generation</span>
 
265
  </div>
266
  `;
267
  }
ai-agent-ui/js/wizard.js CHANGED
@@ -409,14 +409,17 @@ function updateScheduleToggle() {
409
  const scheduleDetails = document.getElementById('schedule-details');
410
  const scheduleEmail = document.getElementById('schedule-email');
411
  const scheduleBtn = document.getElementById('schedule-btn');
 
412
 
413
- if (!scheduleEnabled || !scheduleDetails || !scheduleBtn) return;
414
 
415
  const isEnabled = scheduleEnabled.checked;
416
  const email = document.getElementById('email-input')?.value || '';
417
 
418
  if (isEnabled) {
419
- scheduleDetails.classList.remove('hidden');
 
 
420
 
421
  if (email) {
422
  // Email is available - enable save button and show email
@@ -436,9 +439,19 @@ function updateScheduleToggle() {
436
  scheduleBtn.innerHTML = '<span class="material-symbols-outlined mr-2">warning</span>Email Required';
437
  }
438
  } else {
439
- scheduleDetails.classList.add('hidden');
440
- scheduleBtn.disabled = true;
441
- scheduleBtn.innerHTML = '<span class="material-symbols-outlined mr-2">save</span>Save Schedule Settings';
 
 
 
 
 
 
 
 
 
 
442
 
443
  // Reset email display styling
444
  if (scheduleEmail) {
@@ -490,8 +503,8 @@ async function saveScheduleSettings() {
490
 
491
  // Reset button after delay
492
  setTimeout(() => {
493
- scheduleBtn.disabled = false;
494
- scheduleBtn.innerHTML = '<span class="material-symbols-outlined mr-2">save</span>Save Schedule Settings';
495
  }, 2000);
496
 
497
  } catch (error) {
 
409
  const scheduleDetails = document.getElementById('schedule-details');
410
  const scheduleEmail = document.getElementById('schedule-email');
411
  const scheduleBtn = document.getElementById('schedule-btn');
412
+ const scheduleDisableInfo = document.getElementById('schedule-disable-info');
413
 
414
+ if (!scheduleEnabled || !scheduleBtn) return;
415
 
416
  const isEnabled = scheduleEnabled.checked;
417
  const email = document.getElementById('email-input')?.value || '';
418
 
419
  if (isEnabled) {
420
+ // Scheduling is enabled
421
+ if (scheduleDetails) scheduleDetails.classList.remove('hidden');
422
+ if (scheduleDisableInfo) scheduleDisableInfo.classList.add('hidden');
423
 
424
  if (email) {
425
  // Email is available - enable save button and show email
 
439
  scheduleBtn.innerHTML = '<span class="material-symbols-outlined mr-2">warning</span>Email Required';
440
  }
441
  } else {
442
+ // Scheduling is disabled - but user should still be able to save this setting
443
+ if (scheduleDetails) scheduleDetails.classList.add('hidden');
444
+ if (scheduleDisableInfo) scheduleDisableInfo.classList.remove('hidden');
445
+
446
+ if (email) {
447
+ // Email is available - enable save button to allow disabling
448
+ scheduleBtn.disabled = false;
449
+ scheduleBtn.innerHTML = '<span class="material-symbols-outlined mr-2">save</span>Save to Disable Schedule';
450
+ } else {
451
+ // No email - still disable save button
452
+ scheduleBtn.disabled = true;
453
+ scheduleBtn.innerHTML = '<span class="material-symbols-outlined mr-2">warning</span>Email Required';
454
+ }
455
 
456
  // Reset email display styling
457
  if (scheduleEmail) {
 
503
 
504
  // Reset button after delay
505
  setTimeout(() => {
506
+ // Update the button text and state properly based on current checkbox state
507
+ updateScheduleToggle();
508
  }, 2000);
509
 
510
  } catch (error) {
ai-agent-ui/script.js CHANGED
@@ -465,7 +465,6 @@ class AILeadIntelligenceApp {
465
  </div>
466
  <div class="launch-text">
467
  <span class="primary">Launch Intelligence Generation</span>
468
- <span class="secondary">Start AI-powered lead discovery</span>
469
  </div>
470
  `;
471
  }
 
465
  </div>
466
  <div class="launch-text">
467
  <span class="primary">Launch Intelligence Generation</span>
 
468
  </div>
469
  `;
470
  }
config/settings.py CHANGED
@@ -31,7 +31,7 @@ class Settings:
31
  self.bypass_tool_consent: str = os.getenv("BYPASS_TOOL_CONSENT", "true")
32
 
33
  # Email authorization settings
34
- authorized_emails_str = os.getenv("AUTHORIZED_EMAILS", "daniel.harris@hirepals.co.uk,kavukcu.tolga@gmail.com")
35
  self.authorized_emails: list[str] = [email.strip() for email in authorized_emails_str.split(",") if email.strip()] if authorized_emails_str else []
36
 
37
  def is_email_authorized(self, email: str) -> bool:
 
31
  self.bypass_tool_consent: str = os.getenv("BYPASS_TOOL_CONSENT", "true")
32
 
33
  # Email authorization settings
34
+ authorized_emails_str = os.getenv("AUTHORIZED_EMAILS", "")
35
  self.authorized_emails: list[str] = [email.strip() for email in authorized_emails_str.split(",") if email.strip()] if authorized_emails_str else []
36
 
37
  def is_email_authorized(self, email: str) -> bool: