@tutti-os/agent-gui 0.0.50 → 0.0.51

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.
@@ -13,7 +13,7 @@ import {
13
13
  resolveWorkspaceFileLinkAction,
14
14
  resolveWorkspaceFilePathCandidate,
15
15
  resolveWorkspaceLinkAction
16
- } from "./chunk-VKP5ZW5O.js";
16
+ } from "./chunk-RKZMETSQ.js";
17
17
  import {
18
18
  AGENT_RICH_TEXT_CARET_ANCHOR,
19
19
  attrsToMentionItem,
@@ -14776,4 +14776,4 @@ export {
14776
14776
  AgentConversationFlow,
14777
14777
  useProjectedAgentConversation
14778
14778
  };
14779
- //# sourceMappingURL=chunk-RPXRNKU5.js.map
14779
+ //# sourceMappingURL=chunk-23YM25SG.js.map
@@ -7,7 +7,7 @@ import {
7
7
  AgentGUIConversation_styles_default,
8
8
  MessageSquareMoreIcon,
9
9
  extractAgentMcpToolTarget
10
- } from "./chunk-VKP5ZW5O.js";
10
+ } from "./chunk-RKZMETSQ.js";
11
11
  import {
12
12
  Spinner
13
13
  } from "./chunk-HDBKB5RA.js";
@@ -1150,4 +1150,4 @@ export {
1150
1150
  isPromptRequestIdTitle,
1151
1151
  AgentInteractivePromptSurface
1152
1152
  };
1153
- //# sourceMappingURL=chunk-FS26J46N.js.map
1153
+ //# sourceMappingURL=chunk-M7GNA2WD.js.map
@@ -10,6 +10,13 @@ import {
10
10
  useTranslation
11
11
  } from "./chunk-Y7ZVTWMZ.js";
12
12
 
13
+ // app/renderer/lib/utils.ts
14
+ import { clsx } from "clsx";
15
+ import { twMerge } from "tailwind-merge";
16
+ function cn(...inputs) {
17
+ return twMerge(clsx(inputs));
18
+ }
19
+
13
20
  // shared/agentMcpToolTarget.ts
