@vibe-forge/client 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/AGENTS.md +37 -0
  2. package/cli.cjs +1 -0
  3. package/dist/assets/{arc-DgIxeTMg.js → arc-CMAHd5G3.js} +1 -1
  4. package/dist/assets/{blockDiagram-c4efeb88-CEAob3X9.js → blockDiagram-c4efeb88-DKww-VCP.js} +1 -1
  5. package/dist/assets/{c4Diagram-c83219d4-DwIxpDKd.js → c4Diagram-c83219d4-DKrjVHyY.js} +1 -1
  6. package/dist/assets/channel-Bi4g8rj9.js +1 -0
  7. package/dist/assets/{classDiagram-beda092f-Cz1q8u_0.js → classDiagram-beda092f-BXx5rdo3.js} +1 -1
  8. package/dist/assets/{classDiagram-v2-2358418a-CImgTuwd.js → classDiagram-v2-2358418a-CnR3WLsr.js} +1 -1
  9. package/dist/assets/clone-DPrpP2ky.js +1 -0
  10. package/dist/assets/{createText-1719965b-C1_HJcCc.js → createText-1719965b-CmOsl1W7.js} +1 -1
  11. package/dist/assets/{edges-96097737-BU8qStzd.js → edges-96097737-CQeQgpjD.js} +1 -1
  12. package/dist/assets/{erDiagram-0228fc6a-DNA1Fz2L.js → erDiagram-0228fc6a-ZUNB-ucF.js} +1 -1
  13. package/dist/assets/{flowDb-c6c81e3f-DjiCStMN.js → flowDb-c6c81e3f-DuuKeSLX.js} +1 -1
  14. package/dist/assets/{flowDiagram-50d868cf-CSDi0-RD.js → flowDiagram-50d868cf-Bc6n85yR.js} +1 -1
  15. package/dist/assets/flowDiagram-v2-4f6560a1-BZqaeqoh.js +1 -0
  16. package/dist/assets/{flowchart-elk-definition-6af322e1-DrhIMas7.js → flowchart-elk-definition-6af322e1-cAG5afW9.js} +1 -1
  17. package/dist/assets/{ganttDiagram-a2739b55-CTZnUP5z.js → ganttDiagram-a2739b55-Dp6xhY5I.js} +1 -1
  18. package/dist/assets/{gitGraphDiagram-82fe8481-COOW7jTi.js → gitGraphDiagram-82fe8481-MlIIRBdG.js} +1 -1
  19. package/dist/assets/{graph-CIkpD4Kx.js → graph-D7Es8jZ-.js} +1 -1
  20. package/dist/assets/{index-5325376f-aVVRRTIu.js → index-5325376f-DC18ottv.js} +1 -1
  21. package/dist/assets/index-D37AbgPQ.js +545 -0
  22. package/dist/assets/{index-D1giUI7r.css → index-fcJ9v94I.css} +1 -1
  23. package/dist/assets/{infoDiagram-8eee0895-DQpZ1LVD.js → infoDiagram-8eee0895-CXk21kFp.js} +1 -1
  24. package/dist/assets/{journeyDiagram-c64418c1-DoKguIuk.js → journeyDiagram-c64418c1-899BKBHL.js} +1 -1
  25. package/dist/assets/{layout-Tnmha8Nh.js → layout-DLaxdy48.js} +1 -1
  26. package/dist/assets/{line-BQR2SOyl.js → line-_lw5YbRM.js} +1 -1
  27. package/dist/assets/{linear-DlG0eemV.js → linear-D5iu84ui.js} +1 -1
  28. package/dist/assets/{mermaid.core-BnwYO0He.js → mermaid.core-C6sW3GFM.js} +4 -4
  29. package/dist/assets/{mindmap-definition-8da855dc-BllYwDID.js → mindmap-definition-8da855dc-BS9Xy9KN.js} +1 -1
  30. package/dist/assets/{pieDiagram-a8764435-DwCkhPVc.js → pieDiagram-a8764435-DZt9cEgs.js} +1 -1
  31. package/dist/assets/{quadrantDiagram-1e28029f-c40GKTU0.js → quadrantDiagram-1e28029f-BTIeHOgn.js} +1 -1
  32. package/dist/assets/{requirementDiagram-08caed73-DnQp2Tk6.js → requirementDiagram-08caed73-BHJAKD2g.js} +1 -1
  33. package/dist/assets/{sankeyDiagram-a04cb91d-CnJrs13b.js → sankeyDiagram-a04cb91d-DnAkVOK8.js} +1 -1
  34. package/dist/assets/{sequenceDiagram-c5b8d532-1YBwnpKu.js → sequenceDiagram-c5b8d532-92tE3oFv.js} +1 -1
  35. package/dist/assets/{stateDiagram-1ecb1508-BFBxQ6Fh.js → stateDiagram-1ecb1508-DG0ObiMg.js} +1 -1
  36. package/dist/assets/{stateDiagram-v2-c2b004d7-Dmechvv2.js → stateDiagram-v2-c2b004d7-BKoJx2ci.js} +1 -1
  37. package/dist/assets/{styles-b4e223ce-DWWfWX8O.js → styles-b4e223ce-Ba6G4ri9.js} +1 -1
  38. package/dist/assets/{styles-ca3715f6-CKKvZxaU.js → styles-ca3715f6-Bn6RIIVW.js} +1 -1
  39. package/dist/assets/{styles-d45a18b0-dKMOUh9p.js → styles-d45a18b0-_dELBUI6.js} +1 -1
  40. package/dist/assets/{svgDrawCommon-b86b1483-CBgjChPM.js → svgDrawCommon-b86b1483-CRK-ZoIs.js} +1 -1
  41. package/dist/assets/{timeline-definition-faaaa080-NCt-HHmb.js → timeline-definition-faaaa080-DvQ_RA_i.js} +1 -1
  42. package/dist/assets/{xychartDiagram-f5964ef8-BJhXS4dG.js → xychartDiagram-f5964ef8-CJxeDLfg.js} +1 -1
  43. package/dist/index.html +2 -2
  44. package/package.json +10 -7
  45. package/src/App.tsx +20 -168
  46. package/src/api/base.ts +116 -7
  47. package/src/api/sessions.ts +3 -1
  48. package/src/api.ts +3 -1
  49. package/src/components/ArchiveView.tsx +5 -5
  50. package/src/components/ConfigView.tsx +28 -28
  51. package/src/components/{AutomationView → automation-view}/index.tsx +10 -9
  52. package/src/components/{BenchmarkView → benchmark-view}/index.tsx +5 -4
  53. package/src/components/chat/ChatHeader.tsx +6 -6
  54. package/src/components/chat/ChatHistoryView.tsx +74 -16
  55. package/src/components/chat/ChatTimelineView.tsx +3 -3
  56. package/src/components/chat/CurrentTodoList.scss +56 -27
  57. package/src/components/chat/{Sender → sender}/Sender.scss +278 -85
  58. package/src/components/chat/{Sender → sender}/Sender.tsx +125 -41
  59. package/src/components/chat/tools/core/ToolGroup.tsx +1 -1
  60. package/src/components/config/ConfigSectionForm.tsx +1 -1
  61. package/src/components/config/ConfigSourceSwitch.tsx +12 -34
  62. package/src/components/config/channelDefinitions.ts +2 -2
  63. package/src/components/layout/AppShell.scss +19 -0
  64. package/src/components/layout/AppShell.tsx +45 -0
  65. package/src/components/sidebar/SessionItem.scss +17 -0
  66. package/src/components/sidebar/SessionItem.tsx +21 -13
  67. package/src/hooks/chat/model-selector.ts +150 -0
  68. package/src/hooks/chat/use-chat-adapter.ts +93 -0
  69. package/src/hooks/chat/use-chat-models.tsx +126 -57
  70. package/src/hooks/chat/use-chat-permission-mode.ts +14 -10
  71. package/src/hooks/chat/use-chat-session-actions.ts +22 -13
  72. package/src/hooks/chat/use-chat-session-messages.ts +62 -10
  73. package/src/hooks/chat/use-chat-session.ts +49 -2
  74. package/src/hooks/use-app-preferences.ts +41 -0
  75. package/src/hooks/use-session-subscription.ts +101 -0
  76. package/src/hooks/use-sidebar-navigation.ts +35 -0
  77. package/src/resources/adapters.ts +20 -0
  78. package/src/resources/locales/en.json +6 -0
  79. package/src/resources/locales/zh.json +6 -0
  80. package/src/routes/AppRoutes.tsx +22 -0
  81. package/src/routes/ArchiveRoute.tsx +5 -0
  82. package/src/routes/AutomationRoute.tsx +5 -0
  83. package/src/routes/BenchmarkRoute.tsx +5 -0
  84. package/src/{components/Chat.scss → routes/ChatRoute.scss} +35 -0
  85. package/src/routes/ChatRoute.tsx +132 -0
  86. package/src/routes/ConfigRoute.tsx +5 -0
  87. package/src/routes/KnowledgeRoute.tsx +5 -0
  88. package/dist/assets/channel-DhtnrNJ6.js +0 -1
  89. package/dist/assets/clone-7bHB6YkC.js +0 -1
  90. package/dist/assets/flowDiagram-v2-4f6560a1-_13Sz5Wh.js +0 -1
  91. package/dist/assets/index-DRSI_ZIL.js +0 -514
  92. package/src/components/Chat.tsx +0 -100
  93. package/src/components/{AutomationView → automation-view}/RuleFormPanel.scss +0 -0
  94. package/src/components/{AutomationView → automation-view}/RuleFormPanel.tsx +0 -0
  95. package/src/components/{AutomationView → automation-view}/RuleSidebar.scss +0 -0
  96. package/src/components/{AutomationView → automation-view}/RuleSidebar.tsx +0 -0
  97. package/src/components/{AutomationView → automation-view}/RunHistoryPanel.scss +0 -0
  98. package/src/components/{AutomationView → automation-view}/RunHistoryPanel.tsx +0 -0
  99. package/src/components/{AutomationView → automation-view}/TaskList.scss +0 -0
  100. package/src/components/{AutomationView → automation-view}/TaskList.tsx +0 -0
  101. package/src/components/{AutomationView → automation-view}/TriggerList.scss +0 -0
  102. package/src/components/{AutomationView → automation-view}/TriggerList.tsx +0 -0
  103. package/src/components/{AutomationView/AutomationView.scss → automation-view/index.scss} +0 -0
  104. package/src/components/{AutomationView → automation-view}/types.ts +0 -0
  105. package/src/components/{BenchmarkView → benchmark-view}/BenchmarkCasePanel.scss +0 -0
  106. package/src/components/{BenchmarkView → benchmark-view}/BenchmarkCasePanel.tsx +0 -0
  107. package/src/components/{BenchmarkView → benchmark-view}/BenchmarkSidebar.scss +0 -0
  108. package/src/components/{BenchmarkView → benchmark-view}/BenchmarkSidebar.tsx +0 -0
  109. package/src/components/{BenchmarkView → benchmark-view}/BenchmarkView.scss +0 -0
  110. package/src/components/{BenchmarkView → benchmark-view}/types.ts +0 -0
  111. package/src/components/{BenchmarkView → benchmark-view}/utils.ts +0 -0
  112. package/src/components/chat/{Messages → messages}/MessageFooter.tsx +0 -0
  113. package/src/components/chat/{Messages → messages}/MessageItem.scss +0 -0
  114. package/src/components/chat/{Messages → messages}/MessageItem.tsx +0 -0
  115. package/src/components/chat/{Messages → messages}/message-utils.ts +0 -0
  116. package/src/components/chat/{Sender → sender}/CompletionMenu.scss +0 -0
  117. package/src/components/chat/{Sender → sender}/CompletionMenu.tsx +0 -0
  118. package/src/components/chat/{Sender → sender}/ThinkingStatus.scss +0 -0
  119. package/src/components/chat/{Sender → sender}/ThinkingStatus.tsx +0 -0
  120. package/src/components/chat/{SessionTimelinePanel → session-timeline-panel}/EventList.scss +0 -0
  121. package/src/components/chat/{SessionTimelinePanel → session-timeline-panel}/EventList.tsx +0 -0
  122. package/src/components/chat/{SessionTimelinePanel → session-timeline-panel}/gantt.ts +0 -0
  123. package/src/components/chat/{SessionTimelinePanel → session-timeline-panel}/git-graph.ts +0 -0
  124. package/src/components/chat/{SessionTimelinePanel → session-timeline-panel}/index.scss +0 -0
  125. package/src/components/chat/{SessionTimelinePanel → session-timeline-panel}/index.tsx +0 -0
  126. package/src/components/chat/{SessionTimelinePanel → session-timeline-panel}/mermaid.ts +0 -0
  127. package/src/components/chat/{SessionTimelinePanel → session-timeline-panel}/types.ts +0 -0
  128. package/src/components/chat/{SessionTimelinePanel → session-timeline-panel}/utils.ts +0 -0
  129. package/src/components/config/{recordEditors → record-editors}/BooleanRecordEditor.scss +0 -0
  130. package/src/components/config/{recordEditors → record-editors}/BooleanRecordEditor.tsx +0 -0
  131. package/src/components/config/{recordEditors → record-editors}/ChannelRecordEditor.scss +0 -0
  132. package/src/components/config/{recordEditors → record-editors}/ChannelRecordEditor.tsx +33 -33
  133. /package/src/components/config/{recordEditors → record-editors}/KeyValueEditor.scss +0 -0
  134. /package/src/components/config/{recordEditors → record-editors}/KeyValueEditor.tsx +0 -0
  135. /package/src/components/config/{recordEditors → record-editors}/McpServersRecordEditor.scss +0 -0
  136. /package/src/components/config/{recordEditors → record-editors}/McpServersRecordEditor.tsx +0 -0
  137. /package/src/components/config/{recordEditors → record-editors}/ModelServicesRecordEditor.scss +0 -0
  138. /package/src/components/config/{recordEditors → record-editors}/ModelServicesRecordEditor.tsx +0 -0
  139. /package/src/components/config/{recordEditors → record-editors}/RecordEditors.scss +0 -0
  140. /package/src/components/config/{recordEditors → record-editors}/RecordJsonEditor.scss +0 -0
  141. /package/src/components/config/{recordEditors → record-editors}/RecordJsonEditor.tsx +0 -0
  142. /package/src/components/config/{recordEditors → record-editors}/index.tsx +0 -0
