lua-cli 1.3.0-alpha.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +8 -3
  2. package/README.md +168 -14
  3. package/dist/commands/agents.js +5 -9
  4. package/dist/commands/compile.js +252 -70
  5. package/dist/commands/deploy-new.d.ts +0 -20
  6. package/dist/commands/deploy-new.js +130 -128
  7. package/dist/commands/deploy.js +15 -43
  8. package/dist/commands/dev.d.ts +63 -0
  9. package/dist/commands/dev.js +656 -0
  10. package/dist/commands/index.d.ts +1 -0
  11. package/dist/commands/index.js +1 -0
  12. package/dist/commands/init.js +230 -42
  13. package/dist/commands/push.js +25 -36
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.js +7 -1
  16. package/dist/services/api.d.ts +195 -0
  17. package/dist/services/api.js +209 -0
  18. package/dist/services/auth.d.ts +82 -0
  19. package/dist/services/auth.js +101 -51
  20. package/dist/user-data-api.d.ts +52 -0
  21. package/dist/user-data-api.js +151 -0
  22. package/dist/utils/files.d.ts +4 -1
  23. package/dist/utils/files.js +62 -16
  24. package/dist/web/app.css +1050 -0
  25. package/dist/web/app.js +79 -0
  26. package/dist/web/tools-page.css +377 -0
  27. package/package.json +17 -4
  28. package/template/package-lock.json +32 -3
  29. package/template/package.json +3 -1
  30. package/template/{index.ts → src/index.ts} +9 -3
  31. package/template/src/tools/UserPreferencesTool.ts +73 -0
  32. package/template/tools/UserPreferencesTool.ts +73 -0
  33. package/template/tsconfig.json +1 -1
  34. package/template/.lua/deploy.json +0 -148
  35. /package/template/{services → src/services}/ApiService.ts +0 -0
  36. /package/template/{services → src/services}/GetWeather.ts +0 -0
  37. /package/template/{services → src/services}/MathService.ts +0 -0
  38. /package/template/{tools → src/tools}/AdvancedMathTool.ts +0 -0
  39. /package/template/{tools → src/tools}/CalculatorTool.ts +0 -0
  40. /package/template/{tools → src/tools}/CreatePostTool.ts +0 -0
  41. /package/template/{tools → src/tools}/GetUserDataTool.ts +0 -0
  42. /package/template/{tools → src/tools}/GetWeatherTool.ts +0 -0
