mop-agent 0.1.14 → 0.1.16

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.
@@ -1,3 +1,6 @@
1
+ @import "tailwindcss";
2
+ @import "tw-animate-css";
3
+
1
4
  :root {
2
5
  --mop-red: #742220;
3
6
  --mop-green: #2d4a3e;
@@ -121,15 +124,21 @@ button {
121
124
  box-shadow: 0 2px 0 rgba(45, 74, 62, .28);
122
125
  }
123
126
 
127
+ .mop-app-brand-cell {
128
+ position: relative;
129
+ min-width: 0;
130
+ display: flex;
131
+ }
132
+
124
133
  .mop-app-brand {
134
+ width: 100%;
125
135
  display: flex;
126
136
  align-items: center;
127
137
  gap: 9px;
128
138
  min-width: 0;
129
- padding: 7px 14px;
139
+ padding: 7px 46px 7px 14px;
130
140
  color: var(--mop-cream);
131
141
  text-decoration: none;
132
- border-right: 1px solid rgba(254, 249, 225, .16);
133
142
  }
134
143
 
135
144
  .mop-app-brand img {
@@ -148,6 +157,51 @@ button {
148
157
  white-space: nowrap;
149
158
  }
150
159
 
160
+ .mop-sidebar-collapse-toggle {
161
+ position: absolute;
162
+ top: 50%;
163
+ right: 9px;
164
+ z-index: 2;
165
+ width: 29px;
166
+ height: 34px;
167
+ display: grid;
168
+ place-items: center;
169
+ padding: 0;
170
+ transform: translateY(-50%);
171
+ border: 1px solid rgba(254, 249, 225, .25);
172
+ background: rgba(254, 249, 225, .08);
173
+ color: var(--mop-cream);
174
+ font-size: 19px;
175
+ cursor: pointer;
176
+ }
177
+
178
+ .mop-sidebar-collapse-toggle:hover:not(:disabled) { transform: translate(-1px, calc(-50% - 1px)); }
179
+ .mop-sidebar-collapse-toggle:active:not(:disabled) { transform: translate(1px, calc(-50% + 1px)); }
180
+
181
+ .mop-app-frame,
182
+ .mop-app-topbar { transition: grid-template-columns 140ms steps(4, end); }
183
+
184
+ .mop-app-frame.is-sidebar-collapsed { grid-template-columns: 74px minmax(0, 1fr); }
185
+ .mop-app-frame.is-sidebar-collapsed .mop-app-topbar { grid-template-columns: 74px minmax(0, 1fr); }
186
+ .mop-app-frame.is-sidebar-collapsed .mop-app-brand { justify-content: center; padding: 7px; }
187
+ .mop-app-frame.is-sidebar-collapsed .mop-app-brand img { width: 47px; height: 47px; }
188
+ .mop-app-frame.is-sidebar-collapsed .mop-app-brand span,
189
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-section > p,
190
+ .mop-app-frame.is-sidebar-collapsed .mop-sidebar-primary a > span:not(.mop-nav-icon),
191
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-section a > span:not(.mop-nav-icon),
192
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-section button > span:not(.mop-nav-icon),
193
+ .mop-app-frame.is-sidebar-collapsed .mop-account-copy,
194
+ .mop-app-frame.is-sidebar-collapsed .mop-account-card > span:last-child,
195
+ .mop-app-frame.is-sidebar-collapsed .mop-back-workspace-btn > span { display: none; }
196
+ .mop-app-frame.is-sidebar-collapsed .mop-sidebar-collapse-toggle { right: -14px; }
197
+ .mop-app-frame.is-sidebar-collapsed .mop-app-sidebar { padding-inline: 9px; }
198
+ .mop-app-frame.is-sidebar-collapsed .mop-sidebar-primary a,
199
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-section a,
200
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-section button,
201
+ .mop-app-frame.is-sidebar-collapsed .mop-account-card { justify-content: center; padding-inline: 5px; }
202
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-icon { width: auto; }
203
+ .mop-app-frame.is-sidebar-collapsed .mop-back-workspace-btn::before { content: "←"; }
204
+
151
205
  .mop-app-topbar-main {
152
206
  position: relative;
153
207
  min-width: 0;
@@ -214,8 +268,9 @@ button {
214
268
  .mop-sidebar-primary {
215
269
  display: grid;
216
270
  gap: 3px;
217
- margin-bottom: 22px;
271
+ margin-bottom: 0;
218
272
  }
273
+ .mop-workspace-nav { margin-bottom: 22px; }
219
274
 
220
275
  .mop-sidebar-primary a,
221
276
  .mop-nav-section a,
@@ -317,6 +372,123 @@ button {
317
372
  .mop-account-copy strong { font-size: 12px; }
318
373
  .mop-account-copy small { color: rgba(254, 249, 225, .52); font-size: 9px; letter-spacing: .09em; text-transform: uppercase; }
319
374
 
375
+ .mop-account-drawer-scrim {
376
+ position: fixed;
377
+ inset: 0;
378
+ z-index: 80;
379
+ padding: 0;
380
+ border: 0;
381
+ background: rgba(20, 34, 29, .58);
382
+ box-shadow: none;
383
+ cursor: default;
384
+ }
385
+
386
+ .mop-account-drawer {
387
+ position: fixed;
388
+ top: 0;
389
+ right: 0;
390
+ bottom: 0;
391
+ z-index: 90;
392
+ width: min(390px, 100vw);
393
+ display: flex;
394
+ flex-direction: column;
395
+ padding: 18px;
396
+ color: var(--mop-green);
397
+ border-left: 2px solid var(--mop-green);
398
+ background:
399
+ linear-gradient(rgba(255, 253, 242, .9), rgba(254, 249, 225, .96)),
400
+ repeating-linear-gradient(0deg, transparent 0, transparent 7px, rgba(116, 34, 32, .045) 7px, rgba(116, 34, 32, .045) 8px);
401
+ box-shadow: -8px 0 0 rgba(45, 74, 62, .14);
402
+ animation: mop-drawer-enter 150ms steps(5, end);
403
+ }
404
+
405
+ @keyframes mop-drawer-enter {
406
+ from { transform: translateX(100%); }
407
+ to { transform: translateX(0); }
408
+ }
409
+
410
+ .mop-account-drawer-header {
411
+ display: flex;
412
+ align-items: center;
413
+ justify-content: space-between;
414
+ gap: 16px;
415
+ padding-bottom: 16px;
416
+ border-bottom: 1px solid rgba(45, 74, 62, .28);
417
+ }
418
+ .mop-account-drawer-header > div { display: grid; gap: 4px; }
419
+ .mop-account-drawer-header span {
420
+ color: var(--mop-red);
421
+ font-family: "SFMono-Regular", Consolas, monospace;
422
+ font-size: 9px;
423
+ font-weight: 900;
424
+ letter-spacing: .16em;
425
+ }
426
+ .mop-account-drawer-header strong { font-family: "SFMono-Regular", Consolas, monospace; font-size: 20px; }
427
+ .mop-account-drawer-header button {
428
+ width: 36px;
429
+ height: 36px;
430
+ border: 1px solid rgba(45, 74, 62, .38);
431
+ background: var(--mop-paper);
432
+ color: var(--mop-green);
433
+ font-size: 21px;
434
+ cursor: pointer;
435
+ }
436
+
437
+ .mop-account-drawer-profile {
438
+ display: grid;
439
+ grid-template-columns: 58px minmax(0, 1fr);
440
+ align-items: center;
441
+ gap: 13px;
442
+ margin-top: 20px;
443
+ padding: 16px;
444
+ border: 1px solid rgba(45, 74, 62, .38);
445
+ border-bottom-width: 4px;
446
+ background: rgba(255, 253, 242, .78);
447
+ }
448
+ .mop-account-drawer-avatar {
449
+ width: 58px;
450
+ height: 58px;
451
+ display: grid;
452
+ place-items: center;
453
+ background: var(--mop-red);
454
+ color: var(--mop-cream);
455
+ font-family: "SFMono-Regular", Consolas, monospace;
456
+ font-size: 22px;
457
+ font-weight: 900;
458
+ }
459
+ .mop-account-drawer-profile > div { min-width: 0; display: grid; gap: 5px; }
460
+ .mop-account-drawer-profile strong,
461
+ .mop-account-drawer-profile span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
462
+ .mop-account-drawer-profile strong { font-size: 15px; }
463
+ .mop-account-drawer-profile > div span { color: rgba(45, 74, 62, .62); font-size: 11px; }
464
+
465
+ .mop-account-drawer-details { margin: 18px 0 0; }
466
+ .mop-account-drawer-details > div {
467
+ display: flex;
468
+ align-items: center;
469
+ justify-content: space-between;
470
+ gap: 16px;
471
+ padding: 11px 4px;
472
+ border-bottom: 1px solid rgba(45, 74, 62, .18);
473
+ }
474
+ .mop-account-drawer-details dt { color: rgba(45, 74, 62, .58); font-size: 11px; }
475
+ .mop-account-drawer-details dd { margin: 0; color: var(--mop-red); font-size: 11px; font-weight: 800; }
476
+ .mop-account-drawer-spacer { flex: 1; }
477
+
478
+ .mop-account-logout {
479
+ width: 100%;
480
+ min-height: 46px;
481
+ display: flex;
482
+ align-items: center;
483
+ justify-content: center;
484
+ gap: 9px;
485
+ border: 1px solid var(--mop-red);
486
+ border-bottom-width: 4px;
487
+ background: var(--mop-red);
488
+ color: var(--mop-cream);
489
+ cursor: pointer;
490
+ }
491
+
320
492
  .mop-app-main {
321
493
  grid-area: main;
322
494
  min-width: 0;
@@ -361,6 +533,170 @@ button {
361
533
  box-shadow: 2px 2px 0 rgba(45, 74, 62, .08);
362
534
  }
363
535
 
536
+ .mop-primary-link {
537
+ display: inline-flex;
538
+ align-items: center;
539
+ gap: 9px;
540
+ min-height: 40px;
541
+ padding: 9px 14px;
542
+ border: 1px solid var(--mop-red);
543
+ border-bottom-width: 4px;
544
+ background: var(--mop-red);
545
+ color: var(--mop-cream);
546
+ font-family: "SFMono-Regular", Consolas, monospace;
547
+ font-size: 10px;
548
+ font-weight: 900;
549
+ letter-spacing: .08em;
550
+ text-decoration: none;
551
+ }
552
+
553
+ .mop-brain-page { width: min(100%, 1320px); }
554
+ .mop-brain-heading { margin-bottom: 26px; }
555
+ .mop-main-brain {
556
+ min-height: 250px;
557
+ display: grid;
558
+ grid-template-columns: 180px minmax(0, 1fr) 210px;
559
+ align-items: center;
560
+ gap: 30px;
561
+ padding: clamp(22px, 4vw, 42px);
562
+ overflow: hidden;
563
+ background:
564
+ radial-gradient(circle at 17% 50%, rgba(116, 34, 32, .13), transparent 25%),
565
+ rgba(255, 253, 242, .88);
566
+ }
567
+ .mop-main-brain-orbit { position: relative; width: 154px; height: 154px; display: grid; place-items: center; }
568
+ .mop-main-brain-orbit::before,
569
+ .mop-main-brain-orbit::after {
570
+ content: "";
571
+ position: absolute;
572
+ inset: 10px;
573
+ border: 1px solid rgba(116, 34, 32, .28);
574
+ border-radius: 50%;
575
+ }
576
+ .mop-main-brain-orbit::after { inset: 27px; border-color: rgba(45, 74, 62, .32); }
577
+ .mop-main-brain-orbit i { position: absolute; width: 9px; height: 9px; background: var(--mop-red); box-shadow: 0 0 0 4px rgba(116, 34, 32, .1); }
578
+ .mop-main-brain-orbit i:nth-child(2) { top: 14px; right: 35px; }
579
+ .mop-main-brain-orbit i:nth-child(3) { bottom: 28px; left: 11px; background: #d7a52e; }
580
+ .mop-main-brain-orbit i:nth-child(4) { right: 6px; bottom: 50px; background: #4fa676; }
581
+ .mop-main-brain-core {
582
+ position: relative;
583
+ z-index: 2;
584
+ width: 72px;
585
+ height: 72px;
586
+ display: grid;
587
+ place-items: center;
588
+ border-radius: 50%;
589
+ background: var(--mop-red);
590
+ color: var(--mop-cream);
591
+ font-family: "SFMono-Regular", Consolas, monospace;
592
+ font-size: 27px;
593
+ font-weight: 900;
594
+ box-shadow: 0 0 0 8px rgba(116, 34, 32, .1), 5px 5px 0 rgba(45, 74, 62, .16);
595
+ }
596
+ .mop-main-brain-copy h2 { margin: 2px 0 9px; font-family: "SFMono-Regular", Consolas, monospace; font-size: clamp(25px, 3vw, 38px); }
597
+ .mop-main-brain-copy > p:not(.mop-page-kicker):not(.mop-brain-message) { max-width: 660px; margin: 0; color: rgba(45, 74, 62, .68); line-height: 1.65; }
598
+ .mop-main-brain-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 15px; margin-top: 22px; }
599
+ .mop-main-brain-actions button,
600
+ .mop-brain-linker > button {
601
+ min-height: 40px;
602
+ padding: 9px 14px;
603
+ border: 1px solid var(--mop-green);
604
+ border-bottom-width: 3px;
605
+ background: var(--mop-green);
606
+ color: var(--mop-cream);
607
+ font-size: 10px;
608
+ font-weight: 900;
609
+ cursor: pointer;
610
+ }
611
+ .mop-main-brain-actions a { color: var(--mop-red); font-size: 12px; font-weight: 800; }
612
+ .mop-brain-message { margin: 12px 0 0; color: var(--mop-red); font-size: 12px; }
613
+ .mop-main-brain-stats { display: grid; align-self: stretch; border-left: 1px solid rgba(45, 74, 62, .2); }
614
+ .mop-main-brain-stats div { display: grid; align-content: center; gap: 2px; padding: 11px 0 11px 23px; border-bottom: 1px solid rgba(45, 74, 62, .15); }
615
+ .mop-main-brain-stats div:last-child { border-bottom: 0; }
616
+ .mop-main-brain-stats strong { color: var(--mop-red); font-family: "SFMono-Regular", Consolas, monospace; font-size: 24px; }
617
+ .mop-main-brain-stats span { color: rgba(45, 74, 62, .58); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
618
+
619
+ .mop-brain-linker {
620
+ display: grid;
621
+ grid-template-columns: minmax(180px, 1fr) auto;
622
+ align-items: center;
623
+ gap: 14px;
624
+ margin: 18px 0;
625
+ padding: 15px 17px;
626
+ }
627
+ .mop-brain-linker > div { display: grid; gap: 3px; }
628
+ .mop-brain-linker > div span { color: rgba(45, 74, 62, .58); font-size: 11px; }
629
+ .mop-brain-linker code { grid-column: 1 / -1; overflow-x: auto; padding: 10px; background: rgba(45, 74, 62, .07); color: var(--mop-red); font-size: 11px; }
630
+ .mop-brain-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
631
+ .mop-brain-section { min-width: 0; padding: 19px; }
632
+ .mop-brain-section > header,
633
+ .mop-brain-approvals > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid rgba(45, 74, 62, .2); }
634
+ .mop-brain-section header h2,
635
+ .mop-brain-approvals header h2 { margin: 0; font-family: "SFMono-Regular", Consolas, monospace; font-size: 17px; }
636
+ .mop-brain-section > header > span,
637
+ .mop-brain-approvals > header > span { min-width: 32px; padding: 5px 7px; border: 1px solid rgba(45, 74, 62, .3); color: var(--mop-red); text-align: center; font-size: 10px; font-weight: 900; }
638
+ .mop-brain-empty { min-height: 155px; display: grid; place-content: center; text-align: center; }
639
+ .mop-brain-empty strong { font-size: 13px; }
640
+ .mop-brain-empty p { max-width: 290px; margin: 5px 0; color: rgba(45, 74, 62, .5); font-size: 12px; }
641
+ .mop-brain-note-list,
642
+ .mop-brain-project-list,
643
+ .mop-brain-approvals ul { list-style: none; margin: 0; padding: 0; }
644
+ .mop-brain-note-list li { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 11px; padding: 13px 2px; border-bottom: 1px solid rgba(45, 74, 62, .13); }
645
+ .mop-brain-note-dot { width: 8px; height: 8px; margin-top: 5px; background: #4fa676; }
646
+ .mop-brain-note-list div { min-width: 0; }
647
+ .mop-brain-note-list strong { font-size: 13px; }
648
+ .mop-brain-note-list p { margin: 4px 0; color: rgba(45, 74, 62, .65); font-size: 12px; line-height: 1.55; }
649
+ .mop-brain-note-list small,
650
+ .mop-brain-project-list small { color: rgba(45, 74, 62, .48); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
651
+ .mop-brain-project-list li { display: grid; grid-template-columns: 9px minmax(0, 1fr) auto; align-items: center; gap: 11px; min-height: 58px; padding: 9px 2px; border-bottom: 1px solid rgba(45, 74, 62, .13); }
652
+ .mop-project-status { width: 8px; height: 8px; background: rgba(45, 74, 62, .3); }
653
+ .mop-project-status.is-online { background: #4fa676; box-shadow: 0 0 0 3px rgba(79, 166, 118, .12); }
654
+ .mop-brain-project-list div { min-width: 0; display: grid; gap: 4px; }
655
+ .mop-brain-project-list div a { overflow: hidden; color: var(--mop-green); font-size: 13px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
656
+ .mop-brain-project-list > li > a { color: var(--mop-red); font-size: 10px; font-weight: 900; }
657
+ .mop-brain-approvals { margin-top: 18px; padding: 19px; }
658
+ .mop-brain-approvals li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 2px; border-bottom: 1px solid rgba(45, 74, 62, .14); }
659
+ .mop-brain-approvals li > div:first-child { display: grid; gap: 4px; }
660
+ .mop-brain-approvals code { color: var(--mop-red); font-size: 10px; }
661
+ .mop-brain-approvals small { color: rgba(45, 74, 62, .5); }
662
+ .mop-brain-approvals li > div:last-child { display: flex; gap: 7px; }
663
+ .mop-brain-approvals button { padding: 7px 10px; border: 1px solid var(--mop-green); background: var(--mop-green); color: var(--mop-cream); font-size: 9px; cursor: pointer; }
664
+ .mop-brain-approvals button:last-child { border-color: var(--mop-red); background: var(--mop-red); }
665
+
666
+ .mop-graph-view { height: calc(100vh - 70px); min-height: 560px; display: grid; grid-template-rows: 54px minmax(0, 1fr); overflow: hidden; background: #171918; color: #e9e5d4; }
667
+ .mop-graph-toolbar { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(220px, 420px) auto; align-items: center; gap: 16px; padding: 8px 15px; border-bottom: 1px solid rgba(255, 255, 255, .1); background: #202221; }
668
+ .mop-graph-toolbar-left { min-width: 0; display: flex; align-items: center; gap: 12px; }
669
+ .mop-graph-toolbar-left a { width: 30px; height: 30px; display: grid; place-items: center; color: #e9e5d4; border: 1px solid rgba(255, 255, 255, .12); text-decoration: none; }
670
+ .mop-graph-toolbar-left strong { font-size: 12px; }
671
+ .mop-graph-toolbar-left span { color: rgba(233, 229, 212, .46); font-size: 10px; }
672
+ .mop-graph-search { display: flex; align-items: center; gap: 8px; min-width: 0; height: 34px; padding: 0 10px; border: 1px solid rgba(255, 255, 255, .14); background: rgba(0, 0, 0, .18); }
673
+ .mop-graph-search input { width: 100%; border: 0; background: transparent; color: #e9e5d4; box-shadow: none; outline: 0; font-size: 11px; }
674
+ .mop-graph-toolbar > button { min-height: 34px; padding: 7px 11px; border: 1px solid rgba(255, 255, 255, .14); background: transparent; color: #e9e5d4; font-size: 10px; cursor: pointer; }
675
+ .mop-graph-canvas { min-height: 0; position: relative; }
676
+ .mop-graph-canvas .react-flow__controls { border: 1px solid rgba(255, 255, 255, .12); box-shadow: none; }
677
+ .mop-graph-canvas .react-flow__controls-button { border: 0; border-bottom: 1px solid rgba(255, 255, 255, .09); background: #242625; fill: #e9e5d4; }
678
+ .mop-memory-graph-node { position: relative; display: flex; align-items: center; gap: 6px; color: rgba(233, 229, 212, .68); font-size: 9px; white-space: nowrap; cursor: grab; }
679
+ .mop-memory-node-dot { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; box-shadow: 0 0 0 3px rgba(255, 255, 255, .035); }
680
+ .mop-memory-graph-node.is-main .mop-memory-node-dot { width: 28px; height: 28px; box-shadow: 0 0 0 7px rgba(228, 184, 63, .12), 0 0 28px rgba(228, 184, 63, .22); }
681
+ .mop-memory-graph-node.is-main .mop-memory-node-label { color: #f4e6ad; font-size: 12px; font-weight: 900; }
682
+ .mop-memory-graph-node.is-selected .mop-memory-node-dot { outline: 2px solid #fff; outline-offset: 3px; }
683
+ .mop-graph-handle { width: 1px !important; height: 1px !important; min-width: 0 !important; min-height: 0 !important; opacity: 0; }
684
+ .mop-graph-view.hide-labels .mop-memory-node-label { display: none; }
685
+ .mop-graph-filters,
686
+ .mop-graph-inspector { position: absolute; z-index: 5; border: 1px solid rgba(255, 255, 255, .12); background: rgba(31, 33, 32, .92); backdrop-filter: blur(8px); }
687
+ .mop-graph-filters { top: 14px; right: 14px; width: 168px; display: grid; gap: 8px; padding: 12px; }
688
+ .mop-graph-filters > strong { margin-bottom: 2px; font-size: 10px; text-transform: uppercase; letter-spacing: .11em; }
689
+ .mop-graph-filters label { display: grid; grid-template-columns: 14px 8px 1fr; align-items: center; gap: 7px; color: rgba(233, 229, 212, .68); font-size: 10px; }
690
+ .mop-graph-filters input { margin: 0; box-shadow: none; }
691
+ .mop-graph-filters label > span { width: 7px; height: 7px; border-radius: 50%; }
692
+ .mop-graph-inspector { right: 14px; bottom: 14px; width: min(280px, calc(100% - 28px)); display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 7px 9px; padding: 15px; }
693
+ .mop-graph-inspector > button { position: absolute; top: 6px; right: 6px; width: 26px; height: 26px; border: 0; background: transparent; color: #e9e5d4; box-shadow: none; cursor: pointer; }
694
+ .mop-graph-inspector > span { width: 9px; height: 9px; margin-top: 2px; border-radius: 50%; }
695
+ .mop-graph-inspector small { color: rgba(233, 229, 212, .46); font-size: 8px; letter-spacing: .12em; }
696
+ .mop-graph-inspector strong,
697
+ .mop-graph-inspector p { grid-column: 2; }
698
+ .mop-graph-inspector p { margin: 0; color: rgba(233, 229, 212, .58); font-size: 10px; line-height: 1.5; }
699
+
364
700
  .mop-sidebar-scrim { display: none; }
365
701
 
366
702
  /* Assistant content now lives inside the shared shell. */
@@ -371,8 +707,11 @@ button {
371
707
  display: grid;
372
708
  grid-template-columns: minmax(0, 1fr) 290px;
373
709
  overflow: hidden;
710
+ transition: grid-template-columns 140ms steps(4, end);
374
711
  }
375
712
 
713
+ .mop-assistant-page.is-history-collapsed { grid-template-columns: minmax(0, 1fr) 52px; }
714
+
376
715
  .mop-assistant-workspace {
377
716
  min-width: 0;
378
717
  min-height: 0;
@@ -403,6 +742,87 @@ button {
403
742
  background: linear-gradient(transparent, var(--mop-cream) 28%);
404
743
  }
405
744
 
745
+ .mop-prompt-box {
746
+ width: min(calc(100% - 32px), 800px);
747
+ margin: 0 auto;
748
+ border-radius: 26px !important;
749
+ border-bottom-width: 4px !important;
750
+ box-shadow: 4px 4px 0 rgba(45, 74, 62, .13) !important;
751
+ }
752
+ .mop-prompt-textarea { box-shadow: none !important; font: inherit; line-height: 1.55; }
753
+ .mop-prompt-round-button,
754
+ .mop-prompt-send {
755
+ width: 34px;
756
+ height: 34px;
757
+ display: grid;
758
+ place-items: center;
759
+ padding: 0;
760
+ border: 0;
761
+ border-radius: 999px !important;
762
+ box-shadow: none;
763
+ cursor: pointer;
764
+ }
765
+ .mop-prompt-round-button { background: transparent; color: var(--mop-green); }
766
+ .mop-prompt-round-button:hover { background: rgba(45, 74, 62, .1); }
767
+ .mop-prompt-round-button.is-listening { background: var(--mop-red); color: var(--mop-cream); animation: mop-listening-pulse 900ms steps(2, end) infinite; }
768
+ .mop-prompt-send { background: var(--mop-red); color: var(--mop-cream); }
769
+ .mop-prompt-send:disabled { opacity: .38; cursor: not-allowed; }
770
+ .mop-prompt-tool-button,
771
+ .mop-prompt-active-tool {
772
+ min-height: 34px;
773
+ display: flex;
774
+ align-items: center;
775
+ gap: 7px;
776
+ padding: 0 10px;
777
+ border: 0;
778
+ border-radius: 999px !important;
779
+ background: transparent;
780
+ color: var(--mop-green);
781
+ box-shadow: none;
782
+ cursor: pointer;
783
+ }
784
+ .mop-prompt-tool-button:hover { background: rgba(45, 74, 62, .1); }
785
+ .mop-prompt-active-tool { border: 1px solid rgba(116, 34, 32, .32); color: var(--mop-red); background: rgba(116, 34, 32, .06); }
786
+ .mop-prompt-popover { border-radius: 14px !important; }
787
+ .mop-prompt-popover-item {
788
+ width: 100%;
789
+ min-height: 38px;
790
+ display: flex;
791
+ align-items: center;
792
+ gap: 9px;
793
+ padding: 8px 10px;
794
+ border: 0;
795
+ border-radius: 8px !important;
796
+ background: transparent;
797
+ color: var(--mop-green);
798
+ box-shadow: none;
799
+ text-align: left;
800
+ cursor: pointer;
801
+ }
802
+ .mop-prompt-popover-item:hover { background: rgba(45, 74, 62, .09); }
803
+ .mop-prompt-preview-trigger { padding: 0; border: 0; border-radius: 12px !important; background: transparent; box-shadow: none; cursor: zoom-in; }
804
+ .mop-prompt-remove-image {
805
+ position: absolute;
806
+ top: -5px;
807
+ right: -5px;
808
+ width: 22px;
809
+ height: 22px;
810
+ display: grid;
811
+ place-items: center;
812
+ padding: 0;
813
+ border: 2px solid var(--mop-paper);
814
+ border-radius: 999px !important;
815
+ background: var(--mop-green);
816
+ color: var(--mop-cream);
817
+ box-shadow: none;
818
+ cursor: pointer;
819
+ }
820
+ .mop-prompt-error { margin: 3px 10px 5px; color: var(--mop-red); font-size: 11px; }
821
+
822
+ @keyframes mop-listening-pulse {
823
+ 50% { opacity: .58; }
824
+ }
825
+
406
826
  .mop-chat-history {
407
827
  min-width: 0;
408
828
  min-height: 0;
@@ -425,15 +845,8 @@ button {
425
845
  border-bottom: 1px solid rgba(45, 74, 62, .24);
426
846
  }
427
847
 
428
- .mop-chat-history-header > div { display: grid; gap: 3px; }
429
- .mop-chat-history-header span {
430
- color: var(--mop-red);
431
- font-family: "SFMono-Regular", Consolas, monospace;
432
- font-size: 8px;
433
- font-weight: 900;
434
- letter-spacing: .16em;
435
- }
436
848
  .mop-chat-history-header strong { font-family: "SFMono-Regular", Consolas, monospace; font-size: 15px; }
849
+ .mop-chat-history-actions { display: flex; gap: 6px; }
437
850
  .mop-chat-history-header button {
438
851
  width: 34px;
439
852
  height: 34px;
@@ -443,6 +856,19 @@ button {
443
856
  font-size: 20px;
444
857
  cursor: pointer;
445
858
  }
859
+ .mop-chat-history-collapse { background: var(--mop-green) !important; }
860
+ .mop-chat-history-new { background: var(--mop-red) !important; }
861
+
862
+ .mop-assistant-page.is-history-collapsed .mop-chat-history { padding: 12px 8px; }
863
+ .mop-assistant-page.is-history-collapsed .mop-chat-history-header {
864
+ justify-content: center;
865
+ padding: 0 0 12px;
866
+ border-bottom: 0;
867
+ }
868
+ .mop-assistant-page.is-history-collapsed .mop-chat-history-header > strong,
869
+ .mop-assistant-page.is-history-collapsed .mop-chat-history-new,
870
+ .mop-assistant-page.is-history-collapsed .mop-chat-history-list { display: none; }
871
+ .mop-assistant-page.is-history-collapsed .mop-chat-history-actions { display: block; }
446
872
 
447
873
  .mop-chat-history-list {
448
874
  min-height: 0;
@@ -523,6 +949,39 @@ button {
523
949
  letter-spacing: .13em;
524
950
  text-transform: uppercase;
525
951
  }
952
+ .mop-apps-layout { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(320px, 1.28fr); gap: 18px; }
953
+ .mop-app-catalog { display: grid; align-content: start; gap: 6px; }
954
+ .mop-app-catalog > button {
955
+ width: 100%;
956
+ min-height: 62px;
957
+ display: grid;
958
+ grid-template-columns: 36px minmax(0, 1fr) 8px;
959
+ align-items: center;
960
+ gap: 11px;
961
+ padding: 9px 11px;
962
+ border: 1px solid rgba(45, 74, 62, .2);
963
+ background: rgba(254, 249, 225, .48);
964
+ color: var(--mop-green);
965
+ text-align: left;
966
+ cursor: pointer;
967
+ }
968
+ .mop-app-catalog > button.is-active { border-color: var(--mop-red); border-left-width: 4px; background: rgba(116, 34, 32, .06); }
969
+ .mop-app-catalog > button > span { width: 34px; height: 34px; display: grid; place-items: center; background: var(--mop-green); color: var(--mop-cream); font-size: 17px; }
970
+ .mop-app-catalog > button > div { min-width: 0; display: grid; gap: 4px; }
971
+ .mop-app-catalog strong { font-size: 12px; }
972
+ .mop-app-catalog small { overflow: hidden; color: rgba(45, 74, 62, .48); font-size: 8px; letter-spacing: .07em; text-overflow: ellipsis; white-space: nowrap; }
973
+ .mop-app-catalog i { width: 7px; height: 7px; background: rgba(45, 74, 62, .24); }
974
+ .mop-app-catalog i.is-online { background: #4fa676; box-shadow: 0 0 0 3px rgba(79, 166, 118, .12); }
975
+ .mop-app-config-panel { display: grid; align-content: start; gap: 15px; padding: 18px; border: 1px solid rgba(45, 74, 62, .28); border-bottom-width: 4px; background: rgba(254, 249, 225, .55); }
976
+ .mop-app-config-panel > header { display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid rgba(45, 74, 62, .18); }
977
+ .mop-app-config-panel > header > span { width: 46px; height: 46px; display: grid; place-items: center; background: var(--mop-red); color: var(--mop-cream); font-size: 20px; }
978
+ .mop-app-config-panel h3 { margin: 0; font-family: "SFMono-Regular", Consolas, monospace; font-size: 17px; }
979
+ .mop-app-config-panel header p { margin: 4px 0 0; color: rgba(45, 74, 62, .58); font-size: 11px; line-height: 1.45; }
980
+ .mop-app-runtime-status { display: flex; align-items: center; gap: 8px; color: rgba(45, 74, 62, .58); font-size: 10px; }
981
+ .mop-app-runtime-status > span { width: 8px; height: 8px; background: #d7a52e; }
982
+ .mop-app-runtime-status > span.is-ready { background: #4fa676; }
983
+ .mop-app-enabled-toggle { display: flex; align-items: center; gap: 9px; color: var(--mop-green); font-size: 12px; }
984
+ .mop-app-enabled-toggle input { width: 16px; height: 16px; box-shadow: none; }
526
985
  .mop-assistant-welcome img { width: 100%; height: 100%; object-fit: contain; }
527
986
 
528
987
  @media (prefers-reduced-transparency: reduce) {
@@ -541,7 +1000,10 @@ button {
541
1000
  grid-template-rows: 62px minmax(0, 1fr);
542
1001
  grid-template-areas: "topbar" "main";
543
1002
  }
1003
+ .mop-app-frame.is-sidebar-collapsed { grid-template-columns: 1fr; }
544
1004
  .mop-app-topbar { grid-template-columns: 66px minmax(0, 1fr); }
1005
+ .mop-app-frame.is-sidebar-collapsed .mop-app-topbar { grid-template-columns: 66px minmax(0, 1fr); }
1006
+ .mop-sidebar-collapse-toggle { display: none; }
545
1007
  .mop-app-brand { justify-content: center; padding: 5px; }
546
1008
  .mop-app-brand img { width: 49px; height: 49px; }
547
1009
  .mop-app-brand span { display: none; }
@@ -559,6 +1021,18 @@ button {
559
1021
  transition: transform 160ms steps(4, end);
560
1022
  }
561
1023
  .mop-app-sidebar.is-open { transform: translateX(0); }
1024
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-section > p { display: block; }
1025
+ .mop-app-frame.is-sidebar-collapsed .mop-sidebar-primary a > span:not(.mop-nav-icon),
1026
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-section a > span:not(.mop-nav-icon),
1027
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-section button > span:not(.mop-nav-icon),
1028
+ .mop-app-frame.is-sidebar-collapsed .mop-back-workspace-btn > span { display: inline; }
1029
+ .mop-app-frame.is-sidebar-collapsed .mop-account-copy { display: grid; }
1030
+ .mop-app-frame.is-sidebar-collapsed .mop-account-card > span:last-child { display: inline; }
1031
+ .mop-app-frame.is-sidebar-collapsed .mop-sidebar-primary a,
1032
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-section a,
1033
+ .mop-app-frame.is-sidebar-collapsed .mop-nav-section button,
1034
+ .mop-app-frame.is-sidebar-collapsed .mop-account-card { justify-content: flex-start; padding-inline: 11px; }
1035
+ .mop-app-frame.is-sidebar-collapsed .mop-back-workspace-btn::before { content: none; }
562
1036
  .mop-sidebar-scrim {
563
1037
  display: block;
564
1038
  position: fixed;
@@ -568,12 +1042,27 @@ button {
568
1042
  background: rgba(20, 34, 29, .56);
569
1043
  }
570
1044
  .mop-app-main { min-height: calc(100vh - 62px); }
571
- .mop-assistant-page { height: calc(100vh - 62px); min-height: 520px; grid-template-columns: minmax(0, 1fr); }
1045
+ .mop-assistant-page,
1046
+ .mop-assistant-page.is-history-collapsed { height: calc(100vh - 62px); min-height: 520px; grid-template-columns: minmax(0, 1fr); }
572
1047
  .mop-chat-history { display: none; }
573
1048
  .mop-assistant-conversation { padding: 0 16px; }
574
1049
  .mop-assistant-composer-wrap { padding: 26px 12px 12px; }
575
1050
  .mop-settings-grid { grid-template-columns: 1fr; }
576
1051
  .mop-user-invite-form { grid-template-columns: 1fr !important; }
1052
+ .mop-main-brain { grid-template-columns: 1fr; text-align: center; }
1053
+ .mop-main-brain-orbit { margin: 0 auto; }
1054
+ .mop-main-brain-copy > p:not(.mop-page-kicker):not(.mop-brain-message) { margin-inline: auto; }
1055
+ .mop-main-brain-actions { justify-content: center; }
1056
+ .mop-main-brain-stats { grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(45, 74, 62, .2); border-left: 0; }
1057
+ .mop-main-brain-stats div { padding: 12px 4px; border-right: 1px solid rgba(45, 74, 62, .15); border-bottom: 0; }
1058
+ .mop-brain-linker { grid-template-columns: 1fr; }
1059
+ .mop-brain-columns { grid-template-columns: 1fr; }
1060
+ .mop-apps-layout { grid-template-columns: 1fr; }
1061
+ .mop-graph-view { height: calc(100vh - 62px); min-height: 520px; }
1062
+ .mop-graph-toolbar { grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
1063
+ .mop-graph-toolbar-left span { display: none; }
1064
+ .mop-graph-search { grid-column: 1 / -1; grid-row: 2; }
1065
+ .mop-graph-filters { width: 142px; }
577
1066
  }
578
1067
 
579
1068
  .mop-back-workspace-btn {
@@ -599,4 +1088,8 @@ button {
599
1088
  @media (min-width: 761px) and (max-width: 1050px) {
600
1089
  .mop-assistant-page { grid-template-columns: minmax(0, 1fr) 235px; }
601
1090
  .mop-chat-history { padding-inline: 9px; }
1091
+ .mop-main-brain { grid-template-columns: 150px minmax(0, 1fr); }
1092
+ .mop-main-brain-stats { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(45, 74, 62, .2); border-left: 0; }
1093
+ .mop-main-brain-stats div { padding: 12px; border-right: 1px solid rgba(45, 74, 62, .15); border-bottom: 0; }
1094
+ .mop-apps-layout { grid-template-columns: 210px minmax(0, 1fr); }
602
1095
  }