@@ -37,6 +37,54 @@
37
37
  color: var(--placeholder-color);
38
38
  font-size: 12px;
39
39
  }
40
+
41
+ .connection-error-banner {
42
+ display: flex;
43
+ align-items: center;
44
+ justify-content: space-between;
45
+ gap: 12px;
46
+ margin-bottom: 8px;
47
+ padding: 10px 12px;
48
+ border-radius: 10px;
49
+ border: 1px solid rgba(220, 38, 38, .2);
50
+ background: linear-gradient(
51
+ 135deg,
52
+ rgba(254, 242, 242, .95),
53
+ rgba(255, 255, 255, .92)
54
+ );
55
+ }
56
+
57
+ .connection-error-content {
58
+ display: flex;
59
+ align-items: flex-start;
60
+ gap: 10px;
61
+ min-width: 0;
62
+
63
+ .material-symbols-rounded {
64
+ color: #dc2626;
65
+ font-size: 18px;
66
+ line-height: 1;
67
+ margin-top: 1px;
68
+ }
69
+ }
70
+
71
+ .connection-error-copy {
72
+ min-width: 0;
73
+ }
74
+
75
+ .connection-error-title {
76
+ color: #991b1b;
77
+ font-size: 12px;
78
+ font-weight: 600;
79
+ }
80
+
81
+ .connection-error-message {
82
+ margin-top: 2px;
83
+ color: #7f1d1d;
84
+ font-size: 12px;
85
+ line-height: 1.4;
86
+ word-break: break-word;
87
+ }
40
88
  }
