lemma-sdk 0.2.25 → 0.2.28

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 (51) hide show
  1. package/README.md +25 -1
  2. package/dist/browser/lemma-client.js +176 -2
  3. package/dist/client.d.ts +2 -0
  4. package/dist/client.js +3 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/namespaces/pod-join-requests.d.ts +16 -0
  7. package/dist/namespaces/pod-join-requests.js +24 -0
  8. package/dist/namespaces/pod-members.d.ts +1 -0
  9. package/dist/namespaces/pod-members.js +3 -0
  10. package/dist/openapi_client/index.d.ts +9 -1
  11. package/dist/openapi_client/index.js +4 -0
  12. package/dist/openapi_client/models/DataStoreFlowStart.d.ts +3 -6
  13. package/dist/openapi_client/models/DatastoreOperation.d.ts +5 -0
  14. package/dist/openapi_client/models/DatastoreOperation.js +10 -0
  15. package/dist/openapi_client/models/FlowInstallEntity.d.ts +2 -2
  16. package/dist/openapi_client/models/FlowResponse.d.ts +4 -3
  17. package/dist/openapi_client/models/{FlowStart.d.ts → FlowStart_Input.d.ts} +1 -1
  18. package/dist/openapi_client/models/FlowStart_Output.d.ts +14 -0
  19. package/dist/openapi_client/models/FlowStart_Output.js +1 -0
  20. package/dist/openapi_client/models/PodJoinRequestApproveRequest.d.ts +6 -0
  21. package/dist/openapi_client/models/PodJoinRequestApproveRequest.js +1 -0
  22. package/dist/openapi_client/models/PodJoinRequestCreateResponse.d.ts +17 -0
  23. package/dist/openapi_client/models/PodJoinRequestCreateResponse.js +1 -0
  24. package/dist/openapi_client/models/PodJoinRequestListResponse.d.ts +7 -0
  25. package/dist/openapi_client/models/PodJoinRequestListResponse.js +1 -0
  26. package/dist/openapi_client/models/PodJoinRequestStatus.d.ts +5 -0
  27. package/dist/openapi_client/models/PodJoinRequestStatus.js +10 -0
  28. package/dist/openapi_client/models/WorkflowCreateRequest.d.ts +7 -6
  29. package/dist/openapi_client/models/WorkflowGraphUpdateRequest.d.ts +2 -2
  30. package/dist/openapi_client/models/WorkflowInstallMode.d.ts +7 -0
  31. package/dist/openapi_client/models/WorkflowInstallMode.js +12 -0
  32. package/dist/openapi_client/models/WorkflowUpdateRequest.d.ts +5 -4
  33. package/dist/openapi_client/services/FilesService.d.ts +1 -1
  34. package/dist/openapi_client/services/FilesService.js +1 -1
  35. package/dist/openapi_client/services/PodJoinRequestsService.d.ts +44 -0
  36. package/dist/openapi_client/services/PodJoinRequestsService.js +93 -0
  37. package/dist/openapi_client/services/WorkflowsService.d.ts +1 -1
  38. package/dist/openapi_client/services/WorkflowsService.js +1 -1
  39. package/dist/react/AuthGuard.d.ts +5 -2
  40. package/dist/react/AuthGuard.js +126 -3
  41. package/dist/react/components/AssistantChrome.js +1 -1
  42. package/dist/react/components/AssistantExperience.d.ts +7 -2
  43. package/dist/react/components/AssistantExperience.js +276 -34
  44. package/dist/react/components/assistant-types.d.ts +1 -0
  45. package/dist/react/styles.css +600 -224
  46. package/dist/react/useAssistantController.js +2 -1
  47. package/dist/react/useAssistantRuntime.d.ts +2 -1
  48. package/dist/react/useAssistantRuntime.js +7 -3
  49. package/dist/types.d.ts +2 -1
  50. package/package.json +1 -1
  51. /package/dist/openapi_client/models/{FlowStart.js → FlowStart_Input.js} +0 -0
@@ -1,31 +1,31 @@
1
1
  .lemma-assistant-theme {
2
2
  color-scheme: light;
3
- --bg-canvas: #f6f2ea;
4
- --bg-surface: #fffdf9;
5
- --bg-subtle: #f1ebde;
6
- --border-default: #ddd2bb;
7
- --border-subtle: #ebe2d0;
8
- --text-primary: #241f16;
9
- --text-secondary: #5c5344;
10
- --text-tertiary: #8a7f6f;
11
- --text-inverse: #fffdf9;
12
- --text-on-brand: #fffdf9;
13
- --brand-primary: #202418;
14
- --brand-secondary: #6e8c56;
15
- --brand-accent: #c78a2c;
16
- --brand-glow: #efe3c7;
17
- --state-success: #3e7a3c;
18
- --state-error: #b44d36;
19
- --state-info: #2f6fb2;
20
- --state-warning: #c78a2c;
21
- --shadow-xs: 0 1px 2px rgba(36, 31, 22, 0.08);
22
- --assistant-radius-shell: 20px;
23
- --assistant-radius-item: 16px;
24
- --assistant-radius-bubble: 16px;
25
- --assistant-radius-inline: 12px;
26
- --shadow-sm: 0 8px 24px rgba(36, 31, 22, 0.08);
27
- --shadow-md: 0 18px 36px rgba(36, 31, 22, 0.1);
28
- --shadow-lg: 0 24px 48px rgba(36, 31, 22, 0.14);
3
+ --bg-canvas: #f5f7fb;
4
+ --bg-surface: #ffffff;
5
+ --bg-subtle: #f3f4f6;
6
+ --border-default: #d4dae5;
7
+ --border-subtle: #e6ebf2;
8
+ --text-primary: #111827;
9
+ --text-secondary: #374151;
10
+ --text-tertiary: #6b7280;
11
+ --text-inverse: #ffffff;
12
+ --text-on-brand: #ffffff;
13
+ --brand-primary: #1d4ed8;
14
+ --brand-secondary: #1e3a8a;
15
+ --brand-accent: #2563eb;
16
+ --brand-glow: #dbeafe;
17
+ --state-success: #15803d;
18
+ --state-error: #b91c1c;
19
+ --state-info: #1d4ed8;
20
+ --state-warning: #b45309;
21
+ --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.08);
22
+ --assistant-radius-shell: 6px;
23
+ --assistant-radius-item: 4px;
24
+ --assistant-radius-bubble: 4px;
25
+ --assistant-radius-inline: 3px;
26
+ --shadow-sm: 0 2px 6px rgba(15, 23, 42, 0.08);
27
+ --shadow-md: 0 6px 16px rgba(15, 23, 42, 0.1);
28
+ --shadow-lg: 0 8px 24px rgba(15, 23, 42, 0.12);
29
29
  color: var(--text-primary);
30
30
  font-family:
31
31
  "Inter",
@@ -35,6 +35,8 @@
35
35
  -apple-system,
36
36
  BlinkMacSystemFont,
37
37
  sans-serif;
38
+ font-size: 16px;
39
+ line-height: 1.5;
38
40
  }
39
41
 
40
42
  .lemma-assistant-theme,
@@ -62,87 +64,87 @@
62
64
  .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]),
