antri_cli 1.26.1 → 1.28.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 (39) hide show
  1. package/README.md +89 -42
  2. package/assets/desktop_panel.png +0 -0
  3. package/assets/home.png +0 -0
  4. package/dist/cli/promptToolkit.d.ts.map +1 -1
  5. package/dist/cli/promptToolkit.js +2 -0
  6. package/dist/cli/promptToolkit.js.map +1 -1
  7. package/dist/cli/shortcuts.d.ts.map +1 -1
  8. package/dist/cli/shortcuts.js +13 -0
  9. package/dist/cli/shortcuts.js.map +1 -1
  10. package/dist/core/config.js +1 -1
  11. package/dist/core/config.js.map +1 -1
  12. package/dist/core/updater.d.ts +1 -1
  13. package/dist/core/updater.js +1 -1
  14. package/dist/desktop/public/app.js +699 -0
  15. package/dist/desktop/public/index.html +338 -0
  16. package/dist/desktop/public/style.css +962 -0
  17. package/dist/desktop/server.d.ts +11 -0
  18. package/dist/desktop/server.d.ts.map +1 -0
  19. package/dist/desktop/server.js +361 -0
  20. package/dist/desktop/server.js.map +1 -0
  21. package/dist/index.js +30 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/memory/episodic.d.ts +1 -0
  24. package/dist/memory/episodic.d.ts.map +1 -1
  25. package/dist/memory/episodic.js +3 -0
  26. package/dist/memory/episodic.js.map +1 -1
  27. package/dist/memory/manager.d.ts +6 -0
  28. package/dist/memory/manager.d.ts.map +1 -1
  29. package/dist/memory/manager.js +8 -0
  30. package/dist/memory/manager.js.map +1 -1
  31. package/dist/mobile/public/app.js +449 -0
  32. package/dist/mobile/public/index.html +287 -0
  33. package/dist/mobile/public/manifest.json +16 -0
  34. package/dist/mobile/public/style.css +589 -0
  35. package/dist/mobile/server.d.ts +14 -0
  36. package/dist/mobile/server.d.ts.map +1 -0
  37. package/dist/mobile/server.js +232 -0
  38. package/dist/mobile/server.js.map +1 -0
  39. package/package.json +5 -2