41
89
 
42
90
  .file-input-hidden {
@@ -103,27 +151,49 @@
103
151
  display: flex;
104
152
  align-items: center;
105
153
  gap: 4px;
106
- margin-left: 4px;
107
- padding-left: 8px;
108
- border-left: 2px solid var(--border-color);
154
+ margin-left: 6px;
155
+ padding-left: 10px;
156
+ border-left: 1px solid var(--border-color);
109
157
  border-radius: 1px;
110
158
  position: relative;
111
- height: 14px;
159
+ height: auto;
112
160
  align-self: center;
113
161
 
162
+ .ant-cascader {
163
+ display: block;
164
+ }
165
+
114
166
  .info-item {
115
167
  display: flex;
116
168
  align-items: center;
117
- gap: 4px;
118
- font-size: 13px;
169
+ gap: 8px;
170
+ min-height: 28px;
171
+ font-size: 12px;
119
172
  color: var(--sub-text-color, #9ca3af);
120
- background-color: transparent;
121
- padding: 2px 4px;
122
- border-radius: 4px;
173
+ background: linear-gradient(180deg, var(--bg-color), var(--tag-hover-bg, #f3f4f6));
174
+ border: 1px solid var(--border-color);
175
+ padding: 0 6px 0 8px;
176
+ border-radius: 10px;
123
177
  white-space: nowrap;
124
- max-width: 150px;
178
+ max-width: 170px;
125
179
  cursor: pointer;
126
- transition: all .2s;
180
+ transition: all .2s ease;
181
+
182
+ .info-item-leading {
183
+ width: 18px;
184
+ height: 18px;
185
+ border-radius: 6px;
186
+ background: rgba(99, 102, 241, .12);
187
+ color: var(--primary-color, #6366f1);
188
+ display: flex;
189
+ align-items: center;
190
+ justify-content: center;
191
+ flex-shrink: 0;
192
+
193
+ .material-symbols-rounded {
194
+ font-size: 14px;
195
+ }
196
+ }
127
197
 
128
198
  .material-symbols-rounded {
129
199
  font-size: 18px;
@@ -132,19 +202,24 @@
132
202
  .info-text {
133
203
  overflow: hidden;
134
204
  text-overflow: ellipsis;
135
- font-weight: 400;
205
+ font-weight: 600;
206
+ color: var(--text-color);
136
207
  }
137
208
 
138
209
  .arrow-icon {
139
- font-size: 16px;
210
+ font-size: 18px;
140
211
  color: var(--sub-text-color, #9ca3af);
212
+ background: var(--tag-hover-bg, #f3f4f6);
213
+ border-radius: 999px;
141
214
  transition: transform .2s;
142
215
  }
143
216
 
144
217
  &:hover, &.active {
145
- color: #3b82f6;
218
+ color: var(--primary-color, #6366f1);
219
+ border-color: rgba(99, 102, 241, .3);
220
+ box-shadow: 0 8px 18px rgba(15, 23, 42, .08);
146
221
  .arrow-icon {
147
- color: #3b82f6;
222
+ color: var(--primary-color, #6366f1);
148
223
  }
149
224
  }
150
225
 
@@ -153,60 +228,6 @@
153
228
  }
154
229
  }
155
230
 
156
- .tools-list-popup {
157
- position: absolute;
158
- bottom: calc(100% + 12px);
159
- left: 12px;
160
- background: var(--bg-color);
161
- border: 1px solid var(--border-color);
162
- border-radius: 12px;
163
- box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
164
- min-width: 200px;
165
- max-height: 300px;
166
- overflow: hidden;
167
- display: flex;
168
- flex-direction: column;
169
- z-index: 100;
170
- animation: slideUp .2s ease-out;
171
-
172
- .popup-header {
173
- padding: 10px 12px;
174
- font-size: 12px;
175
- font-weight: 600;
176
- color: var(--sub-text-color, #9ca3af);
177
- border-bottom: 1px solid var(--border-color);
178
- background: var(--tag-bg, #f9fafb);
179
- }
180
-
181
- .popup-content {
182
- padding: 6px;
183
- overflow-y: auto;
184
-
185
- .tool-item {
186
- display: flex;
187
- align-items: center;
188
- gap: 8px;
189
- padding: 8px 10px;
190
- border-radius: 6px;
191
- color: var(--text-color);
192
- transition: all .2s;
193
-
194
- .material-symbols-rounded {
195
- font-size: 18px;
196
- color: #3b82f6;
197
- }
198
-
199
- .tool-name {
200
- font-size: 13px;
201
- }
202
-
203
- &:hover {
204
- background-color: var(--tag-hover-bg, #f3f4f6);
205
- color: var(--text-color);
206
- }
207
- }
208
- }
209
- }
210
231
  }
211
232
  }
212
233
 
@@ -267,9 +288,120 @@
267
288
  }
268
289
  }
269
290
 
270
- .model-select {
271
- min-width: 160px;
291
+ .sender-tools-cascader-popup {
292
+ .ant-cascader-menus {
293
+ background: var(--bg-color);
294
+ border: 1px solid var(--border-color);
295
+ border-radius: 14px;
296
+ overflow: hidden;
297
+ box-shadow: 0 18px 40px rgba(15, 23, 42, .16);
298
+ }
299
+
300
+ .ant-cascader-menu {
301
+ min-width: 240px;
302
+ max-height: 320px;
303
+ padding: 8px;
304
+ background: var(--bg-color);
305
+ border-inline-end: 1px solid var(--border-color);
306
+ }
307
+
308
+ .ant-cascader-menu:first-child {
309
+ background: var(--sub-bg-color);
310
+ }
311
+
312
+ .ant-cascader-menu:last-child {
313
+ border-inline-end: none;
314
+ }
315
+
316
+ .ant-cascader-menu-item {
317
+ min-height: 40px;
318
+ padding: 8px 10px;
319
+ border-radius: 10px;
320
+ color: var(--text-color);
321
+ font-size: 13px;
322
+ transition: all .18s ease;
323
+ }
324
+
325
+ .ant-cascader-menu-item-content {
326
+ min-width: 0;
327
+ }
328
+
329
+ .ant-cascader-menu-item-expand-icon {
330
+ color: var(--sub-text-color);
331
+ }
332
+
333
+ .ant-cascader-menu-item:hover,
334
+ .ant-cascader-menu-item-active,
335
+ .ant-cascader-menu-item-expand {
336
+ background-color: var(--tag-hover-bg, #f3f4f6);
337
+ }
338
+
339
+ .sender-tool-group-option,
340
+ .sender-tool-option {
341
+ display: flex;
342
+ align-items: center;
343
+ gap: 10px;
344
+ min-width: 0;
345
+ width: 100%;
346
+ }
347
+
348
+ .sender-tool-group-option__icon {
349
+ width: 20px;
350
+ height: 20px;
351
+ border-radius: 7px;
352
+ display: inline-flex;
353
+ align-items: center;
354
+ justify-content: center;
355
+ background: rgba(99, 102, 241, .12);
356
+ color: var(--primary-color, #6366f1);
357
+ font-size: 14px;
358
+ flex-shrink: 0;
359
+ }
360
+
361
+ .sender-tool-group-option__text {
362
+ flex: 1;
363
+ min-width: 0;
364
+ font-weight: 600;
365
+ color: var(--text-color);
366
+ }
367
+
368
+ .sender-tool-group-option__count {
369
+ flex-shrink: 0;
370
+ min-width: 22px;
371
+ padding: 1px 6px;
372
+ border-radius: 999px;
373
+ background: var(--bg-color);
374
+ border: 1px solid var(--border-color);
375
+ color: var(--sub-text-color);
376
+ font-size: 11px;
377
+ line-height: 1.4;
378
+ text-align: center;
379
+ }
380
+
381
+ .sender-tool-option__dot {
382
+ width: 8px;
383
+ height: 8px;
384
+ border-radius: 999px;
385
+ background: var(--primary-color, #6366f1);
386
+ box-shadow: 0 0 0 4px rgba(99, 102, 241, .12);
387
+ flex-shrink: 0;
388
+ margin-left: 2px;
389
+ }
390
+
391
+ .sender-tool-option__text {
392
+ min-width: 0;
393
+ overflow: hidden;
394
+ text-overflow: ellipsis;
395
+ font-size: 12px;
396
+ font-family: ui-monospace, SFMono-Regular, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono',
397
+ 'Courier New', monospace;
398
+ letter-spacing: .01em;
399
+ }
400
+ }
272
401
 
402
+ .adapter-select,
403
+ .model-select,
404
+ .permission-mode-select {
273
405
  .ant-select-selector {
274
406
  height: 28px !important;
275
407
  border-radius: 8px !important;
@@ -293,30 +425,32 @@
293
425
  }
294
426
  }
295
427
 
296
- .permission-mode-select {
297
- min-width: 120px;
428
+ .adapter-select {
429
+ min-width: 100px;
298
430
 
299
431
  .ant-select-selector {
300
- height: 28px !important;
301
- border-radius: 8px !important;
302
- border: 1px solid var(--border-color) !important;
303
- background-color: var(--tag-hover-bg, #f3f4f6) !important;
304
- padding: 0 8px !important;
432
+ padding-right: 24px !important;
433
+ }
434
+
435
+ .ant-select-selection-wrap {
305
436
  display: flex;
306
437
  align-items: center;
307
438
  }
308
439
 
309
440
  .ant-select-selection-item,
310
441
  .ant-select-selection-placeholder {
311
- font-size: 12px;
312
- color: var(--text-color);
313
- line-height: 1;
442
+ display: inline-flex;
443
+ align-items: center;
444
+ min-width: 0;
314
445
  }
446
+ }
315
447
 
316
- &.ant-select-disabled .ant-select-selector {
317
- background-color: var(--tag-bg, #f9fafb) !important;
318
- color: var(--sub-text-color, #9ca3af);
319
- }
448
+ .model-select {
449
+ min-width: 160px;
450
+ }
451
+
452
+ .permission-mode-select {
453
+ min-width: 120px;
320
454
  }
321
455
 
322
456
  .permission-mode-select-popup {
@@ -325,6 +459,65 @@
325
459
  }
326
460
  }
327
461
 
462
+ .adapter-select-popup {
463
+ .ant-select-item-option {
464
+ display: flex;
465
+ align-items: center;
466
+ }
467
+
468
+ .ant-select-item-option-content {
469
+ display: flex;
470
+ align-items: center;
471
+ flex: 1;
472
+ min-height: 20px;
473
+ font-size: 12px;
474
+ }
475
+
476
+ .adapter-option {
477
+ display: flex;
478
+ align-items: center;
479
+ gap: 6px;
480
+ width: 100%;
481
+ }
482
+
483
+ .adapter-option__icon {
484
+ width: 14px;
485
+ height: 14px;
486
+ object-fit: contain;
487
+ flex-shrink: 0;
488
+ }
489
+
490
+ .adapter-option__text {
491
+ display: flex;
492
+ align-items: center;
493
+ min-height: 14px;
494
+ line-height: 1;
495
+ }
496
+ }
497
+
498
+ .adapter-option {
499
+ display: inline-flex;
500
+ align-items: center;
501
+ gap: 6px;
502
+ min-width: 0;
503
+ }
504
+
505
+ .adapter-option__icon {
506
+ width: 14px;
507
+ height: 14px;
508
+ display: block;
509
+ object-fit: contain;
510
+ flex-shrink: 0;
511
+ }
512
+
513
+ .adapter-option__text {
514
+ display: inline-block;
515
+ min-width: 0;
516
+ overflow: hidden;
517
+ text-overflow: ellipsis;
518
+ white-space: nowrap;
519
+ }
520
+
328
521
  .model-select-popup {
329
522
  .ant-select-item-group {
330
523
  padding: 8px 8px 4px;