63
65
  .lemma-assistant-theme[data-lemma-theme="auto"] {
64
66
  color-scheme: dark;
65
- --bg-canvas: #12100d;
66
- --bg-surface: #1b1814;
67
- --bg-subtle: #272118;
68
- --border-default: #3d3428;
69
- --border-subtle: #2d261d;
70
- --text-primary: #f5ede0;
71
- --text-secondary: #d0c3b1;
72
- --text-tertiary: #988d7d;
73
- --text-inverse: #15120f;
74
- --text-on-brand: #15120f;
75
- --brand-primary: #ead9b3;
76
- --brand-secondary: #8daa73;
77
- --brand-accent: #d9a44b;
78
- --brand-glow: #2d2418;
79
- --state-success: #7cbc72;
80
- --state-error: #ec8d74;
81
- --state-info: #7eb8f5;
82
- --state-warning: #e0b45d;
83
- --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.32);
84
- --shadow-sm: 0 10px 26px rgba(0, 0, 0, 0.32);
85
- --shadow-md: 0 20px 40px rgba(0, 0, 0, 0.4);
86
- --shadow-lg: 0 28px 56px rgba(0, 0, 0, 0.5);
67
+ --bg-canvas: #0f172a;
68
+ --bg-surface: #111827;
69
+ --bg-subtle: #1f2937;
70
+ --border-default: #334155;
71
+ --border-subtle: #273448;
72
+ --text-primary: #f8fafc;
73
+ --text-secondary: #d1d5db;
74
+ --text-tertiary: #94a3b8;
75
+ --text-inverse: #0f172a;
76
+ --text-on-brand: #ffffff;
77
+ --brand-primary: #2563eb;
78
+ --brand-secondary: #1d4ed8;
79
+ --brand-accent: #60a5fa;
80
+ --brand-glow: rgba(30, 64, 175, 0.24);
81
+ --state-success: #4ade80;
82
+ --state-error: #f87171;
83
+ --state-info: #60a5fa;
84
+ --state-warning: #fbbf24;
85
+ --shadow-xs: 0 1px 2px rgba(2, 6, 23, 0.35);
86
+ --shadow-sm: 0 2px 8px rgba(2, 6, 23, 0.35);
87
+ --shadow-md: 0 8px 20px rgba(2, 6, 23, 0.45);
88
+ --shadow-lg: 0 12px 28px rgba(2, 6, 23, 0.55);
87
89
  }
88
90
  }
89
91
 
90
92
  :where(.light, [data-theme="light"], [data-color-scheme="light"], [data-mode="light"]) .lemma-assistant-theme:not([data-lemma-theme="dark"]),
91
93
  .lemma-assistant-theme[data-lemma-theme="light"] {
92
94
  color-scheme: light;
93
- --bg-canvas: #f6f2ea;
94
- --bg-surface: #fffdf9;
95
- --bg-subtle: #f1ebde;
96
- --border-default: #ddd2bb;
97
- --border-subtle: #ebe2d0;
98
- --text-primary: #241f16;
99
- --text-secondary: #5c5344;
100
- --text-tertiary: #8a7f6f;
101
- --text-inverse: #fffdf9;
102
- --text-on-brand: #fffdf9;
103
- --brand-primary: #202418;
104
- --brand-secondary: #6e8c56;
105
- --brand-accent: #c78a2c;
106
- --brand-glow: #efe3c7;
107
- --state-success: #3e7a3c;
108
- --state-error: #b44d36;
109
- --state-info: #2f6fb2;
110
- --state-warning: #c78a2c;
111
- --shadow-xs: 0 1px 2px rgba(36, 31, 22, 0.08);
112
- --assistant-radius-shell: 20px;
113
- --assistant-radius-item: 16px;
114
- --assistant-radius-bubble: 16px;
115
- --assistant-radius-inline: 12px;
116
- --shadow-sm: 0 8px 24px rgba(36, 31, 22, 0.08);
117
- --shadow-md: 0 18px 36px rgba(36, 31, 22, 0.1);
118
- --shadow-lg: 0 24px 48px rgba(36, 31, 22, 0.14);
95
+ --bg-canvas: #f5f7fb;
96
+ --bg-surface: #ffffff;
97
+ --bg-subtle: #f3f4f6;
98
+ --border-default: #d4dae5;
99
+ --border-subtle: #e6ebf2;
100
+ --text-primary: #111827;
101
+ --text-secondary: #374151;
102
+ --text-tertiary: #6b7280;
103
+ --text-inverse: #ffffff;
104
+ --text-on-brand: #ffffff;
105
+ --brand-primary: #1d4ed8;
106
+ --brand-secondary: #1e3a8a;
107
+ --brand-accent: #2563eb;
108
+ --brand-glow: #dbeafe;
109
+ --state-success: #15803d;
110
+ --state-error: #b91c1c;
111
+ --state-info: #1d4ed8;
112
+ --state-warning: #b45309;
113
+ --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.08);
114
+ --assistant-radius-shell: 6px;
115
+ --assistant-radius-item: 4px;
116
+ --assistant-radius-bubble: 4px;
117
+ --assistant-radius-inline: 3px;
118
+ --shadow-sm: 0 2px 6px rgba(15, 23, 42, 0.08);
119
+ --shadow-md: 0 6px 16px rgba(15, 23, 42, 0.1);
120
+ --shadow-lg: 0 8px 24px rgba(15, 23, 42, 0.12);
119
121
  }
120
122
 
121
123
  :where(.dark, [data-theme="dark"], [data-color-scheme="dark"], [data-mode="dark"]) .lemma-assistant-theme:not([data-lemma-theme="light"]),
122
124
  .lemma-assistant-theme[data-lemma-theme="dark"] {
123
125
  color-scheme: dark;
124
- --bg-canvas: #12100d;
125
- --bg-surface: #1b1814;
126
- --bg-subtle: #272118;
127
- --border-default: #3d3428;
128
- --border-subtle: #2d261d;
129
- --text-primary: #f5ede0;
130
- --text-secondary: #d0c3b1;
131
- --text-tertiary: #988d7d;
132
- --text-inverse: #15120f;
133
- --text-on-brand: #15120f;
134
- --brand-primary: #ead9b3;
135
- --brand-secondary: #8daa73;
136
- --brand-accent: #d9a44b;
137
- --brand-glow: #2d2418;
138
- --state-success: #7cbc72;
139
- --state-error: #ec8d74;
140
- --state-info: #7eb8f5;
141
- --state-warning: #e0b45d;
142
- --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.32);
143
- --shadow-sm: 0 10px 26px rgba(0, 0, 0, 0.32);
144
- --shadow-md: 0 20px 40px rgba(0, 0, 0, 0.4);
145
- --shadow-lg: 0 28px 56px rgba(0, 0, 0, 0.5);
126
+ --bg-canvas: #0f172a;
127
+ --bg-surface: #111827;
128
+ --bg-subtle: #1f2937;
129
+ --border-default: #334155;
130
+ --border-subtle: #273448;
131
+ --text-primary: #f8fafc;
132
+ --text-secondary: #d1d5db;
133
+ --text-tertiary: #94a3b8;
134
+ --text-inverse: #0f172a;
135
+ --text-on-brand: #ffffff;
136
+ --brand-primary: #2563eb;
137
+ --brand-secondary: #1d4ed8;
138
+ --brand-accent: #60a5fa;
139
+ --brand-glow: rgba(30, 64, 175, 0.24);
140
+ --state-success: #4ade80;
141
+ --state-error: #f87171;
142
+ --state-info: #60a5fa;
143
+ --state-warning: #fbbf24;
144
+ --shadow-xs: 0 1px 2px rgba(2, 6, 23, 0.35);
145
+ --shadow-sm: 0 2px 8px rgba(2, 6, 23, 0.35);
146
+ --shadow-md: 0 8px 20px rgba(2, 6, 23, 0.45);
147
+ --shadow-lg: 0 12px 28px rgba(2, 6, 23, 0.55);
146
148
  }