@@ -0,0 +1,1050 @@
1
+ /* Reset and base styles */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ html {
9
+ margin: 0;
10
+ padding: 0;
11
+ width: 100%;
12
+ height: 100%;
13
+ overflow: hidden;
14
+ background: #1e1e1e;
15
+ }
16
+
17
+ body {
18
+ margin: 0;
19
+ padding: 0;
20
+ width: 100%;
21
+ height: 100%;
22
+ overflow: hidden;
23
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
24
+ -webkit-font-smoothing: antialiased;
25
+ -moz-osx-font-smoothing: grayscale;
26
+ background: #1e1e1e;
27
+ color: #cccccc;
28
+ border: none;
29
+ outline: none;
30
+ }
31
+
32
+ #root {
33
+ width: 100vw;
34
+ height: 100vh;
35
+ margin: 0;
36
+ padding: 0;
37
+ }
38
+
39
+ /* Main container */
40
+ .main-container {
41
+ width: 100vw;
42
+ height: 100vh;
43
+ display: flex;
44
+ flex-direction: column;
45
+ background: #2d2d30;
46
+ border: none;
47
+ border-radius: 0;
48
+ overflow: hidden;
49
+ margin: 0;
50
+ padding: 0;
51
+ }
52
+
53
+ /* Page Navigation */
54
+ .page-navigation {
55
+ background: #000000;
56
+ border-bottom: 1px solid #3e3e42;
57
+ padding: 8px 16px;
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: space-between;
61
+ gap: 8px;
62
+ }
63
+
64
+ .nav-logo {
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 8px;
68
+ }
69
+
70
+ .logo-icon {
71
+ width: 60px;
72
+ height: 24px;
73
+ background-image: url('https://framerusercontent.com/images/ll1JTdJyZ3HbyVK00SlwLkazKiQ.png?scale-down-to=512');
74
+ background-size: contain;
75
+ background-repeat: no-repeat;
76
+ background-position: center;
77
+ }
78
+
79
+ .logo-text {
80
+ font-size: 16px;
81
+ font-weight: 600;
82
+ color: #ffffff;
83
+ font-family: inherit;
84
+ }
85
+
86
+ .nav-buttons {
87
+ display: flex;
88
+ gap: 8px;
89
+ }
90
+
91
+ .nav-button {
92
+ background: transparent;
93
+ color: #cccccc;
94
+ border: 1px solid #3e3e42;
95
+ border-radius: 6px;
96
+ padding: 8px 16px;
97
+ font-size: 14px;
98
+ font-weight: 500;
99
+ font-family: inherit;
100
+ cursor: pointer;
101
+ transition: all 0.2s;
102
+ }
103
+
104
+ .nav-button:hover {
105
+ background: #3e3e42;
106
+ color: #ffffff;
107
+ }
108
+
109
+ .nav-button.active {
110
+ background: #007acc;
111
+ color: #ffffff;
112
+ border-color: #007acc;
113
+ }
114
+
115
+ /* Main Content */
116
+ .main-content {
117
+ flex: 1;
118
+ display: flex;
119
+ gap: 1px;
120
+ overflow: hidden;
121
+ position: relative;
122
+ }
123
+
124
+ .resize-handle {
125
+ width: 4px;
126
+ background: #3e3e42;
127
+ cursor: col-resize;
128
+ position: relative;
129
+ flex-shrink: 0;
130
+ transition: background-color 0.2s;
131
+ }
132
+
133
+ .resize-handle:hover {
134
+ background: #007acc;
135
+ }
136
+
137
+ .resize-handle::before {
138
+ content: '';
139
+ position: absolute;
140
+ top: 0;
141
+ left: -2px;
142
+ right: -2px;
143
+ bottom: 0;
144
+ background: transparent;
145
+ }
146
+
147
+ /* Chat container */
148
+ .chat-container {
149
+ flex: 2;
150
+ background: #1e1e1e;
151
+ display: flex;
152
+ flex-direction: column;
153
+ overflow: hidden;
154
+ }
155
+
156
+ .chat-header {
157
+ background: #2d2d30;
158
+ color: #cccccc;
159
+ padding: 12px 16px;
160
+ border-bottom: 1px solid #3e3e42;
161
+ display: flex;
162
+ align-items: center;
163
+ gap: 12px;
164
+ }
165
+
166
+ .chat-header .icon {
167
+ width: 55px;
168
+ height: 100%;
169
+ background-image: url('https://framerusercontent.com/images/ll1JTdJyZ3HbyVK00SlwLkazKiQ.png?scale-down-to=512');
170
+ background-size: contain;
171
+ background-repeat: no-repeat;
172
+ }
173
+
174
+ .chat-header h1 {
175
+ margin: 0;
176
+ font-size: 16px;
177
+ font-weight: 600;
178
+ color: #ffffff;
179
+ font-family: inherit;
180
+ }
181
+
182
+ .chat-header p {
183
+ margin: 0;
184
+ font-size: 12px;
185
+ color: #cccccc;
186
+ font-style: italic;
187
+ font-family: inherit;
188
+ }
189
+
190
+ .clear-chat-button {
191
+ background: #da3633;
192
+ color: white;
193
+ border: none;
194
+ border-radius: 4px;
195
+ padding: 6px 12px;
196
+ font-size: 12px;
197
+ font-family: inherit;
198
+ cursor: pointer;
199
+ transition: background-color 0.2s;
200
+ margin-left: auto;
201
+ }
202
+
203
+ .clear-chat-button:hover:not(:disabled) {
204
+ background: #b02a28;
205
+ }
206
+
207
+ .clear-chat-button:disabled {
208
+ background: #6c757d;
209
+ cursor: not-allowed;
210
+ }
211
+
212
+ .chat-messages {
213
+ flex: 1;
214
+ padding: 16px;
215
+ overflow-y: auto;
216
+ background: #ffffff;
217
+ }
218
+
219
+ .message {
220
+ margin-bottom: 16px;
221
+ display: flex;
222
+ flex-direction: column;
223
+ }
224
+
225
+ .message.user {
226
+ align-items: flex-end;
227
+ }
228
+
229
+ .message.assistant {
230
+ align-items: flex-start;
231
+ }
232
+
233
+ .message-bubble {
234
+ max-width: 70%;
235
+ padding: 12px 16px;
236
+ border-radius: 18px;
237
+ font-size: 14px;
238
+ line-height: 1.5;
239
+ word-wrap: break-word;
240
+ font-family: inherit;
241
+ font-weight: 400;
242
+ }
243
+
244
+ .message.user .message-bubble {
245
+ background: #007acc;
246
+ color: #ffffff;
247
+ border-bottom-right-radius: 4px;
248
+ }
249
+
250
+ .message.assistant .message-bubble {
251
+ background: #bebebe;
252
+ color: #000000;
253
+ border-bottom-left-radius: 4px;
254
+ }
255
+
256
+ /* Markdown styling for chat bubbles */
257
+ .message-bubble h1,
258
+ .message-bubble h2,
259
+ .message-bubble h3,
260
+ .message-bubble h4,
261
+ .message-bubble h5,
262
+ .message-bubble h6 {
263
+ margin: 8px 0 4px 0;
264
+ font-weight: 600;
265
+ line-height: 1.3;
266
+ }
267
+
268
+ .message-bubble h1 {
269
+ font-size: 18px;
270
+ }
271
+
272
+ .message-bubble h2 {
273
+ font-size: 16px;
274
+ }
275
+
276
+ .message-bubble h3 {
277
+ font-size: 15px;
278
+ }
279
+
280
+ .message-bubble h4 {
281
+ font-size: 14px;
282
+ }
283
+
284
+ .message-bubble h5 {
285
+ font-size: 13px;
286
+ }
287
+
288
+ .message-bubble h6 {
289
+ font-size: 12px;
290
+ }
291
+
292
+ .message-bubble p {
293
+ margin: 4px 0;
294
+ line-height: 1.4;
295
+ }
296
+
297
+ .message-bubble ul,
298
+ .message-bubble ol {
299
+ margin: 8px 0;
300
+ padding-left: 20px;
301
+ }
302
+
303
+ .message-bubble li {
304
+ margin: 2px 0;
305
+ line-height: 1.4;
306
+ }
307
+
308
+ .message-bubble code {
309
+ background: rgba(255, 255, 255, 0.1);
310
+ padding: 2px 6px;
311
+ border-radius: 4px;
312
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
313
+ font-size: 13px;
314
+ }
315
+
316
+ .message-bubble pre {
317
+ background: rgba(0, 0, 0, 0.3);
318
+ padding: 12px;
319
+ border-radius: 6px;
320
+ margin: 8px 0;
321
+ overflow-x: auto;
322
+ border: 1px solid rgba(255, 255, 255, 0.1);
323
+ }
324
+
325
+ .message-bubble pre code {
326
+ background: none;
327
+ padding: 0;
328
+ font-size: 13px;
329
+ }
330
+
331
+ .message-bubble blockquote {
332
+ border-left: 4px solid #007acc;
333
+ margin: 8px 0;
334
+ padding: 8px 12px;
335
+ background: rgba(0, 122, 204, 0.1);
336
+ border-radius: 0 4px 4px 0;
337
+ }
338
+
339
+ .message-bubble table {
340
+ border-collapse: collapse;
341
+ margin: 8px 0;
342
+ width: 100%;
343
+ }
344
+
345
+ .message-bubble th,
346
+ .message-bubble td {
347
+ border: 1px solid rgba(255, 255, 255, 0.2);
348
+ padding: 6px 8px;
349
+ text-align: left;
350
+ }
351
+
352
+ .message-bubble th {
353
+ background: rgba(255, 255, 255, 0.1);
354
+ font-weight: 600;
355
+ }
356
+
357
+ .message-bubble a {
358
+ color: #007acc;
359
+ text-decoration: none;
360
+ }
361
+
362
+ .message-bubble a:hover {
363
+ text-decoration: underline;
364
+ }
365
+
366
+ .message-bubble strong {
367
+ font-weight: 600;
368
+ }
369
+
370
+ .message-bubble em {
371
+ font-style: italic;
372
+ }
373
+
374
+ .message-bubble hr {
375
+ border: none;
376
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
377
+ margin: 12px 0;
378
+ }
379
+
380
+ .loading {
381
+ background: #bebebe;
382
+ color: #000000;
383
+ padding: 12px 16px;
384
+ border-radius: 18px;
385
+ border-bottom-left-radius: 4px;
386
+ font-size: 14px;
387
+ font-style: italic;
388
+ margin: 16px 0;
389
+ display: inline-block;
390
+ }
391
+
392
+ .chat-input-container {
393
+ background: #2d2d30;
394
+ padding: 16px;
395
+ border-top: 1px solid #3e3e42;
396
+ }
397
+
398
+ .chat-input-form {
399
+ display: flex;
400
+ gap: 8px;
401
+ align-items: center;
402
+ }
403
+
404
+ .chat-input {
405
+ flex: 1;
406
+ background: #1e1e1e;
407
+ color: #cccccc;
408
+ border: 1px solid #3e3e42;
409
+ border-radius: 20px;
410
+ padding: 12px 16px;
411
+ font-size: 14px;
412
+ font-family: inherit;
413
+ font-weight: 400;
414
+ outline: none;
415
+ }
416
+
417
+ .chat-input:focus {
418
+ border-color: #007acc;
419
+ }
420
+
421
+ .send-button {
422
+ background: #005a9e;
423
+ color: white;
424
+ border: none;
425
+ border-radius: 20px;
426
+ padding: 12px 20px;
427
+ font-size: 14px;
428
+ font-weight: 500;
429
+ font-family: inherit;
430
+ cursor: pointer;
431
+ transition: background-color 0.2s;
432
+ }
433
+
434
+ .send-button:hover:not(:disabled) {
435
+ background: #005a9e;
436
+ }
437
+
438
+ .send-button:disabled {
439
+ background: #6c757d;
440
+ cursor: not-allowed;
441
+ }
442
+
443
+ /* User Data Panel */
444
+ .user-data-panel {
445
+ flex: 1;
446
+ display: flex;
447
+ flex-direction: column;
448
+ overflow: hidden;
449
+ background: #1e1e1e;
450
+ }
451
+
452
+ .user-data-loading {
453
+ display: flex;
454
+ flex-direction: column;
455
+ align-items: center;
456
+ justify-content: center;
457
+ height: 100%;
458
+ gap: 16px;
459
+ }
460
+
461
+ .user-data-header {
462
+ background: #2d2d30;
463
+ color: #cccccc;
464
+ padding: 12px 16px;
465
+ border-bottom: 1px solid #3e3e42;
466
+ display: flex;
467
+ justify-content: space-between;
468
+ align-items: center;
469
+ flex-shrink: 0;
470
+ }
471
+
472
+ .user-data-header h3 {
473
+ margin: 0;
474
+ font-size: 14px;
475
+ font-weight: 600;
476
+ color: #ffffff;
477
+ font-family: inherit;
478
+ }
479
+
480
+ .user-data-actions {
481
+ display: flex;
482
+ gap: 8px;
483
+ }
484
+
485
+ .refresh-button {
486
+ background: #3e3e42;
487
+ color: #cccccc;
488
+ border: none;
489
+ border-radius: 4px;
490
+ padding: 6px 12px;
491
+ font-size: 12px;
492
+ font-family: inherit;
493
+ cursor: pointer;
494
+ transition: background-color 0.2s;
495
+ }
496
+
497
+ .refresh-button:hover:not(:disabled) {
498
+ background: #4e4e52;
499
+ }
500
+
501
+ .refresh-button:disabled {
502
+ background: #2d2d30;
503
+ color: #8c8c8c;
504
+ cursor: not-allowed;
505
+ }
506
+
507
+ .save-button {
508
+ background: #007acc;
509
+ color: white;
510
+ border: none;
511
+ border-radius: 4px;
512
+ padding: 6px 12px;
513
+ font-size: 12px;
514
+ font-family: inherit;
515
+ cursor: pointer;
516
+ transition: background-color 0.2s;
517
+ }
518
+
519
+ .save-button:hover:not(:disabled) {
520
+ background: #005a9e;
521
+ }
522
+
523
+ .save-button:disabled {
524
+ background: #3e3e42;
525
+ color: #8c8c8c;
526
+ cursor: not-allowed;
527
+ }
528
+
529
+ .clear-button {
530
+ background: #da3633;
531
+ color: white;
532
+ border: none;
533
+ border-radius: 4px;
534
+ padding: 6px 12px;
535
+ font-size: 12px;
536
+ font-family: inherit;
537
+ cursor: pointer;
538
+ transition: background-color 0.2s;
539
+ }
540
+
541
+ .clear-button:hover:not(:disabled) {
542
+ background: #b02a28;
543
+ }
544
+
545
+ .clear-button:disabled {
546
+ background: #3e3e42;
547
+ color: #8c8c8c;
548
+ cursor: not-allowed;
549
+ }
550
+
551
+ .error-message {
552
+ background: #5d1a1a;
553
+ color: #f85149;
554
+ padding: 8px 12px;
555
+ font-size: 12px;
556
+ font-family: inherit;
557
+ border-bottom: 1px solid #da3633;
558
+ }
559
+
560
+ .success-message {
561
+ background: #0d4429;
562
+ color: #3fb950;
563
+ padding: 8px 12px;
564
+ font-size: 12px;
565
+ font-family: inherit;
566
+ border-bottom: 1px solid #238636;
567
+ }
568
+
569
+ .user-data-content {
570
+ flex: 1;
571
+ display: flex;
572
+ flex-direction: column;
573
+ overflow: hidden;
574
+ }
575
+
576
+ .json-editor {
577
+ flex: 1;
578
+ padding: 12px;
579
+ }
580
+
581
+ .json-textarea {
582
+ width: 100%;
583
+ height: 100%;
584
+ background: #1e1e1e;
585
+ color: #cccccc;
586
+ border: 1px solid #3e3e42;
587
+ border-radius: 4px;
588
+ padding: 12px;
589
+ font-size: 13px;
590
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
591
+ outline: none;
592
+ resize: none;
593
+ line-height: 1.4;
594
+ }
595
+
596
+ .json-textarea:focus {
597
+ border-color: #007acc;
598
+ }
599
+
600
+ .user-data-info {
601
+ background: #252526;
602
+ border-top: 1px solid #3e3e42;
603
+ padding: 12px;
604
+ flex-shrink: 0;
605
+ }
606
+
607
+ .info-item {
608
+ display: flex;
609
+ justify-content: space-between;
610
+ margin-bottom: 4px;
611
+ }
612
+
613
+ .info-item:last-child {
614
+ margin-bottom: 0;
615
+ }
616
+
617
+ .info-label {
618
+ font-size: 12px;
619
+ color: #8c8c8c;
620
+ font-family: inherit;
621
+ }
622
+
623
+ .info-value {
624
+ font-size: 12px;
625
+ color: #cccccc;
626
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
627
+ word-break: break-all;
628
+ }
629
+
630
+ /* Right panel - Chrome DevTools style */
631
+ .log-container {
632
+ background: #1e1e1e;
633
+ display: flex;
634
+ flex-direction: column;
635
+ overflow: hidden;
636
+ border-left: 1px solid #3e3e42;
637
+ flex-shrink: 0;
638
+ }
639
+
640
+ .log-header {
641
+ background: #2d2d30;
642
+ color: #cccccc;
643
+ padding-top: 6px;
644
+ padding-left: 10px;
645
+ border-bottom: 1px solid #3e3e42;
646
+ display: flex;
647
+ align-items: center;
648
+ justify-content: space-between;
649
+ font-size: 12px;
650
+ }
651
+
652
+ .tab-buttons {
653
+ display: flex;
654
+ }
655
+
656
+ .tab-button {
657
+ background: transparent;
658
+ color: #cccccc;
659
+ border: none;
660
+ padding: 8px 16px;
661
+ font-size: 12px;
662
+ font-family: inherit;
663
+ font-weight: 500;
664
+ cursor: pointer;
665
+ transition: all 0.2s;
666
+ border-bottom: 2px solid transparent;
667
+ display: flex;
668
+ align-items: center;
669
+ position: relative;
670
+ border-radius: 4px 4px 0 0;
671
+ margin-right: 2px;
672
+ }
673
+
674
+ .tab-button:hover {
675
+ background: #3e3e42;
676
+ color: #ffffff;
677
+ }
678
+
679
+ .tab-button.active {
680
+ background: #1e1e1e;
681
+ color: #ffffff;
682
+ border-bottom-color: #007acc;
683
+ }
684
+
685
+ .tab-button.active::after {
686
+ content: '';
687
+ position: absolute;
688
+ bottom: 0;
689
+ left: 0;
690
+ right: 0;
691
+ height: 2px;
692
+ background: #007acc;
693
+ }
694
+
695
+ .tab-content {
696
+ display: none;
697
+ flex: 1;
698
+ overflow: hidden;
699
+ background: #1e1e1e;
700
+ }
701
+
702
+ .tab-content.active {
703
+ display: flex;
704
+ flex-direction: column;
705
+ }
706
+
707
+ .log-connection-status {
708
+ font-size: 11px;
709
+ color: #888;
710
+ padding: 0 12px;
711
+ display: flex;
712
+ align-items: center;
713
+ height: 100%;
714
+ width: 150px;
715
+ float: right;
716
+ }
717
+
718
+ /* Logs header and clear button */
719
+ .logs-header {
720
+ display: flex;
721
+ justify-content: space-between;
722
+ align-items: center;
723
+ padding: 8px 12px;
724
+ background: #2d2d30;
725
+ border-bottom: 1px solid #3e3e42;
726
+ color: #cccccc;
727
+ font-size: 12px;
728
+ font-weight: 500;
729
+ flex-shrink: 0;
730
+ position: sticky;
731
+ top: 0;
732
+ z-index: 10;
733
+ }
734
+
735
+ .logs-title {
736
+ color: #cccccc;
737
+ }
738
+
739
+ .clear-logs-button {
740
+ background: #da3633;
741
+ color: white;
742
+ border: none;
743
+ border-radius: 4px;
744
+ padding: 4px 8px;
745
+ font-size: 11px;
746
+ font-family: inherit;
747
+ cursor: pointer;
748
+ transition: background-color 0.2s;
749
+ }
750
+
751
+ .clear-logs-button:hover:not(:disabled) {
752
+ background: #b02a28;
753
+ }
754
+
755
+ .clear-logs-button:disabled {
756
+ background: #6c757d;
757
+ cursor: not-allowed;
758
+ }
759
+
760
+ .log-messages {
761
+ flex: 1;
762
+ background: #252526;
763
+ display: flex;
764
+ flex-direction: column;
765
+ overflow: hidden;
766
+ }
767
+
768
+ .log-content {
769
+ flex: 1;
770
+ padding: 8px;
771
+ overflow-y: auto;
772
+ background: #252526;
773
+ }
774
+
775
+ .log-footer-status {
776
+ background: #2d2d30;
777
+ border-top: 1px solid #3e3e42;
778
+ padding: 8px 12px;
779
+ flex-shrink: 0;
780
+ }
781
+
782
+
783
+ .no-logs {
784
+ display: flex;
785
+ flex-direction: column;
786
+ align-items: center;
787
+ justify-content: center;
788
+ height: 100%;
789
+ min-height: 200px;
790
+ color: #8c8c8c;
791
+ text-align: center;
792
+ }
793
+
794
+ .no-logs-icon {
795
+ font-size: 48px;
796
+ margin-bottom: 16px;
797
+ opacity: 0.6;
798
+ }
799
+
800
+ .no-logs-text {
801
+ font-size: 16px;
802
+ font-weight: 500;
803
+ margin-bottom: 8px;
804
+ color: #cccccc;
805
+ }
806
+
807
+ .no-logs-subtext {
808
+ font-size: 14px;
809
+ opacity: 0.8;
810
+ max-width: 300px;
811
+ line-height: 1.4;
812
+ }
813
+
814
+ .log-entry {
815
+ margin-bottom: 8px;
816
+ padding: 8px;
817
+ border-radius: 4px;
818
+ font-size: 12px;
819
+ font-family: 'Courier New', monospace;
820
+ }
821
+
822
+ .log-main {
823
+ display: flex;
824
+ align-items: center;
825
+ gap: 8px;
826
+ cursor: pointer;
827
+ padding: 4px 0;
828
+ }
829
+
830
+ .expand-arrow {
831
+ margin-left: auto;
832
+ font-size: 10px;
833
+ color: #888;
834
+ transition: transform 0.2s ease;
835
+ }
836
+
837
+ .expand-arrow.expanded {
838
+ transform: rotate(90deg);
839
+ }
840
+
841
+ .log-details {
842
+ margin-top: 8px;
843
+ padding-left: 16px;
844
+ border-left: 2px solid #3e3e42;
845
+ }
846
+
847
+ .metadata-label,
848
+ .details-label {
849
+ font-size: 11px;
850
+ font-weight: 600;
851
+ color: #888;
852
+ margin-bottom: 4px;
853
+ text-transform: uppercase;
854
+ }
855
+
856
+ .metadata-item {
857
+ display: flex;
858
+ gap: 8px;
859
+ margin-bottom: 2px;
860
+ }
861
+
862
+ .metadata-key {
863
+ color: #888;
864
+ font-weight: 500;
865
+ min-width: 80px;
866
+ }
867
+
868
+ .metadata-value {
869
+ color: #cccccc;
870
+ }
871
+
872
+ .details-content {
873
+ background: rgba(0, 0, 0, 0.3);
874
+ padding: 8px;
875
+ border-radius: 4px;
876
+ font-size: 11px;
877
+ color: #f85149;
878
+ margin: 0;
879
+ white-space: pre-wrap;
880
+ word-break: break-word;
881
+ overflow-x: auto;
882
+ }
883
+
884
+ .log-entry.info {
885
+ background: rgba(0, 122, 204, 0.1);
886
+ color: #86cfef;
887
+ }
888
+
889
+ .log-entry.error {
890
+ background: rgba(239, 68, 68, 0.1);
891
+ color: #fca5a5;
892
+ }
893
+
894
+ .log-entry.warn {
895
+ background: rgba(245, 158, 11, 0.1);
896
+ color: #fbbf24;
897
+ }
898
+
899
+ .log-entry.debug {
900
+ background: rgba(107, 114, 128, 0.1);
901
+ color: #9ca3af;
902
+ }
903
+
904
+ .log-timestamp {
905
+ color: #888;
906
+ margin-right: 8px;
907
+ }
908
+
909
+ .log-type {
910
+ font-weight: bold;
911
+ margin-right: 8px;
912
+ }
913
+
914
+ .log-message {
915
+ color: #cccccc;
916
+ }
917
+
918
+
919
+ .log-connection-status {
920
+ font-size: 11px;
921
+ padding: 4px 8px;
922
+ border-radius: 4px;
923
+ background: rgba(245, 158, 11, 0.2);
924
+ color: #fbbf24;
925
+ }
926
+
927
+ .log-connection-status.connected {
928
+ background: rgba(34, 197, 94, 0.2);
929
+ color: #86efac;
930
+ }
931
+
932
+ .log-connection-status.disconnected {
933
+ background: rgba(239, 68, 68, 0.2);
934
+ color: #fca5a5;
935
+ }
936
+
937
+ /* Persona panel */
938
+ .persona-section {
939
+ background: #252526;
940
+ padding: 16px;
941
+ height: 100%;
942
+ display: flex;
943
+ flex-direction: column;
944
+ }
945
+
946
+ .persona-header {
947
+ display: flex;
948
+ justify-content: space-between;
949
+ align-items: center;
950
+ margin-bottom: 12px;
951
+ }
952
+
953
+ .persona-header h3 {
954
+ margin: 0;
955
+ color: #cccccc;
956
+ font-size: 14px;
957
+ font-weight: 500;
958
+ }
959
+
960
+ .edit-btn {
961
+ background: #007acc;
962
+ color: white;
963
+ border: none;
964
+ padding: 6px 12px;
965
+ border-radius: 4px;
966
+ font-size: 12px;
967
+ cursor: pointer;
968
+ transition: background-color 0.2s;
969
+ }
970
+
971
+ .edit-btn:hover {
972
+ background: #005a9e;
973
+ }
974
+
975
+ .persona-display {
976
+ color: #cccccc;
977
+ font-size: 13px;
978
+ line-height: 1.4;
979
+ white-space: pre-wrap;
980
+ max-height: 120px;
981
+ overflow-y: auto;
982
+ background: #1e1e1e;
983
+ padding: 12px;
984
+ border-radius: 4px;
985
+ border: 1px solid #3e3e42;
986
+ flex: 1;
987
+ }
988
+
989
+ .persona-edit {
990
+ display: flex;
991
+ flex-direction: column;
992
+ height: calc(100vh - 200px);
993
+ gap: 12px;
994
+ flex: 1;
995
+ }
996
+
997
+ .persona-textarea {
998
+ background: #1e1e1e;
999
+ color: #cccccc;
1000
+ border: 1px solid #3e3e42;
1001
+ border-radius: 4px;
1002
+ padding: 12px;
1003
+ font-size: 13px;
1004
+ line-height: 1.4;
1005
+ resize: vertical;
1006
+ height: calc(100vh - 200px);
1007
+ font-family: inherit;
1008
+ flex: 1;
1009
+ }
1010
+
1011
+ .persona-textarea:focus {
1012
+ outline: none;
1013
+ border-color: #007acc;
1014
+ }
1015
+
1016
+ .persona-actions {
1017
+ display: flex;
1018
+ gap: 8px;
1019
+ justify-content: flex-end;
1020
+ }
1021
+
1022
+ .save-btn {
1023
+ background: #28a745;
1024
+ color: white;
1025
+ border: none;
1026
+ padding: 8px 16px;
1027
+ border-radius: 4px;
1028
+ font-size: 12px;
1029
+ cursor: pointer;
1030
+ transition: background-color 0.2s;
1031
+ }
1032
+
1033
+ .save-btn:hover {
1034
+ background: #218838;
1035
+ }
1036
+
1037
+ .cancel-btn {
1038
+ background: #6c757d;
1039
+ color: white;
1040
+ border: none;
1041
+ padding: 8px 16px;
1042
+ border-radius: 4px;
1043
+ font-size: 12px;
1044
+ cursor: pointer;
1045
+ transition: background-color 0.2s;
1046
+ }
1047
+
1048
+ .cancel-btn:hover {
1049
+ background: #5a6268;
1050
+ }