loadtoagent 1.0.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 (82) hide show
  1. package/README.ko.md +175 -0
  2. package/README.md +175 -0
  3. package/README.zh-CN.md +175 -0
  4. package/bin/loadtoagent.js +171 -0
  5. package/docs/ARCHITECTURE.md +30 -0
  6. package/docs/PROVIDER-CONTRACTS.md +58 -0
  7. package/docs/assets/loadtoagent-dashboard.png +0 -0
  8. package/docs/assets/loadtoagent-demo.gif +0 -0
  9. package/main.js +493 -0
  10. package/package.json +133 -0
  11. package/preload.js +75 -0
  12. package/renderer/app-agent-actions.js +285 -0
  13. package/renderer/app-bootstrap.js +95 -0
  14. package/renderer/app-dashboard.js +361 -0
  15. package/renderer/app-drawer-content.js +203 -0
  16. package/renderer/app-drawer-data.js +41 -0
  17. package/renderer/app-drawer.js +183 -0
  18. package/renderer/app-events-dialogs.js +169 -0
  19. package/renderer/app-events-filters.js +74 -0
  20. package/renderer/app-events-navigation.js +96 -0
  21. package/renderer/app-events-sessions.js +195 -0
  22. package/renderer/app-events.js +16 -0
  23. package/renderer/app-graph-layout.js +71 -0
  24. package/renderer/app-graph-model.js +107 -0
  25. package/renderer/app-graph-orchestration.js +76 -0
  26. package/renderer/app-graph-view.js +544 -0
  27. package/renderer/app-run-modal.js +221 -0
  28. package/renderer/app-session-render.js +243 -0
  29. package/renderer/app-tmux-render.js +247 -0
  30. package/renderer/app.js +608 -0
  31. package/renderer/fonts/geist-ext.woff2 +0 -0
  32. package/renderer/fonts/geist.woff2 +0 -0
  33. package/renderer/i18n-messages.js +355 -0
  34. package/renderer/i18n.js +122 -0
  35. package/renderer/index.html +386 -0
  36. package/renderer/shared.js +26 -0
  37. package/renderer/styles-agent-map.css +401 -0
  38. package/renderer/styles-cards.css +600 -0
  39. package/renderer/styles-collaboration.css +534 -0
  40. package/renderer/styles-components.css +1293 -0
  41. package/renderer/styles-onboarding.css +344 -0
  42. package/renderer/styles-overlays.css +284 -0
  43. package/renderer/styles-product.css +686 -0
  44. package/renderer/styles-responsive-product.css +689 -0
  45. package/renderer/styles-responsive-runtime.css +718 -0
  46. package/renderer/styles-responsive-shell.css +533 -0
  47. package/renderer/styles-responsive-workflows.css +778 -0
  48. package/renderer/styles-run-composer.css +695 -0
  49. package/renderer/styles-settings.css +606 -0
  50. package/renderer/styles-terminal.css +1241 -0
  51. package/renderer/styles-tmux.css +1162 -0
  52. package/renderer/styles-workflow-map.css +513 -0
  53. package/renderer/styles-workflows.css +1217 -0
  54. package/renderer/styles.css +486 -0
  55. package/renderer/terminal-agent.js +152 -0
  56. package/renderer/terminal-events.js +226 -0
  57. package/renderer/terminal-workbench.js +464 -0
  58. package/renderer/terminal.js +497 -0
  59. package/src/agentMonitor/claudeParser.js +197 -0
  60. package/src/agentMonitor/codexCollaboration.js +95 -0
  61. package/src/agentMonitor/codexParser.js +447 -0
  62. package/src/agentMonitor/genericParser.js +244 -0
  63. package/src/agentMonitor/hierarchy.js +248 -0
  64. package/src/agentMonitor/sessionFiles.js +86 -0
  65. package/src/agentMonitor.js +591 -0
  66. package/src/agentRunner.js +465 -0
  67. package/src/bridgeServer.js +246 -0
  68. package/src/contracts.js +71 -0
  69. package/src/diagnostics.js +23 -0
  70. package/src/ipc/registerAgentIpc.js +12 -0
  71. package/src/ipc/registerAppIpc.js +20 -0
  72. package/src/ipc/registerTerminalIpc.js +50 -0
  73. package/src/ipc/registerTmuxIpc.js +30 -0
  74. package/src/ipc/registerWorkspaceIpc.js +14 -0
  75. package/src/monitorWorker.js +273 -0
  76. package/src/processMonitor.js +394 -0
  77. package/src/providerRegistry.js +120 -0
  78. package/src/terminalManager.js +438 -0
  79. package/src/tmuxController.js +183 -0
  80. package/src/tmuxMonitor.js +432 -0
  81. package/src/updateManager.js +339 -0
  82. package/src/workspaceStore.js +77 -0