@@ -0,0 +1,962 @@
1
+ /* ANTRI Desktop Control Plane - Spacious Minimalist Cream White Theme */
2
+
3
+ :root {
4
+ --bg-body: #fcfbf9;
5
+ --bg-sidebar: #f7f4ee;
6
+ --bg-card: #ffffff;
7
+ --bg-subtle: #f4efe6;
8
+ --bg-input: #ffffff;
9
+ --bg-hover: #ebe4d6;
10
+
11
+ --text-primary: #1c1917;
12
+ --text-secondary: #57534e;
13
+ --text-tertiary: #8c827a;
14
+ --text-inverted: #fcfbf9;
15
+
16
+ --accent-primary: #1c1917;
17
+ --accent-subtle: #d6cfc2;
18
+ --accent-active: #0c0a09;
19
+ --accent-success: #15803d;
20
+ --accent-warning: #b45309;
21
+
22
+ --border-main: #e6e0d4;
23
+ --border-light: #eee9dd;
24
+ --border-focus: #1c1917;
25
+
26
+ --radius-xs: 4px;
27
+ --radius-sm: 6px;
28
+ --radius-md: 8px;
29
+ --radius-lg: 12px;
30
+
31
+ --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
32
+ --font-mono: 'Fira Code', monospace;
33
+ }
34
+
35
+ * {
36
+ box-sizing: border-box;
37
+ margin: 0;
38
+ padding: 0;
39
+ }
40
+
41
+ body.antri-app {
42
+ font-family: var(--font-sans);
43
+ background-color: var(--bg-body);
44
+ color: var(--text-primary);
45
+ height: 100vh;
46
+ display: flex;
47
+ flex-direction: column;
48
+ overflow: hidden;
49
+ -webkit-font-smoothing: antialiased;
50
+ -moz-osx-font-smoothing: grayscale;
51
+ }
52
+
53
+ /* Header */
54
+ .app-header {
55
+ height: 64px;
56
+ background: var(--bg-sidebar);
57
+ border-bottom: 1px solid var(--border-main);
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: space-between;
61
+ padding: 0 2rem;
62
+ z-index: 10;
63
+ }
64
+
65
+ .brand-zone {
66
+ display: flex;
67
+ align-items: center;
68
+ gap: 0.85rem;
69
+ }
70
+
71
+ .logo-mark {
72
+ font-size: 1rem;
73
+ font-weight: 800;
74
+ letter-spacing: 0.1em;
75
+ color: var(--text-primary);
76
+ text-transform: uppercase;
77
+ }
78
+
79
+ .version-tag {
80
+ font-family: var(--font-mono);
81
+ font-size: 0.72rem;
82
+ font-weight: 500;
83
+ color: var(--text-tertiary);
84
+ background: var(--bg-subtle);
85
+ padding: 0.25rem 0.55rem;
86
+ border-radius: var(--radius-xs);
87
+ border: 1px solid var(--border-main);
88
+ }
89
+
90
+ .mode-toggles {
91
+ display: flex;
92
+ background: var(--bg-subtle);
93
+ padding: 4px;
94
+ border-radius: var(--radius-sm);
95
+ border: 1px solid var(--border-main);
96
+ gap: 4px;
97
+ }
98
+
99
+ .mode-btn {
100
+ background: transparent;
101
+ border: none;
102
+ color: var(--text-secondary);
103
+ font-family: var(--font-sans);
104
+ font-size: 0.82rem;
105
+ font-weight: 600;
106
+ padding: 0.45rem 1rem;
107
+ border-radius: var(--radius-xs);
108
+ cursor: pointer;
109
+ display: flex;
110
+ align-items: center;
111
+ gap: 8px;
112
+ transition: all 0.15s ease;
113
+ }
114
+
115
+ .mode-btn .indicator-dot {
116
+ width: 6px;
117
+ height: 6px;
118
+ border-radius: 50%;
119
+ background: var(--text-tertiary);
120
+ }
121
+
122
+ .mode-btn.active {
123
+ background: var(--bg-card);
124
+ color: var(--text-primary);
125
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
126
+ }
127
+
128
+ .mode-btn.active .indicator-dot {
129
+ background: var(--text-primary);
130
+ }
131
+
132
+ .header-controls {
133
+ display: flex;
134
+ align-items: center;
135
+ gap: 0.85rem;
136
+ }
137
+
138
+ .control-group {
139
+ display: flex;
140
+ align-items: center;
141
+ gap: 0.55rem;
142
+ background: var(--bg-card);
143
+ padding: 0.35rem 0.8rem;
144
+ border-radius: var(--radius-sm);
145
+ border: 1px solid var(--border-main);
146
+ }
147
+
148
+ .control-group label {
149
+ font-size: 0.72rem;
150
+ color: var(--text-tertiary);
151
+ text-transform: uppercase;
152
+ font-weight: 700;
153
+ letter-spacing: 0.04em;
154
+ }
155
+
156
+ .control-group select {
157
+ background: transparent;
158
+ border: none;
159
+ color: var(--text-primary);
160
+ font-family: var(--font-sans);
161
+ font-size: 0.84rem;
162
+ font-weight: 500;
163
+ outline: none;
164
+ cursor: pointer;
165
+ max-width: 190px;
166
+ }
167
+
168
+ .perms-badge {
169
+ background: var(--bg-card);
170
+ color: var(--text-primary);
171
+ border: 1px solid var(--border-main);
172
+ padding: 0.45rem 1rem;
173
+ border-radius: var(--radius-sm);
174
+ font-family: var(--font-sans);
175
+ font-size: 0.82rem;
176
+ font-weight: 600;
177
+ cursor: pointer;
178
+ transition: all 0.15s ease;
179
+ }
180
+
181
+ .perms-badge:hover {
182
+ background: var(--bg-hover);
183
+ }
184
+
185
+ /* App Body & Sidebar */
186
+ .app-body {
187
+ display: flex;
188
+ flex: 1;
189
+ overflow: hidden;
190
+ }
191
+
192
+ .app-sidebar {
193
+ width: 250px;
194
+ background: var(--bg-sidebar);
195
+ border-right: 1px solid var(--border-main);
196
+ display: flex;
197
+ flex-direction: column;
198
+ padding: 1.75rem 1.15rem;
199
+ gap: 0.5rem;
200
+ }
201
+
202
+ .nav-section-title {
203
+ font-size: 0.68rem;
204
+ text-transform: uppercase;
205
+ letter-spacing: 0.08em;
206
+ font-weight: 700;
207
+ color: var(--text-tertiary);
208
+ padding: 0.25rem 0.75rem 0.65rem;
209
+ }
210
+
211
+ .nav-item {
212
+ display: flex;
213
+ align-items: center;
214
+ padding: 0.75rem 1rem;
215
+ border-radius: var(--radius-sm);
216
+ border: 1px solid transparent;
217
+ background: transparent;
218
+ color: var(--text-secondary);
219
+ font-family: var(--font-sans);
220
+ font-size: 0.88rem;
221
+ font-weight: 500;
222
+ cursor: pointer;
223
+ text-align: left;
224
+ transition: all 0.15s ease;
225
+ }
226
+
227
+ .nav-item:hover {
228
+ background: var(--bg-hover);
229
+ color: var(--text-primary);
230
+ }
231
+
232
+ .nav-item.active {
233
+ background: var(--bg-card);
234
+ color: var(--text-primary);
235
+ font-weight: 600;
236
+ border-color: var(--border-main);
237
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
238
+ }
239
+
240
+ .sidebar-footer {
241
+ margin-top: auto;
242
+ padding: 1rem 0.5rem 0.25rem;
243
+ font-size: 0.76rem;
244
+ color: var(--text-tertiary);
245
+ border-top: 1px solid var(--border-light);
246
+ }
247
+
248
+ .sync-status {
249
+ display: flex;
250
+ align-items: center;
251
+ gap: 8px;
252
+ }
253
+
254
+ .status-indicator {
255
+ width: 7px;
256
+ height: 7px;
257
+ border-radius: 50%;
258
+ background: var(--accent-success);
259
+ }
260
+
261
+ /* Workspace Area */
262
+ .workspace-area {
263
+ flex: 1;
264
+ background: var(--bg-body);
265
+ overflow-y: auto;
266
+ position: relative;
267
+ }
268
+
269
+ .tab-panel {
270
+ display: none;
271
+ height: 100%;
272
+ padding: 2.25rem 2.75rem;
273
+ overflow-y: auto;
274
+ }
275
+
276
+ .tab-panel.active {
277
+ display: flex;
278
+ flex-direction: column;
279
+ }
280
+
281
+ /* Chat & Agent Studio */
282
+ .chat-container {
283
+ display: flex;
284
+ flex-direction: column;
285
+ height: 100%;
286
+ position: relative;
287
+ }
288
+
289
+ .chat-messages {
290
+ flex: 1;
291
+ overflow-y: auto;
292
+ padding-bottom: 8.5rem;
293
+ display: flex;
294
+ flex-direction: column;
295
+ gap: 1.5rem;
296
+ }
297
+
298
+ .welcome-card {
299
+ background: var(--bg-card);
300
+ border: 1px solid var(--border-main);
301
+ border-radius: var(--radius-lg);
302
+ padding: 3.5rem 3rem;
303
+ max-width: 820px;
304
+ margin: 2.5rem auto 0;
305
+ text-align: center;
306
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
307
+ }
308
+
309
+ .welcome-card h2 {
310
+ font-size: 1.5rem;
311
+ font-weight: 800;
312
+ letter-spacing: -0.02em;
313
+ margin-bottom: 0.85rem;
314
+ color: var(--text-primary);
315
+ }
316
+
317
+ .welcome-card p {
318
+ color: var(--text-secondary);
319
+ font-size: 0.94rem;
320
+ line-height: 1.65;
321
+ margin-bottom: 1.75rem;
322
+ max-width: 640px;
323
+ margin-left: auto;
324
+ margin-right: auto;
325
+ }
326
+
327
+ .quick-action-pills {
328
+ display: flex;
329
+ flex-wrap: wrap;
330
+ gap: 0.75rem;
331
+ justify-content: center;
332
+ }
333
+
334
+ .quick-action-pills button {
335
+ background: var(--bg-subtle);
336
+ border: 1px solid var(--border-main);
337
+ color: var(--text-primary);
338
+ padding: 0.55rem 1.1rem;
339
+ border-radius: var(--radius-sm);
340
+ font-family: var(--font-sans);
341
+ font-size: 0.84rem;
342
+ font-weight: 500;
343
+ cursor: pointer;
344
+ transition: all 0.15s ease;
345
+ }
346
+
347
+ .quick-action-pills button:hover {
348
+ background: var(--bg-hover);
349
+ border-color: var(--text-tertiary);
350
+ }
351
+
352
+ /* Messages */
353
+ .msg-row {
354
+ display: flex;
355
+ flex-direction: column;
356
+ max-width: 880px;
357
+ margin: 0 auto;
358
+ width: 100%;
359
+ }
360
+
361
+ .msg-row.user .msg-content {
362
+ align-self: flex-end;
363
+ background: var(--accent-primary);
364
+ color: var(--text-inverted);
365
+ border-radius: var(--radius-md) var(--radius-md) var(--radius-xs) var(--radius-md);
366
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
367
+ }
368
+
369
+ .msg-row.assistant .msg-content {
370
+ align-self: flex-start;
371
+ background: var(--bg-card);
372
+ color: var(--text-primary);
373
+ border: 1px solid var(--border-main);
374
+ border-radius: var(--radius-md) var(--radius-md) var(--radius-md) var(--radius-xs);
375
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
376
+ }
377
+
378
+ .msg-content {
379
+ padding: 1.2rem 1.5rem;
380
+ font-size: 0.92rem;
381
+ line-height: 1.7;
382
+ white-space: pre-wrap;
383
+ }
384
+
385
+ .tool-badge-pill {
386
+ font-family: var(--font-mono);
387
+ font-size: 0.75rem;
388
+ color: var(--text-secondary);
389
+ background: var(--bg-subtle);
390
+ border: 1px solid var(--border-main);
391
+ padding: 0.35rem 0.75rem;
392
+ border-radius: var(--radius-xs);
393
+ margin-bottom: 0.6rem;
394
+ display: inline-block;
395
+ }
396
+
397
+ /* Chat Input Bar & Attachments */
398
+ .chat-input-bar {
399
+ position: absolute;
400
+ bottom: 1.25rem;
401
+ left: 2.75rem;
402
+ right: 2.75rem;
403
+ z-index: 50;
404
+ }
405
+
406
+ .input-container {
407
+ background: var(--bg-card);
408
+ border: 1px solid var(--border-main);
409
+ border-radius: var(--radius-lg);
410
+ padding: 0.9rem 1.25rem;
411
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.04);
412
+ display: flex;
413
+ flex-direction: column;
414
+ gap: 0.5rem;
415
+ position: relative;
416
+ }
417
+
418
+ .input-row {
419
+ display: flex;
420
+ align-items: flex-start;
421
+ gap: 0.75rem;
422
+ }
423
+
424
+ .attach-btn {
425
+ width: 32px;
426
+ height: 32px;
427
+ min-width: 32px;
428
+ border-radius: var(--radius-sm);
429
+ border: 1px solid var(--border-main);
430
+ background: var(--bg-subtle);
431
+ color: var(--text-primary);
432
+ font-size: 1.15rem;
433
+ font-weight: 500;
434
+ display: flex;
435
+ align-items: center;
436
+ justify-content: center;
437
+ cursor: pointer;
438
+ transition: all 0.15s ease;
439
+ margin-top: 2px;
440
+ }
441
+
442
+ .attach-btn:hover {
443
+ background: var(--bg-hover);
444
+ border-color: var(--text-primary);
445
+ }
446
+
447
+ .attachment-preview-tray {
448
+ display: flex;
449
+ flex-wrap: wrap;
450
+ gap: 0.5rem;
451
+ padding: 0.4rem 0.2rem;
452
+ border-bottom: 1px solid var(--border-light);
453
+ margin-bottom: 0.25rem;
454
+ }
455
+
456
+ .attachment-chip {
457
+ display: flex;
458
+ align-items: center;
459
+ gap: 0.4rem;
460
+ background: var(--bg-subtle);
461
+ border: 1px solid var(--border-main);
462
+ padding: 0.25rem 0.6rem;
463
+ border-radius: var(--radius-xs);
464
+ font-size: 0.75rem;
465
+ font-family: var(--font-mono);
466
+ color: var(--text-primary);
467
+ }
468
+
469
+ .attachment-chip img {
470
+ width: 18px;
471
+ height: 18px;
472
+ object-fit: cover;
473
+ border-radius: 2px;
474
+ }
475
+
476
+ .attachment-chip .remove-chip-btn {
477
+ background: transparent;
478
+ border: none;
479
+ color: var(--text-tertiary);
480
+ font-weight: 700;
481
+ cursor: pointer;
482
+ padding: 0 0.2rem;
483
+ }
484
+
485
+ .attachment-chip .remove-chip-btn:hover {
486
+ color: var(--accent-warning);
487
+ }
488
+
489
+ /* Prompt Toolkit Autocomplete Palette */
490
+ .prompt-toolkit-palette {
491
+ position: absolute;
492
+ bottom: calc(100% + 0.5rem);
493
+ left: 0;
494
+ right: 0;
495
+ background: var(--bg-card);
496
+ border: 1px solid var(--border-main);
497
+ border-radius: var(--radius-md);
498
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
499
+ max-height: 280px;
500
+ overflow-y: auto;
501
+ display: flex;
502
+ flex-direction: column;
503
+ z-index: 100;
504
+ }
505
+
506
+ .palette-header {
507
+ padding: 0.5rem 0.9rem;
508
+ background: var(--bg-sidebar);
509
+ border-bottom: 1px solid var(--border-main);
510
+ font-size: 0.7rem;
511
+ text-transform: uppercase;
512
+ letter-spacing: 0.05em;
513
+ font-weight: 700;
514
+ color: var(--text-tertiary);
515
+ }
516
+
517
+ .palette-list {
518
+ display: flex;
519
+ flex-direction: column;
520
+ }
521
+
522
+ .palette-item {
523
+ display: flex;
524
+ align-items: center;
525
+ justify-content: space-between;
526
+ padding: 0.6rem 1rem;
527
+ cursor: pointer;
528
+ border-bottom: 1px solid var(--border-light);
529
+ transition: all 0.1s ease;
530
+ }
531
+
532
+ .palette-item:last-child {
533
+ border-bottom: none;
534
+ }
535
+
536
+ .palette-item.active,
537
+ .palette-item:hover {
538
+ background: var(--bg-subtle);
539
+ }
540
+
541
+ .palette-name {
542
+ font-family: var(--font-mono);
543
+ font-size: 0.84rem;
544
+ font-weight: 600;
545
+ color: var(--text-primary);
546
+ min-width: 140px;
547
+ }
548
+
549
+ .palette-desc {
550
+ font-size: 0.78rem;
551
+ color: var(--text-secondary);
552
+ flex: 1;
553
+ margin-left: 1rem;
554
+ }
555
+
556
+ .palette-tag {
557
+ font-size: 0.7rem;
558
+ color: var(--text-tertiary);
559
+ font-family: var(--font-mono);
560
+ }
561
+
562
+ .hidden {
563
+ display: none !important;
564
+ }
565
+
566
+ .input-container textarea {
567
+ background: transparent;
568
+ border: none;
569
+ color: var(--text-primary);
570
+ font-family: var(--font-sans);
571
+ font-size: 0.94rem;
572
+ line-height: 1.55;
573
+ resize: none;
574
+ outline: none;
575
+ width: 100%;
576
+ }
577
+
578
+ .input-container textarea::placeholder {
579
+ color: var(--text-tertiary);
580
+ }
581
+
582
+ .input-actions {
583
+ display: flex;
584
+ justify-content: space-between;
585
+ align-items: center;
586
+ padding-top: 0.25rem;
587
+ }
588
+
589
+ .shortcut-tip {
590
+ font-size: 0.76rem;
591
+ color: var(--text-tertiary);
592
+ }
593
+
594
+ .send-btn {
595
+ background: var(--accent-primary);
596
+ color: var(--text-inverted);
597
+ border: 1px solid var(--accent-primary);
598
+ padding: 0.5rem 1.25rem;
599
+ border-radius: var(--radius-xs);
600
+ font-family: var(--font-sans);
601
+ font-weight: 600;
602
+ font-size: 0.85rem;
603
+ cursor: pointer;
604
+ transition: all 0.15s ease;
605
+ }
606
+
607
+ .send-btn:hover {
608
+ background: var(--accent-active);
609
+ }
610
+
611
+ .send-btn:disabled {
612
+ opacity: 0.5;
613
+ cursor: not-allowed;
614
+ }
615
+
616
+ /* Common Panels */
617
+ .panel-header {
618
+ display: flex;
619
+ justify-content: space-between;
620
+ align-items: center;
621
+ margin-bottom: 2rem;
622
+ flex-wrap: wrap;
623
+ gap: 1.25rem;
624
+ }
625
+
626
+ .panel-header h2 {
627
+ font-size: 1.45rem;
628
+ font-weight: 800;
629
+ letter-spacing: -0.02em;
630
+ color: var(--text-primary);
631
+ margin-bottom: 0.35rem;
632
+ }
633
+
634
+ .panel-header p {
635
+ font-size: 0.88rem;
636
+ color: var(--text-secondary);
637
+ }
638
+
639
+ .debate-controls {
640
+ display: flex;
641
+ gap: 0.65rem;
642
+ align-items: center;
643
+ }
644
+
645
+ .debate-controls input {
646
+ background: var(--bg-card);
647
+ border: 1px solid var(--border-main);
648
+ color: var(--text-primary);
649
+ font-family: var(--font-sans);
650
+ padding: 0.55rem 0.95rem;
651
+ border-radius: var(--radius-sm);
652
+ font-size: 0.86rem;
653
+ min-width: 330px;
654
+ outline: none;
655
+ }
656
+
657
+ .debate-controls select {
658
+ background: var(--bg-card);
659
+ border: 1px solid var(--border-main);
660
+ color: var(--text-primary);
661
+ font-family: var(--font-sans);
662
+ padding: 0.55rem 0.85rem;
663
+ border-radius: var(--radius-sm);
664
+ font-size: 0.86rem;
665
+ outline: none;
666
+ }
667
+
668
+ .action-btn {
669
+ background: var(--accent-primary);
670
+ border: 1px solid var(--accent-primary);
671
+ color: var(--text-inverted);
672
+ padding: 0.55rem 1.2rem;
673
+ border-radius: var(--radius-sm);
674
+ font-family: var(--font-sans);
675
+ font-weight: 600;
676
+ font-size: 0.85rem;
677
+ cursor: pointer;
678
+ transition: all 0.15s ease;
679
+ }
680
+
681
+ .action-btn:hover {
682
+ background: var(--accent-active);
683
+ }
684
+
685
+ /* Dialectic Arena */
686
+ .dialectic-arena-grid {
687
+ display: grid;
688
+ grid-template-columns: repeat(4, 1fr);
689
+ gap: 1.35rem;
690
+ flex: 1;
691
+ min-height: 480px;
692
+ }
693
+
694
+ .persona-card {
695
+ background: var(--bg-card);
696
+ border: 1px solid var(--border-main);
697
+ border-radius: var(--radius-md);
698
+ display: flex;
699
+ flex-direction: column;
700
+ overflow: hidden;
701
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
702
+ }
703
+
704
+ .persona-header {
705
+ padding: 1.1rem 1.25rem;
706
+ background: var(--bg-sidebar);
707
+ border-bottom: 1px solid var(--border-main);
708
+ }
709
+
710
+ .persona-header h3 {
711
+ font-size: 0.95rem;
712
+ font-weight: 700;
713
+ color: var(--text-primary);
714
+ margin-bottom: 0.2rem;
715
+ }
716
+
717
+ .persona-tag {
718
+ font-size: 0.72rem;
719
+ color: var(--text-tertiary);
720
+ text-transform: uppercase;
721
+ letter-spacing: 0.05em;
722
+ font-weight: 600;
723
+ }
724
+
725
+ .persona-body {
726
+ padding: 1.25rem;
727
+ flex: 1;
728
+ overflow-y: auto;
729
+ font-size: 0.86rem;
730
+ line-height: 1.65;
731
+ color: var(--text-secondary);
732
+ white-space: pre-wrap;
733
+ }
734
+
735
+ .placeholder-text {
736
+ color: var(--text-tertiary);
737
+ font-style: normal;
738
+ }
739
+
740
+ /* Goal Pipeline */
741
+ .goal-pipeline-stages {
742
+ display: grid;
743
+ grid-template-columns: repeat(3, 1fr);
744
+ gap: 1.5rem;
745
+ flex: 1;
746
+ }
747
+
748
+ .goal-stage-card {
749
+ background: var(--bg-card);
750
+ border: 1px solid var(--border-main);
751
+ border-radius: var(--radius-md);
752
+ padding: 1.5rem;
753
+ display: flex;
754
+ flex-direction: column;
755
+ position: relative;
756
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
757
+ }
758
+
759
+ .stage-num {
760
+ position: absolute;
761
+ top: 1.25rem;
762
+ right: 1.35rem;
763
+ font-family: var(--font-mono);
764
+ font-size: 1.5rem;
765
+ font-weight: 700;
766
+ color: var(--border-main);
767
+ }
768
+
769
+ .goal-stage-card h3 {
770
+ font-size: 1.05rem;
771
+ font-weight: 700;
772
+ margin-bottom: 0.35rem;
773
+ color: var(--text-primary);
774
+ }
775
+
776
+ .goal-stage-card p {
777
+ font-size: 0.82rem;
778
+ color: var(--text-tertiary);
779
+ margin-bottom: 1.25rem;
780
+ }
781
+
782
+ .stage-content {
783
+ flex: 1;
784
+ background: var(--bg-subtle);
785
+ border: 1px solid var(--border-light);
786
+ border-radius: var(--radius-sm);
787
+ padding: 1.2rem;
788
+ font-size: 0.86rem;
789
+ line-height: 1.65;
790
+ color: var(--text-secondary);
791
+ overflow-y: auto;
792
+ white-space: pre-wrap;
793
+ }
794
+
795
+ /* Profiles */
796
+ .profile-studio-layout {
797
+ display: flex;
798
+ gap: 1.5rem;
799
+ flex: 1;
800
+ }
801
+
802
+ .profile-list-sidebar {
803
+ width: 260px;
804
+ display: flex;
805
+ flex-direction: column;
806
+ gap: 0.5rem;
807
+ }
808
+
809
+ .profile-item-btn {
810
+ background: var(--bg-card);
811
+ border: 1px solid var(--border-main);
812
+ padding: 0.85rem 1.1rem;
813
+ border-radius: var(--radius-sm);
814
+ color: var(--text-primary);
815
+ text-align: left;
816
+ cursor: pointer;
817
+ font-family: var(--font-sans);
818
+ font-weight: 500;
819
+ font-size: 0.86rem;
820
+ transition: all 0.15s ease;
821
+ }
822
+
823
+ .profile-item-btn.active {
824
+ border-color: var(--accent-primary);
825
+ background: var(--bg-subtle);
826
+ font-weight: 600;
827
+ }
828
+
829
+ .profile-editor-container {
830
+ flex: 1;
831
+ background: var(--bg-card);
832
+ border: 1px solid var(--border-main);
833
+ border-radius: var(--radius-md);
834
+ display: flex;
835
+ flex-direction: column;
836
+ overflow: hidden;
837
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
838
+ }
839
+
840
+ .editor-header {
841
+ padding: 1rem 1.5rem;
842
+ background: var(--bg-sidebar);
843
+ border-bottom: 1px solid var(--border-main);
844
+ display: flex;
845
+ justify-content: space-between;
846
+ align-items: center;
847
+ }
848
+
849
+ .editor-header h3 {
850
+ font-size: 0.92rem;
851
+ font-weight: 600;
852
+ font-family: var(--font-mono);
853
+ }
854
+
855
+ .save-btn {
856
+ background: var(--accent-primary);
857
+ color: var(--text-inverted);
858
+ border: 1px solid var(--accent-primary);
859
+ padding: 0.45rem 1rem;
860
+ border-radius: var(--radius-xs);
861
+ font-family: var(--font-sans);
862
+ font-weight: 600;
863
+ font-size: 0.8rem;
864
+ cursor: pointer;
865
+ }
866
+
867
+ .profile-textarea {
868
+ flex: 1;
869
+ background: transparent;
870
+ border: none;
871
+ color: var(--text-primary);
872
+ padding: 1.5rem;
873
+ font-family: var(--font-mono);
874
+ font-size: 0.88rem;
875
+ line-height: 1.7;
876
+ resize: none;
877
+ outline: none;
878
+ }
879
+
880
+ /* Skills */
881
+ .skills-grid {
882
+ display: grid;
883
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
884
+ gap: 1.35rem;
885
+ }
886
+
887
+ .skill-card {
888
+ background: var(--bg-card);
889
+ border: 1px solid var(--border-main);
890
+ border-radius: var(--radius-md);
891
+ padding: 1.35rem;
892
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
893
+ }
894
+
895
+ .skill-card h4 {
896
+ font-size: 0.95rem;
897
+ font-weight: 600;
898
+ font-family: var(--font-mono);
899
+ color: var(--text-primary);
900
+ margin-bottom: 0.45rem;
901
+ }
902
+
903
+ .skill-card p {
904
+ font-size: 0.84rem;
905
+ color: var(--text-secondary);
906
+ margin-bottom: 1rem;
907
+ line-height: 1.55;
908
+ }
909
+
910
+ .skill-btn {
911
+ background: var(--bg-subtle);
912
+ border: 1px solid var(--border-main);
913
+ color: var(--text-primary);
914
+ padding: 0.45rem 0.9rem;
915
+ border-radius: var(--radius-xs);
916
+ font-family: var(--font-sans);
917
+ font-size: 0.78rem;
918
+ font-weight: 600;
919
+ cursor: pointer;
920
+ transition: all 0.15s ease;
921
+ }
922
+
923
+ .skill-btn:hover {
924
+ background: var(--bg-hover);
925
+ }
926
+
927
+ /* Memory */
928
+ .memory-dashboard-layout {
929
+ display: grid;
930
+ grid-template-columns: 1fr 1fr;
931
+ gap: 1.5rem;
932
+ flex: 1;
933
+ }
934
+
935
+ .memory-card {
936
+ background: var(--bg-card);
937
+ border: 1px solid var(--border-main);
938
+ border-radius: var(--radius-md);
939
+ padding: 1.5rem;
940
+ display: flex;
941
+ flex-direction: column;
942
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
943
+ }
944
+
945
+ .memory-card h3 {
946
+ font-size: 1.05rem;
947
+ font-weight: 700;
948
+ margin-bottom: 1.15rem;
949
+ color: var(--text-primary);
950
+ }
951
+
952
+ .memory-stream {
953
+ flex: 1;
954
+ background: var(--bg-subtle);
955
+ border: 1px solid var(--border-light);
956
+ border-radius: var(--radius-sm);
957
+ padding: 1.15rem;
958
+ overflow-y: auto;
959
+ font-size: 0.84rem;
960
+ line-height: 1.6;
961
+ color: var(--text-secondary);
962
+ }