lemma-sdk 0.2.24 → 0.2.27

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 (75) hide show
  1. package/README.md +175 -506
  2. package/dist/browser/lemma-client.js +207 -12
  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 +10 -3
  11. package/dist/openapi_client/index.js +4 -2
  12. package/dist/openapi_client/models/ColumnSchema.d.ts +4 -0
  13. package/dist/openapi_client/models/CreateTableRequest.d.ts +1 -1
  14. package/dist/openapi_client/models/DataStoreFlowStart.d.ts +3 -6
  15. package/dist/openapi_client/models/DatastoreOperation.d.ts +5 -0
  16. package/dist/openapi_client/models/DatastoreOperation.js +10 -0
  17. package/dist/openapi_client/models/DatastoreQueryRequest.d.ts +1 -1
  18. package/dist/openapi_client/models/FlowInstallEntity.d.ts +2 -2
  19. package/dist/openapi_client/models/FlowResponse.d.ts +4 -3
  20. package/dist/openapi_client/models/{FlowStart.d.ts → FlowStart_Input.d.ts} +1 -1
  21. package/dist/openapi_client/models/FlowStart_Output.d.ts +14 -0
  22. package/dist/openapi_client/models/FlowStart_Output.js +1 -0
  23. package/dist/openapi_client/models/PodCreateRequest.d.ts +0 -4
  24. package/dist/openapi_client/models/PodJoinRequestApproveRequest.d.ts +6 -0
  25. package/dist/openapi_client/models/PodJoinRequestApproveRequest.js +1 -0
  26. package/dist/openapi_client/models/PodJoinRequestCreateResponse.d.ts +17 -0
  27. package/dist/openapi_client/models/PodJoinRequestCreateResponse.js +1 -0
  28. package/dist/openapi_client/models/PodJoinRequestListResponse.d.ts +7 -0
  29. package/dist/openapi_client/models/PodJoinRequestListResponse.js +1 -0
  30. package/dist/openapi_client/models/PodJoinRequestStatus.d.ts +5 -0
  31. package/dist/openapi_client/models/PodJoinRequestStatus.js +10 -0
  32. package/dist/openapi_client/models/PodMemberDetailResponse.d.ts +14 -0
  33. package/dist/openapi_client/models/PodMemberDetailResponse.js +1 -0
  34. package/dist/openapi_client/models/PodMemberResponse.d.ts +3 -3
  35. package/dist/openapi_client/models/PodResponse.d.ts +0 -5
  36. package/dist/openapi_client/models/PodUpdateRequest.d.ts +0 -4
  37. package/dist/openapi_client/models/WorkflowCreateRequest.d.ts +7 -6
  38. package/dist/openapi_client/models/WorkflowGraphUpdateRequest.d.ts +2 -2
  39. package/dist/openapi_client/models/WorkflowInstallMode.d.ts +7 -0
  40. package/dist/openapi_client/models/WorkflowInstallMode.js +12 -0
  41. package/dist/openapi_client/models/WorkflowUpdateRequest.d.ts +5 -4
  42. package/dist/openapi_client/services/FilesService.d.ts +1 -1
  43. package/dist/openapi_client/services/FilesService.js +1 -1
  44. package/dist/openapi_client/services/PodJoinRequestsService.d.ts +44 -0
  45. package/dist/openapi_client/services/PodJoinRequestsService.js +93 -0
  46. package/dist/openapi_client/services/PodMembersService.d.ts +14 -4
  47. package/dist/openapi_client/services/PodMembersService.js +29 -8
  48. package/dist/openapi_client/services/RecordsService.d.ts +2 -2
  49. package/dist/openapi_client/services/RecordsService.js +2 -2
  50. package/dist/openapi_client/services/WorkflowsService.d.ts +1 -1
  51. package/dist/openapi_client/services/WorkflowsService.js +1 -1
  52. package/dist/react/AuthGuard.d.ts +5 -2
  53. package/dist/react/AuthGuard.js +126 -3
  54. package/dist/react/components/AssistantChrome.js +1 -1
  55. package/dist/react/components/AssistantExperience.d.ts +7 -2
  56. package/dist/react/components/AssistantExperience.js +272 -32
  57. package/dist/react/components/assistant-types.d.ts +1 -0
  58. package/dist/react/index.d.ts +0 -2
  59. package/dist/react/index.js +0 -1
  60. package/dist/react/styles.css +594 -224
  61. package/dist/react/useAssistantController.js +2 -1
  62. package/dist/react/useAssistantRuntime.d.ts +2 -1
  63. package/dist/react/useAssistantRuntime.js +7 -3
  64. package/dist/react/useTaskSession.js +145 -73
  65. package/dist/task-events.d.ts +2 -1
  66. package/dist/task-events.js +38 -1
  67. package/dist/types.d.ts +2 -1
  68. package/package.json +1 -1
  69. package/dist/openapi_client/models/PodStatus.d.ts +0 -4
  70. package/dist/openapi_client/models/PodStatus.js +0 -9
  71. package/dist/openapi_client/models/PodType.d.ts +0 -6
  72. package/dist/openapi_client/models/PodType.js +0 -11
  73. package/dist/react/useAgentRun.d.ts +0 -17
  74. package/dist/react/useAgentRun.js +0 -66
  75. /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,29 @@
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-details-panel {
1551
+ margin-top: 6px;
1552
+ padding: 10px 12px;
1553
+ border: 1px solid color-mix(in srgb, var(--border-default) 86%, transparent);
1554
+ border-radius: var(--assistant-radius-inline);
1555
+ background: color-mix(in srgb, var(--bg-surface) 96%, var(--bg-canvas));
1556
+ }
1557
+
1497
1558
  .lemma-assistant-reasoning-text,
