Spaces:
Running
Running
Add 2 files
Browse files- index.html +640 -432
- prompts.txt +2 -1
index.html
CHANGED
@@ -3,58 +3,110 @@
|
|
3 |
<head>
|
4 |
<meta charset="UTF-8">
|
5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
-
<title>Insur.MCP |
|
7 |
<script src="https://cdn.tailwindcss.com"></script>
|
8 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
9 |
<style>
|
10 |
-
/* Custom
|
11 |
-
.
|
12 |
-
background:
|
|
|
|
|
|
|
|
|
|
|
13 |
}
|
14 |
|
15 |
-
.
|
16 |
-
|
|
|
|
|
17 |
}
|
18 |
|
19 |
-
.
|
20 |
-
|
21 |
-
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
|
22 |
}
|
23 |
|
24 |
-
.
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
27 |
|
28 |
-
.
|
29 |
-
|
30 |
}
|
31 |
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
|
|
|
|
37 |
}
|
38 |
|
39 |
-
.
|
40 |
-
|
41 |
}
|
42 |
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
border:
|
47 |
-
|
48 |
-
|
|
|
49 |
}
|
50 |
|
51 |
-
.
|
52 |
-
|
53 |
-
|
|
|
54 |
}
|
55 |
|
56 |
-
.
|
57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
}
|
59 |
</style>
|
60 |
</head>
|
@@ -65,22 +117,20 @@
|
|
65 |
<div class="flex justify-between h-16">
|
66 |
<div class="flex items-center">
|
67 |
<div class="flex-shrink-0 flex items-center">
|
68 |
-
<
|
69 |
</div>
|
70 |
</div>
|
71 |
|
72 |
-
<!-- Desktop Navigation -->
|
73 |
<div class="hidden md:flex items-center space-x-8">
|
74 |
-
<a href="
|
75 |
-
<a href="#features" class="text-gray-500 hover:text-blue-600 font-medium px-1">Features</a>
|
76 |
-
<a href="#about" class="text-gray-500 hover:text-blue-600 font-medium px-1">About</a>
|
77 |
-
<a href="
|
78 |
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-md font-medium transition duration-300">
|
79 |
Contact Us
|
80 |
</button>
|
81 |
</div>
|
82 |
|
83 |
-
<!-- Mobile menu button -->
|
84 |
<div class="md:hidden flex items-center">
|
85 |
<button id="mobile-menu-button" class="text-gray-500 hover:text-blue-600 focus:outline-none">
|
86 |
<svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
@@ -91,13 +141,12 @@
|
|
91 |
</div>
|
92 |
</div>
|
93 |
|
94 |
-
<!-- Mobile menu -->
|
95 |
<div id="mobile-menu" class="mobile-menu md:hidden bg-white">
|
96 |
<div class="px-2 pt-2 pb-3 space-y-1 sm:px-3">
|
97 |
-
<a href="
|
98 |
-
<a href="#features" class="block px-3 py-2 rounded-md text-base font-medium text-gray-500 hover:text-blue-600 hover:bg-blue-50">Features</a>
|
99 |
-
<a href="#about" class="block px-3 py-2 rounded-md text-base font-medium text-gray-500 hover:text-blue-600 hover:bg-blue-50">About</a>
|
100 |
-
<a href="
|
101 |
<button class="w-full text-left block px-3 py-2 rounded-md text-base font-medium text-white bg-blue-600 hover:bg-blue-700">
|
102 |
Contact Us
|
103 |
</button>
|
@@ -105,328 +154,141 @@
|
|
105 |
</div>
|
106 |
</nav>
|
107 |
|
108 |
-
<!--
|
109 |
-
<
|
110 |
-
<div class="
|
111 |
-
<div
|
112 |
-
<
|
113 |
-
|
114 |
-
Deploying Synthetic Workers with Strategic Confidence
|
115 |
-
</h1>
|
116 |
-
<p class="text-lg text-gray-700 mb-8">
|
117 |
-
At Insur.MCP, we're not just experimenting with AI — we're deploying synthetic workers through our Strategic and Structured Iterative Model Context Protocol (MSP) approach.
|
118 |
-
</p>
|
119 |
-
<div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
|
120 |
-
<button class="bg-blue-600 hover:bg-blue-700 text-white px-6 py-3 rounded-md font-medium transition duration-300">
|
121 |
-
Get Started
|
122 |
-
</button>
|
123 |
-
<button class="border border-blue-600 text-blue-600 hover:bg-blue-50 px-6 py-3 rounded-md font-medium transition duration-300">
|
124 |
-
Learn More
|
125 |
-
</button>
|
126 |
-
</div>
|
127 |
-
</div>
|
128 |
-
<div class="md:w-1/2 flex justify-center">
|
129 |
-
<div class="relative w-full max-w-md">
|
130 |
-
<div class="absolute -top-6 -left-6 w-32 h-32 bg-blue-100 rounded-full mix-blend-multiply filter blur-xl opacity-70 animate-blob"></div>
|
131 |
-
<div class="absolute -bottom-8 -right-8 w-32 h-32 bg-blue-300 rounded-full mix-blend-multiply filter blur-xl opacity-70 animate-blob animation-delay-2000"></div>
|
132 |
-
<div class="relative bg-white p-8 rounded-2xl shadow-xl">
|
133 |
-
<h3 class="text-xl font-semibold text-gray-800 mb-4">Agentic Workflow System</h3>
|
134 |
-
<p class="text-gray-600 mb-6">Helps incumbents escape pilot purgatory and confidently scale real AI outcomes.</p>
|
135 |
-
<div class="flex items-center">
|
136 |
-
<div class="flex-shrink-0 bg-blue-100 p-3 rounded-full">
|
137 |
-
<i class="fas fa-robot text-blue-600 text-xl"></i>
|
138 |
-
</div>
|
139 |
-
<div class="ml-4">
|
140 |
-
<p class="text-sm font-medium text-gray-900">Digital Workforce</p>
|
141 |
-
<p class="text-sm text-gray-500">Always-on synthetic agents</p>
|
142 |
-
</div>
|
143 |
-
</div>
|
144 |
-
</div>
|
145 |
-
</div>
|
146 |
-
</div>
|
147 |
-
</div>
|
148 |
-
</div>
|
149 |
-
</section>
|
150 |
-
|
151 |
-
<!-- Scrollable Content Section -->
|
152 |
-
<section id="about" class="py-16 bg-white">
|
153 |
-
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
|
154 |
-
<div class="text-center mb-16">
|
155 |
-
<h2 class="text-3xl font-bold text-gray-900 mb-4">Our Approach</h2>
|
156 |
-
<div class="w-20 h-1 bg-blue-600 mx-auto"></div>
|
157 |
</div>
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
We bring deep insurance industry knowledge where departments run on repetitive, structured tasks, and we translate that into multi-agent AI environments that perform jobs-to-be-done autonomously.
|
166 |
-
</p>
|
167 |
-
|
168 |
-
<p>
|
169 |
-
Our mission is to build secure, sandboxed workspaces with synthetic datasets to validate and train these agents safely, because we believe the future of work is agentic, modular, and truly autonomous.
|
170 |
-
</p>
|
171 |
-
|
172 |
-
<p>
|
173 |
-
It's like giving every team a digital twin that thinks and acts, not just reacts.
|
174 |
-
</p>
|
175 |
</div>
|
176 |
</div>
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
</p>
|
187 |
-
<div class="w-20 h-1 bg-blue-600 mx-auto mt-4"></div>
|
188 |
-
</div>
|
189 |
-
|
190 |
-
<!-- Desktop Grid Layout -->
|
191 |
-
<div class="hidden md:grid grid-cols-1 md:grid-cols-3 gap-8">
|
192 |
-
<div class="bg-white p-8 rounded-xl shadow-sm card-hover">
|
193 |
-
<div class="w-14 h-14 bg-blue-50 rounded-full flex items-center justify-center mb-6">
|
194 |
-
<i class="fas fa-project-diagram text-blue-600 text-2xl"></i>
|
195 |
-
</div>
|
196 |
-
<h3 class="text-xl font-semibold text-gray-900 mb-3">Agentic Workflows</h3>
|
197 |
-
<p class="text-gray-600">
|
198 |
-
Transform traditional processes into autonomous, self-optimizing workflows powered by AI agents that collaborate like human teams.
|
199 |
-
</p>
|
200 |
-
</div>
|
201 |
-
|
202 |
-
<div class="bg-white p-8 rounded-xl shadow-sm card-hover">
|
203 |
-
<div class="w-14 h-14 bg-blue-50 rounded-full flex items-center justify-center mb-6">
|
204 |
-
<i class="fas fa-shield-alt text-blue-600 text-2xl"></i>
|
205 |
-
</div>
|
206 |
-
<h3 class="text-xl font-semibold text-gray-900 mb-3">Sandboxed Validation</h3>
|
207 |
-
<p class="text-gray-600">
|
208 |
-
Test and refine synthetic workers in secure environments with synthetic data before deployment to production systems.
|
209 |
-
</p>
|
210 |
-
</div>
|
211 |
-
|
212 |
-
<div class="bg-white p-8 rounded-xl shadow-sm card-hover">
|
213 |
-
<div class="w-14 h-14 bg-blue-50 rounded-full flex items-center justify-center mb-6">
|
214 |
-
<i class="fas fa-random text-blue-600 text-2xl"></i>
|
215 |
-
</div>
|
216 |
-
<h3 class="text-xl font-semibold text-gray-900 mb-3">Modular Architecture</h3>
|
217 |
-
<p class="text-gray-600">
|
218 |
-
Compose and reconfigure specialized AI agents to match evolving business needs without costly reimplementation.
|
219 |
-
</p>
|
220 |
</div>
|
221 |
|
222 |
-
|
223 |
-
|
224 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
225 |
</div>
|
226 |
-
<h3 class="text-xl font-semibold text-gray-900 mb-3">Industry Knowledge</h3>
|
227 |
-
<p class="text-gray-600">
|
228 |
-
Pre-built insurance domain models that understand underwriting, claims, compliance and other core functions.
|
229 |
-
</p>
|
230 |
</div>
|
231 |
|
232 |
-
|
233 |
-
|
234 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
235 |
</div>
|
236 |
-
<h3 class="text-xl font-semibold text-gray-900 mb-3">Continuous Learning</h3>
|
237 |
-
<p class="text-gray-600">
|
238 |
-
Agents that improve over time through reinforcement learning and human feedback loops.
|
239 |
-
</p>
|
240 |
</div>
|
241 |
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
<p class="text-gray-600">
|
248 |
-
Comprehensive dashboards tracking synthetic worker efficiency, accuracy and business impact.
|
249 |
-
</p>
|
250 |
-
</div>
|
251 |
-
</div>
|
252 |
-
|
253 |
-
<!-- Mobile Swipe Layout -->
|
254 |
-
<div class="md:hidden overflow-x-auto pb-6 swipe-container">
|
255 |
-
<div class="flex space-x-4 w-max px-4">
|
256 |
-
<div class="w-72 flex-shrink-0 bg-white p-6 rounded-xl shadow-sm swipe-card">
|
257 |
-
<div class="w-12 h-12 bg-blue-50 rounded-full flex items-center justify-center mb-4">
|
258 |
-
<i class="fas fa-project-diagram text-blue-600 text-xl"></i>
|
259 |
</div>
|
260 |
-
<
|
261 |
-
|
262 |
-
Transform traditional processes into autonomous workflows powered by AI agents.
|
263 |
-
</p>
|
264 |
-
</div>
|
265 |
-
|
266 |
-
<div class="w-72 flex-shrink-0 bg-white p-6 rounded-xl shadow-sm swipe-card">
|
267 |
-
<div class="w-12 h-12 bg-blue-50 rounded-full flex items-center justify-center mb-4">
|
268 |
-
<i class="fas fa-shield-alt text-blue-600 text-xl"></i>
|
269 |
</div>
|
270 |
-
<
|
271 |
-
|
272 |
-
Test synthetic workers in secure environments before deployment.
|
273 |
-
</p>
|
274 |
-
</div>
|
275 |
-
|
276 |
-
<div class="w-72 flex-shrink-0 bg-white p-6 rounded-xl shadow-sm swipe-card">
|
277 |
-
<div class="w-12 h-12 bg-blue-50 rounded-full flex items-center justify-center mb-4">
|
278 |
-
<i class="fas fa-random text-blue-600 text-xl"></i>
|
279 |
</div>
|
280 |
-
<
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
<i class="fas fa-database text-blue-600 text-xl"></i>
|
289 |
</div>
|
290 |
-
<h3 class="text-lg font-semibold text-gray-900 mb-2">Industry Knowledge</h3>
|
291 |
-
<p class="text-sm text-gray-600">
|
292 |
-
Pre-built insurance domain models for core functions.
|
293 |
-
</p>
|
294 |
</div>
|
295 |
</div>
|
296 |
-
</div>
|
297 |
-
</div>
|
298 |
-
</section>
|
299 |
-
|
300 |
-
<!-- CTA Section -->
|
301 |
-
<section class="py-16 bg-blue-600 text-white">
|
302 |
-
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
|
303 |
-
<h2 class="text-3xl font-bold mb-6">Ready to Transform Your Insurance Operations?</h2>
|
304 |
-
<p class="text-xl mb-8 opacity-90">
|
305 |
-
Discover how our agentic AI systems can automate your most complex workflows.
|
306 |
-
</p>
|
307 |
-
<div class="flex flex-col sm:flex-row justify-center space-y-4 sm:space-y-0 sm:space-x-4">
|
308 |
-
<button class="bg-white text-blue-600 hover:bg-gray-100 px-8 py-3 rounded-md font-medium transition duration-300">
|
309 |
-
Schedule a Demo
|
310 |
-
</button>
|
311 |
-
<button class="border border-white text-white hover:bg-blue-700 px-8 py-3 rounded-md font-medium transition duration-300">
|
312 |
-
Contact Our Team
|
313 |
-
</button>
|
314 |
-
</div>
|
315 |
-
</div>
|
316 |
-
</section>
|
317 |
-
|
318 |
-
<!-- Footer -->
|
319 |
-
<footer class="bg-gray-900 text-white py-12">
|
320 |
-
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
321 |
-
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
|
322 |
-
<div>
|
323 |
-
<h3 class="text-xl font-bold mb-4">Insur.MCP</h3>
|
324 |
-
<p class="text-gray-400">
|
325 |
-
Deploying synthetic workers with strategic confidence through our MSP approach.
|
326 |
-
</p>
|
327 |
-
</div>
|
328 |
-
|
329 |
-
<div>
|
330 |
-
<h4 class="text-lg font-semibold mb-4">Quick Links</h4>
|
331 |
-
<ul class="space-y-2">
|
332 |
-
<li><a href="#" class="text-gray-400 hover:text-white transition">Home</a></li>
|
333 |
-
<li><a href="#features" class="text-gray-400 hover:text-white transition">Features</a></li>
|
334 |
-
<li><a href="#about" class="text-gray-400 hover:text-white transition">About</a></li>
|
335 |
-
<li><a href="subpage.html" class="text-gray-400 hover:text-white transition">Canvas</a></li>
|
336 |
-
</ul>
|
337 |
-
</div>
|
338 |
-
|
339 |
-
<div>
|
340 |
-
<h4 class="text-lg font-semibold mb-4">Resources</h4>
|
341 |
-
<ul class="space-y-2">
|
342 |
-
<li><a href="#" class="text-gray-400 hover:text-white transition">Documentation</a></li>
|
343 |
-
<li><a href="#" class="text-gray-400 hover:text-white transition">Case Studies</a></li>
|
344 |
-
<li><a href="#" class="text-gray-400 hover:text-white transition">Blog</a></li>
|
345 |
-
<li><a href="#" class="text-gray-400 hover:text-white transition">API</a></li>
|
346 |
-
</ul>
|
347 |
-
</div>
|
348 |
|
349 |
-
|
350 |
-
|
351 |
-
<div class="flex space-x-4">
|
352 |
-
<a href="#" class="text-gray-400 hover:text-white transition">
|
353 |
-
<i class="fab fa-linkedin text-xl"></i>
|
354 |
-
</a>
|
355 |
-
<a href="#" class="text-gray-400 hover:text-white transition">
|
356 |
-
<i class="fab fa-twitter text-xl"></i>
|
357 |
-
</a>
|
358 |
-
<a href="#" class="text-gray-400 hover:text-white transition">
|
359 |
-
<i class="fab fa-github text-xl"></i>
|
360 |
-
</a>
|
361 |
-
<a href="#" class="text-gray-400 hover:text-white transition">
|
362 |
-
<i class="fab fa-medium text-xl"></i>
|
363 |
-
</a>
|
364 |
-
</div>
|
365 |
-
<p class="text-gray-400 mt-4">
|
366 |
-
info@insurmcp.com<br>
|
367 |
-
+1 (555) 123-4567
|
368 |
-
</p>
|
369 |
-
</div>
|
370 |
-
</div>
|
371 |
-
|
372 |
-
<div class="border-t border-gray-800 mt-12 pt-8 flex flex-col md:flex-row justify-between items-center">
|
373 |
-
<p class="text-gray-400 text-sm">
|
374 |
-
© 2023 Insur.MCP. All rights reserved.
|
375 |
-
</p>
|
376 |
-
<div class="flex space-x-6 mt-4 md:mt-0">
|
377 |
-
<a href="#" class="text-gray-400 hover:text-white text-sm">Privacy Policy</a>
|
378 |
-
<a href="#" class="text-gray-400 hover:text-white text-sm">Terms of Service</a>
|
379 |
-
<a href="#" class="text-gray-400 hover:text-white text-sm">Cookies</a>
|
380 |
-
</div>
|
381 |
-
</div>
|
382 |
-
</div>
|
383 |
-
</footer>
|
384 |
-
|
385 |
-
<!-- Canvas Subpage (hidden by default) -->
|
386 |
-
<div id="subpage" class="fixed inset-0 bg-white z-50 overflow-auto hidden">
|
387 |
-
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
|
388 |
-
<div class="flex justify-between items-center mb-8">
|
389 |
-
<h2 class="text-2xl font-bold text-gray-900">Agent Workflow Canvas</h2>
|
390 |
-
<button id="close-subpage" class="text-gray-500 hover:text-gray-700">
|
391 |
-
<i class="fas fa-times text-2xl"></i>
|
392 |
-
</button>
|
393 |
-
</div>
|
394 |
-
|
395 |
-
<div class="flex flex-col lg:flex-row gap-6">
|
396 |
-
<!-- Components Panel -->
|
397 |
-
<div class="lg:w-1/4 bg-gray-50 p-4 rounded-lg">
|
398 |
-
<h3 class="font-semibold text-lg mb-4">Components</h3>
|
399 |
<div class="space-y-3">
|
400 |
-
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="
|
401 |
-
<i class="fas fa-
|
402 |
</div>
|
403 |
-
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="
|
404 |
-
<i class="fas fa-
|
405 |
</div>
|
406 |
-
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="
|
407 |
-
<i class="fas fa-
|
408 |
</div>
|
409 |
-
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="
|
410 |
-
<i class="fas fa-
|
411 |
</div>
|
412 |
-
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="
|
413 |
-
<i class="fas fa-
|
414 |
</div>
|
415 |
</div>
|
416 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
417 |
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
<p class="text-gray-500 text-center py-20">Drag and drop components here to build your agent workflow</p>
|
422 |
</div>
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
|
|
|
|
427 |
</button>
|
428 |
-
<button
|
429 |
-
|
430 |
</button>
|
431 |
</div>
|
432 |
</div>
|
@@ -443,31 +305,328 @@
|
|
443 |
mobileMenu.classList.toggle('open');
|
444 |
});
|
445 |
|
446 |
-
//
|
447 |
-
const
|
448 |
-
const
|
449 |
-
const closeSubpage = document.getElementById('close-subpage');
|
450 |
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
|
|
|
|
|
|
|
|
|
|
456 |
});
|
457 |
-
}
|
458 |
-
|
459 |
-
closeSubpage.addEventListener('click', () => {
|
460 |
-
subpage.classList.add('hidden');
|
461 |
-
document.body.style.overflow = 'auto';
|
462 |
});
|
463 |
|
464 |
-
//
|
465 |
-
const draggableItems = document.querySelectorAll('.draggable-item');
|
466 |
const canvas = document.getElementById('workflow-canvas');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
467 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
468 |
draggableItems.forEach(item => {
|
469 |
item.addEventListener('dragstart', (e) => {
|
470 |
-
e.dataTransfer.setData('
|
|
|
471 |
e.dataTransfer.effectAllowed = 'copy';
|
472 |
});
|
473 |
});
|
@@ -479,101 +638,150 @@
|
|
479 |
|
480 |
canvas.addEventListener('drop', (e) => {
|
481 |
e.preventDefault();
|
482 |
-
const type = e.dataTransfer.getData('text/plain');
|
483 |
|
484 |
-
|
485 |
-
const
|
486 |
-
|
|
|
487 |
|
488 |
-
// Position the new node near the drop location
|
489 |
const rect = canvas.getBoundingClientRect();
|
490 |
-
const x = e.clientX - rect.left -
|
491 |
-
const y = e.clientY - rect.top -
|
492 |
-
newNode.style.position = 'absolute';
|
493 |
-
newNode.style.left = `${x}px`;
|
494 |
-
newNode.style.top = `${y}px`;
|
495 |
-
|
496 |
-
// Set content based on type
|
497 |
-
let icon, color, text;
|
498 |
-
switch(type) {
|
499 |
-
case 'input':
|
500 |
-
icon = 'keyboard';
|
501 |
-
color = 'blue';
|
502 |
-
text = 'Input';
|
503 |
-
break;
|
504 |
-
case 'process':
|
505 |
-
icon = 'cog';
|
506 |
-
color = 'green';
|
507 |
-
text = 'Process';
|
508 |
-
break;
|
509 |
-
case 'decision':
|
510 |
-
icon = 'code-branch';
|
511 |
-
color = 'yellow';
|
512 |
-
text = 'Decision';
|
513 |
-
break;
|
514 |
-
case 'output':
|
515 |
-
icon = 'file-export';
|
516 |
-
color = 'red';
|
517 |
-
text = 'Output';
|
518 |
-
break;
|
519 |
-
case 'agent':
|
520 |
-
icon = 'robot';
|
521 |
-
color = 'purple';
|
522 |
-
text = 'AI Agent';
|
523 |
-
break;
|
524 |
-
}
|
525 |
|
526 |
-
|
527 |
-
|
528 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
529 |
|
530 |
-
|
|
|
|
|
|
|
|
|
|
|
531 |
|
532 |
-
//
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
e.dataTransfer.effectAllowed = 'move';
|
538 |
-
});
|
539 |
|
540 |
-
|
541 |
-
newNode.id = `node-${Date.now()}`;
|
542 |
});
|
543 |
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
551 |
});
|
552 |
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
563 |
}
|
564 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
565 |
});
|
566 |
|
567 |
-
//
|
568 |
-
|
569 |
-
|
570 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
571 |
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
577 |
</script>
|
578 |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=designfailure/insur-mcp" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
579 |
</html>
|
|
|
3 |
<head>
|
4 |
<meta charset="UTF-8">
|
5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<title>Insur.MCP | Agent Workflow Canvas</title>
|
7 |
<script src="https://cdn.tailwindcss.com"></script>
|
8 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
9 |
<style>
|
10 |
+
/* Custom styles for canvas elements */
|
11 |
+
.canvas-area {
|
12 |
+
background-color: #f8fafc;
|
13 |
+
border: 2px dashed #cbd5e1;
|
14 |
+
border-radius: 0.5rem;
|
15 |
+
min-height: 500px;
|
16 |
+
position: relative;
|
17 |
+
overflow: hidden;
|
18 |
}
|
19 |
|
20 |
+
.draggable-item {
|
21 |
+
cursor: grab;
|
22 |
+
user-select: none;
|
23 |
+
transition: all 0.2s ease;
|
24 |
}
|
25 |
|
26 |
+
.draggable-item:active {
|
27 |
+
cursor: grabbing;
|
|
|
28 |
}
|
29 |
|
30 |
+
.canvas-node {
|
31 |
+
position: absolute;
|
32 |
+
background: white;
|
33 |
+
border-radius: 0.5rem;
|
34 |
+
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
35 |
+
min-width: 180px;
|
36 |
+
z-index: 10;
|
37 |
}
|
38 |
|
39 |
+
.canvas-node:hover {
|
40 |
+
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
|
41 |
}
|
42 |
|
43 |
+
.node-header {
|
44 |
+
padding: 0.5rem 1rem;
|
45 |
+
border-bottom: 1px solid #e2e8f0;
|
46 |
+
font-weight: 600;
|
47 |
+
display: flex;
|
48 |
+
justify-content: space-between;
|
49 |
+
align-items: center;
|
50 |
}
|
51 |
|
52 |
+
.node-content {
|
53 |
+
padding: 1rem;
|
54 |
}
|
55 |
|
56 |
+
.node-connector {
|
57 |
+
width: 12px;
|
58 |
+
height: 12px;
|
59 |
+
border-radius: 50%;
|
60 |
+
background: #94a3b8;
|
61 |
+
position: absolute;
|
62 |
+
cursor: pointer;
|
63 |
}
|
64 |
|
65 |
+
.node-connector.input {
|
66 |
+
left: -6px;
|
67 |
+
top: 50%;
|
68 |
+
transform: translateY(-50%);
|
69 |
}
|
70 |
|
71 |
+
.node-connector.output {
|
72 |
+
right: -6px;
|
73 |
+
top: 50%;
|
74 |
+
transform: translateY(-50%);
|
75 |
+
}
|
76 |
+
|
77 |
+
.connection-line {
|
78 |
+
position: absolute;
|
79 |
+
height: 2px;
|
80 |
+
background: #64748b;
|
81 |
+
z-index: 5;
|
82 |
+
pointer-events: none;
|
83 |
+
}
|
84 |
+
|
85 |
+
.tab-content {
|
86 |
+
display: none;
|
87 |
+
}
|
88 |
+
|
89 |
+
.tab-content.active {
|
90 |
+
display: block;
|
91 |
+
}
|
92 |
+
|
93 |
+
.tab-button.active {
|
94 |
+
background-color: #e2e8f0;
|
95 |
+
font-weight: 600;
|
96 |
+
}
|
97 |
+
|
98 |
+
/* Animation for empty canvas */
|
99 |
+
@keyframes pulse {
|
100 |
+
0%, 100% {
|
101 |
+
opacity: 0.5;
|
102 |
+
}
|
103 |
+
50% {
|
104 |
+
opacity: 0.2;
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
.empty-canvas {
|
109 |
+
animation: pulse 2s infinite;
|
110 |
}
|
111 |
</style>
|
112 |
</head>
|
|
|
117 |
<div class="flex justify-between h-16">
|
118 |
<div class="flex items-center">
|
119 |
<div class="flex-shrink-0 flex items-center">
|
120 |
+
<a href="index.html" class="text-blue-600 font-bold text-xl">Insur.MCP</a>
|
121 |
</div>
|
122 |
</div>
|
123 |
|
|
|
124 |
<div class="hidden md:flex items-center space-x-8">
|
125 |
+
<a href="index.html" class="text-gray-500 hover:text-blue-600 font-medium px-1">Home</a>
|
126 |
+
<a href="index.html#features" class="text-gray-500 hover:text-blue-600 font-medium px-1">Features</a>
|
127 |
+
<a href="index.html#about" class="text-gray-500 hover:text-blue-600 font-medium px-1">About</a>
|
128 |
+
<a href="#" class="text-blue-600 font-medium border-b-2 border-blue-600 px-1">Canvas</a>
|
129 |
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-md font-medium transition duration-300">
|
130 |
Contact Us
|
131 |
</button>
|
132 |
</div>
|
133 |
|
|
|
134 |
<div class="md:hidden flex items-center">
|
135 |
<button id="mobile-menu-button" class="text-gray-500 hover:text-blue-600 focus:outline-none">
|
136 |
<svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
|
141 |
</div>
|
142 |
</div>
|
143 |
|
|
|
144 |
<div id="mobile-menu" class="mobile-menu md:hidden bg-white">
|
145 |
<div class="px-2 pt-2 pb-3 space-y-1 sm:px-3">
|
146 |
+
<a href="index.html" class="block px-3 py-2 rounded-md text-base font-medium text-gray-500 hover:text-blue-600 hover:bg-blue-50">Home</a>
|
147 |
+
<a href="index.html#features" class="block px-3 py-2 rounded-md text-base font-medium text-gray-500 hover:text-blue-600 hover:bg-blue-50">Features</a>
|
148 |
+
<a href="index.html#about" class="block px-3 py-2 rounded-md text-base font-medium text-gray-500 hover:text-blue-600 hover:bg-blue-50">About</a>
|
149 |
+
<a href="#" class="block px-3 py-2 rounded-md text-base font-medium text-blue-600 bg-blue-50">Canvas</a>
|
150 |
<button class="w-full text-left block px-3 py-2 rounded-md text-base font-medium text-white bg-blue-600 hover:bg-blue-700">
|
151 |
Contact Us
|
152 |
</button>
|
|
|
154 |
</div>
|
155 |
</nav>
|
156 |
|
157 |
+
<!-- Canvas Subpage Content -->
|
158 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
|
159 |
+
<div class="flex justify-between items-center mb-8">
|
160 |
+
<div>
|
161 |
+
<h1 class="text-3xl font-bold text-gray-900">Agent Workflow Canvas</h1>
|
162 |
+
<p class="text-gray-600 mt-2">Drag and drop components to create your AI agent workflow</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
</div>
|
164 |
+
<div class="flex space-x-3">
|
165 |
+
<button id="clear-canvas" class="px-4 py-2 border border-gray-300 rounded-md text-gray-700 hover:bg-gray-50">
|
166 |
+
Clear Canvas
|
167 |
+
</button>
|
168 |
+
<button id="save-workflow" class="px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700">
|
169 |
+
Save Workflow
|
170 |
+
</button>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
</div>
|
172 |
</div>
|
173 |
+
|
174 |
+
<div class="flex flex-col lg:flex-row gap-6">
|
175 |
+
<!-- Components Panel -->
|
176 |
+
<div class="lg:w-1/4 bg-gray-50 p-4 rounded-lg">
|
177 |
+
<div class="flex border-b border-gray-200 mb-4">
|
178 |
+
<button class="tab-button active px-4 py-2 rounded-t-lg" data-tab="agents">Agents</button>
|
179 |
+
<button class="tab-button px-4 py-2 rounded-t-lg" data-tab="tasks">Tasks</button>
|
180 |
+
<button class="tab-button px-4 py-2 rounded-t-lg" data-tab="tools">Tools</button>
|
181 |
+
<button class="tab-button px-4 py-2 rounded-t-lg" data-tab="data">Data</button>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
</div>
|
183 |
|
184 |
+
<!-- Agents Tab -->
|
185 |
+
<div id="agents" class="tab-content active">
|
186 |
+
<div class="space-y-3">
|
187 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="agent" data-subtype="underwriting_agent">
|
188 |
+
<i class="fas fa-user-tie text-purple-500 mr-2"></i> Underwriting Agent
|
189 |
+
</div>
|
190 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="agent" data-subtype="sales_agent">
|
191 |
+
<i class="fas fa-handshake text-purple-500 mr-2"></i> Sales Agent
|
192 |
+
</div>
|
193 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="agent" data-subtype="fraud_agent">
|
194 |
+
<i class="fas fa-search-dollar text-purple-500 mr-2"></i> Fraud Agent
|
195 |
+
</div>
|
196 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="agent" data-subtype="claims_agent">
|
197 |
+
<i class="fas fa-file-invoice-dollar text-purple-500 mr-2"></i> Claims Agent
|
198 |
+
</div>
|
199 |
</div>
|
|
|
|
|
|
|
|
|
200 |
</div>
|
201 |
|
202 |
+
<!-- Tasks Tab -->
|
203 |
+
<div id="tasks" class="tab-content">
|
204 |
+
<div class="space-y-3">
|
205 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="task" data-subtype="risk_assessment">
|
206 |
+
<i class="fas fa-shield-alt text-blue-500 mr-2"></i> Risk Assessment
|
207 |
+
</div>
|
208 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="task" data-subtype="fraud_detection">
|
209 |
+
<i class="fas fa-search-dollar text-blue-500 mr-2"></i> Fraud Detection
|
210 |
+
</div>
|
211 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="task" data-subtype="sales_prospective">
|
212 |
+
<i class="fas fa-bullseye text-blue-500 mr-2"></i> Sales Prospective
|
213 |
+
</div>
|
214 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="task" data-subtype="appraisal">
|
215 |
+
<i class="fas fa-clipboard-check text-blue-500 mr-2"></i> Appraisal
|
216 |
+
</div>
|
217 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="task" data-subtype="estimation">
|
218 |
+
<i class="fas fa-calculator text-blue-500 mr-2"></i> Estimation
|
219 |
+
</div>
|
220 |
</div>
|
|
|
|
|
|
|
|
|
221 |
</div>
|
222 |
|
223 |
+
<!-- Tools Tab -->
|
224 |
+
<div id="tools" class="tab-content">
|
225 |
+
<div class="space-y-3">
|
226 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="tool" data-subtype="web_search">
|
227 |
+
<i class="fas fa-globe text-green-500 mr-2"></i> Web Search
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
</div>
|
229 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="tool" data-subtype="data_set">
|
230 |
+
<i class="fas fa-database text-green-500 mr-2"></i> Data Set
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
</div>
|
232 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="tool" data-subtype="analysis">
|
233 |
+
<i class="fas fa-chart-line text-green-500 mr-2"></i> Analysis
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
234 |
</div>
|
235 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="tool" data-subtype="delegation">
|
236 |
+
<i class="fas fa-users text-green-500 mr-2"></i> Delegation
|
237 |
+
</div>
|
238 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="tool" data-subtype="think">
|
239 |
+
<i class="fas fa-brain text-green-500 mr-2"></i> Think
|
240 |
+
</div>
|
241 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="tool" data-subtype="output_delivery">
|
242 |
+
<i class="fas fa-paper-plane text-green-500 mr-2"></i> Output Delivery
|
|
|
243 |
</div>
|
|
|
|
|
|
|
|
|
244 |
</div>
|
245 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
|
247 |
+
<!-- Data Tab -->
|
248 |
+
<div id="data" class="tab-content">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
249 |
<div class="space-y-3">
|
250 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="data" data-subtype="customer_synt">
|
251 |
+
<i class="fas fa-users text-orange-500 mr-2"></i> Customer Synthetic
|
252 |
</div>
|
253 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="data" data-subtype="claim_synt">
|
254 |
+
<i class="fas fa-file-invoice text-orange-500 mr-2"></i> Claim Synthetic
|
255 |
</div>
|
256 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="data" data-subtype="process_synt">
|
257 |
+
<i class="fas fa-project-diagram text-orange-500 mr-2"></i> Process Synthetic
|
258 |
</div>
|
259 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="data" data-subtype="dataset">
|
260 |
+
<i class="fas fa-table text-orange-500 mr-2"></i> Dataset
|
261 |
</div>
|
262 |
+
<div class="draggable-item bg-white p-3 rounded border border-gray-200 cursor-move" draggable="true" data-type="data" data-subtype="sales">
|
263 |
+
<i class="fas fa-chart-bar text-orange-500 mr-2"></i> Sales Data
|
264 |
</div>
|
265 |
</div>
|
266 |
</div>
|
267 |
+
</div>
|
268 |
+
|
269 |
+
<!-- Canvas Area -->
|
270 |
+
<div class="lg:w-3/4">
|
271 |
+
<div id="workflow-canvas" class="canvas-area p-6">
|
272 |
+
<div class="empty-canvas text-center py-20 text-gray-400">
|
273 |
+
<i class="fas fa-arrows-alt text-4xl mb-4"></i>
|
274 |
+
<p class="text-xl">Drag components here to build your workflow</p>
|
275 |
+
<p class="text-sm mt-2">Connect nodes by dragging from output to input connectors</p>
|
276 |
+
</div>
|
277 |
+
</div>
|
278 |
|
279 |
+
<div class="mt-4 flex justify-between items-center">
|
280 |
+
<div class="text-sm text-gray-500">
|
281 |
+
<span id="node-count">0</span> nodes on canvas
|
|
|
282 |
</div>
|
283 |
+
<div class="flex space-x-3">
|
284 |
+
<button id="zoom-in" class="p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded">
|
285 |
+
<i class="fas fa-search-plus"></i>
|
286 |
+
</button>
|
287 |
+
<button id="zoom-out" class="p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded">
|
288 |
+
<i class="fas fa-search-minus"></i>
|
289 |
</button>
|
290 |
+
<button id="center-canvas" class="p-2 text-gray-500 hover:text-gray-700 hover:bg-gray-100 rounded">
|
291 |
+
<i class="fas fa-expand"></i>
|
292 |
</button>
|
293 |
</div>
|
294 |
</div>
|
|
|
305 |
mobileMenu.classList.toggle('open');
|
306 |
});
|
307 |
|
308 |
+
// Tab functionality
|
309 |
+
const tabButtons = document.querySelectorAll('.tab-button');
|
310 |
+
const tabContents = document.querySelectorAll('.tab-content');
|
|
|
311 |
|
312 |
+
tabButtons.forEach(button => {
|
313 |
+
button.addEventListener('click', () => {
|
314 |
+
// Remove active class from all buttons and contents
|
315 |
+
tabButtons.forEach(btn => btn.classList.remove('active'));
|
316 |
+
tabContents.forEach(content => content.classList.remove('active'));
|
317 |
+
|
318 |
+
// Add active class to clicked button and corresponding content
|
319 |
+
button.classList.add('active');
|
320 |
+
const tabId = button.getAttribute('data-tab');
|
321 |
+
document.getElementById(tabId).classList.add('active');
|
322 |
});
|
|
|
|
|
|
|
|
|
|
|
323 |
});
|
324 |
|
325 |
+
// Canvas functionality
|
|
|
326 |
const canvas = document.getElementById('workflow-canvas');
|
327 |
+
const draggableItems = document.querySelectorAll('.draggable-item');
|
328 |
+
const clearCanvasBtn = document.getElementById('clear-canvas');
|
329 |
+
const saveWorkflowBtn = document.getElementById('save-workflow');
|
330 |
+
const nodeCountElement = document.getElementById('node-count');
|
331 |
+
const emptyCanvasElement = document.querySelector('.empty-canvas');
|
332 |
+
|
333 |
+
let nodes = [];
|
334 |
+
let connections = [];
|
335 |
+
let isDragging = false;
|
336 |
+
let startConnector = null;
|
337 |
+
let tempLine = null;
|
338 |
+
let canvasScale = 1;
|
339 |
|
340 |
+
// Update node count
|
341 |
+
function updateNodeCount() {
|
342 |
+
const count = document.querySelectorAll('.canvas-node').length;
|
343 |
+
nodeCountElement.textContent = count;
|
344 |
+
|
345 |
+
if (count > 0) {
|
346 |
+
emptyCanvasElement.style.display = 'none';
|
347 |
+
} else {
|
348 |
+
emptyCanvasElement.style.display = 'block';
|
349 |
+
}
|
350 |
+
}
|
351 |
+
|
352 |
+
// Create a new node on canvas
|
353 |
+
function createNode(type, subtype, x, y) {
|
354 |
+
const nodeId = 'node-' + Date.now();
|
355 |
+
const node = document.createElement('div');
|
356 |
+
node.className = 'canvas-node';
|
357 |
+
node.id = nodeId;
|
358 |
+
node.style.left = `${x}px`;
|
359 |
+
node.style.top = `${y}px`;
|
360 |
+
|
361 |
+
// Set node color based on type
|
362 |
+
let icon, color, title;
|
363 |
+
switch(type) {
|
364 |
+
case 'agent':
|
365 |
+
icon = 'robot';
|
366 |
+
color = 'purple';
|
367 |
+
title = 'Agent: ' + subtype.replace('_', ' ');
|
368 |
+
break;
|
369 |
+
case 'task':
|
370 |
+
icon = 'tasks';
|
371 |
+
color = 'blue';
|
372 |
+
title = 'Task: ' + subtype.replace('_', ' ');
|
373 |
+
break;
|
374 |
+
case 'tool':
|
375 |
+
icon = 'tools';
|
376 |
+
color = 'green';
|
377 |
+
title = 'Tool: ' + subtype.replace('_', ' ');
|
378 |
+
break;
|
379 |
+
case 'data':
|
380 |
+
icon = 'database';
|
381 |
+
color = 'orange';
|
382 |
+
title = 'Data: ' + subtype.replace('_', ' ');
|
383 |
+
break;
|
384 |
+
}
|
385 |
+
|
386 |
+
// Create node HTML
|
387 |
+
node.innerHTML = `
|
388 |
+
<div class="node-header bg-${color}-50 text-${color}-700">
|
389 |
+
<div>
|
390 |
+
<i class="fas fa-${icon} mr-2"></i>
|
391 |
+
${title}
|
392 |
+
</div>
|
393 |
+
<button class="node-delete text-gray-400 hover:text-red-500">
|
394 |
+
<i class="fas fa-times"></i>
|
395 |
+
</button>
|
396 |
+
</div>
|
397 |
+
<div class="node-content">
|
398 |
+
<select class="w-full p-2 border border-gray-300 rounded text-sm">
|
399 |
+
${getOptionsForType(type)}
|
400 |
+
</select>
|
401 |
+
<div class="mt-2 text-xs text-gray-500">
|
402 |
+
<i class="fas fa-info-circle mr-1"></i>
|
403 |
+
${getDescriptionForSubtype(type, subtype)}
|
404 |
+
</div>
|
405 |
+
</div>
|
406 |
+
<div class="node-connector input" data-node="${nodeId}" data-type="input"></div>
|
407 |
+
<div class="node-connector output" data-node="${nodeId}" data-type="output"></div>
|
408 |
+
`;
|
409 |
+
|
410 |
+
// Add node to canvas
|
411 |
+
canvas.appendChild(node);
|
412 |
+
|
413 |
+
// Make node draggable
|
414 |
+
makeNodeDraggable(node);
|
415 |
+
|
416 |
+
// Add delete functionality
|
417 |
+
const deleteBtn = node.querySelector('.node-delete');
|
418 |
+
deleteBtn.addEventListener('click', () => {
|
419 |
+
// Remove any connections to this node
|
420 |
+
connections = connections.filter(conn => {
|
421 |
+
return conn.fromNode !== nodeId && conn.toNode !== nodeId;
|
422 |
+
});
|
423 |
+
|
424 |
+
// Remove connection lines from DOM
|
425 |
+
document.querySelectorAll('.connection-line').forEach(line => {
|
426 |
+
if (line.dataset.fromNode === nodeId || line.dataset.toNode === nodeId) {
|
427 |
+
line.remove();
|
428 |
+
}
|
429 |
+
});
|
430 |
+
|
431 |
+
// Remove the node
|
432 |
+
node.remove();
|
433 |
+
updateNodeCount();
|
434 |
+
});
|
435 |
+
|
436 |
+
// Store node in array
|
437 |
+
nodes.push({
|
438 |
+
id: nodeId,
|
439 |
+
type: type,
|
440 |
+
subtype: subtype,
|
441 |
+
element: node
|
442 |
+
});
|
443 |
+
|
444 |
+
updateNodeCount();
|
445 |
+
return node;
|
446 |
+
}
|
447 |
+
|
448 |
+
// Get options for select dropdown based on node type
|
449 |
+
function getOptionsForType(type) {
|
450 |
+
let options = '';
|
451 |
+
|
452 |
+
switch(type) {
|
453 |
+
case 'agent':
|
454 |
+
options = `
|
455 |
+
<option value="underwriting_agent">Underwriting Agent</option>
|
456 |
+
<option value="sales_agent">Sales Agent</option>
|
457 |
+
<option value="fraud_agent">Fraud Agent</option>
|
458 |
+
<option value="claims_agent">Claims Agent</option>
|
459 |
+
`;
|
460 |
+
break;
|
461 |
+
case 'task':
|
462 |
+
options = `
|
463 |
+
<option value="risk_assessment">Risk Assessment</option>
|
464 |
+
<option value="fraud_detection">Fraud Detection</option>
|
465 |
+
<option value="sales_prospective">Sales Prospective</option>
|
466 |
+
<option value="appraisal">Appraisal</option>
|
467 |
+
<option value="estimation">Estimation</option>
|
468 |
+
`;
|
469 |
+
break;
|
470 |
+
case 'tool':
|
471 |
+
options = `
|
472 |
+
<option value="web_search">Web Search</option>
|
473 |
+
<option value="data_set">Data Set</option>
|
474 |
+
<option value="analysis">Analysis</option>
|
475 |
+
<option value="delegation">Delegation</option>
|
476 |
+
<option value="think">Think</option>
|
477 |
+
<option value="output_delivery">Output Delivery</option>
|
478 |
+
`;
|
479 |
+
break;
|
480 |
+
case 'data':
|
481 |
+
options = `
|
482 |
+
<option value="customer_synt">Customer Synthetic</option>
|
483 |
+
<option value="claim_synt">Claim Synthetic</option>
|
484 |
+
<option value="process_synt">Process Synthetic</option>
|
485 |
+
<option value="dataset">Dataset</option>
|
486 |
+
<option value="sales">Sales Data</option>
|
487 |
+
`;
|
488 |
+
break;
|
489 |
+
}
|
490 |
+
|
491 |
+
return options;
|
492 |
+
}
|
493 |
+
|
494 |
+
// Get description for subtype
|
495 |
+
function getDescriptionForSubtype(type, subtype) {
|
496 |
+
const descriptions = {
|
497 |
+
agent: {
|
498 |
+
underwriting_agent: "Evaluates and assesses risks for insurance policies",
|
499 |
+
sales_agent: "Handles customer acquisition and policy sales",
|
500 |
+
fraud_agent: "Detects and investigates potential fraudulent claims",
|
501 |
+
claims_agent: "Manages and processes insurance claims"
|
502 |
+
},
|
503 |
+
task: {
|
504 |
+
risk_assessment: "Analyzes and evaluates potential risks",
|
505 |
+
fraud_detection: "Identifies suspicious patterns in claims",
|
506 |
+
sales_prospective: "Finds and qualifies potential customers",
|
507 |
+
appraisal: "Evaluates property or damage for claims",
|
508 |
+
estimation: "Calculates claim amounts or policy costs"
|
509 |
+
},
|
510 |
+
tool: {
|
511 |
+
web_search: "Searches the web for relevant information",
|
512 |
+
data_set: "Accesses structured data for analysis",
|
513 |
+
analysis: "Performs data analysis and interpretation",
|
514 |
+
delegation: "Assigns tasks to other agents",
|
515 |
+
think: "Processes information and makes decisions",
|
516 |
+
output_delivery: "Sends results to the next step"
|
517 |
+
},
|
518 |
+
data: {
|
519 |
+
customer_synt: "Synthetic customer profile data",
|
520 |
+
claim_synt: "Synthetic insurance claim data",
|
521 |
+
process_synt: "Synthetic process workflow data",
|
522 |
+
dataset: "General structured dataset",
|
523 |
+
sales: "Historical sales performance data"
|
524 |
+
}
|
525 |
+
};
|
526 |
+
|
527 |
+
return descriptions[type]?.[subtype] || "No description available";
|
528 |
+
}
|
529 |
+
|
530 |
+
// Make node draggable
|
531 |
+
function makeNodeDraggable(node) {
|
532 |
+
const header = node.querySelector('.node-header');
|
533 |
+
|
534 |
+
header.addEventListener('mousedown', (e) => {
|
535 |
+
if (e.target.classList.contains('node-delete') || e.target.closest('.node-delete')) {
|
536 |
+
return; // Don't drag if clicking delete button
|
537 |
+
}
|
538 |
+
|
539 |
+
const startX = e.clientX;
|
540 |
+
const startY = e.clientY;
|
541 |
+
const startLeft = parseInt(node.style.left);
|
542 |
+
const startTop = parseInt(node.style.top);
|
543 |
+
|
544 |
+
function moveNode(e) {
|
545 |
+
const dx = e.clientX - startX;
|
546 |
+
const dy = e.clientY - startY;
|
547 |
+
|
548 |
+
node.style.left = `${startLeft + dx}px`;
|
549 |
+
node.style.top = `${startTop + dy}px`;
|
550 |
+
|
551 |
+
// Update connection lines
|
552 |
+
updateConnectionLines();
|
553 |
+
}
|
554 |
+
|
555 |
+
function stopDrag() {
|
556 |
+
document.removeEventListener('mousemove', moveNode);
|
557 |
+
document.removeEventListener('mouseup', stopDrag);
|
558 |
+
}
|
559 |
+
|
560 |
+
document.addEventListener('mousemove', moveNode);
|
561 |
+
document.addEventListener('mouseup', stopDrag);
|
562 |
+
});
|
563 |
+
}
|
564 |
+
|
565 |
+
// Create a connection between two nodes
|
566 |
+
function createConnection(fromNodeId, toNodeId) {
|
567 |
+
// Check if connection already exists
|
568 |
+
const existingConnection = connections.find(conn =>
|
569 |
+
conn.fromNode === fromNodeId && conn.toNode === toNodeId
|
570 |
+
);
|
571 |
+
|
572 |
+
if (existingConnection) return;
|
573 |
+
|
574 |
+
// Add to connections array
|
575 |
+
connections.push({
|
576 |
+
fromNode: fromNodeId,
|
577 |
+
toNode: toNodeId
|
578 |
+
});
|
579 |
+
|
580 |
+
// Create connection line
|
581 |
+
updateConnectionLines();
|
582 |
+
}
|
583 |
+
|
584 |
+
// Update all connection lines
|
585 |
+
function updateConnectionLines() {
|
586 |
+
// Remove all existing connection lines
|
587 |
+
document.querySelectorAll('.connection-line').forEach(line => line.remove());
|
588 |
+
|
589 |
+
// Create new connection lines
|
590 |
+
connections.forEach(conn => {
|
591 |
+
const fromNode = document.getElementById(conn.fromNode);
|
592 |
+
const toNode = document.getElementById(conn.toNode);
|
593 |
+
|
594 |
+
if (fromNode && toNode) {
|
595 |
+
const fromConnector = fromNode.querySelector('.node-connector.output');
|
596 |
+
const toConnector = toNode.querySelector('.node-connector.input');
|
597 |
+
|
598 |
+
const fromRect = fromConnector.getBoundingClientRect();
|
599 |
+
const toRect = toConnector.getBoundingClientRect();
|
600 |
+
const canvasRect = canvas.getBoundingClientRect();
|
601 |
+
|
602 |
+
const fromX = fromRect.left + fromRect.width / 2 - canvasRect.left;
|
603 |
+
const fromY = fromRect.top + fromRect.height / 2 - canvasRect.top;
|
604 |
+
const toX = toRect.left + toRect.width / 2 - canvasRect.left;
|
605 |
+
const toY = toRect.top + toRect.height / 2 - canvasRect.top;
|
606 |
+
|
607 |
+
const length = Math.sqrt(Math.pow(toX - fromX, 2) + Math.pow(toY - fromY, 2));
|
608 |
+
const angle = Math.atan2(toY - fromY, toX - fromX) * 180 / Math.PI;
|
609 |
+
|
610 |
+
const line = document.createElement('div');
|
611 |
+
line.className = 'connection-line';
|
612 |
+
line.style.width = `${length}px`;
|
613 |
+
line.style.left = `${fromX}px`;
|
614 |
+
line.style.top = `${fromY}px`;
|
615 |
+
line.style.transform = `rotate(${angle}deg)`;
|
616 |
+
line.style.transformOrigin = '0 0';
|
617 |
+
line.dataset.fromNode = conn.fromNode;
|
618 |
+
line.dataset.toNode = conn.toNode;
|
619 |
+
|
620 |
+
canvas.appendChild(line);
|
621 |
+
}
|
622 |
+
});
|
623 |
+
}
|
624 |
+
|
625 |
+
// Handle drag and drop from components panel to canvas
|
626 |
draggableItems.forEach(item => {
|
627 |
item.addEventListener('dragstart', (e) => {
|
628 |
+
e.dataTransfer.setData('type', e.target.dataset.type);
|
629 |
+
e.dataTransfer.setData('subtype', e.target.dataset.subtype);
|
630 |
e.dataTransfer.effectAllowed = 'copy';
|
631 |
});
|
632 |
});
|
|
|
638 |
|
639 |
canvas.addEventListener('drop', (e) => {
|
640 |
e.preventDefault();
|
|
|
641 |
|
642 |
+
const type = e.dataTransfer.getData('type');
|
643 |
+
const subtype = e.dataTransfer.getData('subtype');
|
644 |
+
|
645 |
+
if (!type || !subtype) return;
|
646 |
|
|
|
647 |
const rect = canvas.getBoundingClientRect();
|
648 |
+
const x = e.clientX - rect.left - 90; // Center the node on cursor
|
649 |
+
const y = e.clientY - rect.top - 40;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
650 |
|
651 |
+
createNode(type, subtype, x, y);
|
652 |
+
});
|
653 |
+
|
654 |
+
// Handle connector dragging for creating connections
|
655 |
+
canvas.addEventListener('mousedown', (e) => {
|
656 |
+
const connector = e.target.closest('.node-connector');
|
657 |
+
if (!connector) return;
|
658 |
+
|
659 |
+
e.preventDefault();
|
660 |
+
e.stopPropagation();
|
661 |
|
662 |
+
startConnector = {
|
663 |
+
node: connector.dataset.node,
|
664 |
+
type: connector.dataset.type,
|
665 |
+
x: e.clientX,
|
666 |
+
y: e.clientY
|
667 |
+
};
|
668 |
|
669 |
+
// Create temporary line
|
670 |
+
tempLine = document.createElement('div');
|
671 |
+
tempLine.className = 'connection-line';
|
672 |
+
tempLine.style.backgroundColor = '#6366f1';
|
673 |
+
canvas.appendChild(tempLine);
|
|
|
|
|
674 |
|
675 |
+
isDragging = true;
|
|
|
676 |
});
|
677 |
|
678 |
+
document.addEventListener('mousemove', (e) => {
|
679 |
+
if (!isDragging || !startConnector) return;
|
680 |
+
|
681 |
+
const fromNode = document.getElementById(startConnector.node);
|
682 |
+
if (!fromNode) return;
|
683 |
+
|
684 |
+
const fromConnector = fromNode.querySelector(`.node-connector.${startConnector.type}`);
|
685 |
+
const fromRect = fromConnector.getBoundingClientRect();
|
686 |
+
const canvasRect = canvas.getBoundingClientRect();
|
687 |
+
|
688 |
+
const fromX = fromRect.left + fromRect.width / 2 - canvasRect.left;
|
689 |
+
const fromY = fromRect.top + fromRect.height / 2 - canvasRect.top;
|
690 |
+
const toX = e.clientX - canvasRect.left;
|
691 |
+
const toY = e.clientY - canvasRect.top;
|
692 |
+
|
693 |
+
const length = Math.sqrt(Math.pow(toX - fromX, 2) + Math.pow(toY - fromY, 2));
|
694 |
+
const angle = Math.atan2(toY - fromY, toX - fromX) * 180 / Math.PI;
|
695 |
+
|
696 |
+
tempLine.style.width = `${length}px`;
|
697 |
+
tempLine.style.left = `${fromX}px`;
|
698 |
+
tempLine.style.top = `${fromY}px`;
|
699 |
+
tempLine.style.transform = `rotate(${angle}deg)`;
|
700 |
});
|
701 |
|
702 |
+
document.addEventListener('mouseup', (e) => {
|
703 |
+
if (!isDragging || !startConnector) {
|
704 |
+
isDragging = false;
|
705 |
+
startConnector = null;
|
706 |
+
return;
|
707 |
+
}
|
708 |
+
|
709 |
+
const connector = e.target.closest('.node-connector');
|
710 |
+
if (connector) {
|
711 |
+
const endConnector = {
|
712 |
+
node: connector.dataset.node,
|
713 |
+
type: connector.dataset.type
|
714 |
+
};
|
715 |
+
|
716 |
+
// Only connect output to input
|
717 |
+
if (startConnector.type === 'output' && endConnector.type === 'input') {
|
718 |
+
// Don't allow self-connections
|
719 |
+
if (startConnector.node !== endConnector.node) {
|
720 |
+
createConnection(startConnector.node, endConnector.node);
|
721 |
+
}
|
722 |
}
|
723 |
}
|
724 |
+
|
725 |
+
// Clean up
|
726 |
+
if (tempLine) {
|
727 |
+
tempLine.remove();
|
728 |
+
tempLine = null;
|
729 |
+
}
|
730 |
+
|
731 |
+
isDragging = false;
|
732 |
+
startConnector = null;
|
733 |
});
|
734 |
|
735 |
+
// Clear canvas
|
736 |
+
clearCanvasBtn.addEventListener('click', () => {
|
737 |
+
if (confirm('Are you sure you want to clear the canvas?')) {
|
738 |
+
document.querySelectorAll('.canvas-node').forEach(node => node.remove());
|
739 |
+
document.querySelectorAll('.connection-line').forEach(line => line.remove());
|
740 |
+
nodes = [];
|
741 |
+
connections = [];
|
742 |
+
updateNodeCount();
|
743 |
+
}
|
744 |
+
});
|
745 |
|
746 |
+
// Save workflow
|
747 |
+
saveWorkflowBtn.addEventListener('click', () => {
|
748 |
+
const workflow = {
|
749 |
+
nodes: nodes.map(node => ({
|
750 |
+
id: node.id,
|
751 |
+
type: node.type,
|
752 |
+
subtype: node.subtype,
|
753 |
+
position: {
|
754 |
+
x: parseInt(node.element.style.left),
|
755 |
+
y: parseInt(node.element.style.top)
|
756 |
+
}
|
757 |
+
})),
|
758 |
+
connections: connections
|
759 |
+
};
|
760 |
+
|
761 |
+
// In a real app, you would send this to a server
|
762 |
+
console.log('Workflow saved:', workflow);
|
763 |
+
alert('Workflow saved successfully!');
|
764 |
+
});
|
765 |
+
|
766 |
+
// Zoom functionality
|
767 |
+
document.getElementById('zoom-in').addEventListener('click', () => {
|
768 |
+
canvasScale = Math.min(canvasScale + 0.1, 2);
|
769 |
+
canvas.style.transform = `scale(${canvasScale})`;
|
770 |
+
});
|
771 |
+
|
772 |
+
document.getElementById('zoom-out').addEventListener('click', () => {
|
773 |
+
canvasScale = Math.max(canvasScale - 0.1, 0.5);
|
774 |
+
canvas.style.transform = `scale(${canvasScale})`;
|
775 |
+
});
|
776 |
+
|
777 |
+
document.getElementById('center-canvas').addEventListener('click', () => {
|
778 |
+
canvasScale = 1;
|
779 |
+
canvas.style.transform = `scale(${canvasScale})`;
|
780 |
+
canvas.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
781 |
+
});
|
782 |
+
|
783 |
+
// Initialize
|
784 |
+
updateNodeCount();
|
785 |
</script>
|
786 |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=designfailure/insur-mcp" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
787 |
</html>
|
prompts.txt
CHANGED
@@ -1,2 +1,3 @@
|
|
1 |
#Context: I need a website application with frontend and backend components and modules. The frontend styling design must be minimalistic and modern, with a canvas page for a drag & drop feature, component capabilities for one sub-page. Additionally, the main page and one subpage are just navigable subpages from the main menu bar tab. The website must also be optimized for desktop and mobile browsing by simply detecting the user's browser type. “Scope: Deploying Synthetic Workers with Strategic Confidence at Insur.MCP, we’re not just experimenting with AI — we’re deploying synthetic workers through our Strategic and Structured Iterative Model Context Protocol (MSP) approach, for the AGENTIC insurance workflow system. It helps incumbents escape pilot purgatory and confidently scale real AI outcomes.” ##Task: Start with the frontend main page wich contains a scrollable context and a swipe layout of feature cards as follows: “At Insur.MCP, we help corporates and incubators automate the digitalization of skills by replicating how teams work — their tools, tasks, and workflows — into agentic AI systems. We bring deep insurance industry knowledge where departments run on repetitive, structured tasks, and we translate that into multi-agent AI environments that perform jobs-to-be-done autonomously. Our mission is to build secure, sandboxed workspaces with synthetic datasets to validate and train these agents safely, because we believe the future of work is agentic, modular, and truly autonomous. It’s like giving every team a digital twin that thinks and acts, not just reacts.” Start with the largest layout components and progressively refine down to smaller elements and individual components. Ensure the plan includes clear steps for testing responsiveness across all breakpoints to maintain consistency and a seamless user experience. Share the plan for review before proceeding. ###Guidelines: Name the site “Insur.MCP”.
|
2 |
-
# Context: Implement modifications to the second task feature while ensuring core functionality, other features, and processes remain unaffected. ## Task: The second task is to develop and deploy step-by-step the canvas of the drag & drop subpage. Enhance the drag & drop feature capability of this subpage. Ensuring the drag & drop from the left TAB, where are placed <agent> , <task> , <tool> , <data>. Each of this TAB when selected and drag & dropped to the canvas will appear as a feature component. Users could interconnect each of those all together in different ways and specialities. ### Guidelines: a header button [Get Started] drives use to this canvas subpage, which one has the drag & drop capability. Users can select either the AGENT, TASK, TOOL, or the DATA set from the left tab. Once the TAB is placed on the canvas shows the drop-down menu as follows: [Agent]; underwriting_agent, sales_agent, fraud_agent, claims_agent [Task]; risk_assesment, fraud_detection, sales_propsective, appraisal, estimation, [Tool]; web_search, data_set, analysis, delegation, think, output_delivery [Data]; customer_synt, claim_synt, process_synt, dataset, sales, #### Constraints: Make visual enhancements—ensure functionality and drag & drop logic capability to the canvas subpage, others pages remain unaffected. Gain a comprehensive understanding of how the existing UI interacts with applicative drag & drop UX. Make certain that all designs are completely responsive at every breakpoint, adopting a mobile-first strategy. Apply contemporary UI/UX best practices to define how components should adjust for varying screen sizes, utilizing ShadCN and Tailwind’s standard breakpoints.
|
|
|
|
1 |
#Context: I need a website application with frontend and backend components and modules. The frontend styling design must be minimalistic and modern, with a canvas page for a drag & drop feature, component capabilities for one sub-page. Additionally, the main page and one subpage are just navigable subpages from the main menu bar tab. The website must also be optimized for desktop and mobile browsing by simply detecting the user's browser type. “Scope: Deploying Synthetic Workers with Strategic Confidence at Insur.MCP, we’re not just experimenting with AI — we’re deploying synthetic workers through our Strategic and Structured Iterative Model Context Protocol (MSP) approach, for the AGENTIC insurance workflow system. It helps incumbents escape pilot purgatory and confidently scale real AI outcomes.” ##Task: Start with the frontend main page wich contains a scrollable context and a swipe layout of feature cards as follows: “At Insur.MCP, we help corporates and incubators automate the digitalization of skills by replicating how teams work — their tools, tasks, and workflows — into agentic AI systems. We bring deep insurance industry knowledge where departments run on repetitive, structured tasks, and we translate that into multi-agent AI environments that perform jobs-to-be-done autonomously. Our mission is to build secure, sandboxed workspaces with synthetic datasets to validate and train these agents safely, because we believe the future of work is agentic, modular, and truly autonomous. It’s like giving every team a digital twin that thinks and acts, not just reacts.” Start with the largest layout components and progressively refine down to smaller elements and individual components. Ensure the plan includes clear steps for testing responsiveness across all breakpoints to maintain consistency and a seamless user experience. Share the plan for review before proceeding. ###Guidelines: Name the site “Insur.MCP”.
|
2 |
+
# Context: Implement modifications to the second task feature while ensuring core functionality, other features, and processes remain unaffected. ## Task: The second task is to develop and deploy step-by-step the canvas of the drag & drop subpage. Enhance the drag & drop feature capability of this subpage. Ensuring the drag & drop from the left TAB, where are placed <agent> , <task> , <tool> , <data>. Each of this TAB when selected and drag & dropped to the canvas will appear as a feature component. Users could interconnect each of those all together in different ways and specialities. ### Guidelines: a header button [Get Started] drives use to this canvas subpage, which one has the drag & drop capability. Users can select either the AGENT, TASK, TOOL, or the DATA set from the left tab. Once the TAB is placed on the canvas shows the drop-down menu as follows: [Agent]; underwriting_agent, sales_agent, fraud_agent, claims_agent [Task]; risk_assesment, fraud_detection, sales_propsective, appraisal, estimation, [Tool]; web_search, data_set, analysis, delegation, think, output_delivery [Data]; customer_synt, claim_synt, process_synt, dataset, sales, #### Constraints: Make visual enhancements—ensure functionality and drag & drop logic capability to the canvas subpage, others pages remain unaffected. Gain a comprehensive understanding of how the existing UI interacts with applicative drag & drop UX. Make certain that all designs are completely responsive at every breakpoint, adopting a mobile-first strategy. Apply contemporary UI/UX best practices to define how components should adjust for varying screen sizes, utilizing ShadCN and Tailwind’s standard breakpoints.
|
3 |
+
create a subpage as Canvas CTA : # Context: Implement modifications to the second task feature while ensuring core functionality, other features, and processes remain unaffected. ## Task: The second task is to develop and deploy step-by-step the canvas of the drag & drop subpage. Enhance the drag & drop feature capability of this subpage. Ensuring the drag & drop from the left TAB, where are placed <agent> , <task> , <tool> , <data>. Each of this TAB when selected and drag & dropped to the canvas will appear as a feature component. Users could interconnect each of those all together in different ways and specialities. ### Guidelines: a header button [Get Started] drives use to this canvas subpage, which one has the drag & drop capability. Users can select either the AGENT, TASK, TOOL, or the DATA set from the left tab. Once the TAB is placed on the canvas shows the drop-down menu as follows: [Agent]; underwriting_agent, sales_agent, fraud_agent, claims_agent [Task]; risk_assesment, fraud_detection, sales_propsective, appraisal, estimation, [Tool]; web_search, data_set, analysis, delegation, think, output_delivery [Data]; customer_synt, claim_synt, process_synt, dataset, sales, #### Constraints: Make visual enhancements—ensure functionality and drag & drop logic capability to the canvas subpage, others pages remain unaffected. Gain a comprehensive understanding of how the existing UI interacts with applicative drag & drop UX. Make certain that all designs are completely responsive at every breakpoint, adopting a mobile-first strategy. Apply contemporary UI/UX best practices to define how components should adjust for varying screen sizes, utilizing ShadCN and Tailwind’s standard breakpoints.
|