kdub307 commited on
Commit
3aa248e
Β·
verified Β·
1 Parent(s): c080a1b

undefined - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +614 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Computer Use
3
- emoji: πŸ†
4
- colorFrom: green
5
- colorTo: gray
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: computer-use
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: red
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,614 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>AI Ecosystem Sandbox</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
+ <script>
10
+ tailwind.config = {
11
+ theme: {
12
+ extend: {
13
+ colors: {
14
+ 'desktop-blue': '#0f172a',
15
+ 'taskbar-gray': '#1e293b',
16
+ 'app-blue': '#1d4ed8',
17
+ 'app-light': '#3b82f6',
18
+ 'ai-purple': '#7e22ce'
19
+ }
20
+ }
21
+ }
22
+ }
23
+ </script>
24
+ <style>
25
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
26
+
27
+ * {
28
+ font-family: 'Inter', sans-serif;
29
+ user-select: none;
30
+ }
31
+
32
+ body {
33
+ overflow: hidden;
34
+ background: linear-gradient(135deg, #0f172a, #1e293b);
35
+ }
36
+
37
+ .desktop-icon {
38
+ transition: all 0.2s ease;
39
+ }
40
+
41
+ .desktop-icon:hover {
42
+ transform: scale(1.05);
43
+ background-color: rgba(255, 255, 255, 0.1);
44
+ }
45
+
46
+ .window {
47
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
48
+ transition: all 0.3s ease;
49
+ border-radius: 8px;
50
+ overflow: hidden;
51
+ resize: both;
52
+ min-width: 400px;
53
+ min-height: 300px;
54
+ }
55
+
56
+ .window-header {
57
+ cursor: move;
58
+ }
59
+
60
+ .taskbar-app {
61
+ transition: all 0.2s ease;
62
+ }
63
+
64
+ .taskbar-app.active {
65
+ border-bottom: 2px solid #3b82f6;
66
+ }
67
+
68
+ .ai-message {
69
+ animation: fadeIn 0.3s ease;
70
+ }
71
+
72
+ .typing-indicator {
73
+ display: inline-block;
74
+ width: 8px;
75
+ height: 8px;
76
+ border-radius: 50%;
77
+ background-color: #94a3b8;
78
+ margin-right: 4px;
79
+ animation: bounce 1.5s infinite;
80
+ }
81
+
82
+ .typing-indicator:nth-child(2) {
83
+ animation-delay: 0.2s;
84
+ }
85
+
86
+ .typing-indicator:nth-child(3) {
87
+ animation-delay: 0.4s;
88
+ }
89
+
90
+ @keyframes bounce {
91
+ 0%, 100% { transform: translateY(0); }
92
+ 50% { transform: translateY(-5px); }
93
+ }
94
+
95
+ @keyframes fadeIn {
96
+ from { opacity: 0; transform: translateY(10px); }
97
+ to { opacity: 1; transform: translateY(0); }
98
+ }
99
+
100
+ .grid-bg {
101
+ background-image:
102
+ linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
103
+ linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
104
+ background-size: 20px 20px;
105
+ }
106
+
107
+ .app-icon {
108
+ transition: all 0.2s ease;
109
+ }
110
+
111
+ .app-icon:hover {
112
+ transform: scale(1.1);
113
+ filter: brightness(1.2);
114
+ }
115
+
116
+ .notification {
117
+ animation: slideIn 0.3s forwards, fadeOut 0.3s forwards 2.7s;
118
+ }
119
+
120
+ @keyframes slideIn {
121
+ from { transform: translateX(100%); opacity: 0; }
122
+ to { transform: translateX(0); opacity: 1; }
123
+ }
124
+
125
+ @keyframes fadeOut {
126
+ from { opacity: 1; }
127
+ to { opacity: 0; }
128
+ }
129
+ </style>
130
+ </head>
131
+ <body class="h-screen grid-bg flex flex-col">
132
+ <!-- Desktop Icons -->
133
+ <div class="flex-1 relative p-4">
134
+ <div class="absolute top-4 left-4 flex flex-col items-center w-20 text-center text-white desktop-icon" onclick="openApp('ai-assistant')">
135
+ <div class="bg-ai-purple w-14 h-14 rounded-xl flex items-center justify-center mb-1">
136
+ <i class="fas fa-robot text-2xl"></i>
137
+ </div>
138
+ <span class="text-xs">AI Assistant</span>
139
+ </div>
140
+
141
+ <div class="absolute top-4 left-28 flex flex-col items-center w-20 text-center text-white desktop-icon">
142
+ <div class="bg-green-600 w-14 h-14 rounded-xl flex items-center justify-center mb-1">
143
+ <i class="fas fa-tasks text-2xl"></i>
144
+ </div>
145
+ <span class="text-xs">Task Manager</span>
146
+ </div>
147
+
148
+ <div class="absolute top-28 left-4 flex flex-col items-center w-20 text-center text-white desktop-icon" onclick="openApp('documents')">
149
+ <div class="bg-yellow-500 w-14 h-14 rounded-xl flex items-center justify-center mb-1">
150
+ <i class="fas fa-file-alt text-2xl"></i>
151
+ </div>
152
+ <span class="text-xs">Documents</span>
153
+ </div>
154
+
155
+ <div class="absolute top-28 left-28 flex flex-col items-center w-20 text-center text-white desktop-icon">
156
+ <div class="bg-red-500 w-14 h-14 rounded-xl flex items-center justify-center mb-1">
157
+ <i class="fas fa-cog text-2xl"></i>
158
+ </div>
159
+ <span class="text-xs">Settings</span>
160
+ </div>
161
+ </div>
162
+
163
+ <!-- Taskbar -->
164
+ <div class="h-12 bg-taskbar-gray bg-opacity-90 backdrop-blur-sm flex items-center px-3 border-t border-gray-700">
165
+ <div class="mr-4">
166
+ <button class="bg-app-blue w-8 h-8 rounded flex items-center justify-center text-white">
167
+ <i class="fab fa-windows"></i>
168
+ </button>
169
+ </div>
170
+
171
+ <div class="flex-1 flex items-center h-full">
172
+ <div class="taskbar-app active mr-2 px-3 h-full flex items-center text-white text-sm rounded cursor-pointer" onclick="focusApp('ai-assistant')">
173
+ <i class="fas fa-robot mr-2"></i>
174
+ <span>AI Assistant</span>
175
+ </div>
176
+ <div class="taskbar-app mr-2 px-3 h-full flex items-center text-white text-sm rounded cursor-pointer" onclick="focusApp('documents')">
177
+ <i class="fas fa-folder mr-2"></i>
178
+ <span>Documents</span>
179
+ </div>
180
+ </div>
181
+
182
+ <div class="flex items-center">
183
+ <div class="text-white text-xs mr-4">
184
+ <i class="fas fa-wifi mr-2"></i>
185
+ <i class="fas fa-volume-up mr-2"></i>
186
+ <span id="clock">12:45 PM</span>
187
+ </div>
188
+ <div class="w-px h-6 bg-gray-600 mx-2"></div>
189
+ <div class="text-gray-300">
190
+ <div class="relative">
191
+ <button class="w-8 h-8 rounded-full bg-gray-600 flex items-center justify-center">
192
+ <i class="fas fa-user"></i>
193
+ </button>
194
+ </div>
195
+ </div>
196
+ </div>
197
+ </div>
198
+
199
+ <!-- AI Assistant Window -->
200
+ <div id="ai-assistant" class="window absolute top-1/4 left-1/4 w-2/5 h-2/3 bg-gray-900 border border-gray-700 flex flex-col hidden">
201
+ <div class="window-header bg-gray-800 h-10 flex items-center justify-between px-3 border-b border-gray-700">
202
+ <div class="flex items-center">
203
+ <div class="bg-ai-purple w-6 h-6 rounded flex items-center justify-center mr-2">
204
+ <i class="fas fa-robot text-xs text-white"></i>
205
+ </div>
206
+ <span class="text-white text-sm font-medium">AI Assistant</span>
207
+ </div>
208
+ <div class="flex">
209
+ <button class="w-8 h-8 flex items-center justify-center text-gray-400 hover:bg-gray-700 rounded" onclick="minimizeApp('ai-assistant')">
210
+ <i class="fas fa-window-minimize"></i>
211
+ </button>
212
+ <button class="w-8 h-8 flex items-center justify-center text-gray-400 hover:bg-gray-700 rounded" onclick="maximizeApp('ai-assistant')">
213
+ <i class="fas fa-window-maximize"></i>
214
+ </button>
215
+ <button class="w-8 h-8 flex items-center justify-center text-gray-400 hover:bg-red-500 hover:text-white rounded" onclick="closeApp('ai-assistant')">
216
+ <i class="fas fa-times"></i>
217
+ </button>
218
+ </div>
219
+ </div>
220
+
221
+ <div class="flex-1 flex flex-col">
222
+ <div class="p-4 bg-gray-800 border-b border-gray-700">
223
+ <div class="flex">
224
+ <button class="px-3 py-1 bg-app-blue text-white rounded-l text-sm">Assistant</button>
225
+ <button class="px-3 py-1 bg-gray-700 text-gray-300 rounded-r text-sm">Tools</button>
226
+ </div>
227
+ </div>
228
+
229
+ <div id="chat-container" class="flex-1 overflow-y-auto p-4 bg-gray-850">
230
+ <div class="ai-message mb-4 flex">
231
+ <div class="w-8 h-8 bg-ai-purple rounded-full flex items-center justify-center mr-3">
232
+ <i class="fas fa-robot text-white"></i>
233
+ </div>
234
+ <div class="flex-1">
235
+ <div class="bg-gray-800 rounded-lg p-3 text-gray-200">
236
+ <p>Hello! I'm your AI assistant. How can I help you today? Here are some things I can do:</p>
237
+ <ul class="mt-2 ml-4 list-disc">
238
+ <li>Complete tasks and automate workflows</li>
239
+ <li>Analyze and summarize documents</li>
240
+ <li>Generate reports and content</li>
241
+ <li>Answer questions and provide insights</li>
242
+ </ul>
243
+ </div>
244
+ <div class="mt-2 text-xs text-gray-500">Just now</div>
245
+ </div>
246
+ </div>
247
+ </div>
248
+
249
+ <div class="p-4 border-t border-gray-700 bg-gray-800">
250
+ <div class="flex">
251
+ <div class="flex-1 mr-3">
252
+ <input
253
+ type="text"
254
+ id="user-input"
255
+ class="w-full bg-gray-700 text-white rounded-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-app-light"
256
+ placeholder="Ask AI to complete a task..."
257
+ onkeypress="if(event.key === 'Enter') sendMessage()"
258
+ >
259
+ </div>
260
+ <button
261
+ id="send-btn"
262
+ class="bg-app-blue hover:bg-app-light text-white px-4 py-2 rounded-lg flex items-center transition"
263
+ onclick="sendMessage()"
264
+ >
265
+ <i class="fas fa-paper-plane mr-2"></i> Send
266
+ </button>
267
+ </div>
268
+ <div class="mt-2 flex flex-wrap">
269
+ <span class="text-xs text-gray-400 mr-3">Try:</span>
270
+ <button class="text-xs bg-gray-700 text-gray-300 px-2 py-1 rounded mr-2 mb-1 hover:bg-gray-600" onclick="quickPrompt('Summarize my latest project documents')">Summarize documents</button>
271
+ <button class="text-xs bg-gray-700 text-gray-300 px-2 py-1 rounded mr-2 mb-1 hover:bg-gray-600" onclick="quickPrompt('Generate a monthly report')">Generate report</button>
272
+ <button class="text-xs bg-gray-700 text-gray-300 px-2 py-1 rounded mr-2 mb-1 hover:bg-gray-600" onclick="quickPrompt('Analyze sales data from last quarter')">Analyze data</button>
273
+ </div>
274
+ </div>
275
+ </div>
276
+ </div>
277
+
278
+ <!-- Documents Window -->
279
+ <div id="documents" class="window absolute top-1/4 left-1/3 w-1/3 h-2/3 bg-gray-900 border border-gray-700 flex flex-col hidden">
280
+ <div class="window-header bg-gray-800 h-10 flex items-center justify-between px-3 border-b border-gray-700">
281
+ <div class="flex items-center">
282
+ <div class="bg-yellow-500 w-6 h-6 rounded flex items-center justify-center mr-2">
283
+ <i class="fas fa-file-alt text-xs text-white"></i>
284
+ </div>
285
+ <span class="text-white text-sm font-medium">Documents</span>
286
+ </div>
287
+ <div class="flex">
288
+ <button class="w-8 h-8 flex items-center justify-center text-gray-400 hover:bg-gray-700 rounded" onclick="minimizeApp('documents')">
289
+ <i class="fas fa-window-minimize"></i>
290
+ </button>
291
+ <button class="w-8 h-8 flex items-center justify-center text-gray-400 hover:bg-gray-700 rounded" onclick="maximizeApp('documents')">
292
+ <i class="fas fa-window-maximize"></i>
293
+ </button>
294
+ <button class="w-8 h-8 flex items-center justify-center text-gray-400 hover:bg-red-500 hover:text-white rounded" onclick="closeApp('documents')">
295
+ <i class="fas fa-times"></i>
296
+ </button>
297
+ </div>
298
+ </div>
299
+
300
+ <div class="flex-1 overflow-y-auto p-4 bg-gray-850">
301
+ <div class="mb-4">
302
+ <h3 class="text-white font-medium mb-2">Recent Documents</h3>
303
+ <div class="bg-gray-800 rounded-lg p-3 text-gray-200 mb-2 flex items-center cursor-pointer hover:bg-gray-750" onclick="aiProcessDocument('Project_Report.pdf')">
304
+ <i class="fas fa-file-pdf text-red-400 mr-3"></i>
305
+ <span>Project_Report.pdf</span>
306
+ </div>
307
+ <div class="bg-gray-800 rounded-lg p-3 text-gray-200 mb-2 flex items-center cursor-pointer hover:bg-gray-750" onclick="aiProcessDocument('Sales_Data_Q3.xlsx')">
308
+ <i class="fas fa-file-excel text-green-400 mr-3"></i>
309
+ <span>Sales_Data_Q3.xlsx</span>
310
+ </div>
311
+ <div class="bg-gray-800 rounded-lg p-3 text-gray-200 mb-2 flex items-center cursor-pointer hover:bg-gray-750" onclick="aiProcessDocument('Meeting_Notes.docx')">
312
+ <i class="fas fa-file-word text-blue-400 mr-3"></i>
313
+ <span>Meeting_Notes.docx</span>
314
+ </div>
315
+ </div>
316
+
317
+ <div class="mb-4">
318
+ <h3 class="text-white font-medium mb-2">AI Document Actions</h3>
319
+ <button class="w-full bg-ai-purple hover:bg-purple-700 text-white px-4 py-2 rounded-lg mb-2 flex items-center justify-center" onclick="quickPrompt('Summarize all documents')">
320
+ <i class="fas fa-robot mr-2"></i> Summarize Documents
321
+ </button>
322
+ <button class="w-full bg-ai-purple hover:bg-purple-700 text-white px-4 py-2 rounded-lg mb-2 flex items-center justify-center" onclick="quickPrompt('Extract key data points from all documents')">
323
+ <i class="fas fa-database mr-2"></i> Extract Data
324
+ </button>
325
+ <button class="w-full bg-ai-purple hover:bg-purple-700 text-white px-4 py-2 rounded-lg flex items-center justify-center" onclick="quickPrompt('Generate report combining all documents')">
326
+ <i class="fas fa-file-contract mr-2"></i> Generate Combined Report
327
+ </button>
328
+ </div>
329
+ </div>
330
+ </div>
331
+
332
+ <!-- Notification -->
333
+ <div id="notification" class="fixed top-4 right-4 w-80 bg-gray-800 border border-gray-700 rounded-lg shadow-lg p-4 hidden">
334
+ <div class="flex items-start">
335
+ <div class="mr-3 mt-1 text-ai-purple">
336
+ <i class="fas fa-robot"></i>
337
+ </div>
338
+ <div class="flex-1">
339
+ <div class="font-medium text-white">AI Assistant</div>
340
+ <div class="text-gray-300 text-sm mt-1" id="notification-message">Task completed successfully</div>
341
+ </div>
342
+ <button class="text-gray-400 hover:text-white" onclick="document.getElementById('notification').classList.add('hidden')">
343
+ <i class="fas fa-times"></i>
344
+ </button>
345
+ </div>
346
+ </div>
347
+
348
+ <script>
349
+ // Initialize clock
350
+ function updateClock() {
351
+ const now = new Date();
352
+ const hours = now.getHours();
353
+ const minutes = now.getMinutes().toString().padStart(2, '0');
354
+ const ampm = hours >= 12 ? 'PM' : 'AM';
355
+ const formattedHours = hours % 12 || 12;
356
+
357
+ document.getElementById('clock').textContent = `${formattedHours}:${minutes} ${ampm}`;
358
+ }
359
+
360
+ setInterval(updateClock, 60000);
361
+ updateClock();
362
+
363
+ // App management functions
364
+ function openApp(appId) {
365
+ const app = document.getElementById(appId);
366
+ app.classList.remove('hidden');
367
+ focusApp(appId);
368
+ }
369
+
370
+ function closeApp(appId) {
371
+ document.getElementById(appId).classList.add('hidden');
372
+ }
373
+
374
+ function minimizeApp(appId) {
375
+ const app = document.getElementById(appId);
376
+ app.classList.add('hidden');
377
+ }
378
+
379
+ function maximizeApp(appId) {
380
+ const app = document.getElementById(appId);
381
+ app.classList.toggle('w-full');
382
+ app.classList.toggle('h-full');
383
+ app.classList.toggle('top-0');
384
+ app.classList.toggle('left-0');
385
+ }
386
+
387
+ function focusApp(appId) {
388
+ document.querySelectorAll('.window').forEach(window => {
389
+ window.style.zIndex = '10';
390
+ });
391
+ document.getElementById(appId).style.zIndex = '50';
392
+ document.querySelectorAll('.taskbar-app').forEach(app => {
393
+ app.classList.remove('active');
394
+ });
395
+ document.querySelector(`.taskbar-app:nth-child(1)`).classList.add('active');
396
+ }
397
+
398
+ // Chat functionality
399
+ function sendMessage() {
400
+ const input = document.getElementById('user-input');
401
+ const message = input.value.trim();
402
+
403
+ if (message) {
404
+ addMessage(message, 'user');
405
+ input.value = '';
406
+
407
+ // Simulate AI processing
408
+ setTimeout(() => {
409
+ processTask(message);
410
+ }, 1000);
411
+ }
412
+ }
413
+
414
+ function addMessage(message, sender) {
415
+ const chatContainer = document.getElementById('chat-container');
416
+ const now = new Date();
417
+ const time = now.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
418
+
419
+ if (sender === 'user') {
420
+ const messageElement = `
421
+ <div class="ai-message mb-4 flex justify-end">
422
+ <div class="flex-1 max-w-3/4">
423
+ <div class="bg-app-blue rounded-lg p-3 text-white">
424
+ ${message}
425
+ </div>
426
+ <div class="mt-2 text-xs text-gray-500 text-right">${time}</div>
427
+ </div>
428
+ <div class="w-8 h-8 bg-blue-500 rounded-full flex items-center justify-center ml-3">
429
+ <i class="fas fa-user text-white"></i>
430
+ </div>
431
+ </div>
432
+ `;
433
+ chatContainer.innerHTML += messageElement;
434
+ } else {
435
+ const messageElement = `
436
+ <div class="ai-message mb-4 flex">
437
+ <div class="w-8 h-8 bg-ai-purple rounded-full flex items-center justify-center mr-3">
438
+ <i class="fas fa-robot text-white"></i>
439
+ </div>
440
+ <div class="flex-1">
441
+ <div class="bg-gray-800 rounded-lg p-3 text-gray-200">
442
+ ${message}
443
+ </div>
444
+ <div class="mt-2 text-xs text-gray-500">${time}</div>
445
+ </div>
446
+ </div>
447
+ `;
448
+ chatContainer.innerHTML += messageElement;
449
+ }
450
+
451
+ chatContainer.scrollTop = chatContainer.scrollHeight;
452
+ }
453
+
454
+ function showTypingIndicator() {
455
+ const chatContainer = document.getElementById('chat-container');
456
+ const typingElement = `
457
+ <div class="ai-message mb-4 flex">
458
+ <div class="w-8 h-8 bg-ai-purple rounded-full flex items-center justify-center mr-3">
459
+ <i class="fas fa-robot text-white"></i>
460
+ </div>
461
+ <div class="flex-1">
462
+ <div class="bg-gray-800 rounded-lg p-3 text-gray-200">
463
+ <span class="typing-indicator"></span>
464
+ <span class="typing-indicator"></span>
465
+ <span class="typing-indicator"></span>
466
+ </div>
467
+ </div>
468
+ </div>
469
+ `;
470
+ chatContainer.innerHTML += typingElement;
471
+ chatContainer.scrollTop = chatContainer.scrollHeight;
472
+ return chatContainer.lastElementChild;
473
+ }
474
+
475
+ function removeTypingIndicator(element) {
476
+ element.remove();
477
+ }
478
+
479
+ function processTask(task) {
480
+ const typingElement = showTypingIndicator();
481
+
482
+ setTimeout(() => {
483
+ removeTypingIndicator(typingElement);
484
+
485
+ // Simulated AI responses based on task
486
+ let response = "";
487
+ let notification = "Task completed";
488
+
489
+ if (task.toLowerCase().includes("report")) {
490
+ response = `I've generated a comprehensive report based on your request. The report includes:<br><br>
491
+ <ul class="list-disc ml-5">
492
+ <li>Executive summary of key findings</li>
493
+ <li>Quarterly performance metrics</li>
494
+ <li>Competitive analysis</li>
495
+ <li>Recommendations for next quarter</li>
496
+ </ul><br>
497
+ The report has been saved to your Documents folder as "Q3_Report.pdf".`;
498
+ notification = "Report generated successfully";
499
+ } else if (task.toLowerCase().includes("summarize") || task.toLowerCase().includes("document")) {
500
+ response = `I've analyzed and summarized the requested documents. Here's the key summary:<br><br>
501
+ <div class="bg-gray-750 p-3 rounded-lg">
502
+ <p class="font-medium">Project Status Summary:</p>
503
+ <p>The project is currently 75% complete with all major milestones achieved on schedule. The remaining tasks involve final testing and documentation. Budget utilization is at 68% which is within projected parameters.</p>
504
+ </div><br>
505
+ The full summary has been saved to your Documents folder.`;
506
+ notification = "Documents summarized";
507
+ } else if (task.toLowerCase().includes("data") || task.toLowerCase().includes("analyze")) {
508
+ response = `I've completed the analysis of your sales data. Key insights:<br><br>
509
+ <div class="bg-gray-750 p-3 rounded-lg">
510
+ <p>πŸ“ˆ <span class="font-medium">Top Performing Products:</span> Product X increased sales by 24% this quarter</p>
511
+ <p>🌍 <span class="font-medium">Regional Performance:</span> European market shows strongest growth at 18%</p>
512
+ <p>πŸ“Š <span class="font-medium">Forecast:</span> Projected 12% growth next quarter based on current trends</p>
513
+ </div><br>
514
+ I've created visualizations and saved the full analysis to your Documents folder.`;
515
+ notification = "Data analysis complete";
516
+ } else {
517
+ response = `I've completed the task: "${task}".<br><br>
518
+ The results have been saved to your Documents folder. Let me know if you need anything else!`;
519
+ }
520
+
521
+ addMessage(response, 'ai');
522
+ showNotification(notification);
523
+ }, 2000);
524
+ }
525
+
526
+ function quickPrompt(prompt) {
527
+ document.getElementById('user-input').value = prompt;
528
+ sendMessage();
529
+ }
530
+
531
+ function aiProcessDocument(filename) {
532
+ const typingElement = showTypingIndicator();
533
+
534
+ setTimeout(() => {
535
+ removeTypingIndicator(typingElement);
536
+
537
+ let response = "";
538
+ if (filename.includes('.pdf')) {
539
+ response = `I've analyzed <span class="font-medium">${filename}</span> and found:<br><br>
540
+ <ul class="list-disc ml-5">
541
+ <li>32 pages of comprehensive project documentation</li>
542
+ <li>5 key recommendations for next steps</li>
543
+ <li>3 critical risks identified</li>
544
+ </ul><br>
545
+ <button class="bg-ai-purple hover:bg-purple-700 text-white px-3 py-1 rounded text-sm" onclick="quickPrompt('Summarize ${filename}')">Summarize Document</button>`;
546
+ } else if (filename.includes('.xlsx')) {
547
+ response = `I've processed <span class="font-medium">${filename}</span> containing:<br><br>
548
+ <ul class="list-disc ml-5">
549
+ <li>Quarterly sales data across 5 regions</li>
550
+ <li>12 product categories with performance metrics</li>
551
+ <li>Year-over-year growth analysis</li>
552
+ </ul><br>
553
+ <button class="bg-ai-purple hover:bg-purple-700 text-white px-3 py-1 rounded text-sm" onclick="quickPrompt('Analyze trends in ${filename}')">Analyze Data</button>`;
554
+ } else {
555
+ response = `I've reviewed <span class="font-medium">${filename}</span> which contains:<br><br>
556
+ <ul class="list-disc ml-5">
557
+ <li>Meeting minutes from 3 sessions</li>
558
+ <li>Action items for 5 team members</li>
559
+ <li>Project timeline updates</li>
560
+ </ul><br>
561
+ <button class="bg-ai-purple hover:bg-purple-700 text-white px-3 py-1 rounded text-sm" onclick="quickPrompt('Extract action items from ${filename}')">Extract Actions</button>`;
562
+ }
563
+
564
+ addMessage(response, 'ai');
565
+ showNotification(`Processed ${filename}`);
566
+ focusApp('ai-assistant');
567
+ }, 1500);
568
+ }
569
+
570
+ function showNotification(message) {
571
+ const notification = document.getElementById('notification');
572
+ document.getElementById('notification-message').textContent = message;
573
+ notification.classList.remove('hidden');
574
+
575
+ setTimeout(() => {
576
+ notification.classList.add('hidden');
577
+ }, 3000);
578
+ }
579
+
580
+ // Make windows draggable
581
+ document.querySelectorAll('.window-header').forEach(header => {
582
+ header.addEventListener('mousedown', (e) => {
583
+ const window = header.parentElement;
584
+ let posX = e.clientX;
585
+ let posY = e.clientY;
586
+
587
+ function mouseMoveHandler(e) {
588
+ const dx = e.clientX - posX;
589
+ const dy = e.clientY - posY;
590
+
591
+ window.style.left = (window.offsetLeft + dx) + 'px';
592
+ window.style.top = (window.offsetTop + dy) + 'px';
593
+
594
+ posX = e.clientX;
595
+ posY = e.clientY;
596
+ }
597
+
598
+ function mouseUpHandler() {
599
+ document.removeEventListener('mousemove', mouseMoveHandler);
600
+ document.removeEventListener('mouseup', mouseUpHandler);
601
+ }
602
+
603
+ document.addEventListener('mousemove', mouseMoveHandler);
604
+ document.addEventListener('mouseup', mouseUpHandler);
605
+ });
606
+ });
607
+
608
+ // Open AI Assistant on load
609
+ window.onload = function() {
610
+ openApp('ai-assistant');
611
+ };
612
+ </script>
613
+ <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=kdub307/computer-use" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
614
+ </html>