1498
1559
  .lemma-assistant-tool-rollup-thinking-text,
1499
1560
  .lemma-assistant-tool-details-code-text {
@@ -1510,65 +1571,142 @@
1510
1571
 
1511
1572
  .lemma-assistant-tool-details-header {
1512
1573
  display: flex;
1513
- align-items: center;
1574
+ align-items: flex-start;
1514
1575
  justify-content: space-between;
1515
1576
  gap: 8px;
1577
+ margin-bottom: 8px;
1578
+ }
1579
+
1580
+ .lemma-assistant-tool-details-heading {
1581
+ display: flex;
1582
+ flex-direction: column;
1583
+ gap: 2px;
1584
+ min-width: 0;
1516
1585
  }
1517
1586
 
1518
1587
  .lemma-assistant-tool-details-title {
1519
- font-size: 9px;
1520
- font-weight: 500;
1521
- letter-spacing: 0.03em;
1588
+ font-size: 14px;
1589
+ font-weight: 600;
1590
+ letter-spacing: 0;
1522
1591
  text-transform: none;
1523
- color: color-mix(in srgb, var(--text-tertiary) 92%, var(--text-secondary));
1592
+ color: var(--text-primary);
1593
+ }
1594
+
1595
+ .lemma-assistant-tool-details-meta {
1596
+ font-size: 12px;
1597
+ color: var(--text-tertiary);
1524
1598
  }
1525
1599
 
1526
1600
  .lemma-assistant-tool-details-label,
1527
1601
  .lemma-assistant-tool-rollup-thinking-title {
1528
- font-size: 9px;
1529
- font-weight: 500;
1530
- letter-spacing: 0.05em;
1531
- text-transform: uppercase;
1602
+ font-size: 12px;
1603
+ font-weight: 600;
1604
+ letter-spacing: 0.02em;
1605
+ text-transform: none;
1532
1606
  color: color-mix(in srgb, var(--text-tertiary) 88%, var(--text-secondary));
1533
1607
  }
1534
1608
 
1535
1609
  .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));
1610
+ border: 1px solid color-mix(in srgb, var(--border-default) 85%, transparent);
1611
+ border-radius: var(--assistant-radius-inline);
1612
+ background: var(--bg-surface);
1613
+ padding: 3px 8px;
1614
+ font-size: 11px;
1615
+ font-weight: 600;
1616
+ color: var(--text-secondary);
1542
1617
  }
