@nexface/tools 0.1.14 → 0.1.15-alpha.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 (88) hide show
  1. package/dist/browser/actions.js +10 -34
  2. package/dist/browser/actions.js.map +1 -0
  3. package/dist/browser/controller.js +74 -53
  4. package/dist/browser/controller.js.map +1 -0
  5. package/dist/browser/diagnostics.js +3 -8
  6. package/dist/browser/diagnostics.js.map +1 -0
  7. package/dist/browser/dom.js +28 -12
  8. package/dist/browser/dom.js.map +1 -0
  9. package/dist/browser/feedback.js +5 -6
  10. package/dist/browser/feedback.js.map +1 -0
  11. package/dist/browser/focus.js +1 -0
  12. package/dist/browser/focus.js.map +1 -0
  13. package/dist/browser/locator.js +9 -3
  14. package/dist/browser/locator.js.map +1 -0
  15. package/dist/browser/prompt.generated.js +1 -0
  16. package/dist/browser/prompt.generated.js.map +1 -0
  17. package/dist/browser/prompt.js +1 -0
  18. package/dist/browser/prompt.js.map +1 -0
  19. package/dist/browser/snapshot.js +22 -10
  20. package/dist/browser/snapshot.js.map +1 -0
  21. package/dist/browser/toolset.js +36 -42
  22. package/dist/browser/toolset.js.map +1 -0
  23. package/dist/browser/types.d.ts +1 -1
  24. package/dist/browser/types.js +1 -0
  25. package/dist/browser/types.js.map +1 -0
  26. package/dist/browser/worker-runner.js +1 -0
  27. package/dist/browser/worker-runner.js.map +1 -0
  28. package/dist/definition.d.ts +3 -1
  29. package/dist/definition.js +2 -2
  30. package/dist/definition.js.map +1 -0
  31. package/dist/index.browser.js +1 -0
  32. package/dist/index.browser.js.map +1 -0
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.js +2 -1
  35. package/dist/index.js.map +1 -0
  36. package/dist/internal-react.d.ts +1 -1
  37. package/dist/internal-react.js +4 -3
  38. package/dist/internal-react.js.map +1 -0
  39. package/dist/internal-types.js +1 -0
  40. package/dist/internal-types.js.map +1 -0
  41. package/dist/navigation.js +1 -0
  42. package/dist/navigation.js.map +1 -0
  43. package/dist/operation-lock.js +2 -36
  44. package/dist/operation-lock.js.map +1 -0
  45. package/dist/operation-runtime.js +13 -41
  46. package/dist/operation-runtime.js.map +1 -0
  47. package/dist/operation-surface.js +41 -118
  48. package/dist/operation-surface.js.map +1 -0
  49. package/dist/operation-types.js +1 -0
  50. package/dist/operation-types.js.map +1 -0
  51. package/dist/operation-view.d.ts +1 -1
  52. package/dist/operation-view.js +60 -120
  53. package/dist/operation-view.js.map +1 -0
  54. package/dist/react.js +9 -6
  55. package/dist/react.js.map +1 -0
  56. package/dist/registration.d.ts +6 -0
  57. package/dist/registration.js +25 -3
  58. package/dist/registration.js.map +1 -0
  59. package/dist/runtime.d.ts +2 -4
  60. package/dist/runtime.js +44 -103
  61. package/dist/runtime.js.map +1 -0
  62. package/dist/shared/definition.js +1 -0
  63. package/dist/shared/definition.js.map +1 -0
  64. package/dist/shared/errors.d.ts +1 -1
  65. package/dist/shared/errors.js +1 -0
  66. package/dist/shared/errors.js.map +1 -0
  67. package/dist/shared/page-protocol.js +1 -0
  68. package/dist/shared/page-protocol.js.map +1 -0
  69. package/dist/shared/page-tools.js +1 -0
  70. package/dist/shared/page-tools.js.map +1 -0
  71. package/dist/shared/runtime-controller.d.ts +0 -1
  72. package/dist/shared/runtime-controller.js +1 -0
  73. package/dist/shared/runtime-controller.js.map +1 -0
  74. package/dist/shared/runtime-execution.js +1 -0
  75. package/dist/shared/runtime-execution.js.map +1 -0
  76. package/dist/shared/schema.js +19 -45
  77. package/dist/shared/schema.js.map +1 -0
  78. package/dist/shared/tool-registry.d.ts +6 -0
  79. package/dist/shared/tool-registry.js +10 -0
  80. package/dist/shared/tool-registry.js.map +1 -0
  81. package/dist/styles.css +109 -879
  82. package/dist/types.js +1 -0
  83. package/dist/types.js.map +1 -0
  84. package/dist/webmcp.js +12 -38
  85. package/dist/webmcp.js.map +1 -0
  86. package/package.json +2 -6
  87. package/dist/tool-search.d.ts +0 -11
  88. package/dist/tool-search.js +0 -117
