create-byan-agent 2.7.8 → 2.8.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.
@@ -0,0 +1,732 @@
1
+ :root {
2
+ --bg: #0f172a;
3
+ --bg-deep: #080e1e;
4
+ --surface: #1e293b;
5
+ --surface-hover: #263347;
6
+ --surface-active: #334155;
7
+ --border: #334155;
8
+ --border-light: #475569;
9
+ --text: #e2e8f0;
10
+ --text-muted: #94a3b8;
11
+ --text-dim: #64748b;
12
+ --accent: #3b82f6;
13
+ --accent-hover: #2563eb;
14
+ --accent-glow: rgba(59, 130, 246, 0.15);
15
+ --success: #22c55e;
16
+ --warning: #eab308;
17
+ --error: #ef4444;
18
+ --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
19
+ --font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace;
20
+ --radius: 8px;
21
+ --radius-lg: 12px;
22
+ --shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
23
+ --transition: 200ms ease;
24
+ }
25
+
26
+ *, *::before, *::after {
27
+ box-sizing: border-box;
28
+ margin: 0;
29
+ padding: 0;
30
+ }
31
+
32
+ html {
33
+ font-size: 16px;
34
+ scroll-behavior: smooth;
35
+ }
36
+
37
+ body {
38
+ font-family: var(--font-sans);
39
+ background: var(--bg);
40
+ color: var(--text);
41
+ min-height: 100vh;
42
+ display: flex;
43
+ flex-direction: column;
44
+ line-height: 1.6;
45
+ -webkit-font-smoothing: antialiased;
46
+ }
47
+
48
+ /* Header */
49
+ header {
50
+ background: var(--bg-deep);
51
+ border-bottom: 1px solid var(--border);
52
+ padding: 1.5rem 2rem;
53
+ text-align: center;
54
+ }
55
+
56
+ .header-inner {
57
+ max-width: 960px;
58
+ margin: 0 auto;
59
+ }
60
+
61
+ .logo {
62
+ font-size: 2rem;
63
+ font-weight: 800;
64
+ letter-spacing: 0.15em;
65
+ color: var(--accent);
66
+ margin: 0;
67
+ }
68
+
69
+ .subtitle {
70
+ color: var(--text-muted);
71
+ font-size: 0.875rem;
72
+ margin-top: 0.25rem;
73
+ }
74
+
75
+ /* Wizard Steps Nav */
76
+ .wizard-steps {
77
+ background: var(--bg-deep);
78
+ border-bottom: 1px solid var(--border);
79
+ padding: 0.75rem 1rem;
80
+ overflow-x: auto;
81
+ }
82
+
83
+ .wizard-steps ol {
84
+ display: flex;
85
+ justify-content: center;
86
+ align-items: center;
87
+ gap: 0.25rem;
88
+ list-style: none;
89
+ max-width: 960px;
90
+ margin: 0 auto;
91
+ }
92
+
93
+ .wizard-step {
94
+ display: flex;
95
+ align-items: center;
96
+ gap: 0.375rem;
97
+ padding: 0.375rem 0.75rem;
98
+ border-radius: 999px;
99
+ font-size: 0.75rem;
100
+ color: var(--text-dim);
101
+ transition: all var(--transition);
102
+ white-space: nowrap;
103
+ }
104
+
105
+ .wizard-step .step-num {
106
+ display: inline-flex;
107
+ align-items: center;
108
+ justify-content: center;
109
+ width: 1.5rem;
110
+ height: 1.5rem;
111
+ border-radius: 50%;
112
+ border: 1.5px solid var(--border);
113
+ font-weight: 600;
114
+ font-size: 0.7rem;
115
+ transition: all var(--transition);
116
+ }
117
+
118
+ .wizard-step.active {
119
+ color: var(--accent);
120
+ }
121
+
122
+ .wizard-step.active .step-num {
123
+ background: var(--accent);
124
+ border-color: var(--accent);
125
+ color: #fff;
126
+ }
127
+
128
+ .wizard-step.completed {
129
+ color: var(--success);
130
+ }
131
+
132
+ .wizard-step.completed .step-num {
133
+ background: var(--success);
134
+ border-color: var(--success);
135
+ color: #fff;
136
+ }
137
+
138
+ /* Main */
139
+ main {
140
+ flex: 1;
141
+ display: flex;
142
+ align-items: flex-start;
143
+ justify-content: center;
144
+ padding: 2rem 1.5rem 4rem;
145
+ }
146
+
147
+ .step {
148
+ max-width: 720px;
149
+ width: 100%;
150
+ animation: fadeIn 300ms ease;
151
+ }
152
+
153
+ .step.hidden {
154
+ display: none;
155
+ }
156
+
157
+ .step-content {
158
+ text-align: center;
159
+ }
160
+
161
+ .step h2 {
162
+ font-size: 1.75rem;
163
+ font-weight: 700;
164
+ margin-bottom: 0.5rem;
165
+ }
166
+
167
+ .lead {
168
+ color: var(--text-muted);
169
+ font-size: 1rem;
170
+ margin-bottom: 2rem;
171
+ max-width: 540px;
172
+ margin-left: auto;
173
+ margin-right: auto;
174
+ }
175
+
176
+ /* Feature Grid */
177
+ .feature-grid {
178
+ display: grid;
179
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
180
+ gap: 1rem;
181
+ margin-bottom: 2.5rem;
182
+ }
183
+
184
+ .feature-card {
185
+ background: var(--surface);
186
+ border: 1px solid var(--border);
187
+ border-radius: var(--radius-lg);
188
+ padding: 1.5rem;
189
+ text-align: left;
190
+ transition: border-color var(--transition);
191
+ }
192
+
193
+ .feature-card:hover {
194
+ border-color: var(--accent);
195
+ }
196
+
197
+ .feature-icon {
198
+ font-size: 1.25rem;
199
+ color: var(--accent);
200
+ margin-bottom: 0.75rem;
201
+ }
202
+
203
+ .feature-card h3 {
204
+ font-size: 0.875rem;
205
+ font-weight: 600;
206
+ margin-bottom: 0.375rem;
207
+ }
208
+
209
+ .feature-card p {
210
+ font-size: 0.8125rem;
211
+ color: var(--text-muted);
212
+ line-height: 1.5;
213
+ }
214
+
215
+ /* Buttons */
216
+ .actions {
217
+ display: flex;
218
+ justify-content: center;
219
+ gap: 0.75rem;
220
+ flex-wrap: wrap;
221
+ }
222
+
223
+ .btn {
224
+ display: inline-flex;
225
+ align-items: center;
226
+ justify-content: center;
227
+ padding: 0.625rem 1.5rem;
228
+ font-size: 0.875rem;
229
+ font-weight: 600;
230
+ border-radius: var(--radius);
231
+ border: 1.5px solid transparent;
232
+ cursor: pointer;
233
+ transition: all var(--transition);
234
+ font-family: var(--font-sans);
235
+ min-width: 120px;
236
+ }
237
+
238
+ .btn:focus-visible {
239
+ outline: 2px solid var(--accent);
240
+ outline-offset: 2px;
241
+ }
242
+
243
+ .btn:disabled {
244
+ opacity: 0.5;
245
+ cursor: not-allowed;
246
+ }
247
+
248
+ .btn-primary {
249
+ background: var(--accent);
250
+ color: #fff;
251
+ border-color: var(--accent);
252
+ }
253
+
254
+ .btn-primary:hover:not(:disabled) {
255
+ background: var(--accent-hover);
256
+ border-color: var(--accent-hover);
257
+ }
258
+
259
+ .btn-secondary {
260
+ background: transparent;
261
+ color: var(--text);
262
+ border-color: var(--border-light);
263
+ }
264
+
265
+ .btn-secondary:hover:not(:disabled) {
266
+ background: var(--surface);
267
+ border-color: var(--text-muted);
268
+ }
269
+
270
+ /* Mode Cards */
271
+ .mode-cards {
272
+ display: grid;
273
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
274
+ gap: 1rem;
275
+ margin-bottom: 2rem;
276
+ }
277
+
278
+ .card {
279
+ background: var(--surface);
280
+ border: 1.5px solid var(--border);
281
+ border-radius: var(--radius-lg);
282
+ padding: 1.5rem;
283
+ cursor: pointer;
284
+ transition: all var(--transition);
285
+ text-align: left;
286
+ position: relative;
287
+ font-family: var(--font-sans);
288
+ color: var(--text);
289
+ }
290
+
291
+ .card:hover {
292
+ border-color: var(--accent);
293
+ background: var(--surface-hover);
294
+ transform: translateY(-2px);
295
+ box-shadow: var(--shadow);
296
+ }
297
+
298
+ .card:focus-visible {
299
+ outline: 2px solid var(--accent);
300
+ outline-offset: 2px;
301
+ }
302
+
303
+ .card.selected {
304
+ border-color: var(--accent);
305
+ box-shadow: 0 0 0 3px var(--accent-glow);
306
+ }
307
+
308
+ .card h3 {
309
+ font-size: 1rem;
310
+ font-weight: 700;
311
+ letter-spacing: 0.05em;
312
+ margin-bottom: 0.375rem;
313
+ }
314
+
315
+ .card p {
316
+ font-size: 0.8125rem;
317
+ color: var(--text-muted);
318
+ }
319
+
320
+ .card-badge {
321
+ position: absolute;
322
+ top: -0.5rem;
323
+ right: 0.75rem;
324
+ background: var(--accent);
325
+ color: #fff;
326
+ font-size: 0.625rem;
327
+ font-weight: 700;
328
+ text-transform: uppercase;
329
+ letter-spacing: 0.08em;
330
+ padding: 0.125rem 0.5rem;
331
+ border-radius: 999px;
332
+ }
333
+
334
+ /* Detection Grid */
335
+ .detection-grid {
336
+ text-align: left;
337
+ }
338
+
339
+ .detection-item {
340
+ display: flex;
341
+ align-items: center;
342
+ gap: 0.75rem;
343
+ padding: 0.75rem 1rem;
344
+ background: var(--surface);
345
+ border: 1px solid var(--border);
346
+ border-radius: var(--radius);
347
+ margin-bottom: 0.5rem;
348
+ }
349
+
350
+ .detection-status {
351
+ width: 0.625rem;
352
+ height: 0.625rem;
353
+ border-radius: 50%;
354
+ flex-shrink: 0;
355
+ }
356
+
357
+ .detection-status.ok { background: var(--success); }
358
+ .detection-status.warn { background: var(--warning); }
359
+ .detection-status.fail { background: var(--error); }
360
+ .detection-status.unknown { background: var(--text-dim); }
361
+
362
+ .detection-label {
363
+ font-weight: 600;
364
+ font-size: 0.875rem;
365
+ flex: 1;
366
+ }
367
+
368
+ .detection-value {
369
+ font-size: 0.8125rem;
370
+ color: var(--text-muted);
371
+ font-family: var(--font-mono);
372
+ }
373
+
374
+ /* Config Form */
375
+ .config-form {
376
+ text-align: left;
377
+ max-width: 480px;
378
+ margin: 0 auto 2rem;
379
+ }
380
+
381
+ .form-group {
382
+ margin-bottom: 1.25rem;
383
+ }
384
+
385
+ .form-group label {
386
+ display: block;
387
+ font-size: 0.8125rem;
388
+ font-weight: 600;
389
+ margin-bottom: 0.375rem;
390
+ color: var(--text);
391
+ }
392
+
393
+ .form-group .form-hint {
394
+ font-size: 0.75rem;
395
+ color: var(--text-dim);
396
+ margin-bottom: 0.375rem;
397
+ }
398
+
399
+ .form-group input,
400
+ .form-group select {
401
+ width: 100%;
402
+ padding: 0.5rem 0.75rem;
403
+ font-size: 0.875rem;
404
+ font-family: var(--font-sans);
405
+ background: var(--bg);
406
+ color: var(--text);
407
+ border: 1.5px solid var(--border);
408
+ border-radius: var(--radius);
409
+ transition: border-color var(--transition);
410
+ }
411
+
412
+ .form-group input:focus,
413
+ .form-group select:focus {
414
+ outline: none;
415
+ border-color: var(--accent);
416
+ box-shadow: 0 0 0 3px var(--accent-glow);
417
+ }
418
+
419
+ .checkbox-group {
420
+ display: flex;
421
+ flex-direction: column;
422
+ gap: 0.5rem;
423
+ }
424
+
425
+ .checkbox-group label {
426
+ display: flex;
427
+ align-items: center;
428
+ gap: 0.5rem;
429
+ font-weight: 400;
430
+ cursor: pointer;
431
+ padding: 0.375rem 0.5rem;
432
+ border-radius: var(--radius);
433
+ transition: background var(--transition);
434
+ }
435
+
436
+ .checkbox-group label:hover {
437
+ background: var(--surface);
438
+ }
439
+
440
+ .checkbox-group input[type="checkbox"] {
441
+ width: 1rem;
442
+ height: 1rem;
443
+ accent-color: var(--accent);
444
+ }
445
+
446
+ /* Preview Block */
447
+ .preview-block {
448
+ text-align: left;
449
+ background: var(--surface);
450
+ border: 1px solid var(--border);
451
+ border-radius: var(--radius-lg);
452
+ padding: 1.5rem;
453
+ margin-bottom: 2rem;
454
+ font-size: 0.875rem;
455
+ }
456
+
457
+ .preview-row {
458
+ display: flex;
459
+ justify-content: space-between;
460
+ padding: 0.5rem 0;
461
+ border-bottom: 1px solid var(--border);
462
+ }
463
+
464
+ .preview-row:last-child { border-bottom: none; }
465
+
466
+ .preview-key {
467
+ color: var(--text-muted);
468
+ font-weight: 500;
469
+ }
470
+
471
+ .preview-val {
472
+ font-family: var(--font-mono);
473
+ font-size: 0.8125rem;
474
+ color: var(--accent);
475
+ }
476
+
477
+ /* Progress */
478
+ .progress-container {
479
+ max-width: 480px;
480
+ margin: 2rem auto;
481
+ }
482
+
483
+ .progress-bar {
484
+ height: 8px;
485
+ background: var(--surface);
486
+ border-radius: 999px;
487
+ overflow: hidden;
488
+ margin-bottom: 1rem;
489
+ }
490
+
491
+ .progress-fill {
492
+ height: 100%;
493
+ width: 0%;
494
+ background: linear-gradient(90deg, var(--accent), #818cf8);
495
+ border-radius: 999px;
496
+ transition: width 400ms ease;
497
+ }
498
+
499
+ .progress-label {
500
+ font-size: 0.875rem;
501
+ color: var(--text-muted);
502
+ text-align: center;
503
+ }
504
+
505
+ .progress-pct {
506
+ font-size: 2rem;
507
+ font-weight: 700;
508
+ color: var(--accent);
509
+ text-align: center;
510
+ margin-top: 0.5rem;
511
+ font-family: var(--font-mono);
512
+ }
513
+
514
+ /* Done */
515
+ .done-icon {
516
+ font-size: 3rem;
517
+ width: 4.5rem;
518
+ height: 4.5rem;
519
+ line-height: 4.5rem;
520
+ border-radius: 50%;
521
+ background: rgba(34, 197, 94, 0.1);
522
+ color: var(--success);
523
+ margin: 0 auto 1.5rem;
524
+ border: 2px solid var(--success);
525
+ }
526
+
527
+ .done-icon.error {
528
+ background: rgba(239, 68, 68, 0.1);
529
+ color: var(--error);
530
+ border-color: var(--error);
531
+ }
532
+
533
+ .done-summary {
534
+ text-align: left;
535
+ background: var(--surface);
536
+ border: 1px solid var(--border);
537
+ border-radius: var(--radius-lg);
538
+ padding: 1.5rem;
539
+ margin-bottom: 2rem;
540
+ font-size: 0.875rem;
541
+ line-height: 1.8;
542
+ }
543
+
544
+ /* Code Block */
545
+ .code-block {
546
+ text-align: left;
547
+ background: var(--bg-deep);
548
+ border: 1px solid var(--border);
549
+ border-radius: var(--radius);
550
+ padding: 1rem;
551
+ font-family: var(--font-mono);
552
+ font-size: 0.8125rem;
553
+ line-height: 1.6;
554
+ overflow-x: auto;
555
+ white-space: pre-wrap;
556
+ word-break: break-word;
557
+ margin-bottom: 1.5rem;
558
+ }
559
+
560
+ /* Log Panel */
561
+ footer {
562
+ position: sticky;
563
+ bottom: 0;
564
+ z-index: 100;
565
+ }
566
+
567
+ .log-panel {
568
+ background: var(--bg-deep);
569
+ border-top: 1px solid var(--border);
570
+ }
571
+
572
+ .log-header {
573
+ display: flex;
574
+ align-items: center;
575
+ justify-content: space-between;
576
+ width: 100%;
577
+ padding: 0.5rem 1.5rem;
578
+ font-size: 0.75rem;
579
+ font-weight: 600;
580
+ text-transform: uppercase;
581
+ letter-spacing: 0.08em;
582
+ color: var(--text-dim);
583
+ cursor: pointer;
584
+ background: none;
585
+ border: none;
586
+ font-family: var(--font-sans);
587
+ transition: color var(--transition);
588
+ }
589
+
590
+ .log-header:hover { color: var(--text-muted); }
591
+
592
+ .log-badge {
593
+ background: var(--accent);
594
+ color: #fff;
595
+ font-size: 0.625rem;
596
+ padding: 0.125rem 0.4rem;
597
+ border-radius: 999px;
598
+ margin-left: 0.5rem;
599
+ }
600
+
601
+ .log-chevron {
602
+ transition: transform var(--transition);
603
+ font-size: 0.625rem;
604
+ }
605
+
606
+ .log-panel.expanded .log-chevron {
607
+ transform: rotate(180deg);
608
+ }
609
+
610
+ .log-content {
611
+ max-height: 0;
612
+ overflow-y: auto;
613
+ transition: max-height 300ms ease;
614
+ padding: 0 1.5rem;
615
+ }
616
+
617
+ .log-panel.expanded .log-content {
618
+ max-height: 240px;
619
+ padding-bottom: 0.75rem;
620
+ }
621
+
622
+ .log-entry {
623
+ font-family: var(--font-mono);
624
+ font-size: 0.75rem;
625
+ line-height: 1.7;
626
+ color: var(--text-muted);
627
+ border-left: 2px solid var(--border);
628
+ padding-left: 0.75rem;
629
+ margin-bottom: 0.25rem;
630
+ }
631
+
632
+ .log-entry.info { border-left-color: var(--accent); }
633
+ .log-entry.warn { border-left-color: var(--warning); color: var(--warning); }
634
+ .log-entry.error { border-left-color: var(--error); color: var(--error); }
635
+ .log-entry .log-time { color: var(--text-dim); margin-right: 0.5rem; }
636
+
637
+ /* Spinner */
638
+ .spinner-container {
639
+ display: flex;
640
+ flex-direction: column;
641
+ align-items: center;
642
+ gap: 1rem;
643
+ padding: 2rem;
644
+ color: var(--text-muted);
645
+ }
646
+
647
+ .spinner {
648
+ width: 2rem;
649
+ height: 2rem;
650
+ border: 3px solid var(--border);
651
+ border-top-color: var(--accent);
652
+ border-radius: 50%;
653
+ animation: spin 0.8s linear infinite;
654
+ }
655
+
656
+ /* Animations */
657
+ @keyframes fadeIn {
658
+ from { opacity: 0; transform: translateY(8px); }
659
+ to { opacity: 1; transform: translateY(0); }
660
+ }
661
+
662
+ @keyframes spin {
663
+ to { transform: rotate(360deg); }
664
+ }
665
+
666
+ /* Scrollbar */
667
+ ::-webkit-scrollbar {
668
+ width: 6px;
669
+ height: 6px;
670
+ }
671
+
672
+ ::-webkit-scrollbar-track {
673
+ background: var(--bg);
674
+ }
675
+
676
+ ::-webkit-scrollbar-thumb {
677
+ background: var(--border);
678
+ border-radius: 999px;
679
+ }
680
+
681
+ ::-webkit-scrollbar-thumb:hover {
682
+ background: var(--border-light);
683
+ }
684
+
685
+ /* Focus visible for accessibility */
686
+ :focus-visible {
687
+ outline: 2px solid var(--accent);
688
+ outline-offset: 2px;
689
+ }
690
+
691
+ /* Responsive */
692
+ @media (max-width: 640px) {
693
+ header { padding: 1rem; }
694
+
695
+ .logo { font-size: 1.5rem; }
696
+
697
+ .wizard-steps ol { justify-content: flex-start; }
698
+
699
+ .step-label { display: none; }
700
+
701
+ main { padding: 1.5rem 1rem 3rem; }
702
+
703
+ .step h2 { font-size: 1.375rem; }
704
+
705
+ .feature-grid,
706
+ .mode-cards {
707
+ grid-template-columns: 1fr;
708
+ }
709
+
710
+ .preview-row {
711
+ flex-direction: column;
712
+ gap: 0.25rem;
713
+ }
714
+
715
+ .actions { flex-direction: column; }
716
+
717
+ .btn { width: 100%; }
718
+ }
719
+
720
+ /* Utility */
721
+ .hidden { display: none !important; }
722
+ .sr-only {
723
+ position: absolute;
724
+ width: 1px;
725
+ height: 1px;
726
+ padding: 0;
727
+ margin: -1px;
728
+ overflow: hidden;
729
+ clip: rect(0,0,0,0);
730
+ white-space: nowrap;
731
+ border: 0;
732
+ }