147
149
 
148
150
  .lemma-assistant-embedded {
@@ -160,31 +162,31 @@
160
162
  }
161
163
 
162
164
  .lemma-assistant-experience[data-radius="sm"] {
163
- --assistant-radius-shell: 14px;
164
- --assistant-radius-item: 10px;
165
- --assistant-radius-bubble: 10px;
166
- --assistant-radius-inline: 8px;
165
+ --assistant-radius-shell: 6px;
166
+ --assistant-radius-item: 4px;
167
+ --assistant-radius-bubble: 4px;
168
+ --assistant-radius-inline: 3px;
167
169
  }
168
170
 
169
171
  .lemma-assistant-experience[data-radius="md"] {
170
- --assistant-radius-shell: 20px;
171
- --assistant-radius-item: 16px;
172
- --assistant-radius-bubble: 16px;
173
- --assistant-radius-inline: 12px;
172
+ --assistant-radius-shell: 10px;
173
+ --assistant-radius-item: 8px;
174
+ --assistant-radius-bubble: 8px;
175
+ --assistant-radius-inline: 6px;
174
176
  }
175
177
 
176
178
  .lemma-assistant-experience[data-radius="lg"] {
177
- --assistant-radius-shell: 24px;
178
- --assistant-radius-item: 18px;
179
- --assistant-radius-bubble: 18px;
180
- --assistant-radius-inline: 14px;
179
+ --assistant-radius-shell: 14px;
180
+ --assistant-radius-item: 12px;
181
+ --assistant-radius-bubble: 12px;
182
+ --assistant-radius-inline: 8px;
181
183
  }
182
184
 
183
185
  .lemma-assistant-experience[data-radius="xl"] {
184
- --assistant-radius-shell: 30px;
185
- --assistant-radius-item: 22px;
186
- --assistant-radius-bubble: 22px;
187
- --assistant-radius-inline: 16px;
186
+ --assistant-radius-shell: 18px;
187
+ --assistant-radius-item: 16px;
188
+ --assistant-radius-bubble: 16px;
189
+ --assistant-radius-inline: 10px;
188
190
  }
189
191
 
190
192
  .lemma-assistant-markdown {
@@ -295,7 +297,7 @@
295
297
  margin: 0 0.08rem;
296
298
  padding: 0.1rem 0.42rem;
297
299
  border: 1px solid color-mix(in srgb, var(--border-default) 82%, transparent);
298
- border-radius: 999px;
300
+ border-radius: var(--assistant-radius-inline);
299
301
  background: color-mix(in srgb, var(--bg-subtle) 88%, transparent);
300
302
  color: var(--text-primary);
301
303
  font-size: 0.92em;
@@ -349,7 +351,7 @@
349
351
 
350
352
  .lemma-assistant-markdown img {
351
353
  max-width: 100%;
352
- border-radius: 14px;
354
+ border-radius: var(--assistant-radius-inline);
353
355
  }
354
356
 
355
357
  .lemma-assistant-message-user-bubble .lemma-assistant-markdown,
@@ -480,13 +482,11 @@
480
482
 
481
483
  .lemma-assistant-conversation-list,
482
484
  .lemma-assistant-experience-sidebar,
483
- .lemma-assistant-experience-card,
484
- .lemma-assistant-composer,
485
- .lemma-assistant-experience-composer {
485
+ .lemma-assistant-experience-card {
486
486
  background: var(--bg-surface);
487
487
  border: 1px solid var(--border-default);
488
488
  border-radius: var(--assistant-radius-shell);
489
- box-shadow: var(--shadow-lg);
489
+ box-shadow: var(--shadow-sm);
490
490
  }
491
491
 
492
492
  .lemma-assistant-conversation-list-header,
@@ -527,8 +527,8 @@
527
527
  .lemma-assistant-experience-model-picker {
528
528
  appearance: none;
529
529
  min-width: 132px;
530
- border-color: transparent;
531
- background: color-mix(in srgb, var(--bg-surface) 88%, transparent);
530
+ border-color: color-mix(in srgb, var(--border-default) 86%, transparent);
531
+ background: var(--bg-surface);
532
532
  }
533
533
 
534
534
  .lemma-assistant-viewport,
@@ -546,22 +546,25 @@
546
546
  .lemma-assistant-composer,
547
547
  .lemma-assistant-experience-composer {
548
548
  position: relative;
549
- padding: 8px;
550
- box-shadow: var(--shadow-md);
549
+ padding: 0;
550
+ background: transparent;
551
+ border: 0;
552
+ border-radius: 0;
553
+ box-shadow: none;
551
554
  }
552
555
 
553
556
 
554
557
  .lemma-assistant-composer[data-tone="subtle"],
555
558
  .lemma-assistant-experience-composer[data-tone="subtle"] {
556
- background: color-mix(in srgb, var(--bg-surface) 96%, transparent);
557
- border-color: color-mix(in srgb, var(--border-default) 88%, transparent);
558
- box-shadow: var(--shadow-sm);
559
+ background: transparent;
560
+ border: 0;
561
+ box-shadow: none;
559
562
  }
560
563
 
561
564
  .lemma-assistant-composer[data-tone="flat"],
562
565
  .lemma-assistant-experience-composer[data-tone="flat"] {
563
566
  background: transparent;
564
- border-color: transparent;
567
+ border: 0;
565
568
  box-shadow: none;
566
569
  padding: 0;
567
570
  }
@@ -601,17 +604,17 @@
601
604
  .lemma-assistant-experience-new,
602
605
  .lemma-assistant-conversation-list-new,
603
606
  .lemma-assistant-experience-sidebar-new {
604
- background: color-mix(in srgb, var(--bg-surface) 90%, transparent);
605
- backdrop-filter: blur(12px);
607
+ background: var(--bg-surface);
608
+ border: 1px solid color-mix(in srgb, var(--border-default) 88%, transparent);
606
609
  }
607
610
 
608
611
  .lemma-assistant-experience-new {
609
- border: 0;
612
+ border: 1px solid color-mix(in srgb, var(--border-default) 88%, transparent);
610
613
  }
611
614
 
612
615
  .lemma-assistant-experience[data-chrome-style="subtle"] .lemma-assistant-experience-card,
613
616
  .lemma-assistant-experience[data-chrome-style="subtle"] .lemma-assistant-experience-sidebar {
614
- box-shadow: var(--shadow-md);
617
+ box-shadow: var(--shadow-sm);
615
618
  }
616
619
 
617
620
  .lemma-assistant-experience[data-chrome-style="flat"] .lemma-assistant-experience-card,
@@ -624,7 +627,7 @@
624
627
  .lemma-assistant-plan-strip {
625
628
  background: var(--bg-surface);
626
629
  border-color: color-mix(in srgb, var(--border-default) 88%, transparent);
627
- box-shadow: var(--shadow-sm);
630
+ box-shadow: none;
628
631
  border-radius: var(--assistant-radius-shell);
629
632
  }
630
633
 
@@ -796,7 +799,7 @@
796
799
  }
797
800
 
798
801
  .lemma-assistant-experience-input-row {
799
- align-items: flex-end;
802
+ align-items: center;
800
803
  gap: 8px;
801
804
  }
802
805
 
@@ -839,6 +842,35 @@
839
842
  gap: 12px;
840
843
  }
841
844
 