package/dist/styles.css CHANGED
@@ -1,722 +1,80 @@
1
- .agent-operation {
2
- --agent-operation-accent: #6366f1;
3
- --agent-operation-glow: #22d3ee;
4
- position: fixed;
5
- z-index: 9999;
6
- inset: 0;
7
- pointer-events: none;
8
- }
9
- .agent-operation__surface {
10
- position: fixed;
11
- z-index: 0;
12
- overflow: hidden;
13
- contain: paint;
14
- border: 1px solid rgba(96, 156, 245, 0.9);
15
- border-radius: 8px;
16
- background: rgba(96, 156, 245, 0.06);
17
- pointer-events: none;
18
- box-shadow:
19
- inset 0 0 0 1px rgba(255, 255, 255, 0.72),
20
- 0 0 8px rgba(96, 156, 245, 0.2);
21
- }
22
- .agent-operation__surface::before,
23
- .agent-operation__surface::after {
24
- position: absolute;
25
- z-index: 2;
26
- inset: 0;
27
- border-radius: inherit;
28
- content: "";
29
- pointer-events: none;
30
- -webkit-mask-image:
31
- linear-gradient(to bottom, #000 0, rgba(0, 0, 0, 0.7) 7px, transparent 28px),
32
- linear-gradient(to left, #000 0, rgba(0, 0, 0, 0.7) 7px, transparent 28px),
33
- linear-gradient(to top, #000 0, rgba(0, 0, 0, 0.7) 7px, transparent 28px),
34
- linear-gradient(to right, #000 0, rgba(0, 0, 0, 0.7) 7px, transparent 28px);
35
- mask-image:
36
- linear-gradient(to bottom, #000 0, rgba(0, 0, 0, 0.7) 7px, transparent 28px),
37
- linear-gradient(to left, #000 0, rgba(0, 0, 0, 0.7) 7px, transparent 28px),
38
- linear-gradient(to top, #000 0, rgba(0, 0, 0, 0.7) 7px, transparent 28px),
39
- linear-gradient(to right, #000 0, rgba(0, 0, 0, 0.7) 7px, transparent 28px);
40
- }
41
- .agent-operation__surface::before {
42
- --agent-operation-edge-primary-angle: 0deg;
43
- background: conic-gradient(
44
- from var(--agent-operation-edge-primary-angle) at 50% 50%,
45
- transparent 0% 8%,
46
- rgba(139, 92, 246, 0.24) 11%,
47
- rgba(139, 92, 246, 0.76) 17%,
48
- rgba(34, 211, 238, 0.9) 23%,
49
- #3b82f6 26%,
50
- rgba(191, 219, 254, 0.92) 27.5%,
51
- transparent 31% 56%,
52
- rgba(139, 92, 246, 0.3) 61%,
53
- rgba(34, 211, 238, 0.46) 66%,
54
- transparent 72% 100%
55
- );
56
- filter: blur(32px);
57
- opacity: 0.68;
58
- animation: agent-operation-surface-edge-primary 6s linear infinite;
59
- }
60
- .agent-operation__surface::after {
61
- --agent-operation-edge-secondary-angle: 0deg;
62
- z-index: 3;
63
- background: conic-gradient(
64
- from var(--agent-operation-edge-secondary-angle) at 50% 50%,
65
- transparent 0% 18%,
66
- rgba(139, 92, 246, 0.5) 23%,
67
- rgba(34, 211, 238, 0.58) 30%,
68
- rgba(59, 130, 246, 0.88) 35%,
69
- transparent 41% 75%,
70
- rgba(34, 211, 238, 0.28) 80%,
71
- rgba(167, 139, 250, 0.46) 86%,
72
- transparent 91% 100%
73
- );
74
- filter: blur(44px);
75
- opacity: 0.52;
76
- mix-blend-mode: screen;
77
- animation: agent-operation-surface-edge-secondary 8s linear infinite;
78
- }
79
- .agent-operation__surface[style*="--agent-operation-cutout"] {
80
- -webkit-mask-image: linear-gradient(#000 0 0), linear-gradient(#000 0 0);
81
- -webkit-mask-position:
82
- 0 0,
83
- var(--agent-operation-cutout-left) var(--agent-operation-cutout-top);
84
- -webkit-mask-repeat: no-repeat;
85
- -webkit-mask-size:
86
- 100% 100%,
87
- var(--agent-operation-cutout-width) var(--agent-operation-cutout-height);
88
- -webkit-mask-composite: xor;
89
- mask-image: linear-gradient(#000 0 0), linear-gradient(#000 0 0);
90
- mask-position:
91
- 0 0,
92
- var(--agent-operation-cutout-left) var(--agent-operation-cutout-top);
93
- mask-repeat: no-repeat;
94
- mask-size:
95
- 100% 100%,
96
- var(--agent-operation-cutout-width) var(--agent-operation-cutout-height);
97
- mask-composite: exclude;
98
- }
99
- .agent-operation__target {
100
- position: fixed;
101
- z-index: 1;
102
- overflow: hidden;
103
- border: 2px solid #4f7cff;
104
- border-radius: 10px;
105
- background: transparent;
106
- pointer-events: none;
107
- box-shadow:
108
- 0 0 0 4px rgba(99, 102, 241, 0.16),
109
- 0 0 22px rgba(34, 211, 238, 0.34),
110
- 0 0 48px rgba(79, 70, 229, 0.2);
111
- transition:
112
- inset 0.12s ease,
113
- width 0.12s ease,
114
- height 0.12s ease;
115
- animation: agent-operation-pulse 2.6s ease-in-out infinite;
116
- }
117
- .agent-operation__pointer-effect {
118
- position: fixed;
119
- z-index: 2;
120
- top: 0;
121
- left: 0;
122
- width: 0;
123
- height: 0;
124
- opacity: 1;
125
- pointer-events: none;
126
- transform: translate3d(var(--agent-operation-pointer-x), var(--agent-operation-pointer-y), 0);
127
- transition:
128
- transform var(--agent-operation-pointer-duration) cubic-bezier(0.22, 1, 0.36, 1),
129
- opacity 0.12s ease-out;
130
- will-change: transform, opacity;
131
- }
132
- .agent-operation__pointer-cursor {
133
- position: absolute;
134
- z-index: 1;
135
- top: -4px;
136
- left: -3px;
137
- display: block;
138
- width: 24px;
139
- height: 24px;
140
- transform-origin: 4px 4px;
141
- }
142
- .agent-operation__pointer {
143
- position: relative;
144
- z-index: 2;
145
- display: block;
146
- color: #111827;
147
- filter: drop-shadow(0 0 1px #fff) drop-shadow(0 1px 2px rgba(15, 23, 42, 0.32));
148
- }
149
- .agent-operation__pointer-label {
150
- position: absolute;
151
- z-index: 2;
152
- top: 27px;
153
- left: 19px;
154
- display: flex;
155
- max-width: min(300px, 48vw);
156
- overflow: hidden;
157
- align-items: center;
158
- gap: 9px;
159
- border: 1px solid rgba(24, 24, 27, 0.1);
160
- border-radius: 11px;
161
- padding: 7px 11px;
162
- color: #27272a;
163
- background: rgba(255, 255, 255, 0.97);
164
- box-shadow: 0 6px 20px rgba(15, 23, 42, 0.13);
165
- font:
166
- 500 13px / 1.35 Inter,
167
- ui-sans-serif,
168
- system-ui,
169
- sans-serif;
170
- white-space: nowrap;
171
- }
172
- .agent-operation__pointer-label:is(
173
- [data-operation-effect="read"],
174
- [data-operation-effect="navigate"]
175
- ) {
176
- top: 12px;
177
- left: 10px;
178
- overflow: visible;
179
- gap: 5px;
180
- border: 0;
181
- padding: 0;
182
- background: transparent;
183
- box-shadow: none;
184
- }
185
- .agent-operation__pointer-label[data-browser-tool="true"] {
186
- top: 0;
187
- left: 0;
188
- transform: translate(-50%, -50%);
189
- }
190
- .agent-operation__pointer-label-text {
191
- overflow: hidden;
192
- text-overflow: ellipsis;
193
- }
194
- .agent-operation__pointer-label:is(
195
- [data-operation-effect="read"],
196
- [data-operation-effect="navigate"]
197
- )
198
- .agent-operation__pointer-label-text {
199
- display: flex;
200
- box-sizing: border-box;
201
- height: 32px;
202
- align-items: center;
203
- border: 1px solid rgba(24, 24, 27, 0.08);
204
- border-radius: 12px;
205
- padding: 6px 12px;
206
- background: rgba(255, 255, 255, 0.97);
207
- box-shadow: 0 6px 20px rgba(15, 23, 42, 0.13);
208
- }
209
- .agent-operation__pointer-read-scan {
210
- display: flex;
211
- width: 36px;
212
- height: 32px;
213
- flex: none;
214
- align-items: center;
215
- justify-content: center;
216
- gap: 4px;
217
- pointer-events: none;
218
- }
219
- .agent-operation__pointer-read-scan i {
220
- width: 3px;
221
- height: 11px;
222
- border-radius: 999px;
223
- background: #609cf5;
224
- opacity: 0.34;
225
- transform: scaleY(0.58);
226
- transform-origin: center;
227
- animation: agent-operation-pointer-read-bar 1.05s ease-in-out infinite;
228
- }
229
- .agent-operation__pointer-read-scan i:nth-child(2) {
230
- animation-delay: 0.1s;
231
- }
232
- .agent-operation__pointer-read-scan i:nth-child(3) {
233
- animation-delay: 0.2s;
234
- }
235
- .agent-operation__pointer-read-scan i:nth-child(4) {
236
- animation-delay: 0.3s;
237
- }
238
- .agent-operation__pointer-read-scan i:nth-child(5) {
239
- animation-delay: 0.4s;
240
- }
241
- .agent-operation__pointer-navigation-trail {
242
- position: relative;
243
- width: 36px;
244
- height: 32px;
245
- flex: none;
246
- filter: drop-shadow(0 1px 3px rgba(96, 156, 245, 0.32));
247
- pointer-events: none;
248
- }
249
- .agent-operation__pointer-navigation-trail::before,
250
- .agent-operation__pointer-navigation-trail::after {
251
- position: absolute;
252
- top: 9px;
253
- width: 10px;
254
- height: 10px;
255
- border-top: 2px solid #609cf5;
256
- border-right: 2px solid #609cf5;
257
- border-radius: 2px;
258
- content: "";
259
- transform: rotate(45deg);
260
- animation: agent-operation-pointer-navigation-chevron 0.9s ease-in-out infinite;
261
- }
262
- .agent-operation__pointer-navigation-trail::before {
263
- left: 1px;
264
- opacity: 0.3;
265
- }
266
- .agent-operation__pointer-navigation-trail::after {
267
- left: 11px;
268
- animation-delay: 0.15s;
269
- }
270
- .agent-operation__controller {
271
- --agent-operation-controller-x: -50%;
272
- position: fixed;
273
- z-index: 3;
274
- left: 50%;
275
- bottom: 22px;
276
- display: flex;
277
- width: 760px;
278
- min-width: min(760px, calc(100vw - 32px));
279
- max-width: calc(100vw - 32px);
280
- align-items: center;
281
- gap: 10px;
282
- border: 1px solid rgba(165, 180, 252, 0.28);
283
- border-radius: 15px;
284
- padding: 9px 10px 9px 12px;
285
- color: #fff;
286
- background: linear-gradient(135deg, #3a3a40 0%, #303036 48%, #29292e 100%);
287
- box-shadow:
288
- inset 0 0 0 1px rgba(103, 232, 249, 0.06),
289
- 0 16px 38px rgba(0, 0, 0, 0.28);
290
- pointer-events: auto;
291
- transform: translate(var(--agent-operation-controller-x), 0);
292
- font-family: Inter, ui-sans-serif, system-ui, sans-serif;
293
- animation:
294
- agent-operation-controller-enter 0.4s cubic-bezier(0.22, 1, 0.36, 1) both,
295
- agent-operation-edge-breathe 2.8s ease-in-out 0.4s infinite;
296
- will-change: transform, opacity;
297
- }
298
- .agent-operation__controller[data-visibility="exiting"] {
299
- pointer-events: none;
300
- animation: agent-operation-controller-exit 0.3s cubic-bezier(0.4, 0, 1, 1) both;
301
- }
302
- .agent-operation__controller::after {
303
- position: absolute;
304
- z-index: 0;
305
- inset: 1px;
306
- border-radius: 13px;
307
- background: linear-gradient(
308
- 110deg,
309
- rgba(255, 255, 255, 0.13),
310
- transparent 30%,
311
- transparent 68%,
312
- rgba(129, 140, 248, 0.15)
313
- );
314
- content: "";
315
- pointer-events: none;
316
- }
317
- .agent-operation__controller > :not(.agent-operation__edge-flow) {
318
- position: relative;
319
- z-index: 2;
320
- }
321
- .agent-operation__edge-flow {
322
- position: absolute;
323
- z-index: 1;
324
- inset: -1px;
325
- overflow: hidden;
326
- border-radius: inherit;
327
- pointer-events: none;
328
- }
329
- .agent-operation__edge-flow::before,
330
- .agent-operation__edge-flow::after {
331
- position: absolute;
332
- height: 2px;
333
- content: "";
334
- }
335
- .agent-operation__edge-flow::before {
336
- top: 0;
337
- left: -34%;
338
- width: 34%;
339
- background: linear-gradient(
340
- 90deg,
341
- transparent,
342
- rgba(165, 180, 252, 0.72),
343
- #e0f2fe,
344
- rgba(34, 211, 238, 0.9),
345
- transparent
346
- );
347
- animation: agent-operation-edge-flow 2.65s ease-in-out infinite;
348
- }
349
- .agent-operation__edge-flow::after {
350
- right: -12%;
351
- bottom: 0;
352
- width: 28%;
353
- background: linear-gradient(
354
- 90deg,
355
- transparent,
356
- rgba(129, 140, 248, 0.78),
357
- rgba(103, 232, 249, 0.68),
358
- transparent
359
- );
360
- animation: agent-operation-edge-flow-reverse 3.1s ease-in-out infinite;
361
- }
362
- .agent-operation__pause-mark {
363
- display: flex;
364
- width: 9px;
365
- flex: 0 0 9px;
366
- justify-content: center;
367
- gap: 2px;
368
- opacity: 0.52;
369
- }
370
- .agent-operation__pause-mark i {
371
- width: 2px;
372
- height: 9px;
373
- border-radius: 2px;
374
- background: #d4d4d8;
375
- }
376
- .agent-operation__activity {
377
- position: relative;
378
- display: grid;
379
- width: 26px;
380
- height: 26px;
381
- flex: 0 0 26px;
382
- place-items: center;
383
- }
384
- .agent-operation__activity-icon {
385
- display: none;
386
- }
387
- .agent-operation__activity i {
388
- position: absolute;
389
- inset: 3px;
390
- border: 1px solid rgba(255, 255, 255, 0.14);
391
- border-top-color: #c7d2fe;
392
- border-radius: 50%;
393
- animation: agent-operation-spin 1.8s linear infinite;
394
- }
395
- .agent-operation__activity b {
396
- color: #eef2ff;
397
- font-size: 17px;
398
- font-weight: 400;
399
- line-height: 1;
400
- }
401
- .agent-operation__controller > div {
402
- display: grid;
403
- min-width: 0;
404
- flex: 1;
405
- gap: 1px;
406
- }
407
- .agent-operation__heading {
408
- display: flex;
409
- min-width: 0;
410
- align-items: center;
411
- gap: 7px;
412
- }
413
- .agent-operation__controller strong {
414
- overflow: hidden;
415
- font-size: 12px;
416
- font-weight: 650;
417
- text-overflow: ellipsis;
418
- white-space: nowrap;
419
- }
420
- .agent-operation__controller code {
421
- overflow: hidden;
422
- padding: 1px 5px;
423
- border-radius: 5px;
424
- color: #a1a1aa;
425
- background: rgba(255, 255, 255, 0.07);
426
- font:
427
- 500 8px / 1.45 ui-monospace,
428
- SFMono-Regular,
429
- Menlo,
430
- monospace;
431
- text-overflow: ellipsis;
432
- white-space: nowrap;
433
- }
434
- .agent-operation__description {
435
- display: flex;
436
- min-width: 0;
437
- overflow: hidden;
438
- align-items: center;
439
- color: #e4e4e7;
440
- font-size: 10px;
441
- white-space: nowrap;
442
- }
443
- .agent-operation__compact-status {
444
- display: none;
445
- }
446
- .agent-operation__controller button {
447
- border: 0;
448
- border-radius: 9px;
449
- padding: 7px 10px;
450
- color: #e4e4e7;
451
- background: #3f3f46;
452
- font-size: 10px;
453
- font-weight: 650;
454
- }
455
- .agent-operation__controller .agent-operation__activity {
456
- border: 0;
457
- padding: 0;
458
- cursor: pointer;
459
- }
460
- .agent-operation__controller .agent-operation__activity:disabled {
461
- cursor: default;
462
- opacity: 0.55;
463
- }
464
- .agent-operation__controller > .agent-operation__history {
465
- position: absolute;
466
- z-index: 4;
467
- bottom: calc(100% + 10px);
468
- left: 0;
469
- display: grid;
470
- width: 360px;
471
- max-width: 100%;
472
- max-height: min(320px, 50vh);
473
- overflow: hidden;
474
- border: 1px solid rgba(165, 180, 252, 0.28);
475
- border-radius: 14px;
476
- color: #f4f4f5;
477
- background: #303036;
478
- box-shadow: 0 16px 38px rgba(0, 0, 0, 0.28);
479
- pointer-events: auto;
480
- }
481
- .agent-operation__history header {
482
- display: flex;
483
- align-items: center;
484
- justify-content: space-between;
485
- border-bottom: 1px solid rgba(255, 255, 255, 0.08);
486
- padding: 11px 13px;
487
- }
488
- .agent-operation__history header span {
489
- display: grid;
490
- min-width: 20px;
491
- height: 20px;
492
- place-items: center;
493
- border-radius: 10px;
494
- color: #c7d2fe;
495
- background: rgba(129, 140, 248, 0.16);
496
- font-size: 10px;
497
- }
498
- .agent-operation__history ol {
499
- display: grid;
500
- overflow: auto;
501
- margin: 0;
502
- padding: 5px 0;
503
- list-style: none;
504
- }
505
- .agent-operation__history li {
506
- display: grid;
507
- grid-template-columns: 22px minmax(0, 1fr);
508
- align-items: start;
509
- gap: 8px;
510
- padding: 8px 13px;
511
- }
512
- .agent-operation__history li > span {
513
- display: grid;
514
- width: 20px;
515
- height: 20px;
516
- place-items: center;
517
- border-radius: 50%;
518
- color: #c7d2fe;
519
- background: rgba(129, 140, 248, 0.12);
520
- font-size: 9px;
521
- }
522
- .agent-operation__history p {
523
- margin: 1px 0 0;
524
- overflow-wrap: anywhere;
525
- color: #e4e4e7;
526
- font-size: 11px;
527
- line-height: 18px;
528
- }
529
- .agent-operation__controller .agent-operation__stop {
530
- color: #fecaca;
531
- background: #7f1d1d;
532
- }
533
- .agent-operation[data-status="completed"] .agent-operation__target {
534
- border-color: #609cf5;
535
- }
536
- .agent-operation[data-status="failed"] .agent-operation__target {
537
- border-color: #dc2626;
538
- animation: none;
539
- }
540
- .agent-operation[data-run-active="false"] .agent-operation__activity i,
541
- .agent-operation[data-run-active="false"] .agent-operation__edge-flow::before,
542
- .agent-operation[data-run-active="false"] .agent-operation__edge-flow::after,
543
- .agent-operation[data-run-active="false"] .agent-operation__surface::before,
544
- .agent-operation[data-run-active="false"] .agent-operation__surface::after {
545
- animation: none;
546
- }
547
- @keyframes agent-operation-spin {
548
- to {
549
- transform: rotate(360deg);
550
- }
551
- }
552
- @keyframes agent-operation-edge-flow {
553
- 0% {
554
- left: -24%;
555
- opacity: 0;
556
- }
557
- 12%,
558
- 78% {
559
- opacity: 1;
560
- }
561
- 100% {
562
- left: 100%;
563
- opacity: 0;
564
- }
565
- }
566
- @keyframes agent-operation-edge-flow-reverse {
567
- 0% {
568
- right: -20%;
569
- opacity: 0;
570
- }
571
- 18%,
572
- 76% {
573
- opacity: 0.8;
574
- }
575
- 100% {
576
- right: 100%;
577
- opacity: 0;
578
- }
579
- }
580
- @keyframes agent-operation-edge-breathe {
581
- 50% {
582
- border-color: rgba(103, 232, 249, 0.42);
583
- }
584
- }
585
- @keyframes agent-operation-pulse {
586
- 50% {
587
- border-color: #38bdf8;
588
- box-shadow:
589
- 0 0 0 6px rgba(99, 102, 241, 0.12),
590
- 0 0 28px rgba(34, 211, 238, 0.4),
591
- 0 0 58px rgba(79, 70, 229, 0.24);
592
- }
593
- }
594
- @property --agent-operation-edge-primary-angle {
595
- syntax: "<angle>";
596
- inherits: false;
597
- initial-value: 0deg;
598
- }
599
- @property --agent-operation-edge-secondary-angle {
600
- syntax: "<angle>";
601
- inherits: false;
602
- initial-value: 0deg;
603
- }
604
- @keyframes agent-operation-surface-edge-primary {
605
- 0% {
606
- --agent-operation-edge-primary-angle: 0deg;
607
- animation-timing-function: cubic-bezier(0.4, 0.25, 0.6, 0.75);
608
- }
609
- 100% {
610
- --agent-operation-edge-primary-angle: 360deg;
611
- }
612
- }
613
- @keyframes agent-operation-surface-edge-secondary {
614
- 0% {
615
- --agent-operation-edge-secondary-angle: 0deg;
616
- animation-timing-function: cubic-bezier(0.4, 0.3, 0.6, 0.7);
617
- }
618
- 100% {
619
- --agent-operation-edge-secondary-angle: 360deg;
620
- }
621
- }
622
- @keyframes agent-operation-controller-enter {
623
- 0% {
624
- opacity: 0;
625
- transform: translate(var(--agent-operation-controller-x), calc(100% + 28px));
626
- }
627
- 100% {
628
- opacity: 1;
629
- transform: translate(var(--agent-operation-controller-x), 0);
630
- }
631
- }
632
- @keyframes agent-operation-controller-exit {
633
- 0% {
634
- opacity: 1;
635
- transform: translate(var(--agent-operation-controller-x), 0);
636
- }
637
- 100% {
638
- opacity: 0;
639
- transform: translate(var(--agent-operation-controller-x), calc(100% + 28px));
640
- }
641
- }
642
- @keyframes agent-operation-pointer-read-bar {
643
- 0%,
644
- 18%,
645
- 100% {
646
- opacity: 0.34;
647
- transform: scaleY(0.58);
648
- box-shadow: none;
649
- }
650
- 42% {
651
- opacity: 1;
652
- transform: scaleY(1.27);
653
- box-shadow: 0 0 6px rgba(96, 156, 245, 0.52);
654
- }
655
- 68% {
656
- opacity: 0.58;
657
- transform: scaleY(0.78);
658
- box-shadow: none;
659
- }
660
- }
661
- @keyframes agent-operation-pointer-navigation-chevron {
662
- 0%,
663
- 100% {
664
- opacity: 0.24;
665
- transform: translateX(-3px) rotate(45deg);
666
- }
667
- 48% {
668
- opacity: 1;
669
- transform: translateX(2px) rotate(45deg);
670
- }
671
- 72% {
672
- opacity: 0.62;
673
- transform: translateX(4px) rotate(45deg);
674
- }
675
- }
676
- @media (prefers-reduced-motion: reduce) {
677
- .agent-operation__surface,
678
- .agent-operation__target,
679
- .agent-operation__controller,
680
- .agent-operation__activity i,
681
- .agent-operation__edge-flow::before,
682
- .agent-operation__edge-flow::after,
683
- .agent-operation__pointer-read-scan i,
684
- .agent-operation__pointer-navigation-trail::before,
685
- .agent-operation__pointer-navigation-trail::after {
686
- animation: none;
687
- }
688
- .agent-operation__pointer-effect {
689
- transition: none;
690
- }
691
- .agent-operation__surface::before,
692
- .agent-operation__surface::after {
693
- display: none;
694
- }
695
- }
696
- @media (max-width: 520px) {
697
- .agent-operation__controller {
698
- --agent-operation-controller-x: 0%;
699
- right: 12px;
700
- bottom: 12px;
701
- left: 12px;
702
- width: auto;
703
- min-width: 0;
704
- }
705
- .agent-operation__controller > .agent-operation__history {
706
- width: 100%;
707
- }
708
- }
1
+ .agent-operation { --agent-operation-accent: #6366f1; --agent-operation-glow: #22d3ee; position: fixed; z-index: 9999; inset: 0; pointer-events: none; }
2
+ .agent-operation__surface { position: fixed; z-index: 0; overflow: hidden; contain: paint; border: 1px solid rgba(96,156,245,.9); border-radius: 8px; background: rgba(96,156,245,.06); pointer-events: none; box-shadow: inset 0 0 0 1px rgba(255,255,255,.72),0 0 8px rgba(96,156,245,.2); }
3
+ .agent-operation__surface::before,.agent-operation__surface::after { position: absolute; z-index: 2; inset: 0; border-radius: inherit; content: ""; pointer-events: none; -webkit-mask-image: linear-gradient(to bottom,#000 0,rgba(0,0,0,.7) 7px,transparent 28px),linear-gradient(to left,#000 0,rgba(0,0,0,.7) 7px,transparent 28px),linear-gradient(to top,#000 0,rgba(0,0,0,.7) 7px,transparent 28px),linear-gradient(to right,#000 0,rgba(0,0,0,.7) 7px,transparent 28px); mask-image: linear-gradient(to bottom,#000 0,rgba(0,0,0,.7) 7px,transparent 28px),linear-gradient(to left,#000 0,rgba(0,0,0,.7) 7px,transparent 28px),linear-gradient(to top,#000 0,rgba(0,0,0,.7) 7px,transparent 28px),linear-gradient(to right,#000 0,rgba(0,0,0,.7) 7px,transparent 28px); }
4
+ .agent-operation__surface::before { --agent-operation-edge-primary-angle: 0deg; background: conic-gradient(from var(--agent-operation-edge-primary-angle) at 50% 50%,transparent 0% 8%,rgba(139,92,246,.24) 11%,rgba(139,92,246,.76) 17%,rgba(34,211,238,.9) 23%,#3b82f6 26%,rgba(191,219,254,.92) 27.5%,transparent 31% 56%,rgba(139,92,246,.3) 61%,rgba(34,211,238,.46) 66%,transparent 72% 100%); filter: blur(32px); opacity: .68; animation: agent-operation-surface-edge-primary 6s linear infinite; }
5
+ .agent-operation__surface::after { --agent-operation-edge-secondary-angle: 0deg; z-index: 3; background: conic-gradient(from var(--agent-operation-edge-secondary-angle) at 50% 50%,transparent 0% 18%,rgba(139,92,246,.5) 23%,rgba(34,211,238,.58) 30%,rgba(59,130,246,.88) 35%,transparent 41% 75%,rgba(34,211,238,.28) 80%,rgba(167,139,250,.46) 86%,transparent 91% 100%); filter: blur(44px); opacity: .52; mix-blend-mode: screen; animation: agent-operation-surface-edge-secondary 8s linear infinite; }
6
+ .agent-operation__surface[style*="--agent-operation-cutout"] { -webkit-mask-image: linear-gradient(#000 0 0),linear-gradient(#000 0 0); -webkit-mask-position: 0 0,var(--agent-operation-cutout-left) var(--agent-operation-cutout-top); -webkit-mask-repeat: no-repeat; -webkit-mask-size: 100% 100%,var(--agent-operation-cutout-width) var(--agent-operation-cutout-height); -webkit-mask-composite: xor; mask-image: linear-gradient(#000 0 0),linear-gradient(#000 0 0); mask-position: 0 0,var(--agent-operation-cutout-left) var(--agent-operation-cutout-top); mask-repeat: no-repeat; mask-size: 100% 100%,var(--agent-operation-cutout-width) var(--agent-operation-cutout-height); mask-composite: exclude; }
7
+ .agent-operation__target { position: fixed; z-index: 1; overflow: hidden; border: 2px solid #4f7cff; border-radius: 10px; background: transparent; pointer-events: none; box-shadow: 0 0 0 4px rgba(99,102,241,.16),0 0 22px rgba(34,211,238,.34),0 0 48px rgba(79,70,229,.2); transition: inset .12s ease,width .12s ease,height .12s ease; animation: agent-operation-pulse 2.6s ease-in-out infinite; }
8
+ .agent-operation__pointer-effect { position: fixed; z-index: 2; top: 0; left: 0; width: 0; height: 0; opacity: 1; pointer-events: none; transform: translate3d(var(--agent-operation-pointer-x),var(--agent-operation-pointer-y),0); transition: transform var(--agent-operation-pointer-duration) cubic-bezier(.22,1,.36,1),opacity .12s ease-out; will-change: transform,opacity; }
9
+ .agent-operation__pointer-cursor { position: absolute; z-index: 1; top: -4px; left: -3px; display: block; width: 24px; height: 24px; transform-origin: 4px 4px; }
10
+ .agent-operation__pointer { position: relative; z-index: 2; display: block; color: #111827; filter: drop-shadow(0 0 1px #fff) drop-shadow(0 1px 2px rgba(15,23,42,.32)); }
11
+ .agent-operation__pointer-label { position: absolute; z-index: 2; top: 27px; left: 19px; display: flex; max-width: min(300px,48vw); overflow: hidden; align-items: center; gap: 9px; border: 1px solid rgba(24,24,27,.1); border-radius: 11px; padding: 7px 11px; color: #27272a; background: rgba(255,255,255,.97); box-shadow: 0 6px 20px rgba(15,23,42,.13); font: 500 13px/1.35 Inter,ui-sans-serif,system-ui,sans-serif; white-space: nowrap; }
12
+ .agent-operation__pointer-label:is([data-operation-effect="read"],[data-operation-effect="navigate"]) { top: 12px; left: 10px; overflow: visible; gap: 5px; border: 0; padding: 0; background: transparent; box-shadow: none; }
13
+ .agent-operation__pointer-label[data-browser-tool="true"] { top: 0; left: 0; transform: translate(-50%,-50%); }
14
+ .agent-operation__pointer-label-text { overflow: hidden; text-overflow: ellipsis; }
15
+ .agent-operation__pointer-label:is([data-operation-effect="read"],[data-operation-effect="navigate"]) .agent-operation__pointer-label-text { display: flex; box-sizing: border-box; height: 32px; align-items: center; border: 1px solid rgba(24,24,27,.08); border-radius: 12px; padding: 6px 12px; background: rgba(255,255,255,.97); box-shadow: 0 6px 20px rgba(15,23,42,.13); }
16
+ .agent-operation__pointer-read-scan { display: flex; width: 36px; height: 32px; flex: none; align-items: center; justify-content: center; gap: 4px; pointer-events: none; }
17
+ .agent-operation__pointer-read-scan i { width: 3px; height: 11px; border-radius: 999px; background: #609cf5; opacity: .34; transform: scaleY(.58); transform-origin: center; animation: agent-operation-pointer-read-bar 1.05s ease-in-out infinite; }
18
+ .agent-operation__pointer-read-scan i:nth-child(2) { animation-delay: .1s; }
19
+ .agent-operation__pointer-read-scan i:nth-child(3) { animation-delay: .2s; }
20
+ .agent-operation__pointer-read-scan i:nth-child(4) { animation-delay: .3s; }
21
+ .agent-operation__pointer-read-scan i:nth-child(5) { animation-delay: .4s; }
22
+ .agent-operation__pointer-navigation-trail { position: relative; width: 36px; height: 32px; flex: none; filter: drop-shadow(0 1px 3px rgba(96,156,245,.32)); pointer-events: none; }
23
+ .agent-operation__pointer-navigation-trail::before,.agent-operation__pointer-navigation-trail::after { position: absolute; top: 9px; width: 10px; height: 10px; border-top: 2px solid #609cf5; border-right: 2px solid #609cf5; border-radius: 2px; content: ""; transform: rotate(45deg); animation: agent-operation-pointer-navigation-chevron .9s ease-in-out infinite; }
24
+ .agent-operation__pointer-navigation-trail::before { left: 1px; opacity: .3; }
25
+ .agent-operation__pointer-navigation-trail::after { left: 11px; animation-delay: .15s; }
26
+ .agent-operation__controller { --agent-operation-controller-x: -50%; position: fixed; z-index: 3; left: 50%; bottom: 22px; display: flex; width: 760px; min-width: min(760px,calc(100vw - 32px)); max-width: calc(100vw - 32px); align-items: center; gap: 10px; border: 1px solid rgba(165,180,252,.28); border-radius: 15px; padding: 9px 10px 9px 12px; color: #fff; background: linear-gradient(135deg,#3a3a40 0%,#303036 48%,#29292e 100%); box-shadow: inset 0 0 0 1px rgba(103,232,249,.06),0 16px 38px rgba(0,0,0,.28); pointer-events: auto; transform: translate(var(--agent-operation-controller-x),0); font-family: Inter,ui-sans-serif,system-ui,sans-serif; animation: agent-operation-controller-enter .4s cubic-bezier(.22,1,.36,1) both,agent-operation-edge-breathe 2.8s ease-in-out .4s infinite; will-change: transform,opacity; }
27
+ .agent-operation__controller[data-visibility="exiting"] { pointer-events: none; animation: agent-operation-controller-exit .3s cubic-bezier(.4,0,1,1) both; }
28
+ .agent-operation__controller::after { position: absolute; z-index: 0; inset: 1px; border-radius: 13px; background: linear-gradient(110deg,rgba(255,255,255,.13),transparent 30%,transparent 68%,rgba(129,140,248,.15)); content: ""; pointer-events: none; }
29
+ .agent-operation__controller>:not(.agent-operation__edge-flow) { position: relative; z-index: 2; }
30
+ .agent-operation__edge-flow { position: absolute; z-index: 1; inset: -1px; overflow: hidden; border-radius: inherit; pointer-events: none; }
31
+ .agent-operation__edge-flow::before,.agent-operation__edge-flow::after { position: absolute; height: 2px; content: ""; }
32
+ .agent-operation__edge-flow::before { top: 0; left: -34%; width: 34%; background: linear-gradient(90deg,transparent,rgba(165,180,252,.72),#e0f2fe,rgba(34,211,238,.9),transparent); animation: agent-operation-edge-flow 2.65s ease-in-out infinite; }
33
+ .agent-operation__edge-flow::after { right: -12%; bottom: 0; width: 28%; background: linear-gradient(90deg,transparent,rgba(129,140,248,.78),rgba(103,232,249,.68),transparent); animation: agent-operation-edge-flow-reverse 3.1s ease-in-out infinite; }
34
+ .agent-operation__pause-mark { display: flex; width: 9px; flex: 0 0 9px; justify-content: center; gap: 2px; opacity: .52; }
35
+ .agent-operation__pause-mark i { width: 2px; height: 9px; border-radius: 2px; background: #d4d4d8; }
36
+ .agent-operation__activity { position: relative; display: grid; width: 26px; height: 26px; flex: 0 0 26px; place-items: center; }
37
+ .agent-operation__activity-icon { display: none; }
38
+ .agent-operation__activity i { position: absolute; inset: 3px; border: 1px solid rgba(255,255,255,.14); border-top-color: #c7d2fe; border-radius: 50%; animation: agent-operation-spin 1.8s linear infinite; }
39
+ .agent-operation__activity b { color: #eef2ff; font-size: 17px; font-weight: 400; line-height: 1; }
40
+ .agent-operation__controller>div { display: grid; min-width: 0; flex: 1; gap: 1px; }
41
+ .agent-operation__heading { display: flex; min-width: 0; align-items: center; gap: 7px; }
42
+ .agent-operation__controller strong { overflow: hidden; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
43
+ .agent-operation__controller code { overflow: hidden; padding: 1px 5px; border-radius: 5px; color: #a1a1aa; background: rgba(255,255,255,.07); font: 500 8px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace; text-overflow: ellipsis; white-space: nowrap; }
44
+ .agent-operation__description { display: flex; min-width: 0; overflow: hidden; align-items: center; color: #e4e4e7; font-size: 10px; white-space: nowrap; }
45
+ .agent-operation__compact-status { display: none; }
46
+ .agent-operation__controller button { border: 0; border-radius: 9px; padding: 7px 10px; color: #e4e4e7; background: #3f3f46; font-size: 10px; font-weight: 650; }
47
+ .agent-operation__controller .agent-operation__activity { border: 0; padding: 0; cursor: pointer; }
48
+ .agent-operation__controller .agent-operation__activity:disabled { cursor: default; opacity: .55; }
49
+ .agent-operation__controller>.agent-operation__history { position: absolute; z-index: 4; bottom: calc(100% + 10px); left: 0; display: grid; width: 360px; max-width: 100%; max-height: min(320px,50vh); overflow: hidden; border: 1px solid rgba(165,180,252,.28); border-radius: 14px; color: #f4f4f5; background: #303036; box-shadow: 0 16px 38px rgba(0,0,0,.28); pointer-events: auto; }
50
+ .agent-operation__history header { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.08); padding: 11px 13px; }
51
+ .agent-operation__history header span { display: grid; min-width: 20px; height: 20px; place-items: center; border-radius: 10px; color: #c7d2fe; background: rgba(129,140,248,.16); font-size: 10px; }
52
+ .agent-operation__history ol { display: grid; overflow: auto; margin: 0; padding: 5px 0; list-style: none; }
53
+ .agent-operation__history li { display: grid; grid-template-columns: 22px minmax(0,1fr); align-items: start; gap: 8px; padding: 8px 13px; }
54
+ .agent-operation__history li>span { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: #c7d2fe; background: rgba(129,140,248,.12); font-size: 9px; }
55
+ .agent-operation__history p { margin: 1px 0 0; overflow-wrap: anywhere; color: #e4e4e7; font-size: 11px; line-height: 18px; }
56
+ .agent-operation__controller .agent-operation__stop { color: #fecaca; background: #7f1d1d; }
57
+ .agent-operation[data-status="completed"] .agent-operation__target { border-color: #609cf5; }
58
+ .agent-operation[data-status="failed"] .agent-operation__target { border-color: #dc2626; animation: none; }
59
+ .agent-operation[data-run-active="false"] .agent-operation__activity i,.agent-operation[data-run-active="false"] .agent-operation__edge-flow::before,.agent-operation[data-run-active="false"] .agent-operation__edge-flow::after,.agent-operation[data-run-active="false"] .agent-operation__surface::before,.agent-operation[data-run-active="false"] .agent-operation__surface::after { animation: none; }
60
+ @keyframes agent-operation-spin { to { transform: rotate(360deg); } }
61
+ @keyframes agent-operation-edge-flow { 0% { left: -24%; opacity: 0; } 12%,78% { opacity: 1; } 100% { left: 100%; opacity: 0; } }
62
+ @keyframes agent-operation-edge-flow-reverse { 0% { right: -20%; opacity: 0; } 18%,76% { opacity: .8; } 100% { right: 100%; opacity: 0; } }
63
+ @keyframes agent-operation-edge-breathe { 50% { border-color: rgba(103,232,249,.42); } }
64
+ @keyframes agent-operation-pulse { 50% { border-color: #38bdf8; box-shadow: 0 0 0 6px rgba(99,102,241,.12),0 0 28px rgba(34,211,238,.4),0 0 58px rgba(79,70,229,.24); } }
65
+ @property --agent-operation-edge-primary-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
66
+ @property --agent-operation-edge-secondary-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
67
+ @keyframes agent-operation-surface-edge-primary { 0% { --agent-operation-edge-primary-angle: 0deg; animation-timing-function: cubic-bezier(.4,.25,.6,.75); } 100% { --agent-operation-edge-primary-angle: 360deg; } }
68
+ @keyframes agent-operation-surface-edge-secondary { 0% { --agent-operation-edge-secondary-angle: 0deg; animation-timing-function: cubic-bezier(.4,.3,.6,.7); } 100% { --agent-operation-edge-secondary-angle: 360deg; } }
69
+ @keyframes agent-operation-controller-enter { 0% { opacity: 0; transform: translate(var(--agent-operation-controller-x),calc(100% + 28px)); } 100% { opacity: 1; transform: translate(var(--agent-operation-controller-x),0); } }
70
+ @keyframes agent-operation-controller-exit { 0% { opacity: 1; transform: translate(var(--agent-operation-controller-x),0); } 100% { opacity: 0; transform: translate(var(--agent-operation-controller-x),calc(100% + 28px)); } }
71
+ @keyframes agent-operation-pointer-read-bar { 0%,18%,100% { opacity: .34; transform: scaleY(.58); box-shadow: none; } 42% { opacity: 1; transform: scaleY(1.27); box-shadow: 0 0 6px rgba(96,156,245,.52); } 68% { opacity: .58; transform: scaleY(.78); box-shadow: none; } }
72
+ @keyframes agent-operation-pointer-navigation-chevron { 0%,100% { opacity: .24; transform: translateX(-3px) rotate(45deg); } 48% { opacity: 1; transform: translateX(2px) rotate(45deg); } 72% { opacity: .62; transform: translateX(4px) rotate(45deg); } }
73
+ @media (prefers-reduced-motion: reduce) { .agent-operation__surface,.agent-operation__target,.agent-operation__controller,.agent-operation__activity i,.agent-operation__edge-flow::before,.agent-operation__edge-flow::after,.agent-operation__pointer-read-scan i,.agent-operation__pointer-navigation-trail::before,.agent-operation__pointer-navigation-trail::after { animation: none; } .agent-operation__pointer-effect { transition: none; } .agent-operation__surface::before,.agent-operation__surface::after { display: none; } }
74
+ @media (max-width:520px) { .agent-operation__controller { --agent-operation-controller-x: 0%; right: 12px; bottom: 12px; left: 12px; width: auto; min-width: 0; } .agent-operation__controller>.agent-operation__history { width: 100%; } }
709
75
 
710
- .nexface-operation-surface {
711
- width: 100%;
712
- height: 100%;
713
- min-width: 0;
714
- min-height: 0;
715
- }
716
- .agent-operation .agent-operation__controller {
717
- box-sizing: border-box;
718
- min-width: 0;
719
- }
76
+ .nexface-operation-surface { width: 100%; height: 100%; min-width: 0; min-height: 0; }
77
+ .agent-operation .agent-operation__controller { box-sizing: border-box; min-width: 0; }
720
78
  .agent-operation__controller {
721
79
  top: auto;
722
80
  bottom: 14px;
@@ -745,9 +103,7 @@
745
103
  }
746
104
  .agent-operation__controller .agent-operation__edge-flow,
747
105
  .agent-operation__controller .agent-operation__pause-mark,
748
- .agent-operation__controller .agent-operation__compact-status {
749
- display: none;
750
- }
106
+ .agent-operation__controller .agent-operation__compact-status { display: none; }
751
107
  .agent-operation__controller .agent-operation__activity {
752
108
  width: 38px;
753
109
  height: 38px;
@@ -761,57 +117,16 @@
761
117
  cursor: pointer;
762
118
  }
763
119
  .agent-operation__controller .agent-operation__activity:not(:disabled):hover,
764
- .agent-operation__controller .agent-operation__activity[data-open="true"] {
765
- border-color: rgb(169 201 255 / 38%);
766
- background: rgb(169 201 255 / 14%);
767
- }
768
- .agent-operation__controller .agent-operation__activity:disabled {
769
- cursor: default;
770
- opacity: 0.82;
771
- }
772
- .agent-operation__controller .agent-operation__activity i {
773
- display: none;
774
- }
775
- .agent-operation__controller .agent-operation__activity-icon {
776
- display: block;
777
- }
778
- .agent-operation__controller .agent-operation__activity b {
779
- display: none;
780
- }
781
- .agent-operation__controller > div {
782
- display: grid;
783
- min-width: 0;
784
- flex: 1;
785
- gap: 1px;
786
- }
787
- .agent-operation__controller .agent-operation__heading {
788
- display: block;
789
- min-width: 0;
790
- }
791
- .agent-operation__controller .agent-operation__heading strong {
792
- display: block;
793
- overflow: hidden;
794
- color: rgb(255 255 255 / 96%);
795
- font-size: 12px;
796
- font-weight: 500;
797
- line-height: 16px;
798
- text-overflow: ellipsis;
799
- white-space: nowrap;
800
- }
801
- .agent-operation__controller .agent-operation__description {
802
- display: block;
803
- overflow: hidden;
804
- color: rgb(255 255 255 / 58%);
805
- font-size: 10px;
806
- line-height: 13px;
807
- text-overflow: ellipsis;
808
- white-space: nowrap;
809
- }
810
- .agent-operation[data-human-control="true"]
811
- .agent-operation__controller
812
- .agent-operation__description {
813
- color: #9fc3ff;
814
- }
120
+ .agent-operation__controller .agent-operation__activity[data-open="true"] { border-color: rgb(169 201 255 / 38%); background: rgb(169 201 255 / 14%); }
121
+ .agent-operation__controller .agent-operation__activity:disabled { cursor: default; opacity: .82; }
122
+ .agent-operation__controller .agent-operation__activity i { display: none; }
123
+ .agent-operation__controller .agent-operation__activity-icon { display: block; }
124
+ .agent-operation__controller .agent-operation__activity b { display: none; }
125
+ .agent-operation__controller > div { display: grid; min-width: 0; flex: 1; gap: 1px; }
126
+ .agent-operation__controller .agent-operation__heading { display: block; min-width: 0; }
127
+ .agent-operation__controller .agent-operation__heading strong { display: block; overflow: hidden; color: rgb(255 255 255 / 96%); font-size: 12px; font-weight: 500; line-height: 16px; text-overflow: ellipsis; white-space: nowrap; }
128
+ .agent-operation__controller .agent-operation__description { display: block; overflow: hidden; color: rgb(255 255 255 / 58%); font-size: 10px; line-height: 13px; text-overflow: ellipsis; white-space: nowrap; }
129
+ .agent-operation[data-human-control="true"] .agent-operation__controller .agent-operation__description { color: #9fc3ff; }
815
130
  .agent-operation__controller .agent-operation__stop {
816
131
  min-width: 84px;
817
132
  height: 38px;
@@ -824,13 +139,8 @@
824
139
  font-size: 11px;
825
140
  font-weight: 500;
826
141
  }
827
- .agent-operation__controller .agent-operation__stop:focus:not(:focus-visible) {
828
- outline: none;
829
- }
830
- .agent-operation__controller .agent-operation__stop:focus-visible {
831
- outline: 2px solid #ff7187;
832
- outline-offset: 2px;
833
- }
142
+ .agent-operation__controller .agent-operation__stop:focus:not(:focus-visible) { outline: none; }
143
+ .agent-operation__controller .agent-operation__stop:focus-visible { outline: 2px solid #ff7187; outline-offset: 2px; }
834
144
  .agent-operation__controller > .agent-operation__history {
835
145
  width: 360px;
836
146
  border: 1px solid rgb(255 255 255 / 12%);
@@ -841,116 +151,36 @@
841
151
  backdrop-filter: blur(16px) saturate(120%);
842
152
  -webkit-backdrop-filter: blur(16px) saturate(120%);
843
153
  }
844
- .agent-operation__history header {
845
- border-bottom-color: rgb(255 255 255 / 9%);
846
- padding: 12px 14px;
847
- }
848
- .agent-operation__history header strong {
849
- color: rgb(255 255 255 / 96%);
850
- font-size: 12px;
851
- font-weight: 600;
852
- }
853
- .agent-operation__history header span {
854
- color: #a9c9ff;
855
- background: rgb(169 201 255 / 14%);
856
- }
857
- .agent-operation__history li {
858
- padding: 8px 14px;
859
- }
860
- .agent-operation__history li > span {
861
- color: #a9c9ff;
862
- background: rgb(169 201 255 / 11%);
863
- }
864
- .agent-operation__history p {
865
- color: rgb(255 255 255 / 76%);
866
- font-size: 12px;
867
- line-height: 20px;
868
- }
869
- .agent-operation[data-interaction-pending="true"] .agent-operation__controller {
870
- box-shadow: none;
871
- }
872
- .agent-operation[data-interaction-pending="true"] .agent-operation__activity b {
873
- color: #609cf5;
874
- text-shadow: none;
875
- }
876
- .agent-operation__target {
877
- border: 1px solid #4f9cff;
878
- border-radius: 10px;
879
- box-shadow: 0 0 0 1px rgb(79 156 255 / 14%);
880
- animation: store-operation-target-in 0.16s ease-out both;
881
- }
882
- .agent-operation__pointer-label {
883
- border-color: #ebecf0;
884
- color: #525252;
885
- box-shadow: 0 4px 16px rgb(29 41 57 / 12%);
886
- }
154
+ .agent-operation__history header { border-bottom-color: rgb(255 255 255 / 9%); padding: 12px 14px; }
155
+ .agent-operation__history header strong { color: rgb(255 255 255 / 96%); font-size: 12px; font-weight: 600; }
156
+ .agent-operation__history header span { color: #a9c9ff; background: rgb(169 201 255 / 14%); }
157
+ .agent-operation__history li { padding: 8px 14px; }
158
+ .agent-operation__history li > span { color: #a9c9ff; background: rgb(169 201 255 / 11%); }
159
+ .agent-operation__history p { color: rgb(255 255 255 / 76%); font-size: 12px; line-height: 20px; }
160
+ .agent-operation[data-interaction-pending="true"] .agent-operation__controller { box-shadow: none; }
161
+ .agent-operation[data-interaction-pending="true"] .agent-operation__activity b { color: #609cf5; text-shadow: none; }
162
+ .agent-operation__target { border: 1px solid #4f9cff; border-radius: 10px; box-shadow: 0 0 0 1px rgb(79 156 255 / 14%); animation: store-operation-target-in .16s ease-out both; }
163
+ .agent-operation__pointer-label { border-color: #ebecf0; color: #525252; box-shadow: 0 4px 16px rgb(29 41 57 / 12%); }
887
164
  .agent-operation__surface {
888
165
  border: 1px solid rgb(96 156 245 / 90%);
889
166
  border-radius: 12px;
890
167
  background: rgb(96 156 245 / 6%);
891
- box-shadow:
892
- inset 0 0 0 1px rgb(255 255 255 / 72%),
893
- 0 0 8px rgb(96 156 245 / 20%);
894
- animation: store-operation-mask-in 0.18s ease-out both;
168
+ box-shadow: inset 0 0 0 1px rgb(255 255 255 / 72%), 0 0 8px rgb(96 156 245 / 20%);
169
+ animation: store-operation-mask-in .18s ease-out both;
895
170
  }
896
171
  .agent-operation__surface[style*="--agent-operation-cutout"] {
897
172
  -webkit-mask-image: none;
898
173
  mask-image: none;
899
174
  }
900
- @keyframes store-operation-mask-in {
901
- from {
902
- opacity: 0;
903
- }
904
- to {
905
- opacity: 1;
906
- }
907
- }
908
- @keyframes store-operation-target-in {
909
- from {
910
- opacity: 0;
911
- transform: scale(0.985);
912
- }
913
- to {
914
- opacity: 1;
915
- transform: scale(1);
916
- }
917
- }
175
+ @keyframes store-operation-mask-in { from { opacity: 0; } to { opacity: 1; } }
176
+ @keyframes store-operation-target-in { from { opacity: 0; transform: scale(.985); } to { opacity: 1; transform: scale(1); } }
918
177
  @media (prefers-reduced-motion: reduce) {
919
178
  .agent-operation__surface,
920
- .agent-operation__target {
921
- animation: none;
922
- }
923
- }
924
- .agent-operation,
925
- .agent-operation *,
926
- .agent-operation::before,
927
- .agent-operation::after,
928
- .agent-operation *::before,
929
- .agent-operation *::after {
930
- box-sizing: border-box;
931
- }
932
- .agent-operation__pointer-navigation-trail::before,
933
- .agent-operation__pointer-navigation-trail::after {
934
- box-sizing: content-box;
179
+ .agent-operation__target { animation: none; }
935
180
  }
181
+ .agent-operation, .agent-operation *, .agent-operation::before, .agent-operation::after, .agent-operation *::before, .agent-operation *::after { box-sizing: border-box; }
182
+ .agent-operation__pointer-navigation-trail::before,.agent-operation__pointer-navigation-trail::after { box-sizing: content-box; }
936
183
 
937
- .agent-operation__pointer-processing {
938
- display: inline-block;
939
- flex: none;
940
- width: 16px;
941
- height: 16px;
942
- border: 2px solid currentColor;
943
- border-right-color: transparent;
944
- border-radius: 50%;
945
- animation: agent-operation-processing-spin 0.8s linear infinite;
946
- }
947
- @keyframes agent-operation-processing-spin {
948
- to {
949
- transform: rotate(360deg);
950
- }
951
- }
952
- @media (prefers-reduced-motion: reduce) {
953
- .agent-operation__pointer-processing {
954
- animation: none;
955
- }
956
- }
184
+ .agent-operation__pointer-processing { display: inline-block; flex: none; width: 16px; height: 16px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: agent-operation-processing-spin .8s linear infinite; }
185
+ @keyframes agent-operation-processing-spin { to { transform: rotate(360deg); } }
186
+ @media (prefers-reduced-motion: reduce) { .agent-operation__pointer-processing { animation: none; } }