14
21
  function extractAgentMcpToolTarget({
15
22
  input: rawInput,
@@ -276,13 +283,6 @@ import {
276
283
  import { RotateCcwIcon, ZoomInIcon, ZoomOutIcon } from "lucide-react";
277
284
  import Zoom from "react-medium-image-zoom";
278
285
 
279
- // app/renderer/lib/utils.ts
280
- import { clsx } from "clsx";
281
- import { twMerge } from "tailwind-merge";
282
- function cn(...inputs) {
283
- return twMerge(clsx(inputs));
284
- }
285
-
286
286
  // shared/agentConversation/components/ConversationImageContextMenu.tsx
287
287
  import {
288
288
  useCallback,
@@ -3145,173 +3145,15 @@ var styles = {
3145
3145
  };
3146
3146
  var AgentGUIConversation_styles_default = styles;
3147
3147
 
3148
- // app/renderer/components/icons/MessageSquareMoreIcon.tsx
3148
+ // app/renderer/components/ui/custom-scroll-area.tsx
3149
3149
  import {
3150
3150
  forwardRef,
3151
3151
  useCallback as useCallback4,
3152
3152
  useEffect as useEffect4,
3153
- useImperativeHandle,
3154
- useRef as useRef3
3155
- } from "react";
3156
- import {
3157
- motion,
3158
- useAnimation,
3159
- useReducedMotion
3160
- } from "framer-motion";
3161
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
3162
- var DOT_TRANSITION = {
3163
- times: [0, 0.1, 0.1, 0.2, 0.5, 0.6, 0.6, 0.7],
3164
- duration: 1.5
3165
- };
3166
- var DOT_VARIANTS = {
3167
- normal: {
3168
- opacity: 1
3169
- },
3170
- animate: (custom) => ({
3171
- opacity: [1, 0, 0, 1, 1, 0, 0, 1],
3172
- transition: {
3173
- opacity: {
3174
- ...DOT_TRANSITION,
3175
- times: DOT_TRANSITION.times.map(
3176
- (time, index) => index === 2 || index === 3 || index === 6 || index === 7 ? time + custom * 0.1 : time
3177
- )
3178
- }
3179
- }
3180
- }),
3181
- active: (custom) => ({
3182
- opacity: [1, 0, 0, 1, 1, 0, 0, 1],
3183
- transition: {
3184
- opacity: {
3185
- ...DOT_TRANSITION,
3186
- repeat: Infinity,
3187
- times: DOT_TRANSITION.times.map(
3188
- (time, index) => index === 2 || index === 3 || index === 6 || index === 7 ? time + custom * 0.1 : time
3189
- )
3190
- }
3191
- }
3192
- })
3193
- };
3194
- var MessageSquareMoreIcon = forwardRef(
3195
- ({
3196
- active = false,
3197
- onMouseEnter,
3198
- onMouseLeave,
3199
- className,
3200
- size = 28,
3201
- ...props
3202
- }, ref) => {
3203
- const controls = useAnimation();
3204
- const reduceMotion = useReducedMotion();
3205
- const isControlledRef = useRef3(false);
3206
- const startAnimation = useCallback4(() => {
3207
- if (reduceMotion) {
3208
- return;
3209
- }
3210
- void controls.start(active ? "active" : "animate");
3211
- }, [active, controls, reduceMotion]);
3212
- const stopAnimation = useCallback4(() => {
3213
- void controls.start("normal");
3214
- }, [controls]);
3215
- useImperativeHandle(ref, () => {
3216
- isControlledRef.current = true;
3217
- return {
3218
- startAnimation,
3219
- stopAnimation
3220
- };
3221
- });
3222
- useEffect4(() => {
3223
- if (active) {
3224
- startAnimation();
3225
- return;
3226
- }
3227
- stopAnimation();
3228
- }, [active, startAnimation, stopAnimation]);
3229
- const handleMouseEnter = useCallback4(
3230
- (event) => {
3231
- if (isControlledRef.current) {
3232
- onMouseEnter?.(event);
3233
- } else {
3234
- startAnimation();
3235
- }
3236
- },
3237
- [onMouseEnter, startAnimation]
3238
- );
3239
- const handleMouseLeave = useCallback4(
3240
- (event) => {
3241
- if (isControlledRef.current) {
3242
- onMouseLeave?.(event);
3243
- } else {
3244
- stopAnimation();
3245
- }
3246
- },
3247
- [onMouseLeave, stopAnimation]
3248
- );
3249
- return /* @__PURE__ */ jsx4(
3250
- "div",
3251
- {
3252
- className: cn("inline-flex items-center justify-center", className),
3253
- onMouseEnter: handleMouseEnter,
3254
- onMouseLeave: handleMouseLeave,
3255
- ...props,
3256
- children: /* @__PURE__ */ jsxs4(
3257
- "svg",
3258
- {
3259
- fill: "none",
3260
- height: size,
3261
- stroke: "currentColor",
3262
- strokeLinecap: "round",
3263
- strokeLinejoin: "round",
3264
- strokeWidth: "2",
3265
- viewBox: "0 0 24 24",
3266
- width: size,
3267
- xmlns: "http://www.w3.org/2000/svg",
3268
- children: [
3269
- /* @__PURE__ */ jsx4("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" }),
3270
- /* @__PURE__ */ jsx4(
3271
- motion.path,
3272
- {
3273
- animate: controls,
3274
- custom: 0,
3275
- d: "M8 10h.01",
3276
- variants: DOT_VARIANTS
3277
- }
3278
- ),
3279
- /* @__PURE__ */ jsx4(
3280
- motion.path,
3281
- {
3282
- animate: controls,
3283
- custom: 1,
3284
- d: "M12 10h.01",
3285
- variants: DOT_VARIANTS
3286
- }
3287
- ),
3288
- /* @__PURE__ */ jsx4(
3289
- motion.path,
3290
- {
3291
- animate: controls,
3292
- custom: 2,
3293
- d: "M16 10h.01",
3294
- variants: DOT_VARIANTS
3295
- }
3296
- )
3297
- ]
3298
- }
3299
- )
3300
- }
3301
- );
3302
- }
3303
- );
3304
- MessageSquareMoreIcon.displayName = "MessageSquareMoreIcon";
3305
-
3306
- // app/renderer/components/ui/custom-scroll-area.tsx
3307
- import {
3308
- forwardRef as forwardRef2,
3309
- useCallback as useCallback5,
3310
- useEffect as useEffect5,
3311
- useRef as useRef4,
3153
+ useRef as useRef3,
3312
3154
  useState as useState5
3313
3155
  } from "react";
3314
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
3156
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
3315
3157
  var MIN_THUMB_HEIGHT = 24;
3316
3158
  function CustomScrollbar({
3317
3159
  getViewport,
@@ -3322,15 +3164,15 @@ function CustomScrollbar({
3322
3164
  syncKey
3323
3165
  }) {
3324
3166
  "use memo";
3325
- const trackRef = useRef4(null);
3326
- const dragStateRef = useRef4(null);
3167
+ const trackRef = useRef3(null);
3168
+ const dragStateRef = useRef3(null);
3327
3169
  const [scrollbarState, setScrollbarState] = useState5({
3328
3170
  scrollable: false,
3329
3171
  thumbHeight: 0,
3330
3172
  thumbTop: 0
3331
3173
  });
3332
3174
  const [dragging, setDragging] = useState5(false);
3333
- const syncScrollbarState = useCallback5(() => {
3175
+ const syncScrollbarState = useCallback4(() => {
3334
3176
  const viewport = getViewport();
3335
3177
  if (!viewport) {
3336
3178
  setScrollbarState({ scrollable: false, thumbHeight: 0, thumbTop: 0 });
@@ -3353,7 +3195,7 @@ function CustomScrollbar({
3353
3195
  (previous) => previous.scrollable && previous.thumbHeight === thumbHeight && previous.thumbTop === thumbTop ? previous : { scrollable: true, thumbHeight, thumbTop }
3354
3196
  );
3355
3197
  }, [getViewport]);
3356
- const scrollViewportToThumbTop = useCallback5(
3198
+ const scrollViewportToThumbTop = useCallback4(
3357
3199
  (thumbTop) => {
3358
3200
  const viewport = getViewport();
3359
3201
  const track = trackRef.current;
@@ -3376,7 +3218,7 @@ function CustomScrollbar({
3376
3218
  },
3377
3219
  [getViewport, scrollbarState.thumbHeight, syncScrollbarState]
3378
3220
  );
3379
- const handleTrackMouseDown = useCallback5(
3221
+ const handleTrackMouseDown = useCallback4(
3380
3222
  (event) => {
3381
3223
  if (event.button !== 0 || !scrollbarState.scrollable) {
3382
3224
  return;
@@ -3398,7 +3240,7 @@ function CustomScrollbar({
3398
3240
  scrollbarState.thumbHeight
3399
3241
  ]
3400
3242
  );
3401
- const handleThumbMouseDown = useCallback5(
3243
+ const handleThumbMouseDown = useCallback4(
3402
3244
  (event) => {
3403
3245
  if (event.button !== 0 || !scrollbarState.scrollable) {
3404
3246
  return;
@@ -3431,7 +3273,7 @@ function CustomScrollbar({
3431
3273
  },
3432
3274
  [getViewport, scrollbarState.scrollable, scrollbarState.thumbHeight]
3433
3275
  );
3434
- useEffect5(() => {
3276
+ useEffect4(() => {
3435
3277
  if (!dragging) {
3436
3278
  return;
3437
3279
  }
@@ -3456,7 +3298,7 @@ function CustomScrollbar({
3456
3298
  window.removeEventListener("mouseup", handleMouseUp);
3457
3299
  };
3458
3300
  }, [dragging, getViewport, syncScrollbarState]);
3459
- useEffect5(() => {
3301
+ useEffect4(() => {
3460
3302
  const viewport = getViewport();
3461
3303
  if (!viewport) {
3462
3304
  setScrollbarState({ scrollable: false, thumbHeight: 0, thumbTop: 0 });
@@ -3473,7 +3315,7 @@ function CustomScrollbar({
3473
3315
  resizeObserver?.disconnect();
3474
3316
  };
3475
3317
  }, [getViewport, syncKey, syncScrollbarState]);
3476
- return /* @__PURE__ */ jsx5(
3318
+ return /* @__PURE__ */ jsx4(
3477
3319
  "div",
3478
3320
  {
3479
3321
  ref: trackRef,
@@ -3483,7 +3325,7 @@ function CustomScrollbar({
3483
3325
  "data-testid": testId,
3484
3326
  "aria-hidden": "true",
3485
3327
  onMouseDown: handleTrackMouseDown,
3486
- children: /* @__PURE__ */ jsx5(
3328
+ children: /* @__PURE__ */ jsx4(
3487
3329
  "div",
3488
3330
  {
3489
3331
  className: cn("tsh-custom-scrollbar__thumb", thumbClassName),
@@ -3498,7 +3340,7 @@ function CustomScrollbar({
3498
3340
  }
3499
3341
  );
3500
3342
  }
3501
- var CustomScrollArea = forwardRef2(function CustomScrollArea2({
3343
+ var CustomScrollArea = forwardRef(function CustomScrollArea2({
3502
3344
  children,
3503
3345
  className,
3504
3346
  viewportClassName,
@@ -3510,9 +3352,9 @@ var CustomScrollArea = forwardRef2(function CustomScrollArea2({
3510
3352
  ...viewportProps
3511
3353
  }, forwardedRef) {
3512
3354
  "use memo";
3513
- const viewportRef = useRef4(null);
3514
- const getViewport = useCallback5(() => viewportRef.current, []);
3515
- return /* @__PURE__ */ jsxs5(
3355
+ const viewportRef = useRef3(null);
3356
+ const getViewport = useCallback4(() => viewportRef.current, []);
3357
+ return /* @__PURE__ */ jsxs4(
3516
3358
  "div",
3517
3359
  {
3518
3360
  className: cn(
@@ -3520,7 +3362,7 @@ var CustomScrollArea = forwardRef2(function CustomScrollArea2({
3520
3362
  className
3521
3363
  ),
3522
3364
  children: [
3523
- /* @__PURE__ */ jsx5(
3365
+ /* @__PURE__ */ jsx4(
3524
3366
  "div",
3525
3367
  {
3526
3368
  ref: setRefs(viewportRef, forwardedRef),
@@ -3532,7 +3374,7 @@ var CustomScrollArea = forwardRef2(function CustomScrollArea2({
3532
3374
  children
3533
3375
  }
3534
3376
  ),
3535
- /* @__PURE__ */ jsx5(
3377
+ /* @__PURE__ */ jsx4(
3536
3378
  CustomScrollbar,
3537
3379
  {
3538
3380
  getViewport,
@@ -3561,6 +3403,164 @@ function clamp(value, min, max) {
3561
3403
  return Math.min(max, Math.max(min, value));
3562
3404
  }
3563
3405
 
3406
+ // app/renderer/components/icons/MessageSquareMoreIcon.tsx
3407
+ import {
3408
+ forwardRef as forwardRef2,
3409
+ useCallback as useCallback5,
3410
+ useEffect as useEffect5,
3411
+ useImperativeHandle,
3412
+ useRef as useRef4
3413
+ } from "react";
3414
+ import {
3415
+ motion,
3416
+ useAnimation,
3417
+ useReducedMotion
3418
+ } from "framer-motion";
3419
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
3420
+ var DOT_TRANSITION = {
3421
+ times: [0, 0.1, 0.1, 0.2, 0.5, 0.6, 0.6, 0.7],
3422
+ duration: 1.5
3423
+ };
3424
+ var DOT_VARIANTS = {
3425
+ normal: {
3426
+ opacity: 1
3427
+ },
3428
+ animate: (custom) => ({
3429
+ opacity: [1, 0, 0, 1, 1, 0, 0, 1],
3430
+ transition: {
3431
+ opacity: {
3432
+ ...DOT_TRANSITION,
3433
+ times: DOT_TRANSITION.times.map(
3434
+ (time, index) => index === 2 || index === 3 || index === 6 || index === 7 ? time + custom * 0.1 : time
3435
+ )
3436
+ }
3437
+ }
3438
+ }),
3439
+ active: (custom) => ({
3440
+ opacity: [1, 0, 0, 1, 1, 0, 0, 1],
3441
+ transition: {
3442
+ opacity: {
3443
+ ...DOT_TRANSITION,
3444
+ repeat: Infinity,
3445
+ times: DOT_TRANSITION.times.map(
3446
+ (time, index) => index === 2 || index === 3 || index === 6 || index === 7 ? time + custom * 0.1 : time
3447
+ )
3448
+ }
3449
+ }
3450
+ })
3451
+ };
3452
+ var MessageSquareMoreIcon = forwardRef2(
3453
+ ({
3454
+ active = false,
3455
+ onMouseEnter,
3456
+ onMouseLeave,
3457
+ className,
3458
+ size = 28,
3459
+ ...props
3460
+ }, ref) => {
3461
+ const controls = useAnimation();
3462
+ const reduceMotion = useReducedMotion();
3463
+ const isControlledRef = useRef4(false);
3464
+ const startAnimation = useCallback5(() => {
3465
+ if (reduceMotion) {
3466
+ return;
3467
+ }
3468
+ void controls.start(active ? "active" : "animate");
3469
+ }, [active, controls, reduceMotion]);
3470
+ const stopAnimation = useCallback5(() => {
3471
+ void controls.start("normal");
3472
+ }, [controls]);
3473
+ useImperativeHandle(ref, () => {
3474
+ isControlledRef.current = true;
3475
+ return {
3476
+ startAnimation,
3477
+ stopAnimation
3478
+ };
3479
+ });
3480
+ useEffect5(() => {
3481
+ if (active) {
3482
+ startAnimation();
3483
+ return;
3484
+ }
3485
+ stopAnimation();
3486
+ }, [active, startAnimation, stopAnimation]);
3487
+ const handleMouseEnter = useCallback5(
3488
+ (event) => {
3489
+ if (isControlledRef.current) {
3490
+ onMouseEnter?.(event);
3491
+ } else {
3492
+ startAnimation();
3493
+ }
3494
+ },
3495
+ [onMouseEnter, startAnimation]
3496
+ );
3497
+ const handleMouseLeave = useCallback5(
3498
+ (event) => {
3499
+ if (isControlledRef.current) {
3500
+ onMouseLeave?.(event);
3501
+ } else {
3502
+ stopAnimation();
3503
+ }
3504
+ },
3505
+ [onMouseLeave, stopAnimation]
3506
+ );
3507
+ return /* @__PURE__ */ jsx5(
3508
+ "div",
3509
+ {
3510
+ className: cn("inline-flex items-center justify-center", className),
3511
+ onMouseEnter: handleMouseEnter,
3512
+ onMouseLeave: handleMouseLeave,
3513
+ ...props,
3514
+ children: /* @__PURE__ */ jsxs5(
3515
+ "svg",
3516
+ {
3517
+ fill: "none",
3518
+ height: size,
3519
+ stroke: "currentColor",
3520
+ strokeLinecap: "round",
3521
+ strokeLinejoin: "round",
3522
+ strokeWidth: "2",
3523
+ viewBox: "0 0 24 24",
3524
+ width: size,
3525
+ xmlns: "http://www.w3.org/2000/svg",
3526
+ children: [
3527
+ /* @__PURE__ */ jsx5("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" }),
3528
+ /* @__PURE__ */ jsx5(
3529
+ motion.path,
3530
+ {
3531
+ animate: controls,
3532
+ custom: 0,
3533
+ d: "M8 10h.01",
3534
+ variants: DOT_VARIANTS
3535
+ }
3536
+ ),
3537
+ /* @__PURE__ */ jsx5(
3538
+ motion.path,
3539
+ {
3540
+ animate: controls,
3541
+ custom: 1,
3542
+ d: "M12 10h.01",
3543
+ variants: DOT_VARIANTS
3544
+ }
3545
+ ),
3546
+ /* @__PURE__ */ jsx5(
3547
+ motion.path,
3548
+ {
3549
+ animate: controls,
3550
+ custom: 2,
3551
+ d: "M16 10h.01",
3552
+ variants: DOT_VARIANTS
3553
+ }
3554
+ )
3555
+ ]
3556
+ }
3557
+ )
3558
+ }
3559
+ );
3560
+ }
3561
+ );
3562
+ MessageSquareMoreIcon.displayName = "MessageSquareMoreIcon";
3563
+
3564
3564
  export {
3565
3565
  cn,
3566
3566
  extractAgentMcpToolTarget,
@@ -3577,4 +3577,4 @@ export {
3577
3577
  CustomScrollArea,
3578
3578
  MessageSquareMoreIcon
3579
3579
  };
3580
- //# sourceMappingURL=chunk-VKP5ZW5O.js.map
3580
+ //# sourceMappingURL=chunk-RKZMETSQ.js.map