1543
1618
 
1544
1619
  .lemma-assistant-tool-details-panel-custom {
1545
1620
  min-width: 0;
1546
1621
  }
1547
1622
 
1548
- .lemma-assistant-tool-details-grid {
1623
+ .lemma-assistant-tool-details-stack {
1624
+ display: flex;
1625
+ flex-direction: column;
1626
+ gap: 0;
1627
+ }
1628
+
1629
+ .lemma-assistant-tool-details-section {
1630
+ min-width: 0;
1631
+ padding: 8px 0;
1632
+ }
1633
+
1634
+ .lemma-assistant-tool-details-section + .lemma-assistant-tool-details-section {
1635
+ border-top: 1px solid color-mix(in srgb, var(--border-default) 82%, transparent);
1636
+ }
1637
+
1638
+ .lemma-assistant-tool-details-list {
1639
+ margin: 6px 0 0;
1640
+ display: flex;
1641
+ flex-direction: column;
1642
+ gap: 6px;
1643
+ }
1644
+
1645
+ .lemma-assistant-tool-details-list-item {
1549
1646
  display: grid;
1550
- grid-template-columns: repeat(1, minmax(0, 1fr));
1647
+ grid-template-columns: minmax(96px, auto) minmax(0, 1fr);
1551
1648
  gap: 8px;
1649
+ align-items: start;
1552
1650
  }
1553
1651
 
1554
- @media (min-width: 640px) {
1555
- .lemma-assistant-tool-details-grid {
1556
- grid-template-columns: repeat(2, minmax(0, 1fr));
1557
- }
1652
+ .lemma-assistant-tool-details-key {
1653
+ margin: 0;
1654
+ font-size: 12px;
1655
+ font-weight: 600;
1656
+ color: var(--text-tertiary);
1657
+ text-transform: none;
1558
1658
  }
1559
1659
 
1560
- .lemma-assistant-tool-details-section {
1561
- min-width: 0;
1660
+ .lemma-assistant-tool-details-value {
1661
+ margin: 0;
1662
+ font-size: 13px;
1663
+ line-height: 1.55;
1664
+ color: var(--text-primary);
1665
+ overflow-wrap: anywhere;
1666
+ }
1667
+
1668
+ .lemma-assistant-tool-details-empty {
1669
+ margin: 6px 0 0;
1670
+ font-size: 12px;
1671
+ color: var(--text-tertiary);
1672
+ }
1673
+
1674
+ .lemma-assistant-tool-details-more {
1675
+ margin-top: 6px;
1676
+ font-size: 11px;
1677
+ color: var(--text-tertiary);
1678
+ }
1679
+
1680
+ .lemma-assistant-tool-details-raw {
1681
+ margin-top: 8px;
1682
+ }
1683
+
1684
+ .lemma-assistant-tool-details-raw-row {
1685
+ display: flex;
1686
+ flex-wrap: wrap;
1687
+ gap: 14px;
1688
+ }
1689
+
1690
+ .lemma-assistant-tool-details-raw-summary {
1691
+ cursor: pointer;
1692
+ list-style: none;
1693
+ font-size: 12px;
1694
+ font-weight: 600;
1695
+ color: color-mix(in srgb, var(--text-tertiary) 84%, var(--text-secondary));
1696
+ }
1697
+
1698
+ .lemma-assistant-tool-details-raw-summary::-webkit-details-marker {
1699
+ display: none;
1562
1700
  }
1563
1701
 
1564
1702
  .lemma-assistant-tool-details-code {
1565
- margin-top: 4px;
1566
- max-height: 96px;
1703
+ margin-top: 6px;
1704
+ max-height: 180px;
1567
1705
  overflow: auto;
1568
1706
  border-radius: var(--assistant-radius-inline);
1569
1707
  background: color-mix(in srgb, var(--bg-canvas) 70%, transparent);
1570
- padding: 8px;
1571
- font-size: 11px;
1708
+ padding: 10px;
1709
+ font-size: 12px;
1572
1710
  }
1573
1711
 
1574
1712
  .lemma-assistant-tool-details-code-text,
@@ -1579,16 +1717,16 @@
1579
1717
  .lemma-assistant-inline-tool-call {
1580
1718
  border: 0;
1581
1719
  background: transparent;
1582
- padding: 0;
1720
+ padding: 4px 0;
1583
1721
  width: 100%;
1584
- display: inline-flex;
1585
- align-items: center;
1586
- gap: 6px;
1722
+ display: grid;
1723
+ grid-template-columns: 18px minmax(0, 1fr);
1724
+ gap: 10px;
1587
1725
  text-align: left;
1588
- font-size: 10px;
1589
- line-height: 1.45;
1726
+ font-size: 14px;
1727
+ line-height: 1.5;
1590
1728
  color: var(--text-secondary);
1591
- transition: color 160ms ease;
1729
+ transition: color 160ms ease, background-color 160ms ease;
1592
1730
  }
1593
1731
 
1594
1732
  .lemma-assistant-inline-tool-call:hover {
@@ -1607,50 +1745,172 @@
1607
1745
  color: var(--state-error);
1608
1746
  }
1609
1747
 
1748
+ .lemma-assistant-inline-tool-call-rail {
1749
+ display: flex;
1750
+ flex-direction: column;
1751
+ align-items: center;
1752
+ padding-top: 6px;
1753
+ }
1754
+
1755
+ .lemma-assistant-inline-tool-call-node {
1756
+ width: 9px;
1757
+ height: 9px;
1758
+ border-radius: 999px;
1759
+ background: color-mix(in srgb, currentColor 80%, var(--text-tertiary));
1760
+ }
1761
+
1762
+ .lemma-assistant-inline-tool-call-stem {
1763
+ width: 1px;
1764
+ flex: 1 1 auto;
1765
+ min-height: 18px;
1766
+ margin-top: 6px;
1767
+ background: color-mix(in srgb, var(--border-default) 86%, transparent);
1768
+ }
1769
+
1770
+ .lemma-assistant-inline-tool-call-main {
1771
+ display: flex;
1772
+ flex-direction: column;
1773
+ gap: 3px;
1774
+ min-width: 0;
1775
+ }
1776
+
1777
+ .lemma-assistant-inline-tool-call-head {
1778
+ display: flex;
1779
+ align-items: flex-start;
1780
+ gap: 8px;
1781
+ min-width: 0;
1782
+ }
1783
+
1610
1784
  .lemma-assistant-inline-tool-call-name {
1611
- font-size: 9.5px;
1612
- font-weight: 500;
1785
+ font-size: 14px;
1786
+ font-weight: 600;
1787
+ white-space: normal;
1788
+ color: var(--text-primary);
1789
+ flex: 1 1 auto;
1790
+ }
1791
+
1792
+ .lemma-assistant-inline-tool-call-status {
1793
+ display: inline-flex;
1794
+ align-items: center;
1795
+ border-radius: var(--assistant-radius-inline);
1796
+ padding: 2px 8px;
1797
+ font-size: 12px;
1798
+ font-weight: 600;
1613
1799
  white-space: nowrap;
1614
- color: color-mix(in srgb, currentColor 78%, var(--text-tertiary));
1800
+ color: var(--text-secondary);
1801
+ background: color-mix(in srgb, var(--bg-subtle) 82%, var(--bg-surface));
1802
+ }
1803
+
1804
+ .lemma-assistant-inline-tool-call[data-state="executing"] .lemma-assistant-inline-tool-call-status {
1805
+ color: var(--state-info);
1806
+ background: color-mix(in srgb, var(--state-info) 14%, transparent);
1807
+ }
1808
+
1809
+ .lemma-assistant-inline-tool-call[data-state="complete"] .lemma-assistant-inline-tool-call-status {
1810
+ color: var(--state-success);
1811
+ background: color-mix(in srgb, var(--state-success) 14%, transparent);
1812
+ }
1813
+
1814
+ .lemma-assistant-inline-tool-call[data-state="failed"] .lemma-assistant-inline-tool-call-status {
1815
+ color: var(--state-error);
1816
+ background: color-mix(in srgb, var(--state-error) 14%, transparent);
1817
+ }
1818
+
1819
+ .lemma-assistant-inline-tool-call-meta {
1820
+ font-size: 12px;
1821
+ color: var(--text-tertiary);
1615
1822
  }
1616
1823
 
1617
1824
  .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;
1825
+ display: inline-flex;
1826
+ align-items: center;
1827
+ width: fit-content;
1828
+ max-width: 100%;
1829
+ border-radius: var(--assistant-radius-inline);
1830
+ padding: 3px 9px;
1831
+ font-size: 12px;
1832
+ color: color-mix(in srgb, currentColor 82%, var(--text-tertiary));
1833
+ background: color-mix(in srgb, var(--bg-subtle) 78%, var(--bg-surface));
1834
+ overflow-wrap: anywhere;
1835
+ white-space: normal;
1623
1836
  }
1624
1837
 
1625
1838
  .lemma-assistant-inline-tool-call-caret {
1626
- margin-left: auto;
1839
+ color: var(--text-tertiary);
1840
+ margin-top: 1px;
1627
1841
  }
1628
1842
 
1629
1843
  .lemma-assistant-inline-tool-call[data-selected="true"] .lemma-assistant-inline-tool-call-caret {
1630
1844
  transform: rotate(90deg);
1631
1845
  }
1632
1846
 
1633
- .lemma-assistant-tool-rollup-toggle {
1847
+ .lemma-assistant-tool-rollup-banner {
1634
1848
  border: 0;
1635
1849
  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;
1850
+ width: 100%;
1851
+ padding: 4px 0 6px;
1852
+ display: flex;
1853
+ align-items: center;
1854
+ gap: 12px;
1855
+ cursor: pointer;
1856
+ color: var(--text-tertiary);
1857
+ }
1858
+
1859
+ .lemma-assistant-tool-rollup-banner:hover {
1860
+ color: var(--text-secondary);
1861
+ }
1862
+
1863
+ .lemma-assistant-tool-rollup-banner:focus-visible {
1864
+ outline: 2px solid color-mix(in srgb, var(--brand-primary) 64%, transparent);
1865
+ outline-offset: 2px;
1866
+ border-radius: var(--assistant-radius-inline);
1867
+ }
1868
+
1869
+ .lemma-assistant-tool-rollup-banner-line {
1870
+ flex: 1 1 auto;
1871
+ min-width: 18px;
1872
+ height: 1px;
1873
+ background: color-mix(in srgb, var(--border-default) 84%, transparent);
1874
+ }
1875
+
1876
+ .lemma-assistant-tool-rollup-banner-copy {
1877
+ display: inline-flex;
1878
+ align-items: center;
1879
+ gap: 8px;
1880
+ min-width: 0;
1881
+ }
1882
+
1883
+ .lemma-assistant-tool-rollup-banner-label {
1884
+ font-size: 13px;
1885
+ line-height: 1.4;
1886
+ white-space: nowrap;
1887
+ overflow: hidden;
1888
+ text-overflow: ellipsis;
1642
1889
  }
1643
1890
 
1644
- .lemma-assistant-tool-rollup-toggle:hover {
1645
- color: color-mix(in srgb, var(--text-secondary) 92%, var(--text-primary));
1891
+ .lemma-assistant-tool-rollup-banner-label-working {
1892
+ color: color-mix(in srgb, var(--text-secondary) 82%, var(--text-primary));
1646
1893
  }
1647
1894
 
1648
- .lemma-assistant-tool-rollup-toggle[data-expanded="true"] .lemma-assistant-tool-rollup-caret {
1895
+ .lemma-assistant-tool-rollup-banner-caret {
1896
+ font-size: 16px;
1897
+ line-height: 1;
1898
+ transition: transform 160ms ease;
1899
+ }
1900
+
1901
+ .lemma-assistant-tool-rollup-banner-caret[data-expanded="true"] {
1649
1902
  transform: rotate(90deg);
1650
1903
  }
1651
1904
 
1905
+ .lemma-assistant-tool-rollup-header {
1906
+ display: flex;
1907
+ align-items: center;
1908
+ gap: 8px;
1909
+ margin-bottom: 2px;
1910
+ }
1911
+
1652
1912
  .lemma-assistant-tool-rollup-summary {
1653
- font-size: 9.5px;
1913
+ font-size: 12px;
1654
1914
  color: color-mix(in srgb, var(--text-tertiary) 92%, var(--text-secondary));
1655
1915
  }
1656
1916
 
@@ -1661,15 +1921,24 @@
1661
1921
 
1662
1922
  .lemma-assistant-tool-rollup-thinking {
1663
1923
  border-radius: var(--assistant-radius-inline);
1664
- background: var(--bg-canvas);
1665
- padding: 8px 10px;
1924
+ border: 1px solid color-mix(in srgb, var(--border-default) 72%, transparent);
1925
+ border-left: 2px solid color-mix(in srgb, var(--border-default) 86%, transparent);
1926
+ background: color-mix(in srgb, var(--bg-subtle) 42%, transparent);
1927
+ padding: 7px 10px;
1666
1928
  }
1667
1929
 
1668
1930
  .lemma-assistant-tool-rollup-thinking-text {
1669
- max-height: 10rem;
1931
+ max-height: 7rem;
1670
1932
  overflow: auto;
1933
+ font-size: 12px;
1934
+ line-height: 1.5;
1935
+ color: color-mix(in srgb, var(--text-tertiary) 92%, var(--text-secondary));
1936
+ }
1937
+
1938
+ .lemma-assistant-tool-rollup-thinking-title {
1671
1939
  font-size: 11px;
1672
- line-height: 1.45;
1940
+ font-weight: 500;
1941
+ color: color-mix(in srgb, var(--text-tertiary) 94%, var(--text-secondary));
1673
1942
  }
1674
1943
 
1675
1944
  .lemma-assistant-widget-card-header {
@@ -1687,7 +1956,7 @@
1687
1956
  display: inline-flex;
1688
1957
  align-items: center;
1689
1958
  gap: 4px;
1690
- border-radius: 6px;
1959
+ border-radius: var(--assistant-radius-inline);
1691
1960
  padding: 2px 6px;
1692
1961
  font-size: 10px;
1693
1962
  font-weight: 500;
@@ -1732,6 +2001,20 @@
1732
2001
  display: flex;
1733
2002
  flex-direction: column;
1734
2003
  gap: 6px;
2004
+ position: relative;
2005
+ }
2006
+
2007
+ .lemma-assistant-message-timestamp {
2008
+ position: static;
2009
+ font-size: 11px;
2010
+ color: var(--text-tertiary);
2011
+ line-height: 1.2;
2012
+ }
2013
+
2014
+ .lemma-assistant-message-timestamp-user {
2015
+ align-self: flex-end;
2016
+ margin-right: 4px;
2017
+ opacity: 0.78;
1735
2018
  }
1736
2019
 
1737
2020
  .lemma-assistant-message-assistant {
@@ -1740,6 +2023,7 @@
1740
2023
 
1741
2024
  .lemma-assistant-message-user {
1742
2025
  display: flex;
2026
+ align-items: flex-end;
1743
2027
  justify-content: flex-end;
1744
2028
  max-width: none;
1745
2029
  }
@@ -1754,7 +2038,7 @@
1754
2038
  }
1755
2039
 
1756
2040
  .lemma-assistant-message-header {
1757
- font-size: 11px;
2041
+ font-size: 12px;
1758
2042
  color: var(--text-tertiary);
1759
2043
  }
1760
2044
 
@@ -1762,7 +2046,7 @@
1762
2046
  display: inline-block;
1763
2047
  width: 6px;
1764
2048
  height: 6px;
1765
- border-radius: 999px;
2049
+ border-radius: var(--assistant-radius-inline);
1766
2050
  background: color-mix(in srgb, var(--brand-primary) 40%, transparent);
1767
2051
  flex: 0 0 auto;
1768
2052
  }
@@ -1774,7 +2058,7 @@
1774
2058
  }
1775
2059
 
1776
2060
  .lemma-assistant-message-text {
1777
- font-size: 13px;
2061
+ font-size: 14px;
1778
2062
  line-height: 1.6;
1779
2063
  color: var(--text-secondary);
1780
2064
  }
@@ -1806,11 +2090,11 @@
1806
2090
  }
1807
2091
 
1808
2092
  .lemma-assistant-experience-new {
1809
- border: 0;
1810
- background: transparent;
2093
+ border: 1px solid color-mix(in srgb, var(--border-default) 88%, transparent);
2094
+ background: var(--bg-surface);
1811
2095
  width: 32px;
1812
2096
  height: 32px;
1813
- border-radius: 999px;
2097
+ border-radius: var(--assistant-radius-inline);
1814
2098
  color: var(--text-tertiary);
1815
2099
  }
1816
2100
 
@@ -1900,6 +2184,16 @@
1900
2184
 
1901
2185
  .lemma-assistant-experience-input-row {
1902
2186
  position: relative;
2187
+ padding: 6px 8px;
2188
+ border: 1px solid color-mix(in srgb, var(--border-default) 88%, transparent);
2189
+ border-radius: var(--assistant-radius-inline);
2190
+ background: var(--bg-surface);
2191
+ transition: border-color 160ms ease, box-shadow 160ms ease;
2192
+ }
2193
+
2194
+ .lemma-assistant-experience-input-row:focus-within {
2195
+ border-color: color-mix(in srgb, var(--brand-primary) 62%, var(--border-default));
2196
+ box-shadow: 0 0 0 1px color-mix(in srgb, var(--brand-primary) 22%, transparent);
1903
2197
  }
1904
2198
 
1905
2199
  .lemma-assistant-experience-file-input {
@@ -1908,18 +2202,19 @@
1908
2202
 
1909
2203
  .lemma-assistant-experience-upload,
1910
2204
  .lemma-assistant-experience-send {
1911
- border: 0;
2205
+ border: 1px solid color-mix(in srgb, var(--border-default) 88%, transparent);
1912
2206
  display: inline-flex;
1913
2207
  align-items: center;
1914
2208
  justify-content: center;
1915
2209
  width: 36px;
1916
2210
  height: 36px;
1917
- border-radius: 999px;
2211
+ border-radius: var(--assistant-radius-inline);
1918
2212
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
1919
2213
  }
1920
2214
 
1921
2215
  .lemma-assistant-experience-upload {
1922
- margin: 0 0 6px 4px;
2216
+ align-self: center;
2217
+ margin: 0;
1923
2218
  background: var(--bg-subtle);
1924
2219
  color: var(--text-secondary);
1925
2220
  }
@@ -1941,10 +2236,11 @@
1941
2236
  border: 0;
1942
2237
  background: transparent;
1943
2238
  padding: 10px 12px;
1944
- font-size: 14px;
2239
+ font-size: 15px;
1945
2240
  line-height: 1.6;
1946
2241
  color: var(--text-primary);
1947
2242
  outline: none;
2243
+ transition: height 140ms ease;
1948
2244
  }
1949
2245
 
1950
2246
  .lemma-assistant-experience-textarea::placeholder {
@@ -1952,7 +2248,8 @@
1952
2248
  }
1953
2249
 
1954
2250
  .lemma-assistant-experience-send-wrap {
1955
- padding: 0 6px 6px 0;
2251
+ align-self: center;
2252
+ padding: 0;
1956
2253
  }
1957
2254
 
1958
2255
  .lemma-assistant-experience-send[data-state="busy"] {
@@ -1993,6 +2290,62 @@
1993
2290
  }
1994
2291
  }
1995
2292
 
2293
+ @media (prefers-color-scheme: dark) {
2294
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-status-pill,
2295
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-status-pill {
2296
+ background: color-mix(in srgb, var(--brand-glow) 45%, var(--bg-surface));
2297
+ }
2298
+
2299
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-experience-sidebar-item-active,
2300
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-experience-sidebar-item-active,
2301
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-conversation-list-item-active,
2302
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-conversation-list-item-active {
2303
+ background: var(--bg-surface);
2304
+ border-color: color-mix(in srgb, var(--brand-primary) 52%, var(--border-default));
2305
+ }
2306
+
2307
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-markdown pre,
2308
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-markdown pre,
2309
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-tool-details-code,
2310
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-tool-details-code {
2311
+ background: color-mix(in srgb, var(--bg-canvas) 88%, var(--bg-surface));
2312
+ }
2313
+
2314
+ .lemma-assistant-theme:not([data-lemma-theme="light"]):not([data-lemma-theme="dark"]) .lemma-assistant-tool-rollup-thinking,
2315
+ .lemma-assistant-theme[data-lemma-theme="auto"] .lemma-assistant-tool-rollup-thinking {
2316
+ background: color-mix(in srgb, var(--bg-subtle) 34%, transparent);
2317
+ border-color: color-mix(in srgb, var(--border-default) 74%, transparent);
2318
+ border-left-color: color-mix(in srgb, var(--border-default) 88%, transparent);
2319
+ }
2320
+ }
2321
+
2322
+ :where(.dark, [data-theme="dark"], [data-color-scheme="dark"], [data-mode="dark"]) .lemma-assistant-theme:not([data-lemma-theme="light"]) .lemma-assistant-status-pill,
2323
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-status-pill {
2324
+ background: color-mix(in srgb, var(--brand-glow) 45%, var(--bg-surface));
2325
+ }
2326
+
2327
+ :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,
2328
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-experience-sidebar-item-active,
2329
+ :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,
2330
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-conversation-list-item-active {
2331
+ background: var(--bg-surface);
2332
+ border-color: color-mix(in srgb, var(--brand-primary) 52%, var(--border-default));
2333
+ }
2334
+
2335
+ :where(.dark, [data-theme="dark"], [data-color-scheme="dark"], [data-mode="dark"]) .lemma-assistant-theme:not([data-lemma-theme="light"]) .lemma-assistant-markdown pre,
2336
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-markdown pre,
2337
+ :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,
2338
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-tool-details-code {
2339
+ background: color-mix(in srgb, var(--bg-canvas) 88%, var(--bg-surface));
2340
+ }
2341
+
2342
+ :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,
2343
+ .lemma-assistant-theme[data-lemma-theme="dark"] .lemma-assistant-tool-rollup-thinking {
2344
+ background: color-mix(in srgb, var(--bg-subtle) 34%, transparent);
2345
+ border-color: color-mix(in srgb, var(--border-default) 74%, transparent);
2346
+ border-left-color: color-mix(in srgb, var(--border-default) 88%, transparent);
2347
+ }
2348
+
1996
2349
  @keyframes lemma-assistant-fade-in {
1997
2350
  from {
1998
2351
  opacity: 0;
@@ -2013,6 +2366,23 @@
2013
2366
  }
2014
2367
  }
2015
2368
 
2369
+ @keyframes lemma-assistant-dot-pulse {
2370
+ 0% {
2371
+ transform: scale(0.9);
2372
+ opacity: 0.55;
2373
+ }
2374
+
2375
+ 50% {
2376
+ transform: scale(1.15);
2377
+ opacity: 1;
2378
+ }
2379
+
2380
+ 100% {
2381
+ transform: scale(0.9);
2382
+ opacity: 0.55;
2383
+ }
2384
+ }
2385
+
2016
2386
  @keyframes lemma-assistant-ping {
2017
2387
  0% {
2018
2388
  opacity: 0.55;