845
+ .lemma-assistant-experience-live-region {
846
+ display: flex;
847
+ flex-direction: column;
848
+ gap: 12px;
849
+ min-width: 0;
850
+ }
851
+
852
+ .lemma-assistant-scroll-to-bottom {
853
+ position: sticky;
854
+ bottom: 12px;
855
+ margin-left: auto;
856
+ width: 34px;
857
+ height: 34px;
858
+ border: 1px solid color-mix(in srgb, var(--border-default) 84%, transparent);
859
+ border-radius: var(--assistant-radius-inline);
860
+ background: var(--bg-surface);
861
+ color: var(--text-secondary);
862
+ box-shadow: var(--shadow-sm);
863
+ cursor: pointer;
864
+ z-index: 10;
865
+ transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
866
+ }
867
+
868
+ .lemma-assistant-scroll-to-bottom:hover {
869
+ border-color: color-mix(in srgb, var(--brand-primary) 52%, var(--border-default));
870
+ color: var(--text-primary);
871
+ background: color-mix(in srgb, var(--bg-subtle) 90%, var(--bg-surface));
872
+ }
873
+
842
874
  .lemma-assistant-header,
843
875
  .lemma-assistant-experience-header,
844
876
  .lemma-assistant-conversation-list-header,
@@ -852,7 +884,7 @@
852
884
  justify-content: center;
853
885
  width: 28px;
854
886
  height: 28px;
855
- border-radius: 999px;
887
+ border-radius: var(--assistant-radius-inline);
856
888
  background: linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));
857
889
  box-shadow: var(--shadow-xs);
858
890
  flex: 0 0 auto;
@@ -861,7 +893,7 @@
861
893
  .lemma-assistant-header-title,
862
894
  .lemma-assistant-conversation-list-title,
863
895
  .lemma-assistant-experience-sidebar-title {
864
- font-size: 13px;
896
+ font-size: 14px;
865
897
  font-weight: 600;
866
898
  line-height: 1.2;
867
899
  color: var(--text-primary);
@@ -871,7 +903,7 @@
871
903
  .lemma-assistant-conversation-list-meta,
872
904
  .lemma-assistant-experience-sidebar-meta {
873
905
  margin-top: 4px;
874
- font-size: 11px;
906
+ font-size: 12px;
875
907
  color: var(--text-tertiary);
876
908
  }
877
909
 
@@ -914,7 +946,7 @@
914
946
 
915
947
  .lemma-assistant-conversation-list-item-title,
916
948
  .lemma-assistant-experience-sidebar-item-title {
917
- font-size: 12px;
949
+ font-size: 13px;
918
950
  font-weight: 500;
919
951
  color: var(--text-primary);
920
952
  }
@@ -922,7 +954,7 @@
922
954
  .lemma-assistant-conversation-list-item-status,
923
955
  .lemma-assistant-experience-sidebar-item-status {
924
956
  margin-top: 4px;
925
- font-size: 10px;
957
+ font-size: 11px;
926
958
  letter-spacing: 0.08em;
927
959
  text-transform: uppercase;
928
960
  color: var(--text-tertiary);
@@ -935,14 +967,14 @@
935
967
  align-items: center;
936
968
  justify-content: center;
937
969
  gap: 8px;
938
- border-radius: 999px;
970
+ border-radius: var(--assistant-radius-inline);
939
971
  border: 1px solid color-mix(in srgb, var(--border-default) 88%, transparent);
940
- background: color-mix(in srgb, var(--bg-surface) 90%, transparent);
972
+ background: var(--bg-surface);
941
973
  padding: 6px 12px;
942
- font-size: 11px;
974
+ font-size: 12px;
943
975
  font-weight: 500;
944
976
  color: var(--text-secondary);
945
- box-shadow: var(--shadow-xs);
977
+ box-shadow: none;
946
978
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
947
979
  }
948
980
 
@@ -956,10 +988,10 @@
956
988
  .lemma-assistant-model-picker,
957
989
  .lemma-assistant-experience-model-picker {
958
990
  height: 32px;
959
- border-radius: 999px;
991
+ border-radius: var(--assistant-radius-inline);
960
992
  border: 1px solid color-mix(in srgb, var(--border-default) 80%, transparent);
961
993
  padding: 0 12px;
962
- font-size: 11px;
994
+ font-size: 12px;
963
995
  color: var(--text-secondary);
964
996
  }
965
997
 
@@ -1105,7 +1137,7 @@
1105
1137
  padding: 4px 8px;
1106
1138
  background: var(--bg-subtle);
1107
1139
  color: var(--text-secondary);
1108
- font-size: 11px;
1140
+ font-size: 12px;
1109
1141
  }
1110
1142
 
1111
1143
  .lemma-assistant-pending-file-chip-label {
@@ -1118,7 +1150,7 @@
1118
1150
  justify-content: center;
1119
1151
  width: 16px;
1120
1152
  height: 16px;
1121
- border-radius: 999px;
1153
+ border-radius: var(--assistant-radius-inline);
1122
1154
  }
1123
1155
 
1124
1156
  .lemma-assistant-pending-file-chip-remove:hover {
@@ -1129,11 +1161,11 @@
1129
1161
  min-height: 30px;
1130
1162
  max-width: 100%;
1131
1163
  padding: 6px 12px;
1132
- border-radius: 999px;
1164
+ border-radius: var(--assistant-radius-inline);
1133
1165
  border: 1px solid color-mix(in srgb, var(--brand-primary) 24%, var(--border-default));
1134
1166
  background: color-mix(in srgb, var(--brand-glow) 28%, var(--bg-surface));
1135
1167
  color: var(--text-secondary);
1136
- font-size: 12px;
1168
+ font-size: 13px;
1137
1169
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, opacity 160ms ease;
1138
1170
  }
1139
1171
 
@@ -1236,7 +1268,7 @@
1236
1268
  .lemma-assistant-plan-strip-active {
1237
1269
  display: inline-flex;
1238
1270
  align-items: center;
1239
- border-radius: 999px;
1271
+ border-radius: var(--assistant-radius-inline);
1240
1272
  background: color-mix(in srgb, var(--brand-primary) 16%, transparent);
1241
1273
  padding: 2px 6px;
1242
1274
  font-size: 10px;
@@ -1351,7 +1383,15 @@
1351
1383
  flex: 0 0 auto;
1352
1384
  }
1353
1385
 
1354
- .lemma-assistant-thinking-text,
1386
+ .lemma-assistant-thinking-dot {
1387
+ animation: lemma-assistant-dot-pulse 1.25s ease-in-out infinite;
1388
+ }
1389
+
1390
+ .lemma-assistant-thinking-text {
1391
+ font-weight: 600;
1392
+ color: var(--text-secondary);
1393
+ }
1394
+
1355
1395
  .lemma-assistant-reasoning-label-streaming {
1356
1396
  font-weight: 600;
1357
1397
  color: transparent;
@@ -1373,18 +1413,22 @@
1373
1413
  width: 40px;
1374
1414
  height: 40px;
1375
1415
  margin-bottom: 12px;
1376
- border-radius: 999px;
1416
+ border-radius: var(--assistant-radius-inline);
1377
1417
  background: linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));
1378
1418
  box-shadow: var(--shadow-xs);
1379
1419
  }
1380
1420
 
1381
1421
  .lemma-assistant-empty-state-badge-icon,
1382
1422
  .lemma-assistant-experience-header-badge-icon {
1423
+ display: block;
1424
+ width: 18px;
1425
+ height: 18px;
1383
1426
  color: var(--text-on-brand);
1384
1427
  }