@@ -0,0 +1,686 @@
1
+ /*
2
+ * Product experiences
3
+ * -------------------
4
+ * Onboarding, run composer, settings, language, and release management.
5
+ */
6
+
7
+ .field-label {
8
+ display: block;
9
+ margin-bottom: 6px;
10
+ color: #7e899b;
11
+ font-size: 9px;
12
+ }
13
+
14
+ .permission-toggle {
15
+ display: grid!important;
16
+ grid-template-columns: auto auto 1fr;
17
+ align-items: start;
18
+ gap: 10px;
19
+ margin-top: 14px;
20
+ padding: 11px;
21
+ border: 1px solid var(--line-soft);
22
+ border-radius: 10px;
23
+ background: #0a0e15;
24
+ cursor: pointer;
25
+ }
26
+
27
+ .permission-toggle input {
28
+ position: absolute;
29
+ opacity: 0;
30
+ pointer-events: none;
31
+ }
32
+
33
+ .permission-toggle input:checked+.toggle-track {
34
+ background: #235e51;
35
+ }
36
+
37
+ .permission-toggle input:checked+.toggle-track:after {
38
+ left: 16px;
39
+ background: var(--green);
40
+ }
41
+
42
+ .permission-toggle div strong {
43
+ display: block;
44
+ font-size: 9px;
45
+ }
46
+
47
+ .permission-toggle div small {
48
+ display: block;
49
+ margin-top: 4px;
50
+ color: #606c7e;
51
+ font-size: 8px;
52
+ line-height: 1.45;
53
+ }
54
+
55
+ .runtime-strip {
56
+ display: grid;
57
+ grid-template-columns: auto auto minmax(0,1fr);
58
+ align-items: center;
59
+ gap: 7px;
60
+ margin: 9px 16px 0;
61
+ padding: 8px 10px;
62
+ border: 1px solid rgba(76,227,154,.2);
63
+ border-radius: 9px;
64
+ background: rgba(76,227,154,.055);
65
+ color: #8190a2;
66
+ font-size: 10px;
67
+ }
68
+
69
+ .runtime-strip b {
70
+ color: #75e5aa;
71
+ font-size: 10px;
72
+ white-space: nowrap;
73
+ }
74
+
75
+ .runtime-strip>span:last-child {
76
+ overflow: hidden;
77
+ text-overflow: ellipsis;
78
+ white-space: nowrap;
79
+ }
80
+
81
+ .runtime-pulse {
82
+ width: 7px;
83
+ height: 7px;
84
+ border-radius: 50%;
85
+ background: var(--green);
86
+ box-shadow: 0 0 0 4px rgba(76,227,154,.08),0 0 12px rgba(76,227,154,.45);
87
+ animation: pulse 1.4s infinite;
88
+ }
89
+
90
+ .runtime-meta {
91
+ border-color: rgba(76,227,154,.24);
92
+ color: #69dda6;
93
+ }
94
+
95
+ .runtime-meta b {
96
+ color: #79e9b1;
97
+ }
98
+
99
+ .primary-button {
100
+ background: linear-gradient(135deg,#dce8f4,#a7c8db);
101
+ color: #071017;
102
+ box-shadow: 0 8px 26px rgba(93,164,196,.13);
103
+ padding: 0 16px;
104
+ border-radius: 10px;
105
+ border: 1px solid transparent;
106
+ font-weight: 650;
107
+ cursor: pointer;
108
+ height: 42px;
109
+ font-size: 13px;
110
+ transition: transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-medium) ease,opacity var(--motion-fast) ease;
111
+ }
112
+
113
+ .ghost-button {
114
+ background: #111722;
115
+ color: #a8b3c2;
116
+ padding: 0 16px;
117
+ border-radius: 10px;
118
+ border: 1px solid transparent;
119
+ border-color: var(--line);
120
+ font-weight: 650;
121
+ cursor: pointer;
122
+ height: 42px;
123
+ font-size: 13px;
124
+ transition: transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-medium) ease,opacity var(--motion-fast) ease;
125
+ }
126
+
127
+ .load-more {
128
+ display: block;
129
+ width: 100%;
130
+ margin-top: 13px;
131
+ border: 1px solid var(--line);
132
+ border-radius: 11px;
133
+ background: #0e141e;
134
+ color: #7d899b;
135
+ cursor: pointer;
136
+ height: 46px;
137
+ font-size: 12px;
138
+ transition: transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-medium) ease,opacity var(--motion-fast) ease;
139
+ }
140
+
141
+ .agent-runtime-split {
142
+ display: grid;
143
+ gap: 16px;
144
+ }
145
+
146
+ .runtime-segment {
147
+ min-width: 0;
148
+ overflow: hidden;
149
+ border: 1px solid #24323e;
150
+ border-radius: 16px;
151
+ background: rgba(6,10,15,.66);
152
+ }
153
+
154
+ .runtime-segment>header {
155
+ min-height: 70px;
156
+ display: flex;
157
+ align-items: center;
158
+ gap: 12px;
159
+ padding: 12px 14px;
160
+ border-bottom: 1px solid #1e2b35;
161
+ background: linear-gradient(90deg,rgba(21,31,41,.92),rgba(10,16,23,.72));
162
+ }
163
+
164
+ .runtime-segment>header>span:nth-child(2) {
165
+ min-width: 0;
166
+ flex: 1;
167
+ }
168
+
169
+ .runtime-segment>header small {
170
+ display: block;
171
+ color: #718395;
172
+ font-size: 9px;
173
+ font-weight: 800;
174
+ letter-spacing: .08em;
175
+ }
176
+
177
+ .runtime-segment>header b {
178
+ display: block;
179
+ margin-top: 3px;
180
+ color: #e2eaf0;
181
+ font-size: 15px;
182
+ }
183
+
184
+ .runtime-segment>header em {
185
+ display: block;
186
+ margin-top: 3px;
187
+ color: #67788a;
188
+ font-size: 10px;
189
+ font-style: normal;
190
+ }
191
+
192
+ .runtime-segment>header>strong {
193
+ min-width: 43px;
194
+ padding: 7px 9px;
195
+ border: 1px solid #30404d;
196
+ border-radius: 9px;
197
+ background: #101922;
198
+ color: #9bacbc;
199
+ font-size: 12px;
200
+ text-align: center;
201
+ }
202
+
203
+ .runtime-segment-icon {
204
+ width: 39px;
205
+ height: 39px;
206
+ display: grid;
207
+ place-items: center;
208
+ flex: 0 0 auto;
209
+ border: 1px solid #31424f;
210
+ border-radius: 10px;
211
+ background: #111c26;
212
+ color: #91a2b3;
213
+ font-family: "Cascadia Code",Consolas,monospace;
214
+ font-size: 11px;
215
+ font-weight: 800;
216
+ }
217
+
218
+ .runtime-segment .agent-flow-overview {
219
+ padding: 12px;
220
+ }
221
+
222
+ .runtime-segment-empty {
223
+ min-height: 112px;
224
+ display: flex;
225
+ flex-direction: column;
226
+ align-items: center;
227
+ justify-content: center;
228
+ padding: 18px;
229
+ text-align: center;
230
+ }
231
+
232
+ .runtime-segment-empty b {
233
+ color: #aebbc7;
234
+ font-size: 12px;
235
+ }
236
+
237
+ .runtime-segment-empty span {
238
+ margin-top: 6px;
239
+ color: #617183;
240
+ font-size: 10px;
241
+ }
242
+
243
+ .tmux-runtime .runtime-segment-icon {
244
+ border-color: #386d5d;
245
+ background: #12362d;
246
+ color: #70e4bb;
247
+ }
248
+
249
+ .section-explain {
250
+ max-width: 680px;
251
+ margin: 5px 0 0;
252
+ line-height: 1.5;
253
+ color: #98a6b5;
254
+ font-size: 12px;
255
+ word-break: keep-all;
256
+ overflow-wrap: break-word;
257
+ }
258
+
259
+ .chat-roadmap {
260
+ overflow: hidden;
261
+ border-radius: 14px;
262
+ background: linear-gradient(145deg,color-mix(in srgb,var(--drawer-provider) 7%,#101820),#0a1017 72%);
263
+ box-shadow: 0 0 0 1px rgba(255,255,255,.085),0 14px 32px rgba(0,0,0,.16);
264
+ }
265
+
266
+ .chat-roadmap>summary {
267
+ min-height: 64px;
268
+ display: grid;
269
+ grid-template-columns: 36px minmax(0,1fr) 26px;
270
+ align-items: center;
271
+ gap: 11px;
272
+ padding: 10px 13px;
273
+ cursor: pointer;
274
+ list-style: none;
275
+ transition-property: background-color,box-shadow;
276
+ transition-duration: 180ms;
277
+ transition-timing-function: ease-out;
278
+ }
279
+
280
+ .chat-roadmap>summary::-webkit-details-marker {
281
+ display: none;
282
+ }
283
+
284
+ .chat-roadmap>summary:hover {
285
+ background: rgba(255,255,255,.025);
286
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,.035);
287
+ }
288
+
289
+ .chat-roadmap-mark {
290
+ width: 36px;
291
+ height: 36px;
292
+ display: grid;
293
+ place-items: center;
294
+ border-radius: 9px;
295
+ background: color-mix(in srgb,var(--drawer-provider) 14%,#17212a);
296
+ color: var(--drawer-provider);
297
+ font-size: 8px;
298
+ font-weight: 850;
299
+ letter-spacing: .08em;
300
+ }
301
+
302
+ .chat-roadmap>summary span:nth-child(2) {
303
+ min-width: 0;
304
+ }
305
+
306
+ .chat-roadmap>summary b {
307
+ display: block;
308
+ overflow: hidden;
309
+ text-overflow: ellipsis;
310
+ white-space: nowrap;
311
+ color: #e7eef3;
312
+ font-size: 13px;
313
+ }
314
+
315
+ .chat-roadmap>summary small {
316
+ display: block;
317
+ overflow: hidden;
318
+ text-overflow: ellipsis;
319
+ white-space: nowrap;
320
+ margin-top: 4px;
321
+ color: #738394;
322
+ font-size: 10px;
323
+ }
324
+
325
+ .chat-roadmap>summary>i {
326
+ display: grid;
327
+ place-items: center;
328
+ color: #7e928f;
329
+ font-size: 13px;
330
+ font-style: normal;
331
+ transition-property: transform,color;
332
+ transition-duration: 180ms;
333
+ transition-timing-function: cubic-bezier(.2,0,0,1);
334
+ }
335
+
336
+ .chat-roadmap[open]>summary>i {
337
+ transform: rotate(180deg);
338
+ color: var(--drawer-provider);
339
+ }
340
+
341
+ .chat-roadmap-preview {
342
+ display: grid;
343
+ gap: 7px;
344
+ margin: 0;
345
+ padding: 2px 16px 15px 52px;
346
+ counter-reset: roadmap-preview;
347
+ list-style: none;
348
+ }
349
+
350
+ .chat-roadmap-preview li {
351
+ text-wrap: pretty;
352
+ position: relative;
353
+ min-width: 0;
354
+ overflow: hidden;
355
+ color: #aebbc5;
356
+ font-size: 11px;
357
+ line-height: 1.5;
358
+ text-overflow: ellipsis;
359
+ white-space: nowrap;
360
+ }
361
+
362
+ .chat-roadmap-preview li:before {
363
+ counter-increment: roadmap-preview;
364
+ content: counter(roadmap-preview);
365
+ position: absolute;
366
+ right: calc(100% + 9px);
367
+ top: 1px;
368
+ width: 18px;
369
+ height: 18px;
370
+ display: grid;
371
+ place-items: center;
372
+ border-radius: 6px;
373
+ background: #17232b;
374
+ color: #6fcfae;
375
+ font-size: 8px;
376
+ font-weight: 800;
377
+ }
378
+
379
+ .chat-roadmap-full {
380
+ display: none;
381
+ padding: 0 10px 10px;
382
+ }
383
+
384
+ .chat-roadmap[open] .chat-roadmap-preview {
385
+ display: none;
386
+ }
387
+
388
+ .chat-roadmap[open] .chat-roadmap-full {
389
+ display: block;
390
+ }
391
+
392
+ .chat-roadmap-full .chat-content.markdown {
393
+ border-radius: 10px;
394
+ background: rgba(5,10,15,.62);
395
+ }
396
+
397
+ .run-request-step {
398
+ border-bottom: 1px solid rgba(255,255,255,.06);
399
+ }
400
+
401
+ .run-setup-step {
402
+ padding-top: 18px;
403
+ }
404
+
405
+ .run-shortcut-hint {
406
+ margin-right: auto;
407
+ color: #627484;
408
+ font-size: 9px;
409
+ }
410
+
411
+ .run-shortcut-hint kbd {
412
+ font: inherit;
413
+ display: inline-grid;
414
+ min-width: 20px;
415
+ height: 20px;
416
+ place-items: center;
417
+ padding: 0 5px;
418
+ border-radius: 6px;
419
+ background: #151f29;
420
+ color: #8fa0ae;
421
+ box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
422
+ }
423
+
424
+ .skip-link {
425
+ position: fixed;
426
+ z-index: 100;
427
+ top: 10px;
428
+ left: 10px;
429
+ padding: 10px 14px;
430
+ border: 2px solid var(--focus);
431
+ border-radius: 10px;
432
+ background: #f2f8fc;
433
+ color: #071017;
434
+ font-size: 13px;
435
+ font-weight: 800;
436
+ transform: translateY(-150%);
437
+ transition: transform .16s ease;
438
+ }
439
+
440
+ .skip-link:focus {
441
+ transform: translateY(0);
442
+ }
443
+
444
+ .permission-toggle input:focus-visible+.toggle-track {
445
+ outline: 3px solid var(--focus);
446
+ outline-offset: 3px;
447
+ }
448
+
449
+ .section-title {
450
+ height: 28px;
451
+ display: flex;
452
+ align-items: center;
453
+ justify-content: space-between;
454
+ padding: 0 8px;
455
+ font-weight: 750;
456
+ letter-spacing: .14em;
457
+ text-transform: uppercase;
458
+ color: #8998aa;
459
+ font-size: 11px;
460
+ }
461
+
462
+ .icon-button {
463
+ transition: transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-medium) ease,opacity var(--motion-fast) ease;
464
+ border: 0;
465
+ border-radius: 7px;
466
+ background: transparent;
467
+ color: #7f8ba0;
468
+ cursor: pointer;
469
+ width: 34px;
470
+ height: 34px;
471
+ font-size: 17px;
472
+ }
473
+
474
+ .provider-rail-item {
475
+ transition: transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-medium) ease,opacity var(--motion-fast) ease;
476
+ display: flex;
477
+ align-items: center;
478
+ gap: 9px;
479
+ padding: 0 8px;
480
+ border-radius: 9px;
481
+ color: #a9b4c2;
482
+ min-height: 42px;
483
+ height: auto;
484
+ font-size: 13px;
485
+ }
486
+
487
+ .provider-rail-item small {
488
+ margin-left: auto;
489
+ color: #93a1b1;
490
+ font-size: 11px;
491
+ }
492
+
493
+ .runtime-disclosure {
494
+ overflow: hidden;
495
+ border: 1px solid #243b42;
496
+ border-radius: 14px;
497
+ background: #091116;
498
+ }
499
+
500
+ .runtime-disclosure>summary {
501
+ min-height: 68px;
502
+ display: flex;
503
+ align-items: center;
504
+ justify-content: space-between;
505
+ gap: 18px;
506
+ padding: 13px 15px;
507
+ cursor: pointer;
508
+ list-style: none;
509
+ background: linear-gradient(90deg,rgba(76,227,154,.08),rgba(10,17,23,.76));
510
+ }
511
+
512
+ .runtime-disclosure>summary::-webkit-details-marker {
513
+ display: none;
514
+ }
515
+
516
+ .runtime-disclosure>summary b {
517
+ display: block;
518
+ color: #dfeae6;
519
+ font-size: 14px;
520
+ }
521
+
522
+ .runtime-disclosure>summary small {
523
+ display: block;
524
+ margin-top: 4px;
525
+ color: #91a39f;
526
+ font-size: 11px;
527
+ }
528
+
529
+ .runtime-disclosure>summary em {
530
+ color: #7de0ba;
531
+ font-size: 11px;
532
+ font-style: normal;
533
+ font-weight: 750;
534
+ }
535
+
536
+ .runtime-disclosure>summary i {
537
+ display: inline-block;
538
+ margin-left: 5px;
539
+ font-style: normal;
540
+ transition: transform .18s ease;
541
+ }
542
+
543
+ .runtime-disclosure[open]>summary i {
544
+ transform: rotate(180deg);
545
+ }
546
+
547
+ .runtime-disclosure>.agent-runtime-split {
548
+ padding: 12px;
549
+ border-top: 1px solid #1c302f;
550
+ }
551
+
552
+ .workspace-list {
553
+ display: grid;
554
+ overflow: auto;
555
+ padding-right: 2px;
556
+ gap: 5px;
557
+ }
558
+
559
+ .workspace-row {
560
+ position: relative;
561
+ display: grid;
562
+ grid-template-columns: minmax(0,1fr) 34px;
563
+ align-items: center;
564
+ gap: 4px;
565
+ }
566
+
567
+ .workspace-row .workspace-item {
568
+ width: 100%;
569
+ min-width: 0;
570
+ }
571
+
572
+ .workspace-item {
573
+ transition: transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-medium) ease,opacity var(--motion-fast) ease;
574
+ display: flex;
575
+ align-items: center;
576
+ gap: 9px;
577
+ padding: 0 8px;
578
+ border-radius: 9px;
579
+ min-height: 42px;
580
+ height: auto;
581
+ font-size: 13px;
582
+ position: relative;
583
+ width: 100%;
584
+ border: 1px solid transparent;
585
+ background: transparent;
586
+ color: #b4bfcc;
587
+ text-align: left;
588
+ cursor: pointer;
589
+ }
590
+
591
+ .workspace-item:hover {
592
+ border-color: #253546;
593
+ background: #121c28;
594
+ }
595
+
596
+ .workspace-item.selected {
597
+ border-color: #31556a;
598
+ background: #142634;
599
+ color: #e8f5fb;
600
+ box-shadow: inset 3px 0 #59d8ff;
601
+ }
602
+
603
+ .workspace-item.projectless.selected {
604
+ border-color: #315e51;
605
+ background: #132922;
606
+ box-shadow: inset 3px 0 #59dfae;
607
+ }
608
+
609
+ .workspace-remove {
610
+ width: 34px;
611
+ height: 34px;
612
+ border: 0;
613
+ border-radius: 9px;
614
+ background: #131c27;
615
+ color: #94a2b2;
616
+ font-size: 15px;
617
+ cursor: pointer;
618
+ }
619
+
620
+ .workspace-remove:hover {
621
+ background: #2d1d24;
622
+ color: #ff9baa;
623
+ }
624
+
625
+ .child-row {
626
+ display: flex;
627
+ align-items: center;
628
+ gap: 6px;
629
+ margin: 0 16px 11px;
630
+ padding-top: 9px;
631
+ border-top: 1px solid var(--line-soft);
632
+ color: #909eaf;
633
+ font-size: 11px;
634
+ }
635
+
636
+ .chat-bubble-head b {
637
+ font-size: 11px;
638
+ }
639
+
640
+ .meta-chip {
641
+ transition: transform var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-medium) ease,opacity var(--motion-fast) ease;
642
+ display: flex;
643
+ align-items: center;
644
+ gap: 5px;
645
+ max-width: 100%;
646
+ padding: 5px 8px;
647
+ border: 1px solid var(--line);
648
+ border-radius: 8px;
649
+ background: #0b0f17;
650
+ font-size: 8px;
651
+ min-height: 32px;
652
+ color: #98a6b6;
653
+ }
654
+
655
+ .chat-bubble-head span {
656
+ font-size: 10px;
657
+ color: #8997a8;
658
+ }
659
+
660
+ .provider-recheck {
661
+ width: 100%;
662
+ min-height: 40px;
663
+ margin-top: 8px;
664
+ border: 1px solid #715b34;
665
+ border-radius: 9px;
666
+ background: #2c2314;
667
+ color: #f0ce8b;
668
+ font-size: 11px;
669
+ font-weight: 750;
670
+ cursor: pointer;
671
+ }
672
+
673
+ .run-permission-hint {
674
+ margin-top: 8px;
675
+ padding: 10px 12px;
676
+ border: 1px solid #67522e;
677
+ border-radius: 10px;
678
+ background: #211a10;
679
+ color: #e7c681;
680
+ font-size: 11px;
681
+ line-height: 1.55;
682
+ }
683
+
684
+ .mobile-more-nav {
685
+ display: none;
686
+ }