1385
1428
 
1386
1429
  .lemma-assistant-empty-state-badge-icon {
1387
- font-size: 18px;
1430
+ width: 20px;
1431
+ height: 20px;
1388
1432
  }
1389
1433
 
1390
1434
  .lemma-assistant-empty-state-title {
@@ -1406,6 +1450,7 @@
1406
1450
  cursor: pointer;
1407
1451
  justify-content: flex-start;
1408
1452
  border: 1px solid var(--border-default);
1453
+ border-left: 3px solid transparent;
1409
1454
  border-radius: calc(var(--assistant-radius-inline) + 2px);
1410
1455
  background: var(--bg-surface);
1411
1456
  padding: 10px 12px;
@@ -1417,6 +1462,7 @@
1417
1462
 
1418
1463
  .lemma-assistant-empty-state-suggestion:hover {
1419
1464
  border-color: color-mix(in srgb, var(--brand-accent) 52%, var(--border-subtle));
1465
+ border-left-color: color-mix(in srgb, var(--brand-accent) 72%, var(--brand-primary));
1420
1466
  background: color-mix(in srgb, var(--brand-glow) 72%, var(--bg-surface));
1421
1467
  color: var(--text-primary);
1422
1468
  }
@@ -1486,14 +1532,35 @@
1486
1532
  color: var(--text-secondary);
1487
1533
  }
1488
1534
 
1489
- .lemma-assistant-reasoning-body,
1490
- .lemma-assistant-tool-rollup-details,
1491
- .lemma-assistant-tool-details-panel {
1535
+ .lemma-assistant-reasoning-body {
1492
1536
  margin-top: 4px;
1493
1537
  padding-left: 16px;
1494
1538
  border-left: 1px solid var(--border-default);
1495
1539
  }
1496
1540
 
1541
+ .lemma-assistant-tool-rollup-details {
1542
+ display: flex;
1543
+ flex-direction: column;
1544
+ gap: 8px;
1545
+ margin-left: 4px;
1546
+ padding-left: 12px;
1547
+ border-left: 1px solid color-mix(in srgb, var(--border-default) 86%, transparent);
1548
+ }
1549
+
1550
+ .lemma-assistant-tool-rollup-details-single {
1551
+ margin-left: 0;
1552
+ padding-left: 0;
1553
+ border-left: 0;
1554
+ }
1555
+
1556
+ .lemma-assistant-tool-details-panel {
1557
+ margin-top: 6px;
1558
+ padding: 10px 12px;
1559
+ border: 1px solid color-mix(in srgb, var(--border-default) 86%, transparent);
1560
+ border-radius: var(--assistant-radius-inline);
1561
+ background: color-mix(in srgb, var(--bg-surface) 96%, var(--bg-canvas));
1562
+ }
1563
+
1497
1564
  .lemma-assistant-reasoning-text,
1498
1565
  .lemma-assistant-tool-rollup-thinking-text,
1499
1566
  .lemma-assistant-tool-details-code-text {
@@ -1510,65 +1577,142 @@
1510
1577
 
1511
1578
  .lemma-assistant-tool-details-header {
1512
1579
  display: flex;
1513
- align-items: center;
1580
+ align-items: flex-start;
1514
1581
  justify-content: space-between;
1515
1582
  gap: 8px;
1583
+ margin-bottom: 8px;
1584
+ }
1585
+
1586
+ .lemma-assistant-tool-details-heading {
1587
+ display: flex;
1588
+ flex-direction: column;
1589
+ gap: 2px;
1590
+ min-width: 0;
1516
1591
  }
1517
1592
 
1518
1593
  .lemma-assistant-tool-details-title {
1519
- font-size: 9px;
1520
- font-weight: 500;
1521
- letter-spacing: 0.03em;
1594
+ font-size: 14px;
1595
+ font-weight: 600;
1596
+ letter-spacing: 0;
1522
1597
  text-transform: none;
1523
- color: color-mix(in srgb, var(--text-tertiary) 92%, var(--text-secondary));
1598
+ color: var(--text-primary);
1599
+ }
1600
+
1601
+ .lemma-assistant-tool-details-meta {
1602
+ font-size: 12px;
1603
+ color: var(--text-tertiary);
1524
1604
  }
1525
1605
 
1526
1606
  .lemma-assistant-tool-details-label,
1527
1607
  .lemma-assistant-tool-rollup-thinking-title {
1528
- font-size: 9px;
1529
- font-weight: 500;
1530
- letter-spacing: 0.05em;
1531
- text-transform: uppercase;
1608
+ font-size: 12px;
1609
+ font-weight: 600;
1610
+ letter-spacing: 0.02em;
1611
+ text-transform: none;
1532
1612
  color: color-mix(in srgb, var(--text-tertiary) 88%, var(--text-secondary));
1533
1613
  }
1534
1614
 
1535
1615
  .lemma-assistant-tool-details-link {
1536
- border: 0;
1537
- background: transparent;
1538
- padding: 0;
1539
- font-size: 9px;
1540
- font-weight: 500;
1541
- color: color-mix(in srgb, var(--state-success) 78%, var(--text-tertiary));
1616
+ border: 1px solid color-mix(in srgb, var(--border-default) 85%, transparent);
1617
+ border-radius: var(--assistant-radius-inline);
1618
+ background: var(--bg-surface);
1619
+ padding: 3px 8px;
1620
+ font-size: 11px;
1621
+ font-weight: 600;
1622
+ color: var(--text-secondary);
1542
1623
  }
1543
1624
 
1544
1625
  .lemma-assistant-tool-details-panel-custom {
1545
1626
  min-width: 0;
1546
1627
  }
1547
1628
 
1548
- .lemma-assistant-tool-details-grid {
1629
+ .lemma-assistant-tool-details-stack {
1630
+ display: flex;
1631
+ flex-direction: column;
1632
+ gap: 0;
1633
+ }
1634
+
1635
+ .lemma-assistant-tool-details-section {
1636
+ min-width: 0;
1637
+ padding: 8px 0;
1638
+ }
1639
+
1640
+ .lemma-assistant-tool-details-section + .lemma-assistant-tool-details-section {
1641
+ border-top: 1px solid color-mix(in srgb, var(--border-default) 82%, transparent);
1642
+ }
1643
+
1644
+ .lemma-assistant-tool-details-list {
1645
+ margin: 6px 0 0;
1646
+ display: flex;
1647
+ flex-direction: column;
1648
+ gap: 6px;
1649
+ }
1650
+
1651
+ .lemma-assistant-tool-details-list-item {
1549
1652
  display: grid;
1550
- grid-template-columns: repeat(1, minmax(0, 1fr));
1653
+ grid-template-columns: minmax(96px, auto) minmax(0, 1fr);
1551
1654
  gap: 8px;
1655
+ align-items: start;
1552
1656
  }
1553
1657
 
1554
- @media (min-width: 640px) {
1555
- .lemma-assistant-tool-details-grid {
1556
- grid-template-columns: repeat(2, minmax(0, 1fr));
1557
- }
1658
+ .lemma-assistant-tool-details-key {
1659
+ margin: 0;
1660
+ font-size: 12px;
1661
+ font-weight: 600;
1662
+ color: var(--text-tertiary);
1663
+ text-transform: none;
1558
1664
  }
1559
1665
 
1560
- .lemma-assistant-tool-details-section {
1561
- min-width: 0;
1666
+ .lemma-assistant-tool-details-value {
1667
+ margin: 0;
1668
+ font-size: 13px;
1669
+ line-height: 1.55;
1670
+ color: var(--text-primary);
1671
+ overflow-wrap: anywhere;
1672
+ }
1673
+
1674
+ .lemma-assistant-tool-details-empty {
1675
+ margin: 6px 0 0;
1676
+ font-size: 12px;
1677
+ color: var(--text-tertiary);
1678
+ }
1679
+
1680
+ .lemma-assistant-tool-details-more {
1681
+ margin-top: 6px;
1682
+ font-size: 11px;
1683
+ color: var(--text-tertiary);
1684
+ }
1685
+
1686
+ .lemma-assistant-tool-details-raw {
1687
+ margin-top: 8px;
1688
+ }
1689
+
1690
+ .lemma-assistant-tool-details-raw-row {
1691
+ display: flex;
1692
+ flex-wrap: wrap;
1693
+ gap: 14px;
1694
+ }
1695
+
1696
+ .lemma-assistant-tool-details-raw-summary {
1697
+ cursor: pointer;
1698
+ list-style: none;
1699
+ font-size: 12px;
1700
+ font-weight: 600;
1701
+ color: color-mix(in srgb, var(--text-tertiary) 84%, var(--text-secondary));
1702
+ }
1703
+
1704
+ .lemma-assistant-tool-details-raw-summary::-webkit-details-marker {
1705
+ display: none;
1562
1706
  }
1563
1707
 
1564
1708
  .lemma-assistant-tool-details-code {
1565
- margin-top: 4px;
1566
- max-height: 96px;
1709
+ margin-top: 6px;
1710
+ max-height: 180px;
1567
1711
  overflow: auto;
1568
1712
  border-radius: var(--assistant-radius-inline);
1569
1713
  background: color-mix(in srgb, var(--bg-canvas) 70%, transparent);
1570
- padding: 8px;
1571
- font-size: 11px;
1714
+ padding: 10px;
1715
+ font-size: 12px;
1572
1716
  }
1573
1717
 
1574
1718
  .lemma-assistant-tool-details-code-text,
@@ -1579,16 +1723,16 @@
1579
1723
  .lemma-assistant-inline-tool-call {
1580
1724
  border: 0;
1581
1725
  background: transparent;
1582
- padding: 0;
1726
+ padding: 4px 0;
1583
1727
  width: 100%;
1584
- display: inline-flex;
1585
- align-items: center;
1586
- gap: 6px;
1728
+ display: grid;
1729
+ grid-template-columns: 18px minmax(0, 1fr);
1730
+ gap: 10px;
1587
1731
  text-align: left;
1588
- font-size: 10px;
1589
- line-height: 1.45;
1732
+ font-size: 14px;
1733
+ line-height: 1.5;
1590
1734
  color: var(--text-secondary);
1591
- transition: color 160ms ease;
1735
+ transition: color 160ms ease, background-color 160ms ease;
1592
1736
  }
1593
1737
 
1594
1738
  .lemma-assistant-inline-tool-call:hover {
@@ -1607,50 +1751,172 @@
1607
1751
  color: var(--state-error);
1608
1752
  }
1609
1753
 
1754
+ .lemma-assistant-inline-tool-call-rail {
1755
+ display: flex;
1756
+ flex-direction: column;
1757
+ align-items: center;
1758
+ padding-top: 6px;
1759
+ }
1760
+
1761
+ .lemma-assistant-inline-tool-call-node {
1762
+ width: 9px;
1763
+ height: 9px;
1764
+ border-radius: 999px;
1765
+ background: color-mix(in srgb, currentColor 80%, var(--text-tertiary));
1766
+ }
1767
+
1768
+ .lemma-assistant-inline-tool-call-stem {
1769
+ width: 1px;
1770
+ flex: 1 1 auto;
1771
+ min-height: 18px;
1772
+ margin-top: 6px;
1773
+ background: color-mix(in srgb, var(--border-default) 86%, transparent);
1774
+ }
1775
+
1776
+ .lemma-assistant-inline-tool-call-main {
1777
+ display: flex;
1778
+ flex-direction: column;
1779
+ gap: 3px;
1780
+ min-width: 0;
1781
+ }
1782
+
1783
+ .lemma-assistant-inline-tool-call-head {
1784
+ display: flex;
1785
+ align-items: flex-start;
1786
+ gap: 8px;
1787
+ min-width: 0;
1788
+ }
1789
+
1610
1790
  .lemma-assistant-inline-tool-call-name {
1611
- font-size: 9.5px;
1612
- font-weight: 500;
1791
+ font-size: 14px;
1792
+ font-weight: 600;
1793
+ white-space: normal;
1794
+ color: var(--text-primary);
1795
+ flex: 1 1 auto;
1796
+ }
1797
+
1798
+ .lemma-assistant-inline-tool-call-status {
1799
+ display: inline-flex;
1800
+ align-items: center;
1801
+ border-radius: var(--assistant-radius-inline);
1802
+ padding: 2px 8px;
1803
+ font-size: 12px;
1804
+ font-weight: 600;
1613
1805
  white-space: nowrap;
1614
- color: color-mix(in srgb, currentColor 78%, var(--text-tertiary));
1806
+ color: var(--text-secondary);
1807
+ background: color-mix(in srgb, var(--bg-subtle) 82%, var(--bg-surface));
1808
+ }
1809
+
1810
+ .lemma-assistant-inline-tool-call[data-state="executing"] .lemma-assistant-inline-tool-call-status {
1811
+ color: var(--state-info);
1812
+ background: color-mix(in srgb, var(--state-info) 14%, transparent);
1813
+ }
1814
+
1815
+ .lemma-assistant-inline-tool-call[data-state="complete"] .lemma-assistant-inline-tool-call-status {
1816
+ color: var(--state-success);
1817
+ background: color-mix(in srgb, var(--state-success) 14%, transparent);
1818
+ }
1819
+
1820
+ .lemma-assistant-inline-tool-call[data-state="failed"] .lemma-assistant-inline-tool-call-status {
1821
+ color: var(--state-error);
1822
+ background: color-mix(in srgb, var(--state-error) 14%, transparent);
1823
+ }
1824
+
1825
+ .lemma-assistant-inline-tool-call-meta {
1826
+ font-size: 12px;
1827
+ color: var(--text-tertiary);
1615
1828
  }
1616
1829
 
1617
1830
  .lemma-assistant-inline-tool-call-summary {
1618
- font-size: 9.5px;
1619
- color: color-mix(in srgb, currentColor 72%, var(--text-tertiary));
1620
- overflow: hidden;
1621
- text-overflow: ellipsis;
1622
- white-space: nowrap;
1831
+ display: inline-flex;
1832
+ align-items: center;
1833
+ width: fit-content;
1834
+ max-width: 100%;
1835
+ border-radius: var(--assistant-radius-inline);
1836
+ padding: 3px 9px;
1837
+ font-size: 12px;
1838
+ color: color-mix(in srgb, currentColor 82%, var(--text-tertiary));
1839
+ background: color-mix(in srgb, var(--bg-subtle) 78%, var(--bg-surface));
1840
+ overflow-wrap: anywhere;
1841
+ white-space: normal;
1623
1842
  }
1624
1843
 
1625
1844
  .lemma-assistant-inline-tool-call-caret {
1626
- margin-left: auto;
1845
+ color: var(--text-tertiary);
1846
+ margin-top: 1px;
1627
1847
  }
1628
1848
 
1629
1849
  .lemma-assistant-inline-tool-call[data-selected="true"] .lemma-assistant-inline-tool-call-caret {
1630
1850
  transform: rotate(90deg);
1631
1851
  }
1632
1852
 
1633
- .lemma-assistant-tool-rollup-toggle {
1853
+ .lemma-assistant-tool-rollup-banner {
1634
1854
  border: 0;
1635
1855
  background: transparent;
1636
- padding: 0;
1637
- gap: 6px;
1638
- font-size: 9.5px;
1639
- line-height: 1.45;
1640
- color: color-mix(in srgb, var(--text-tertiary) 92%, var(--text-secondary));
1641
- transition: color 160ms ease;
1856
+ width: 100%;
1857
+ padding: 4px 0 6px;
1858
+ display: flex;
1859
+ align-items: center;
1860
+ gap: 12px;
1861
+ cursor: pointer;
1862
+ color: var(--text-tertiary);
1863
+ }
1864
+
1865
+ .lemma-assistant-tool-rollup-banner:hover {
1866
+ color: var(--text-secondary);
1642
1867
  }
1643
1868
 
1644
- .lemma-assistant-tool-rollup-toggle:hover {
1645
- color: color-mix(in srgb, var(--text-secondary) 92%, var(--text-primary));
1869
+ .lemma-assistant-tool-rollup-banner:focus-visible {
1870
+ outline: 2px solid color-mix(in srgb, var(--brand-primary) 64%, transparent);
1871
+ outline-offset: 2px;
1872
+ border-radius: var(--assistant-radius-inline);
1873
+ }
1874
+
1875
+ .lemma-assistant-tool-rollup-banner-line {
1876
+ flex: 1 1 auto;
1877
+ min-width: 18px;
1878
+ height: 1px;
1879
+ background: color-mix(in srgb, var(--border-default) 84%, transparent);
1646
1880
  }
1647
1881
 
1648
- .lemma-assistant-tool-rollup-toggle[data-expanded="true"] .lemma-assistant-tool-rollup-caret {
1882
+ .lemma-assistant-tool-rollup-banner-copy {
1883
+ display: inline-flex;
1884
+ align-items: center;
1885
+ gap: 8px;
1886
+ min-width: 0;
1887
+ }
1888
+
1889
+ .lemma-assistant-tool-rollup-banner-label {
1890
+ font-size: 13px;
1891
+ line-height: 1.4;
1892
+ white-space: nowrap;
1893
+ overflow: hidden;
1894
+ text-overflow: ellipsis;
1895
+ }
1896
+
1897
+ .lemma-assistant-tool-rollup-banner-label-working {
1898
+ color: color-mix(in srgb, var(--text-secondary) 82%, var(--text-primary));
1899
+ }
1900
+
1901
+ .lemma-assistant-tool-rollup-banner-caret {
1902
+ font-size: 16px;
1903
+ line-height: 1;
1904
+ transition: transform 160ms ease;
1905
+ }
1906
+
1907
+ .lemma-assistant-tool-rollup-banner-caret[data-expanded="true"] {
1649
1908
  transform: rotate(90deg);
1650
1909
  }
1651
1910
 
1911
+ .lemma-assistant-tool-rollup-header {
1912
+ display: flex;
1913
+ align-items: center;
1914
+ gap: 8px;
1915
+ margin-bottom: 2px;
1916
+ }
1917
+
1652
1918
  .lemma-assistant-tool-rollup-summary {
1653
- font-size: 9.5px;
1919
+ font-size: 12px;
1654
1920
  color: color-mix(in srgb, var(--text-tertiary) 92%, var(--text-secondary));
1655
1921
  }
1656
1922
 
@@ -1661,15 +1927,24 @@
1661
1927
 
1662
1928
  .lemma-assistant-tool-rollup-thinking {
1663
1929
  border-radius: var(--assistant-radius-inline);
1664
- background: var(--bg-canvas);
1665
- padding: 8px 10px;
1930
+ border: 1px solid color-mix(in srgb, var(--border-default) 72%, transparent);
1931
+ border-left: 2px solid color-mix(in srgb, var(--border-default) 86%, transparent);
1932
+ background: color-mix(in srgb, var(--bg-subtle) 42%, transparent);
1933
+ padding: 7px 10px;
1666
1934
  }
1667
1935
 
1668
1936
  .lemma-assistant-tool-rollup-thinking-text {
1669
- max-height: 10rem;
1937
+ max-height: 7rem;
1670
1938
  overflow: auto;
1939
+ font-size: 12px;
1940
+ line-height: 1.5;
1941
+ color: color-mix(in srgb, var(--text-tertiary) 92%, var(--text-secondary));
1942
+ }
1943
+
1944
+ .lemma-assistant-tool-rollup-thinking-title {
1671
1945
  font-size: 11px;
1672
- line-height: 1.45;
1946
+ font-weight: 500;
1947
+ color: color-mix(in srgb, var(--text-tertiary) 94%, var(--text-secondary));
1673
1948
  }
1674
1949
 
1675
1950
  .lemma-assistant-widget-card-header {
@@ -1687,7 +1962,7 @@
1687
1962
  display: inline-flex;
1688
1963
  align-items: center;
1689
1964
  gap: 4px;
1690
- border-radius: 6px;
1965
+ border-radius: var(--assistant-radius-inline);
1691
1966
  padding: 2px 6px;
1692
1967
  font-size: 10px;
1693
1968
  font-weight: 500;
@@ -1732,6 +2007,20 @@
1732
2007
  display: flex;
1733
2008
  flex-direction: column;
1734
2009
  gap: 6px;
2010
+ position: relative;
2011
+ }
2012
+
2013
+ .lemma-assistant-message-timestamp {
2014
+ position: static;
2015
+ font-size: 11px;
2016
+ color: var(--text-tertiary);
2017
+ line-height: 1.2;
2018
+ }
2019
+
2020
+ .lemma-assistant-message-timestamp-user {
2021
+ align-self: flex-end;
2022
+ margin-right: 4px;
2023
+ opacity: 0.78;
1735
2024
  }
1736
2025
 
1737
2026
  .lemma-assistant-message-assistant {
@@ -1740,6 +2029,7 @@
1740
2029
 
1741
2030
  .lemma-assistant-message-user {
1742
2031
  display: flex;
2032
+ align-items: flex-end;
1743
2033
  justify-content: flex-end;
1744
2034
  max-width: none;
1745
2035
  }
@@ -1754,7 +2044,7 @@
1754
2044
  }
1755
2045
 
1756
2046
  .lemma-assistant-message-header {
1757
- font-size: 11px;
2047
+ font-size: 12px;
1758
2048
  color: var(--text-tertiary);
1759
2049
  }
1760
2050
 
@@ -1762,7 +2052,7 @@
1762
2052
  display: inline-block;
1763
2053
  width: 6px;
1764
2054
  height: 6px;
1765
- border-radius: 999px;
2055
+ border-radius: var(--assistant-radius-inline);
1766
2056
  background: color-mix(in srgb, var(--brand-primary) 40%, transparent);
1767
2057
  flex: 0 0 auto;
1768
2058
  }
@@ -1774,7 +2064,7 @@
1774
2064
  }
1775
2065
 
1776
2066
  .lemma-assistant-message-text {
1777
- font-size: 13px;
2067
+ font-size: 14px;
1778
2068
  line-height: 1.6;
1779
2069
  color: var(--text-secondary);
1780
2070
  }
@@ -1806,11 +2096,11 @@
1806
2096
  }
1807
2097
 
1808
2098
  .lemma-assistant-experience-new {
1809
- border: 0;
1810
- background: transparent;
2099
+ border: 1px solid color-mix(in srgb, var(--border-default) 88%, transparent);
2100
+ background: var(--bg-surface);
1811
2101
  width: 32px;
1812
2102
  height: 32px;
1813
- border-radius: 999px;
2103
+ border-radius: var(--assistant-radius-inline);
1814
2104
  color: var(--text-tertiary);
1815
2105
  }
1816
2106
 
@@ -1900,6 +2190,16 @@
1900
2190
 
1901
2191
  .lemma-assistant-experience-input-row {
1902
2192
  position: relative;
2193
+ padding: 6px 8px;
2194
+ border: 1px solid color-mix(in srgb, var(--border-default) 88%, transparent);
2195
+ border-radius: var(--assistant-radius-inline);
2196
+ background: var(--bg-surface);
2197
+ transition: border-color 160ms ease, box-shadow 160ms ease;
2198
+ }
2199
+
2200
+ .lemma-assistant-experience-input-row:focus-within {
2201
+ border-color: color-mix(in srgb, var(--brand-primary) 62%, var(--border-default));
2202
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--brand-primary) 22%, transparent);
1903
2203
  }
1904
2204
 
1905
2205
  .lemma-assistant-experience-file-input {
@@ -1908,18 +2208,19 @@
1908
2208
 
1909
2209
  .lemma-assistant-experience-upload,
1910
2210
  .lemma-assistant-experience-send {
1911
- border: 0;
2211
+ border: 1px solid color-mix(in srgb, var(--border-default) 88%, transparent);
1912
2212
  display: inline-flex;
1913
2213
  align-items: center;
1914
2214
  justify-content: center;
1915
2215
  width: 36px;
1916
2216
  height: 36px;
1917
- border-radius: 999px;
2217
+ border-radius: var(--assistant-radius-inline);
1918
2218
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
1919
2219
  }
1920
2220
 
1921
2221
  .lemma-assistant-experience-upload {
1922
- margin: 0 0 6px 4px;
2222
+ align-self: center;
2223
+ margin: 0;
1923
2224
  background: var(--bg-subtle);
1924
2225
  color: var(--text-secondary);
1925
2226
  }
@@ -1941,10 +2242,11 @@
1941
2242
  border: 0;
1942
2243
  background: transparent;
1943
2244
  padding: 10px 12px;
1944
- font-size: 14px;
2245
+ font-size: 15px;
1945
2246
  line-height: 1.6;
1946
2247
  color: var(--text-primary);
1947
2248
  outline: none;
2249
+ transition: height 140ms ease;
1948
2250
  }
1949
2251
 
1950
2252
  .lemma-assistant-experience-textarea::placeholder {
@@ -1952,7 +2254,8 @@
1952
2254
  }
1953
2255
 
1954
2256
  .lemma-assistant-experience-send-wrap {
1955
- padding: 0 6px 6px 0;
2257
+ align-self: center;
2258
+ padding: 0;
1956
2259
  }
1957
2260
 
1958
2261
  .lemma-assistant-experience-send[data-state="busy"] {
@@ -1993,6 +2296,62 @@
1993
2296
  }
1994
2297
  }
1995
2298
 
2299
+ @media (prefers-color-scheme: dark) {
2300
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-status-pill,
2301
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-status-pill {
2302
+ background: color-mix(in srgb, var(--brand-glow) 45%, var(--bg-surface));
2303
+ }
2304
+
2305
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-experience-sidebar-item-active,
2306
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-experience-sidebar-item-active,
2307
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-conversation-list-item-active,
2308
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-conversation-list-item-active {
2309
+ background: var(--bg-surface);
2310
+ border-color: color-mix(in srgb, var(--brand-primary) 52%, var(--border-default));
2311
+ }
2312
+
2313
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-markdown pre,
2314
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-markdown pre,
2315
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-tool-details-code,
2316
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-tool-details-code {
2317
+ background: color-mix(in srgb, var(--bg-canvas) 88%, var(--bg-surface));
2318
+ }
2319
+
2320
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-tool-rollup-thinking,
2321
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-tool-rollup-thinking {
2322
+ background: color-mix(in srgb, var(--bg-subtle) 34%, transparent);
2323
+ border-color: color-mix(in srgb, var(--border-default) 74%, transparent);
2324
+ border-left-color: color-mix(in srgb, var(--border-default) 88%, transparent);
2325
+ }
2326
+ }
2327
+
2328
+ :where(.dark, [data-theme="dark"], [data-color-scheme="dark"], [data-mode="dark"]) .lemma-assistant-theme:not([data-lemma-theme="light"]) .lemma-assistant-status-pill,
2329
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-status-pill {
2330
+ background: color-mix(in srgb, var(--brand-glow) 45%, var(--bg-surface));
2331
+ }
2332
+
2333
+ :where(.dark, [data-theme="dark"], [data-color-scheme="dark"], [data-mode="dark"]) .lemma-assistant-theme:not([data-lemma-theme="light"]) .lemma-assistant-experience-sidebar-item-active,
2334
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-experience-sidebar-item-active,
2335
+ :where(.dark, [data-theme="dark"], [data-color-scheme="dark"], [data-mode="dark"]) .lemma-assistant-theme:not([data-lemma-theme="light"]) .lemma-assistant-conversation-list-item-active,
2336
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-conversation-list-item-active {
2337
+ background: var(--bg-surface);
2338
+ border-color: color-mix(in srgb, var(--brand-primary) 52%, var(--border-default));
2339
+ }
2340
+
2341
+ :where(.dark, [data-theme="dark"], [data-color-scheme="dark"], [data-mode="dark"]) .lemma-assistant-theme:not([data-lemma-theme="light"]) .lemma-assistant-markdown pre,
2342
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-markdown pre,
2343
+ :where(.dark, [data-theme="dark"], [data-color-scheme="dark"], [data-mode="dark"]) .lemma-assistant-theme:not([data-lemma-theme="light"]) .lemma-assistant-tool-details-code,
2344
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-tool-details-code {
2345
+ background: color-mix(in srgb, var(--bg-canvas) 88%, var(--bg-surface));
2346
+ }
2347
+
2348
+ :where(.dark, [data-theme="dark"], [data-color-scheme="dark"], [data-mode="dark"]) .lemma-assistant-theme:not([data-lemma-theme="light"]) .lemma-assistant-tool-rollup-thinking,
2349
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-tool-rollup-thinking {
2350
+ background: color-mix(in srgb, var(--bg-subtle) 34%, transparent);
2351
+ border-color: color-mix(in srgb, var(--border-default) 74%, transparent);
2352
+ border-left-color: color-mix(in srgb, var(--border-default) 88%, transparent);
2353
+ }
2354
+
1996
2355
  @keyframes lemma-assistant-fade-in {
1997
2356
  from {
1998
2357
  opacity: 0;
@@ -2013,6 +2372,23 @@
2013
2372
  }
2014
2373
  }
2015
2374
 
2375
+ @keyframes lemma-assistant-dot-pulse {
2376
+ 0% {
2377
+ transform: scale(0.9);
2378
+ opacity: 0.55;
2379
+ }
2380
+
2381
+ 50% {
2382
+ transform: scale(1.15);
2383
+ opacity: 1;
2384
+ }
2385
+
2386
+ 100% {
2387
+ transform: scale(0.9);
2388
+ opacity: 0.55;
2389
+ }
2390
+ }
2391
+
2016
2392
  @keyframes lemma-assistant-ping {
2017
2393
  0% {
2018
2394
  opacity: 0.55;